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

Задача 102

program pr102;

{102. Дана действительная квадратная матрица порядка n.

Найти сумму элементов, расположенных в заштрихованной части матрицы}

Type

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

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;

fout:text;

sum: real;

begin

assign(fout,'L7_OUT.TXT');

append(fout);

for i:=1 to (n div 2) do

for j:=1 to i do

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

for i:=(n div 2)+1 to n do

for j:=1 to (n-i)+1 do

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

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

close(fout);

end;

begin

VvodM('L7_IN.TXT',a);

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

Sum(a);

end.

Задача 103

program pr103;

{103. Дан массив А, состоящий из n-натуральных чисел.

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

uses

crt;

var

i,n:byte;

k: integer;

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

function Nod(a,b:integer):integer;

begin

while a<>b do

if a>b then

a:=a-b

else

b:=b-a;

Nod:=a;

end;

begin

clrscr;

Write('Vvedite dlinny massiva: ');

Read(n);

Writeln('Vvedite massiv:');

for i:=1 to n do

begin

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

Readln(a[i]);

end;

k:=Nod(a[1],a[2]);

for i:=3 to n do

k:=nod(k,a[i]);

Writeln('Ishodnye dannye: ');

for i:=1 to n do

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

Writeln('NOD vseh elementov massiva=',k);

Readln;

end.

Задача 104

program pr104;

{104. Дан массив А, состоящий из n-натуральных чисел.

Выбрать элементы, встречающиеся более одного раза.}

uses

crt;

var

i,n:byte;

el: set of byte;

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

s: string;

begin

clrscr;

Write('Vvedite dlinny massiva: ');

Read(n);

Writeln('Vvedite massiv:');

for i:=1 to n do

begin

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

Readln(a[i]);

end;

s:='';

el:=[];

for i:=1 to n do

if a[i] in el then

s:=s+' '+IntToStr(a[i])

else

el:=el+[a[i]];

Writeln('Ishodnye dannye: ');

for i:=1 to n do

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

Writeln('Elementy povtoriayuschiesia bolee 1 raza:');

Write(s);

Readln;

end.

Задача 105

program pr105;

{105. Дан массив А, состоящий из n-натуральных чисел.

Определить максимальное число идущих подряд элементов, равных 1.}

uses

crt;

var

i,n:byte;

max,count:integer;

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

begin

clrscr;

Write('Vvedite dlinny massiva: ');

Read(n);

Writeln('Vvedite massiv:');

for i:=1 to n do

begin

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

Readln(a[i]);

end;

max:=0;

for i:=1 to n do

if a[i]=1 then

begin

inc(count);

if count>max then

max:=count;

end

else

count:=0;

Writeln('Ishodnye dannye: ');

for i:=1 to n do

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

Writeln('Max. kol-vo podriad iduschih 1 v massive= ',max);

Readln;

end.