Pascal/Turbo Pascal - Ayudenme con un ejercicio que determine si un numero es automorfico utilizando subprogramas

 
Vista:
sin imagen de perfil
Val: 6
Ha aumentado su posición en 46 puestos en Pascal/Turbo Pascal (en relación al último mes)
Gráfica de Pascal/Turbo Pascal

Ayudenme con un ejercicio que determine si un numero es automorfico utilizando subprogramas

Publicado por Andres Chavarri (15 intervenciones) el 21/06/2021 16:51:55
Elabore un programa en Pascal, UTILIZANDO SUBPROGRAMAS (por lo menos
una 2 funciones y 2 procedimientos), para determinar si un número dado por
pantalla es automórfico. Un número automórfico es aquel que al elevarlo
sistemáticamente a una potencia mayor que cero, las últimas cifras del resultado
corresponden al mismo número. Hacer el programa, para probar que un número es
automórfico con un máximo de una potencia N dada. Ejemplo: 76 es automorfico
para una potencia N= 4 porque: 761
= 76; 762
= 5776; 763
= 438976; 764
=
33362176. Fíjese que al elevar el 76 a las 4 potencias sucesivas su resultado
teminan en 76.
Nota :Los números deben leerse en el programa principal y pasarlo al
subprograma quien debe hacer los cálculos y devolver los resultados, para que
el programa principal los muestre.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ayudenme con un ejercicio que determine si un numero es automorfico utilizando subprogramas

Publicado por Armando Fuenmayor (6 intervenciones) el 21/06/2021 21:47:16
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
(*  nota:  numeros automórfico
  muy largos no los comprueba
  porque en potencia(n) de desborda
  el entero largo
  *)
uses crt;
var
    n : integer ;
    res : string;
 
function numdigitos(nu : LongInt) : integer;
var
    con : integer ;
begin
    con := 0;
    while (nu >= 1) do
    begin
         nu := (nu div 10);
         inc(con);
    end;
    numdigitos := con;
end;
 
function potencia(nu : LongInt ) : longint;
var
    i , acumu : LongInt  ;
begin
    acumu := 1;
    for i :=1 to nu  do
    begin
        acumu :=  acumu * 10 ;
    end;
    potencia := acumu;
end;
 
function cuadrado(nu : LongInt) : integer;
begin
    cuadrado := nu * nu;
end;
 
 
function esonoes(nu : LongInt) : boolean;
var
    xx : LongInt;
begin
    xx := 0 ;
    xx := round(frac(cuadrado(nu)
     / potencia(numdigitos(nu)))
    * potencia(numdigitos(nu)));
 
   if (xx = nu ) then
   begin
       esonoes := true;
   end
   else
   begin
       esonoes := false;
   end;
end;
 
procedure leer;
begin
    writeln('Ingrese un numero:  ') ;
    read(n);
end;
 
procedure final;
begin
    res := 'S';
    while (res = 'S') do
    begin
    clrscr;
    leer;
 
    if esonoes(n) then
    begin
        writeln('EL numero ', n ,' es automórfico ') ;
    end
    else
    begin
        writeln('EL numero ', n ,' no es automórfico ') ;
    end;
    writeln(' Desea introducir otro numero [S/N]');
 
    readln(res);
    res := upcase(res);
end;
readln;
 
end;
 
 
(*  programa principal *)
begin
    final;
end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar