Amigos cuadraticos en subprograma
Publicado por Lyel (1 intervención) el 19/05/2018 23:05:02
Buenas, estoy empezando a aprender a usar subprogramas y nos mandaron de tarea usarlos en este ejercicio
2. Se dice que dos números X y Y son cuadráticamente amigos, si al elevar al cuadrado cada uno de ellos, la suma de los dígitos del cuadrado de X es igual a Y y viceversa. Ejemplo X= 16 y Y = 13 son amigos cuadráticos pues 16 al cuadrado es 256 y 2+5+6 = 13 y por su parte 13 al cuadrado es 169 y 1+6+9 = 16.
Realice un programa en Pascal que , usando subprogramas, muestre los números dados, sus cuadrados y que determine si dos números dados, son o NO cuadráticamente amigos .Nota :
Los números deben leerse en el programa principal hacia el subprograma y este debe devolver los resultados, para que el programa principal los muestre.
Ya me corre el programa pero a la hora de llamar al procedimiento creo que no esta tomando bien los datos y no muestra la salida ,solamente me pide X y Y y ahi se queda,aqui les dejo el codigo
program cuadradamigos;
uses crt;
var
x,y,suma1,suma2,cuadrado1,cuadrado2:integer;
PROCEDURE cuadraticos(x1,y1:integer;var suma11,suma22,cuadrado11,cuadrado22:integer);
var
digitos,division,division2,digitos2:integer;
begin
cuadrado11:=x1*x1;
suma11:=0;
while (division<>0) do
begin
digitos:=cuadrado11 mod 10;
division:=cuadrado11 div 10;
suma11:= suma11+digitos;
end;
cuadrado22:=y1*y1;
suma22:=0;
while (division2<>0) do
begin
digitos2:= cuadrado22 mod 10;
division2:=cuadrado22 div 10;
suma22:=suma22+digitos2;
end;
end;
begin
Writeln('Introduzca su primer numero x');
readln(x);
Writeln('Introduzca su segundo numero y');
readln(y);
cuadraticos(x,y,suma1,suma2,cuadrado1,cuadrado2);
if (suma1=y) and (suma2=x) then
Writeln('Sus numeros ',x,cuadrado1,' ',y,cuadrado2,'son cuadraticamente amigos')
else
Writeln('Sus numeros',x,' ',y,'no son cuadrataticamente amigos');
end.
2. Se dice que dos números X y Y son cuadráticamente amigos, si al elevar al cuadrado cada uno de ellos, la suma de los dígitos del cuadrado de X es igual a Y y viceversa. Ejemplo X= 16 y Y = 13 son amigos cuadráticos pues 16 al cuadrado es 256 y 2+5+6 = 13 y por su parte 13 al cuadrado es 169 y 1+6+9 = 16.
Realice un programa en Pascal que , usando subprogramas, muestre los números dados, sus cuadrados y que determine si dos números dados, son o NO cuadráticamente amigos .Nota :
Los números deben leerse en el programa principal hacia el subprograma y este debe devolver los resultados, para que el programa principal los muestre.
Ya me corre el programa pero a la hora de llamar al procedimiento creo que no esta tomando bien los datos y no muestra la salida ,solamente me pide X y Y y ahi se queda,aqui les dejo el codigo
program cuadradamigos;
uses crt;
var
x,y,suma1,suma2,cuadrado1,cuadrado2:integer;
PROCEDURE cuadraticos(x1,y1:integer;var suma11,suma22,cuadrado11,cuadrado22:integer);
var
digitos,division,division2,digitos2:integer;
begin
cuadrado11:=x1*x1;
suma11:=0;
while (division<>0) do
begin
digitos:=cuadrado11 mod 10;
division:=cuadrado11 div 10;
suma11:= suma11+digitos;
end;
cuadrado22:=y1*y1;
suma22:=0;
while (division2<>0) do
begin
digitos2:= cuadrado22 mod 10;
division2:=cuadrado22 div 10;
suma22:=suma22+digitos2;
end;
end;
begin
Writeln('Introduzca su primer numero x');
readln(x);
Writeln('Introduzca su segundo numero y');
readln(y);
cuadraticos(x,y,suma1,suma2,cuadrado1,cuadrado2);
if (suma1=y) and (suma2=x) then
Writeln('Sus numeros ',x,cuadrado1,' ',y,cuadrado2,'son cuadraticamente amigos')
else
Writeln('Sus numeros',x,' ',y,'no son cuadrataticamente amigos');
end.
Valora esta pregunta


0