Documentos de Académico
Documentos de Profesional
Documentos de Cultura
EXPLICACIÓN PRÁCTICA 5
continuación
CADP 2021
0
1 0
1 0 0 0
2 0 0
1 0
1 0
1 0
3
0 1 2 3 4 5 6 7 8 9
Ejercicio
Hacer un programa que lea una secuencia de números enteros terminada en
0. Informar la cantidad de veces que aparece cada dígito del 0 al 9 entre
todos los números leídos.
Ejemplo: se leen los números: 457 9875 5 24879 0
{Se debe informar por cada dígito cuántas veces aparecieron cada uno de ellos}
0 aparece 0 veces;
1 aparece 0 veces;
¿Debo almacenar los números leídos?
2 aparece 1 veces;
3 aparece 0 veces; ¿Cómo cuento las veces que aparece cada dígito?
4 aparece 2 veces;
5 aparece 3 veces;
0 0 1 0 2 3 0 3 2 2
6 aparece 0 veces;
7 aparece 3 veces; 0 1 2 3 4 5 6 7 8 9
8 aparece 2 veces;
¿Necesito llevar la dimensión lógica?
3 9 aparece 2 veces;
procedure inicializar(var a:numeros);
var i:rango;
begin
for i:=0 to 9 do
a[i]:=0;
Program Digitos;
end;
Type
rango=0..9; procedure descomponer(var a:numeros;
numeros=array [rango] of integer; num:integer);
var
{Acá se declaran los módulos} resto:rango;
var begin
losnros:numeros; while (num <> 0) do begin
num:integer; resto:=num mod 10; {Obtengo digito}
begin {Incremento contador asociado al digito}
inicializar(losnros); a[resto]:=a[resto] + 1;
read(num); num:=num div 10; {Achico número}
while (num <> 0) do begin end;
descomponer(losnros, num); end;
read(num); procedure informo(a:numeros);
end; var
informo(losnros); i:rango;
end. begin
for i:=0 to 9 do
writeln(i, ‘ = ’,a[i]);
4
end;
u e p a ra in fo rm a r para procedure inicializar(var a:numeros);
1. Modifiq
ntidad de var i:rango;
cada número la ca
e a p are c e ca d a d igito. begin
veces qu for i:=0 to 9 do
a[i]:=0;
Program Digitos;
end;
Type
rango=0..9; procedure descomponer(var a:numeros;
numeros=array [rango] of integer; num:integer);
var
{Acá se declaran los módulos} resto:rango;
var begin
losnros:numeros; while (num <> 0) do begin
num:integer; resto:=num mod 10; {Obtengo digito}
begin {Incremento contador asociado al digito}
inicializar(losnros); a[resto]:=a[resto] + 1;
read(num); num:=num div 10; {Achico número}
while (num <> 0) do begin end;
descomponer(losnros, num); end;
read(num); procedure informo(a:numeros);
end; var
informo(losnros); i:rango;
end. begin
for i:=0 to 9 do
writeln(i, ‘ = ’,a[i]);
5
end;
u e p a ra in fo rm a r para procedure inicializar(var a:numeros);
1. Modifiq
ntidad de var i:rango;
cada número la ca
e a p a re c e ca d a d igito. begin
veces qu for i:=0 to 9 do
a[i]:=0;
Program Digitos;
end;
Type
rango=0..9; procedure descomponer(var a:numeros;
numeros=array [rango] of integer; num:integer);
var
{Acá se declaran los módulos} resto:rango;
var begin
losnros:numeros; while (num <> 0) do begin
num:integer; resto:=num mod 10; {Obtengo digito}
begin {Incremento contador asociado al digito}
inicializar(losnros); a[resto]:=a[resto] + 1;
read(num); num:=num div 10; {Achico número}
while (num <> 0) do begin end;
descomponer(losnros, num); end;
read(num); procedure informo(a:numeros);
end; var
informo(losnros); i:rango;
end. begin
for i:=0 to 9 do
writeln(i, ‘ = ’,a[i]);
6
end;
u e p a ra in fo rm ar para
1. Modifiq
ntidad de
cada número la ca
e a p a re c e ca d a d igito.
veces qu
Program Digitos;
Type
rango=0..9;
numeros=array [rango] of integer;
7
Program Digitos;
Type
rango=0..9;
numeros=array [rango] of integer;