No logro hacer que el boolean salga del procedure cuando es TRUE
Publicado por Lauti (4 intervenciones) el 08/03/2021 18:00:02
bueno el fin del porgrama es darle un numero, este te dice si hay un numero mayor al menos significativo.
Por ejemplo: 1579. El menos significativo es el 9.
Si yo ingreso ese numero me dirá que no hay numeros mayores que el menos significativo.
Pero si por ejemplo ingreso 1397, el menos significativo va a ser el 7 y el resultado del programa dira que no hay numeros mayores, cuando en realidad si lo hay, es el 9.
El problema ya lo es, y es que no pasa al bloque principal el TRUE del procedure, asi que si alguien me puede ayudar estaria agradecido :)
Por ejemplo: 1579. El menos significativo es el 9.
Si yo ingreso ese numero me dirá que no hay numeros mayores que el menos significativo.
Pero si por ejemplo ingreso 1397, el menos significativo va a ser el 7 y el resultado del programa dira que no hay numeros mayores, cuando en realidad si lo hay, es el 9.
El problema ya lo es, y es que no pasa al bloque principal el TRUE del procedure, asi que si alguien me puede ayudar estaria agradecido :)
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
var n,ultimo,aux:integer; mayor:boolean;
/////////////////////////////////////////////////////
procedure proc(n,ultimo:integer; mayor:boolean);
var aux1 : integer;
begin
aux1 := n mod 10;
if (n=0)
then begin
end
else if aux1 > ultimo
then begin mayor := true;
end
else if aux1 < ultimo
then begin proc(n div 10,ultimo,mayor)
end
end;
/////////////////////////////////////////////////////
begin
write('ingrese un numero: ');
read(n);
aux := n;
ultimo := n mod 10;
n := n div 10;
proc(n,ultimo,mayor);
if mayor
then write ('Existen dígitos del número ',aux,' que no son menores al dígito menos significativo.')
else write ('No existen dígitos del número ',aux,' que sean mayores al dígito menos significativo.');
readln;
readln;
end.
Valora esta pregunta


0