1) Какое значение получится при вычислении следующего выражения, записанного на Паскале?
6 div 5 * 3 – 5 mod 2 + 17 div 3
2) Напиши на Паскале выражение для определения второй справа цифры в записи целого числа N (10 ≤ N ≤
99). Например: для числа N = 43 результатом будет цифра 4.
3) Запиши на Паскале формулу: 1
√ +3
+ (1 + )
2
.
4) Дан фрагмент программы на Паскале. Используя трассировочную таблицу, найди для данного фрагмента
программы. Чему будет равно значение переменной s.
a:=1; b:=1;
while (a+b) < 16 do
begin
a:=a+1; b:=b+2
end;
s:=a+b
5) Задано заполнение массива: for i:=1 to 5 do a[i]:=i*i.
Чему равно a[2]+a[5]?
6) Составь блок-схему и определи, что выведет программа после выполнения на Паскале:
program test;
var x, y: integer;
begin
x:=2; y:=10;
if x>0 then
if y<8 then
begin x:=x+2; y:=y-1 end
else
begin x:=x+3: y:=y*2 end
else
begin x:=1; y:=3 end;
writeln (‘ x= ‘ ,x, ‘ y= ‘, y);
end.
7) С блок-схемы или трассировочной таблицы определи значения переменных s и i после
выполнения фрагмента программы на Паскале:
s:=0; i:=-3;
while i < 2 do
begin if i < 0 then A:=i*i else A:=i;
s:=s+A; i:=i+1
end;
var A: array[1..10, 1..10] of integer;
i, j, mini, minj, maxi, maxj, temp: integer;
begin Randomize;
for i := 1 to 10 do begin
for j := 1 to 10 do begin
A[i, j] := random(100);
write(A[i, j], ' ');
end;
writeln;
end;
mini := 1;
minj:=1;
maxi := 1;
maxj:=1;
for i := 1 to 10 do
for j := 1 to 10 do
begin
if A[i, j] < A[mini,minj] then begin
mini := i;
minj := j;
end;
if A[i, j] > A[maxi,maxj] then begin
maxi := i;
maxj := j;
end;
end;
WriteLn('min = ',A[mini,minj],' это ',mini,' ряд ',minj,' столбца.' );
WriteLn('max = ',A[maxi,maxj],' это ',maxi,' ряд ',maxj,' столбца.' );
temp := A[maxi, maxj];
A[maxi, maxj] := A[mini, minj];
A[mini, minj] := temp;
writeln;
for i := 1 to 10 do begin
for j := 1 to 10 do
write(A[i, j], ' ');
writeln;
end;
readln;
end.
temp - переменная для временного хранения минимальных и максимальных элементов.
var
a:array[1..n,1..m] of integer;
i,j,k,d,s:integer;
begin
Randomize;
writeln('Оценки:');
for i:=1 to n do
begin
for j:=1 to m do
begin
a[i,j]:=random(4)+2;
write(a[i,j]:4);
end;
writeln;
end;
k:=0; s:=0;
for i:=1 to n do
begin
d:=0;
for j:=1 to m do
begin
if a[i,j]=2 then d:=d+1;
s:=s+a[i,j];
end;
if d>0 then k:=k+1;
end;
writeln('Количество неуспевающих = ',k);
writeln('Средний группы = ',s/n/m);
end.
Пример:
Оценки:
5 3 3 5
3 4 2 2
4 5 5 5
2 4 4 2
5 2 3 3
Количество неуспевающих = 3
Средний группы = 3.55