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

Задача 109

program pr109;

{109. Дана последовательность чисел a1, a2,..., an.

Найти два наибольших элемента последовательности.}

uses

crt;

var

i,n,mn:byte;

max1,max2:integer;

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

begin

clrscr;

Write('Vvedite kolichestvo chlenov posledovatelnosti: ');

Read(n);

Writeln('Vvedite posledovatelnost:');

for i:=1 to n do

begin

Write(i,'-i element: ');

Readln(a[i]);

end;

max1:=a[1];

mn:=1;

for i:=2 to n do

if max1<a[i] then

begin

max1:=a[i];

mn:=i;

end;

if mn<>n-1 then

max2:=a[n-1]

else

max2:=a[n];

for i:=1 to n do

if (max2<a[i]) and (a[i]<>max1) then

max2:=a[i];

Writeln('Ishodnye dannye: ');

for i:=1 to n do

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

Writeln('1-oe max. chislo= ',max1);

Writeln('2-oe max. chislo= ',max2);

Readln;

end.

Задача 110

program pr110;

{110. Дана квадратная матрица А порядка n. Найти суммы элементов

тех строк матрицы, на главной диагонали которой стоят отрицательные элементы.}

Type

tmas2=array [1..10,1..10] of integer;

var

n:byte;

a:tmas2;

procedure VvodM(filename:string; Var a:tmas2);

var

fin:text;

i,j: byte;

begin

assign(fin,filename);

reset(fin);

Readln(fin,n);

for i:=1 to n do

for j:=1 to n do

read(fin,a[i,j]);

close(fin);

end;

procedure VivodM(filename:string; n:byte; a:tmas2);

var

fout:text;

i,j:byte;

begin

assign(fout,filename);

rewrite(fout);

writeln(fout,'Ishodnye dannye:');

for i:=1 to n do

begin

for j:=1 to n do

write(fout,a[i,j],' ');

writeln(fout);

end;

close(fout);

end;

procedure Sum(a:tmas2);

var

i,j:byte;

sum,sumobsh: integer;

fout:text;

begin

assign(fout,'L7_OUT.TXT');

append(fout);

sum:=0;

sumobsh:=0;

for i:=1 to n do

begin

for j:=1 to n do

if a[i,i]<0 then

sum:=sum+a[i,j];

if a[i,i]<0 then

begin

Writeln(fout,'Summa ',i,' stroki =',sum);

sumobsh:=sumobsh+sum;

end;

end;

Writeln(fout,'Summa vseh elementov strok s otr. el-ami na gl. diag. =',sumobsh);

close(fout);

end;

begin

VvodM('L7_IN.TXT',a);

VivodM('L7_OUT.TXT',n,a);

Sum(a);

end.

Задача 111

program pr111;

{111. Дана квадратная матрица А порядка n.

Найти сумму положительных элементов матрицы, стоящих под главной диагональю.}

Type

tmas2=array [1..10,1..10] of integer;

var

n:byte;

a:tmas2;

procedure VvodM(filename:string; Var a:tmas2);

var

fin:text;

i,j: byte;

begin

assign(fin,filename);

reset(fin);

Readln(fin,n);

for i:=1 to n do

for j:=1 to n do

read(fin,a[i,j]);

close(fin);

end;

procedure VivodM(filename:string; n:byte; a:tmas2);

var

fout:text;

i,j:byte;

begin

assign(fout,filename);

rewrite(fout);

writeln(fout,'Ishodnye dannye:');

for i:=1 to n do

begin

for j:=1 to n do

write(fout,a[i,j],' ');

writeln(fout);

end;

close(fout);

end;

procedure Sum(a:tmas2);

var

i,j:byte;

sum: integer;

fout:text;

begin

assign(fout,'L7_OUT.TXT');

append(fout);

sum:=0;

i:=1;

while i<=n do

begin

j:=1;

while j<i do

begin

if a[i,j]>0 then

sum:=sum+a[i,j];

j:=j+1;

end;

i:=i+1;

end;

Writeln(fout,'Summa =',sum);

close(fout);

end;

begin

VvodM('L7_IN.TXT',a);

VivodM('L7_OUT.TXT',n,a);

Sum(a);

end.