Here is a simple program in CoPascal:
<code>program ADD1( Input, Output );
const
n = 5;
var
X, i, min, max : integer;
procedure p1;
var k : integer;
begin
for k := 1 to n do
X := X + 1;
end;
begin { main }
min:=100;
max:=0;
for i:=1 to 1000 do { 1000 iterations }
begin
X := 0;
cobegin
p1;
p1;
coend;
writeln( X );
if X < min then min:=X;
if X > max then max:=X;
end;
writeln('max is: ', max);
writeln('min is: ', min);
end.
</code>
<code>program ADD1( Input, Output );
const
n = 5;
var
X, i, min, max : integer;
procedure p1;
var k : integer;
begin
for k := 1 to n do
X := X + 1;
end;
begin { main }
min:=100;
max:=0;
for i:=1 to 1000 do { 1000 iterations }
begin
X := 0;
cobegin
p1;
p1;
coend;
writeln( X );
if X < min then min:=X;
if X > max then max:=X;
end;
writeln('max is: ', max);
writeln('min is: ', min);
end.
</code>
program ADD1( Input, Output );
const
n = 5;
var
X, i, min, max : integer;
procedure p1;
var k : integer;
begin
for k := 1 to n do
X := X + 1;
end;
begin { main }
min:=100;
max:=0;
for i:=1 to 1000 do { 1000 iterations }
begin
X := 0;
cobegin
p1;
p1;
coend;
writeln( X );
if X < min then min:=X;
if X > max then max:=X;
end;
writeln('max is: ', max);
writeln('min is: ', min);
end.
I thought that min should be 5 (n) and max should be 10 (2*n). But running this program multiple times, I get min = 4 or min =3 sometimes. How can this happen?
I’m using a dos CoPascal compiler.
I’m sorry for my bad English.
New contributor
Λευτέρης Ζαφειριάδης is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.