- •2. Дана действительная квадратная матрица порядка n. Найти сумму элементов, расположенных в заштрихованной части матрицы
- •2. Дана действительная квадратная матрица порядка n. Найти сумму элементов, расположенных в заштрихованной части матрицы
- •2. Дана действительная квадратная матрица порядка n. Найти сумму элементов, расположенных в заштрихованной части матрицы
- •1. Определить, что будет выведено на экран:
- •I:integer;
- •1. Заменить приведенные ниже операторы цикла For операторами Repeat.
- •1. Заменить приведенные ниже операторы цикла For операторами While.
1. Определить, что будет выведено на экран:
type
vect=array[1..2] of real;
var
a:vect;
I:integer;
procedure R(var k:integer;x:real);
begin
k:=2; x:=0;
end;
begin
a[1]:=1; a[2]:=2;
i:=1; R(i,a[i]);
write(a[1]:8:1,a[2]:8:1);
end.
2. Дана последовательность целых чисел a1, a2,...,an. Найти модуль наименьшего по модулю элемента.
Вариант 16
1. Перечислить логические операции в языке Паскаль. Приведите их таблицы истинности.
2. В данной матрице подсчитать количество столбцов, у которых элементы расставлены в порядке возрастания.
Вариант 17
1. Заменить приведенные ниже операторы цикла For операторами Repeat.
for i:=1 to n do
begin
for j:=1 to m do
write(a[i,j]:6);
writeln;
end;
2. Дано натуральное число n. Выяснить, можно ли представить данное число в виде произведения трех последовательных натуральных чисел.
Вариант 18
1. Фрагмент программы нахождения наименьшего значения элементов массива содержит ошибки. Исправить эти ошибки.
for i:=1 to n do
if a[i]<a[i+1] then
min:=a[i]
else
min:=a[i+1];
2. Проверить является ли данная числовая последовательность а1, a2,..., an убывающей.
Вариант 19
1. Ниже приведена рекурсивная процедура вывода на экран содержимого линейного списка. Изменить данную процедуру, сделав ее нерекурсивной.
procedure ViewList(BList:uk);
begin
if blist<>nil then
begin
write(BList^.inf:8);
ViewList(BList^.next);
end;
end;
2. Дана последовательность действительных чисел a1, a2,...,an. Найти сумму первых чисел, произведение которых меньше заданного числа b.
Вариант 20
1. Процедура, заголовок процедуры, формальные параметры. Вызов процедуры.
2. Дана последовательность целых чисел a1, a2,...,an. Найти наибольший среди элементов, стоящих на четных местах.
Вариант 21
1. Заменить приведенные ниже операторы цикла For операторами While.
for i:=1 to n do
begin
for j:=m downto 1 do
write(a[i,j]:6);
writeln;
end;
2. Дана матрица А порядка n. Поменять местами элементы главной и побочной диагоналей.
Вариант 22
1. Каков результат работы процедуры при обращении к ней оператором n1_n2(125,n2);
procedure n1n2(n1:integer;var n2:integer);
begin
if abs(n12)<8 then
n2:=n1
else
begin
n1n2(n1 div 8,n2);
n2:=n2*10+n1 mod 8;
end;
end;
2. Дана матрица А порядка n. Элементы матрицы, сумма номера строки и номера столбца которых нечетная, заменить противоположным числом.
Вариант 23
1. Каков результат работы процедуры при обращении к ней оператором s(1,5,a);, если a массив 7,2,1,6,4
procedure s(i,n:integer;var a:tmas);
var
t:real;
begin
if i< n then
if a[i]>a[i+1] then
begin
t:=a[i];
a[i]:=a[i+1];
a[i+1]:=t;
s(1,n,a);
end
else
s(i+1,n,a);
end;
2. Дана последовательность целых чисел a1, a2,...,an. Найти модуль наибольшего элемента последовательности.
Вариант 24
1. Функция, заголовок функции, формальные параметры. Вызов функции.
2. Дана матрица А порядка n. Найти номер строки матрицы, в которой больше всего нулевых элементов.
Вариант 25
1. Каков результат работы процедуры при обращении к ней оператором s(k,5,nom,a);,если a массив 9,7,2,1,4, а значение k=1.
procedure s(k,n:integer;nom:integer;var a:mas);
procedure maxa(m,n:integer;var nom:integer;var t:real;a:mas);
begin
if m=n then
begin
t:=a[m];
nom:=m;
end
else
begin
maxa(m,n-1,nom,t,a);
if t<a[n] then
begin
t:=a[n];
nom:=n;
end;
end;
end;
begin
if k<n then
begin
maxa(k,n,nom,t1,a);
a[nom]:=a[k];
a[k]:=t1;
s(k+1,n,nom,a);
end;
end;
2. Проверить, является ли заданная последовательность из n чисел перестановкой чисел 1,2,…n.
Вариант 26
1. Каков результат работы процедуры при обращении к ней оператором s(k,5,a,b);,если a массив 5,7,2,1,4, а значение k=1.
procedure s(k,n:integer;a:tmasr;var b:tmasr);
var
nom:integer;
procedure masb(k,n:integer;c:tmasi;a:tmasr;var b:tmasr);
begin
if k<=n then
begin
b[c[k]+1]:=a[k];
masb(k+1,n,c,a,b);
end;
end;
procedure stchet(m,nom:integer;var c:tmasi;a:tmasr);
begin
if nom<=n then
begin
if a[k]>a[nom] then
inc(c[k])
else
inc(c[nom]);
stchet(k,nom+1,c,a);
end;
end;
begin
if k<n then
begin
stchet(k,k+1,c,a);
s(k+1,n,a,b);
end
else
begin
k:=1;
masb(k,n,c,a,b);
end;
end;
2. Дана последовательность х1,х2,…,хn. Поменять местами самый большой элемент с самым меньшим.
Вариант 27
1. Каков результат работы процедуры при обращении к ней оператором n1_n2(125,n2);
procedure n1_n2(n1:integer;var n2:integer);
var
c:integer;
begin
n2:=0;
while abs(n1)>0 do
begin
c:=n1 mod 8;
n2:=n2*10+c;
n1:=n1 div 8;
end;
n1:=n2;
n1:=0;
while abs(n2)>0 do
begin
c:=n2 mod 10;
n1:=n1*10+c;
n2:=n2 div 10;
end;
n2:=n1;
end;
2. Дана последовательность х1,х2,…,хn. Найти самый большой по модулю отрицательный элемент.
Вариант 28
1. Каков результат работы процедуры при обращении к ней оператором s(5,1,a);,если a массив 8,7,2,1,4
procedure s(n,i:integer;var a:mas);
procedure o(n,m,i:integer;var a:mas);
var
t:real;
begin
if m<=n-i then
begin
if a[m]>a[m+1] then
begin
t:=a[m];
a[m]:=a[m+1];
a[m+1]:=t;
end;
o(n,m+1,i,a);
end;
end;
begin
if i<=n-1 then
begin
o(n,1,i,a);
s(n,i+1,a);
end
end;
2. Дана последовательность х1,х2,…,хn и число у. Подсчитать количество элементов последовательности, которые меньше у.
Вариант 29
1. Что будет выведено в результате выполнения оператора writeln(n1n2(156):8));
function n1n2(n1:integer):integer;
begin
if abs(n1)<8 then
n1n2:=n1
else
n1n2:=n1n2(n1 div 8)*10+n1 mod 8;
end;
2. Дана последовательность действительных чисел a1, a2,...,an. Получить из заданной последовательности другую, в которой сначала бы шли отрицательные члены исходной последовательности, а затем неотрицательные.
Вариант 30
1. Ниже приведена нерекурсивная процедура вывода на экран содержимого линейного списка. Изменить данную процедуру, сделав ее рекурсивной.
procedure ViewList(BList:uk);
begin
while BList<>nil do
begin
write(BList^.inf:8);
BLis:=BList^.next;
end;
end;
2. Дана матрица порядка n. Подсчитайте количество строк, содержащих два нулевых элемента.
