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

Задача 115

program pr115;

{

115. Дана матрица А, имеющая 30 строк и 10 столбцов,

содержащая оценки группы за первый семестр.

Напечатать номера отличников (оценки не ниже 8).

}

Type

tmas2=array [1..30,1..10] of byte;

var

i:byte;

a:tmas2;

fl:boolean;

fout:text;

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

var

fin:text;

i,j: byte;

begin

assign(fin,filename);

reset(fin);

for i:=1 to 30 do

for j:=1 to 10 do

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

close(fin);

end;

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

var

fout:text;

i,j: byte;

begin

assign(fout,filename);

rewrite(fout);

writeln(fout,'Ishodnye dannye:');

for i:=1 to 30 do

begin

for j:=1 to 10 do

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

writeln(fout);

end;

close(fout);

end;

procedure Find(i:byte; a:tmas2);

var

j: byte;

begin

fl:=true;

for j:=1 to 10 do

if a[i,j]<8 then

fl:=false;

if fl then

writeln(fout,i,' ');

end;

begin

VvodM('L7_IN.TXT',a);

VivodM('L7_OUT.TXT',a);

assign(fout,'L7_OUT.TXT');

append(fout);

writeln(fout,'Otlichniki:');

for i:=1 to 30 do

Find(i,a);

close(fout);

end.

Задача 116

program pr116;

{116. Дана матрица А, имеющая 30 строк и 10 столбцов,

содержащая оценки группы за первый семестр.

Определить средний балл каждого студента.}

Type

tmas2=array [1..30,1..10] of byte;

var

i:byte;

a:tmas2;

fout:text;

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

var

fin:text;

i,j: byte;

begin

assign(fin,filename);

reset(fin);

for i:=1 to 30 do

for j:=1 to 10 do

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

close(fin);

end;

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

var

fout:text;

i,j:byte;

begin

assign(fout,filename);

rewrite(fout);

writeln(fout,'Ishodnye dannye:');

for i:=1 to 30 do

begin

for j:=1 to 10 do

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

writeln(fout);

end;

close(fout);

end;

function AvMark(i:byte; a:tmas2): real;

var

j:byte;

sum: integer;

begin

sum:=0;

for j:=1 to 10 do

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

AvMark:=sum/10;

end;

begin

VvodM('L7_IN.TXT',a);

VivodM('L7_OUT.TXT',a);

assign(fout,'L7_OUT.TXT');

append(fout);

writeln(fout,'Srednii bally studentov:');

for i:=1 to 30 do

Writeln(fout,i,' student:', ' Sredniy ball =',AvMark(i,a):0:3);

close(fout);

end.

Задача 117

program pr117;

{117. Дана матрица А, имеющая 30 строк и 10 столбцов,

содержащая оценки группы за первый семестр.

Подсчитать количество единиц, двоек и троек у каждого студента.}

Type

tmas2=array [1..30,1..10] of byte;

var

i: byte;

a: tmas2;

fout: text;

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

var

fin: text;

i,j: byte;

begin

assign(fin,filename);

reset(fin);

for i:=1 to 30 do

for j:=1 to 10 do

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

close(fin);

end;

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

var

fout: text;

i,j: byte;

begin

assign(fout,filename);

rewrite(fout);

writeln(fout,'Ishodnye dannye:');

for i:=1 to 30 do

begin

for j:=1 to 10 do

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

writeln(fout);

end;

close(fout);

end;

function Count(i:integer; a:tmas2): string;

var

j: byte;

k1,k2,k3: byte;

begin

k1:=0;

k2:=0;

k3:=0;

for j:=1 to 10 do

if a[i,j]=1 then

inc(k1)

else

if a[i,j]=2 then

inc(k2)

else

if a[i,j]=3 then

inc(k3);

Count:=' Kolichestvo 1: '+IntToStr(k1)+'; 2: '+IntToStr(k2)+'; 3: '+IntToStr(k3);

end;

begin

VvodM('L7_IN.TXT',a);

VivodM('L7_OUT.TXT',a);

assign(fout,'L7_OUT.TXT');

append(fout);

writeln(fout,'Srednii bally studentov:');

for i:=1 to 30 do

Writeln(fout,i,' student:', Count(i,a));

close(fout);

end.