Resolución de problemas y algoritmos Dra. Jessica Andrea Carballido jac@cs.uns.edu.ar Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR
Suma de dígitos de N Caso Base: Si N tiene un dígito, la suma de dígitos de N es ese dígito. Caso general: Si N tiene mas de un dígito, la suma de dígitos de N es la suma de dígitos de N’ + el último dígito de N. Donde N’ es N sin su último dígito. En el planteo no se debe incluir ningún detalle de la implementación, o sea que en particular no se refleja si será función o procedimiento.
program testSuma; var n, sd: integer; procedure sumaDigitos(num: integer: var SDnum: integer); var im, SDim: integer; begin if num < 10 then SDnum := num else im := num div 10; sumaDigitos(im, SDim); SDnum := SDim + num mod 10; end; TRAZA begin write(‘Ingrese un número natural:‘); readln(n); sumaDigitos(n, sd); writeLn(‘La suma de los dígitos de ‘, n,‘ es ‘, sd); end.
procedure sumaDigitos(…); … program testSuma; var n, sd: integer; procedure sumaDigitos(…); … n sd begin writeln(‘Ingrese un número natural:‘); readln(n); sumaDigitos(n, sd); writeLn(‘La suma de los dígitos de ‘, n,‘ es ‘, sd); end.
procedure sumaDigitos(…); … program testSuma; var n, sd: integer; procedure sumaDigitos(…); … n sd begin writeln(‘Ingrese un número natural:‘); readln(n); sumaDigitos(n, sd); writeLn(‘La suma de los dígitos de ‘, n,‘ es ‘, sd); end. Ingrese un número natural:
procedure sumaDigitos(…); … program testSuma; var n, sd: integer; procedure sumaDigitos(…); … n sd begin writeln(‘Ingrese un número natural:‘); readln(n); sumaDigitos(n, sd); writeLn(‘La suma de los dígitos de ‘, n,‘ es ‘, sd); end. Ingrese un número natural: 317
procedure sumaDigitos(…); … program testSuma; var n, sd: integer; procedure sumaDigitos(…); … n 317 sd begin writeln(‘Ingrese un número natural:‘); readln(n); sumaDigitos(n, sd); writeLn(‘La suma de los dígitos de ‘, n,‘ es ‘, sd); end. Ingrese un número natural: 317
writen(‘Ingrese un número natural:‘); readln(n); sumaDigitos(n, sd); begin writen(‘Ingrese un número natural:‘); readln(n); sumaDigitos(n, sd); writeLn(‘La suma de los dígitos de ‘, n,‘ es ‘, sd); end. n 317 sd num SDnum im SDim procedure sumaDigitos(num: integer: var SDnum: integer); var im, SDim: integer; begin if num < 10 then SDnum := num else im := num div 10; sumaDigitos(im, SDim); SDnum := SDim + num mod 10; end; Ingrese un número natural: 317
writen(‘Ingrese un número natural:‘); readln(n); sumaDigitos(n, sd); begin writen(‘Ingrese un número natural:‘); readln(n); sumaDigitos(n, sd); writeLn(‘La suma de los dígitos de ‘, n,‘ es ‘, sd); end. n 317 sd num SDnum ♦ im SDim procedure sumaDigitos(num: integer: var SDnum: integer); var im, SDim: integer; begin if num < 10 then SDnum := num else im := num div 10; sumaDigitos(im, SDim); SDnum := SDim + num mod 10; end; Ingrese un número natural: 317
writen(‘Ingrese un número natural:‘); readln(n); sumaDigitos(n, sd); begin writen(‘Ingrese un número natural:‘); readln(n); sumaDigitos(n, sd); writeLn(‘La suma de los dígitos de ‘, n,‘ es ‘, sd); end. n 317 sd num SDnum ♦ im SDim procedure sumaDigitos(num: integer: var SDnum: integer); var im, SDim: integer; begin if num < 10 then SDnum := num else im := num div 10; sumaDigitos(im, SDim); SDnum := SDim + num mod 10; end; Ingrese un número natural: 317
writen(‘Ingrese un número natural:‘); readln(n); sumaDigitos(n, sd); begin writen(‘Ingrese un número natural:‘); readln(n); sumaDigitos(n, sd); writeLn(‘La suma de los dígitos de ‘, n,‘ es ‘, sd); end. n 317 sd num SDnum ♦ im SDim procedure sumaDigitos(num: integer: var SDnum: integer); var im, SDim: integer; begin if num < 10 then SDnum := num else im := num div 10; sumaDigitos(im, SDim); SDnum := SDim + num mod 10; end; Ingrese un número natural: 317
writen(‘Ingrese un número natural:‘); readln(n); sumaDigitos(n, sd); begin writen(‘Ingrese un número natural:‘); readln(n); sumaDigitos(n, sd); writeLn(‘La suma de los dígitos de ‘, n,‘ es ‘, sd); end. n 317 sd num SDnum ♦ im SDim procedure sumaDigitos(num: integer: var SDnum: integer); var im, SDim: integer; begin if num < 10 then SDnum := num else im := num div 10; sumaDigitos(im, SDim); SDnum := SDim + num mod 10; end; Ingrese un número natural: 317
writen(‘Ingrese un número natural:‘); readln(n); sumaDigitos(n, sd); begin writen(‘Ingrese un número natural:‘); readln(n); sumaDigitos(n, sd); writeLn(‘La suma de los dígitos de ‘, n,‘ es ‘, sd); end. n 317 sd num SDnum ♦ im 31 SDim procedure sumaDigitos(num: integer: var SDnum: integer); var im, SDim: integer; begin if num < 10 then SDnum := num else im := num div 10; sumaDigitos(im, SDim); SDnum := SDim + num mod 10; end; Ingrese un número natural: 317
writen(‘Ingrese un número natural:‘); readln(n); sumaDigitos(n, sd); begin writen(‘Ingrese un número natural:‘); readln(n); sumaDigitos(n, sd); writeLn(‘La suma de los dígitos de ‘, n,‘ es ‘, sd); end. n 317 sd num SDnum ♦ im 31 SDim procedure sumaDigitos(num: integer: var SDnum: integer); var im, SDim: integer; begin if num < 10 then SDnum := num else im := num div 10; sumaDigitos(im, SDim); SDnum := SDim + num mod 10; end; Ingrese un número natural: 317
n 317 sd num SDnum ♦ im 31 SDim procedure sumaDigitos(num: integer: var SDnum: integer); var im, SDim: integer; begin if num < 10 then SDnum := num else im := num div 10; sumaDigitos(im, SDim); SDnum := SDim + num mod 10; end; Ingrese un número natural: 317
n 317 sd num SDnum ♦ im 31 SDim procedure sumaDigitos(num: integer: var SDnum: integer); var im, SDim: integer; begin if num < 10 then SDnum := num else im := num div 10; sumaDigitos(im, SDim); SDnum := SDim + num mod 10; end; Ingrese un número natural: 317
n 317 sd num SDnum ♦ im 31 SDim procedure sumaDigitos(num: integer: var SDnum: integer); var im, SDim: integer; begin if num < 10 then SDnum := num else im := num div 10; sumaDigitos(im, SDim); SDnum := SDim + num mod 10; end; Ingrese un número natural: 317
n 317 sd num SDnum ♦ im 31 SDim procedure sumaDigitos(num: integer: var SDnum: integer); var im, SDim: integer; begin if num < 10 then SDnum := num else im := num div 10; sumaDigitos(im, SDim); SDnum := SDim + num mod 10; end; Ingrese un número natural: 317
n 317 sd num SDnum ♦ im 31 SDim 3 procedure sumaDigitos(num: integer: var SDnum: integer); var im, SDim: integer; begin if num < 10 then SDnum := num else im := num div 10; sumaDigitos(im, SDim); SDnum := SDim + num mod 10; end; Ingrese un número natural: 317
n 317 sd num SDnum ♦ im 31 SDim 3 procedure sumaDigitos(num: integer: var SDnum: integer); var im, SDim: integer; begin if num < 10 then SDnum := num else im := num div 10; sumaDigitos(im, SDim); SDnum := SDim + num mod 10; end; Ingrese un número natural: 317
n 317 sd num SDnum ♦ im 31 SDim 3 procedure sumaDigitos(num: integer: var SDnum: integer); var im, SDim: integer; begin if num < 10 then SDnum := num else im := num div 10; sumaDigitos(im, SDim); SDnum := SDim + num mod 10; end; Ingrese un número natural: 317
n 317 sd num SDnum ♦ im 31 SDim 3 procedure sumaDigitos(num: integer: var SDnum: integer); var im, SDim: integer; begin if num < 10 then SDnum := num else im := num div 10; sumaDigitos(im, SDim); SDnum := SDim + num mod 10; end; Ingrese un número natural: 317
n 317 sd num SDnum ♦ im 31 SDim 3 procedure sumaDigitos(num: integer: var SDnum: integer); var im, SDim: integer; begin if num < 10 then SDnum := num else im := num div 10; sumaDigitos(im, SDim); SDnum := SDim + num mod 10; end; Ingrese un número natural: 317
n 317 sd num SDnum ♦ im 31 SDim 3 procedure sumaDigitos(num: integer: var SDnum: integer); var im, SDim: integer; begin if num < 10 then SDnum := num else im := num div 10; sumaDigitos(im, SDim); SDnum := SDim + num mod 10; end; Ingrese un número natural: 317
n 317 sd num SDnum ♦ im 31 SDim 3 procedure sumaDigitos(num: integer: var SDnum: integer); var im, SDim: integer; begin if num < 10 then SDnum := num else im := num div 10; sumaDigitos(im, SDim); SDnum := SDim + num mod 10; end; Ingrese un número natural: 317
n 317 sd num SDnum ♦ im 31 SDim 3 procedure sumaDigitos(num: integer: var SDnum: integer); var im, SDim: integer; begin if num < 10 then SDnum := num else im := num div 10; sumaDigitos(im, SDim); SDnum := SDim + num mod 10; end; Ingrese un número natural: 317
n 317 sd num SDnum ♦ im 31 SDim 3 Ingrese un número natural: 317
n 317 sd num SDnum ♦ im 31 SDim 3 procedure sumaDigitos(num: integer: var SDnum: integer); var im, SDim: integer; begin if num < 10 then SDnum := num else im := num div 10; sumaDigitos(im, SDim); SDnum := SDim + num mod 10; end; Ingrese un número natural: 317
n 317 sd num SDnum ♦ im 31 SDim 3 procedure sumaDigitos(num: integer: var SDnum: integer); var im, SDim: integer; begin if num < 10 then SDnum := num else im := num div 10; sumaDigitos(im, SDim); SDnum := SDim + num mod 10; end; Ingrese un número natural: 317
n 317 sd num SDnum ♦ im 31 SDim 4 3 procedure sumaDigitos(num: integer: var SDnum: integer); var im, SDim: integer; begin if num < 10 then SDnum := num else im := num div 10; sumaDigitos(im, SDim); SDnum := SDim + num mod 10; end; Ingrese un número natural: 317
n 317 sd num SDnum ♦ im 31 SDim 4 3 procedure sumaDigitos(num: integer: var SDnum: integer); var im, SDim: integer; begin if num < 10 then SDnum := num else im := num div 10; sumaDigitos(im, SDim); SDnum := SDim + num mod 10; end; Ingrese un número natural: 317
n 317 sd num SDnum ♦ im 31 SDim 4 3 procedure sumaDigitos(num: integer: var SDnum: integer); var im, SDim: integer; begin if num < 10 then SDnum := num else im := num div 10; sumaDigitos(im, SDim); SDnum := SDim + num mod 10; end; Ingrese un número natural: 317
n 317 sd num SDnum ♦ im 31 SDim 4 Ingrese un número natural: 317
writen(‘Ingrese un número natural:‘); readln(n); sumaDigitos(n, sd); begin writen(‘Ingrese un número natural:‘); readln(n); sumaDigitos(n, sd); writeLn(‘La suma de los dígitos de ‘, n,‘ es ‘, sd); end. n 317 sd num SDnum ♦ im 31 SDim 4 procedure sumaDigitos(num: integer: var SDnum: integer); var im, SDim: integer; begin if num < 10 then SDnum := num else im := num div 10; sumaDigitos(im, SDim); SDnum := SDim + num mod 10; end; Ingrese un número natural: 317
writen(‘Ingrese un número natural:‘); readln(n); sumaDigitos(n, sd); begin writen(‘Ingrese un número natural:‘); readln(n); sumaDigitos(n, sd); writeLn(‘La suma de los dígitos de ‘, n,‘ es ‘, sd); end. n 317 sd 11 num SDnum ♦ im 31 SDim 4 procedure sumaDigitos(num: integer: var SDnum: integer); var im, SDim: integer; begin if num < 10 then SDnum := num else im := num div 10; sumaDigitos(im, SDim); SDnum := SDim + num mod 10; end; Ingrese un número natural: 317
writen(‘Ingrese un número natural:‘); readln(n); sumaDigitos(n, sd); begin writen(‘Ingrese un número natural:‘); readln(n); sumaDigitos(n, sd); writeLn(‘La suma de los dígitos de ‘, n,‘ es ‘, sd); end. n 317 sd 11 num SDnum ♦ im 31 SDim 4 procedure sumaDigitos(num: integer: var SDnum: integer); var im, SDim: integer; begin if num < 10 then SDnum := num else im := num div 10; sumaDigitos(im, SDim); SDnum := SDim + num mod 10; end; Ingrese un número natural: 317
writen(‘Ingrese un número natural:‘); readln(n); sumaDigitos(n, sd); begin writen(‘Ingrese un número natural:‘); readln(n); sumaDigitos(n, sd); writeLn(‘La suma de los dígitos de ‘, n,‘ es ‘, sd); end. n 317 sd 11 num SDnum ♦ im 31 SDim 4 procedure sumaDigitos(num: integer: var SDnum: integer); var im, SDim: integer; begin if num < 10 then SDnum := num else im := num div 10; sumaDigitos(im, SDim); SDnum := SDim + num mod 10; end; Ingrese un número natural: 317
writen(‘Ingrese un número natural:‘); readln(n); sumaDigitos(n, sd); begin writen(‘Ingrese un número natural:‘); readln(n); sumaDigitos(n, sd); writeLn(‘La suma de los dígitos de ‘, n,‘ es ‘, sd); end. n 317 sd 11 Ingrese un número natural: 317
writen(‘Ingrese un número natural:‘); readln(n); sumaDigitos(n, sd); begin writen(‘Ingrese un número natural:‘); readln(n); sumaDigitos(n, sd); writeLn(‘La suma de los dígitos de ‘, n,‘ es ‘, sd); end. n 317 sd 11 Ingrese un número natural: 317 La suma de los dígitos de 317 es 11
writen(‘Ingrese un número natural:‘); readln(n); sumaDigitos(n, sd); begin writen(‘Ingrese un número natural:‘); readln(n); sumaDigitos(n, sd); writeLn(‘La suma de los dígitos de ‘, n,‘ es ‘, sd); end. n 317 sd 11 Ingrese un número natural: 317 La suma de los dígitos de 317 es 11
Ingrese un número natural: 317 La suma de los dígitos de 317 es 11