Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры ОАиП(программа).docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
78.14 Кб
Скачать

Задача 1

program Project1;

{Подсчитать количество строк заданной матрицы,

которые упорядочены по возрастанию.

(для матрицы nxn)}

{$APPTYPE CONSOLE}

uses

SysUtils;

var i,j,x,n:integer;

f:boolean;

a:array[1..100,1..100] of integer;

begin

{ TODO -oUser -cConsole Main : Insert code here }

write('n=');

readln(n);

for i:=1 to n do

for j:=1 to n do

begin

write('a[',i,',',j,']:=');

readln(a[i,j]);

end;

x:=0;

for i:=1 to n do

begin

f:=true;

for j:=2 to n do

if a[i,j-1]>a[i,j] then

begin

f:=false;

break;

end;

if f then inc(x);

end;

writeln('rezult:',x);

readln;

end.

ЗАДАЧА 2

program Project1;

{Написать рекурсивную программу вычисления n-го члена геометрической прогрессии.}

{$APPTYPE CONSOLE}

uses

SysUtils;

function rec(i,n,q,s:integer):integer;

begin

if i<>n then result:=rec(i+1,n,q,(s*q))

else result:=s;

end;

var n,q:integer;

begin

{ TODO -oUser -cConsole Main : Insert code here }

write('n=');

readln(n);

write('q=');

readln(q);

writeln('result:',rec(1,n,q,q));

readln;

end.

ЗАДАЧА 3

program Project1;

{Написать рекурсивную программу вычисления суммы n первых членов геометрической прогрессии.}

{$APPTYPE CONSOLE}

uses

SysUtils;

function rec(i,n,q,s,sum:integer):integer;

begin

if i<>n then

begin

sum:=sum+s*q;

result:=rec(i+1,n,q,(s*q),sum);

end

else result:=sum;

end;

var n,q:integer;

begin

{ TODO -oUser -cConsole Main : Insert code here }

write('n=');

readln(n);

write('q=');

readln(q);

writeln('result:',rec(1,n,q,q,q));

readln;

end.

ЗАДАЧА 4

program pr4;

{4. Написать рекурсивную программу вычисления

суммы членов геометрической прогрессии, начиная с i-го по k-й.}

function rec(i,k,n,q,s,sum:integer):integer;

begin

if i<k then

result:=rec(i+1,k,n,q,(s*q),sum)

else

if (i>=k) and (i<=n) then

begin

sum:=sum+s*q;

result:=rec(i+1,k,n,q,(s*q),sum);

end

else

result:=sum;

end;

var n,q,i:integer;

begin

write('i=');

readln(i);

write('k=');

readln(n);

write('q=');

readln(q);

writeln('result:',rec(1,i,n,q,1,0));

readln;

end.

ЗАДАЧА 5

program pr5;

{5. Описать рекурсивную функцию поиска индекса минимального элемента массива.}

type

tmas=array [1..100] of integer;

function rec(a:tmas;min,i,n:integer):integer;

begin

if i<=n then

if a[min]>a[i] then

result:=rec(a,i,i+1,n)

else

result:=rec(a,min,i+1,n)

else

result:=min;

end;

var

n,i:integer;

a: tmas;

begin

writeln('vvedite dlinny massiva:');

readln(n);

writeln('Vvedite massiv:');

for i:=1 to n do

begin

write(i,'-i element=');

readln(a[i]);

end;

writeln('ishodnnyi massiv: ');

for i:=1 to n do

writeln(i,'-i element: ',a[i]);

writeln('result:',rec(a,1,2,n));

readln;

end.