
- •Задача 1
- •Задача 6
- •Задача 17
- •Задача 20
- •Задача 26
- •Задача 48
- •Задача 51
- •Задача 52
- •Задача 70
- •Задача 84
- •Задача 85
- •Задача 86
- •Задача 87
- •Задача 88
- •Задача 89
- •Задача 90
- •Задача 91
- •Задача 92
- •Задача 93
- •Задача 94
- •Задача 95
- •Задача 96
- •Задача 97
- •Задача 98
- •Задача 99
- •Задача 100
- •Задача 101
- •Задача 102
- •Задача 103
- •Задача 104
- •Задача 105
- •Задача 106
- •Задача 107
- •Задача 108
- •Задача 109
- •Задача 110
- •Задача 111
- •Задача 112
- •Задача 113
- •Задача 114
- •Задача 115
- •Задача 116
- •Задача 117
- •Задача 118
- •Задача 119
- •Задача 120
Задача 118
program pr118;
{118. Дана матрица А, имеющая 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 30 do
sum:=sum+a[j,i];
AvMark:=sum/30;
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 10 do
Writeln(fout,i,' predmet:', ' Sredniy ball =',AvMark(i,a):0:3);
close(fout);
end.
Задача 119
program pr119;
{119. Дана матрица А, имеющая 30 строк и 10 столбцов,
содержащая оценки группы за первый семестр.
Подсчитать количество неуспевающих студентов (имеются оценки 0,1,2 или 3).}
Type
tmas2=array [1..30,1..10] of byte;
var
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;
Procedure Count(a:tmas2);
var
i,j,k: byte;
fl: boolean;
begin
k:=0;
for i:=1 to 30 do
begin
fl:=false;
for j:=1 to 10 do
if a[i,j]<4 then
fl:=true;
if fl then
inc(k);
end;
writeln(fout,'Kolichestvo neuspevayuschih= ',k);
end;
begin
VvodM('L7_IN.TXT',a);
VivodM('L7_OUT.TXT',a);
assign(fout,'L7_OUT.TXT');
append(fout);
Count(a);
close(fout);
end.
Задача 120
program pr120;
{120. Если все элементы какой-либо строки данной матрицы равны между собой,
то все элементы такой строки заменить нулями.}
Type
tmas2=array [1..10,1..10] of integer;
var
m,n,i,j:byte;
a:tmas2;
fout:text;
procedure VvodM(filename:string; Var a:tmas2);
var
fin:text;
i,j: byte;
begin
assign(fin,filename);
reset(fin);
Readln(fin,m,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; m,n:byte; a:tmas2);
var
fout:text;
i,j:byte;
begin
assign(fout,filename);
rewrite(fout);
writeln(fout,'Ishodnye dannye:');
for i:=1 to m do
begin
for j:=1 to n do
write(fout,a[i,j],' ');
writeln(fout);
end;
close(fout);
end;
procedure Check(Var a:tmas2);
var
i,j:byte;
fl:boolean;
begin
for i:=1 to m do
begin
fl:=true;
for j:=1 to n-1 do
begin
if a[i,j]<>a[i,j+1] then
begin
fl:=true;
break;
end
else
fl:=false;
end;
if fl=false then
for j:=1 to n do
a[i,j]:=0;
end;
end;
begin
VvodM('L7_IN.TXT',a);
VivodM('L7_OUT.TXT',m,n,a);
assign(fout,'L7_OUT.TXT');
append(fout);
Writeln(fout,'Izmenennyi massiv');
Check(a);
for i:=1 to m do
begin
for j:=1 to n do
Write(fout,a[i,j],' ');
writeln(fout);
end;
close(fout);
end.