Calculo de salida a mano me da diferente que en pascal
Publicado por German (3 intervenciones) el 06/07/2016 10:49:50
Hola tengo el siguiente programa y tengo que calcular la salida suponiendo que la entrada es 7, la salida que me da en pascal es:
FALSE
4
10
4
TRUE
12
pero a mi me da
FALSE
4
10
5
TRUE
12
El problema lo tengo donde esta marcado con asteriscos, donde d toma la variable global num, pero no entiendo porque cuando d queda valiendo 5 no cambia el valor de num a 5 tambien.
Espero me puedan ayudar gracias, esto me esta dando dolor de cabeza ya.
FALSE
4
10
4
TRUE
12
pero a mi me da
FALSE
4
10
5
TRUE
12
El problema lo tengo donde esta marcado con asteriscos, donde d toma la variable global num, pero no entiendo porque cuando d queda valiendo 5 no cambia el valor de num a 5 tambien.
Espero me puedan ayudar gracias, esto me esta dando dolor de cabeza ya.
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
Program ejercicio;
var
flag : Boolean;
num : Integer;
function f (a:Boolean; var b:Integer):Boolean;
begin
b := (3 * b) div 2;
f := (b = num) and a
end;
procedure p (var c :boolean; d:Integer);
procedure q (num : Integer);
begin
num := num + num;
writeln (num)
end;
begin
c := not c;
d := (d + 3) * 4 div 5; ***************
q(d);
writeln (num)
end;
Begin
readln(num);
num := ((num + 2) * 7) mod 15;
flag := f(num mod 2 = 0, num);
if flag then writeln('TRUE') else writeln('FALSE');
writeln(num);
p(flag, num);
if flag then writeln('TRUE') else writeln('FALSE');
writeln(3 * num)
End.
Valora esta pregunta


0