max:= y;
min:= x;
end;
if x * y>0 then
f:=max
Else
f:=min;
writeln(f);
End.
2. Нарисуйте область на плоскости, при попадании в которую точки с координатами x, y программа выводит значение True.
program exam2_2;
Var
x, y: integer;
b:boolean;
Begin
readln(x,y);
b:= (abs(x-y)<=1) and (abs(x+y)<=1);
writeln(b);
End.
3. Определите, в какие интервалы должно «попасть» значение х, чтобы программа выводила значение 0.
program exam2_3;
Var
f, x: integer;
Begin
readln(x);
if (x>=-1) and (x<=4) or (x>=5) and (x<=10) then
f:= 1
Else
f:= 0;
writeln(f);
End.
4. Пользователь ввел с клавиатуры значение переменной х. Определите, какое значение выведет компьютер на дисплей, если х равно: 3; 4; -2; -4; 15.
program exam2_4;
Var
f, x: integer;
Begin
readln(x);
Case x of
1, 3, 5, 7, 9: f:=2 * x+1;
2, 4, 6, 8: f:=2 * x;
10..100: f:=x * 10;
-3..-1: f:=-1;
Else
f:=0;
end;
writeln(f);
End.
5.Выполните трассировку программы и определите результат.
program exam2_5;
Var
s, i, k: integer;
Begin
s:= 0;
k:= 1;
for i:=1 to 5 do begin
s:=s+i;
k:=k*i;
end;
writeln(s+k);
End.
6.Выполните трассировку программы и определите результат.
program exam2_6;
Var
s, i, k: integer;
|
|
Begin
s:= 0;
k:= 1;
for i:=1 to 5 do begin
s:=s+i;
k:=k * i;
if s+k>25 then
break;
end;
writeln(s:5, k:5);
End.
7. Выполните трассировку программы и определите результат, если пользователь ввел с клавиатуры значения: 1, 7, 2.
Дайте геометрическую интерпретацию работы программы, если значение переменной s рассматривать, как площадь геометрической фигуры.
program exam2_7;
Var
s, x, x0, x1, d: integer;
n: integer;
Begin
readln(x0, x1, d);
n:= (x1-x0) div d;
x:= x0;
s:= 0;
while n>0 do begin
s:=s+d * x;
x:=x+d;
n:=n-1;
end;
writeln(s:5);
End.
8. Пользователь ввел с клавиатуры значение переменной х. Выполните трассировку программы и определите результат, если х равно: 5; 8.
Можно ли использовать программу для определения, простое число или нет?
program exam2_8;
Var
n, f, i: integer;
Begin
readln(n);
i:=2;
f:=1;
while i<=sqrt(n) do begin
if n mod i = 0 then begin
f:=0;
break;
end;
i:=i+1;
end;
writeln(f);
End.
9. Программа должна вычислять значение наибольшего общего делителя.
Выполните трассировку и проверьте работу программы для значений m и n: 4, 2; 12, 8.
program exam2_9;
Var
m, n, p: integer;
Begin
readln(m, n); {m>n}
Repeat
p:= m mod n;
if p<>0 then begin
m:= n;
n:= p;
end;
until p=0;
writeln(n);
End.
10. Выполните трассировку и определите вид арифметического выражения, значение которого (переменная р) вычисляет программа.
program exam2_10;
Var
s, i, k, n, p: integer;
Begin
p:= 1;
k:= 1;
n:= 1;
for i:=1 to 4 do begin
s:=0;
while k<=n do begin
s:= s+k;
k:= k+1;
end;
n:=i+k;
p:=p*s;
end;
writeln(p);
End.