Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОАиП задания.doc
Скачиваний:
3
Добавлен:
01.03.2025
Размер:
112.13 Кб
Скачать

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. Дана последовательность х12,…,х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. Дана последовательность х12,…,х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. Дана последовательность х12,…,х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. Подсчитайте количество строк, содержащих два нулевых элемента.

13