Вы находитесь на странице: 1из 15

Ministerul Educației și Cercetării al Republicii Moldova

Universitatea Tehnică a Moldovei

Facultatea Electronică și Telecomunicații

DAREA DE SEAMĂ
la lucrarea de laborator № 6
Disciplina: INFORMATICA

Tema:Fisiere PASCAL

A efectuat
studentul gr. C-222 Bortnic Sveatoslav

A verificat

Conf. univ., dr. Andronic Serghei

Chișinău - 2022
Цель работы: Научиться работать с двумерными массивами(матрицами)

Задача:
Составить блок схему алгоритма и программу, которая:
1. Считывает с клавиатуры и записывает в типизированном файле А.dat 144
компонентов.
2. Читает файл А.dat и создает матрицу А размерностью 12x12.
3. Осуществляет поиск максимального элемента, принадлежащий множеству
элементов, расположенных в нечетных столбцах матрицы.
4. Находит максимальный элемент из множества элементов принадлежащих
заштрихованной части матрицы.
5. Заменяет местами элементы, найденные во втором и третьем пунктах настоящего
задания.
6. Выводит на экран монитора и записывает в текстовом файле В.txt
модифицированную матрицу и полученные результаты, сопровождая их
идентификаторами используемых переменных и соответствующими
комментариями.

Принятые решения относительно варианта решения


поставленной задачи:
При нахождении максимального элемента в заштрихованной части матрицы
решаю включить элементы второстепенной диагонали.

Блок схема алгоритма:


a
Start

Close(F)
Assign(F,str)

Assign(F,strvh)
Rewrite(F)

Reset(F)
I=1

I=1
I<=12
-
a
+ J=1

j=1

Читать
Запись b[I,j] из
A[I,j] A.bat

j=j+1
Запись
A[I,j] в
файл A
.bat J<=12

I=i+1
J=j+1

I>12
j<=12

Close(F)
i=i+1

b
c
b

Max1=b[1,12]
Max=b[1,1]
X1=1, Y1=12, i=2
X=1, Y=1, j=1

j=13-i
j<=11 c

B[I,j]>
I=1 max1

B[I,j]> Max1=b[I,j]
max
X1=I, y1=j

Max=b[I,j] j=j+1

X=I, y=j

j<=12

I=i+1

I=i+1

I<=12

I<=6
J=j+2

B[x,y]=max1

B[x1,y1]=max

d
d e

Assign(t,’c:\a.txt’)

Запись
Rewrite(t)
max,max1,x,y,x1,y1

I=1

Запись
max,max1,x,y,x1,y1
j=1
в a.txt

Запись b[I,j]
Close(t)

Запись b[I,j] в
a.txt end

j=j+1

j<=12

i=i+1

I<=12

e
Листинг программы:
program Z;
TYPE M1=array [1..12,1..12] of integer;
Fail=file of integer;
Var x,y,max,max1,x1,y1,i,j,n:integer; a,b:M1; f:fail;
str,strvh:string;
t:text;
begin
Writeln('Введите имя выходного файла с матрциой');
readln(str);
assign(f,str);
rewrite(f);

//Запись в файл элементы матрицы


i:=1;
While i<=12 do begin
for j:=1 to 12 do begin
writeln('A[',i,',',j,']=?');
readln(A[i,j]);
write(f,a[i,j]);
end;
i:=i+1;
end;
close(f);
//считывание из файла элементов массива
writeln('Имя входного файла');
readln(strvh);
assign(f,strvh);
reset(f);
i:=1;
repeat
for j:=1 to 12 do begin
read(f,b[i,j]);
write(b[i,j]:4)
end;
writeln;
i:=i+1;
until i>12;
close(f);
//Поиск масимального значения в нечетных столбцах
Max:=b[1,1];
x:=1;
y:=1;
j:=1;
While j<=11 do begin
for I:=1 to 12 do If b[i,j]>max then begin
max:=b[i,j];
X:=i;
y:=j;
end;
j:=j+2;
end;
//Находит максимальное значение в заштрихованном диапазоне
//элементы второстепенной диагонали входят
max1:=b[1,12];
x1:=1;
y1:=12;
for i:=2 to 6 do
for j:=13-i to 12 do if b[i,j]>max1 then begin
max1:=b[i,j];
x1:=i;
y1:=j;

end;
// Меняю местами значение 2 и 3 пунктов
b[x,y]:=max1;
b[x1,y1]:=max;
// вывожу и записываю в файл модефицированную матрицу и полученные
результаты
assign (t,'c:\a.txt');
rewrite(t);
Writeln('Модифицированная матрица A');
Writeln(t,'Модифицированная матрица A');
for i:=1 to 12 do begin
for j:=1 to 12 do begin
write (b[i,j]:4);
write(t,b[i,j]:4);
end;
writeln;
writeln(t)
end;
//Полученные результаты
writeln('Полученные результаты');
writeln('max=',max,' max1=',max1);
writeln('x=',x,' y=',y,' x1=',x1,' y1=',y1);
writeln(t,'Полученные результаты');
writeln(t,'max=',max,' max1=',max1);
writeln(t,'x=',x,' y=',y,' x1=',x1,' y1=',y1);
close(t);

end.

Полученные результаты:
Введите имя выходного файла с матрциой
C:\Users\user\DesktopA.DAT
A[1,1]=?
12
A[1,2]=?
2
A[1,3]=?
4
A[51,4]=?

A[1,5]=?
7
A[81,6]=?

A[91,7]=?
0
A[1,8]=?
0
A[91,9]=?

A[1,10]=?

7
A[61,11]=?
5
A[51,12]=?

A[42,1]=?

A[32,2]=?

A[32,3]=?

A[2,4]=?
5
A[2,5]=?
67
A[2,6]=?
78
A[82,7]=?

A[82,8]=?

A[72,9]=?

A[62,10]=?
5
A[2,11]=?

2
A[2,12]=?
2
A[43,1]=?

A[53,2]=?

A[63,3]=?
A[783,4]=?

A[3,5]=?
8
A[3,6]=?
8
A[73,7]=?
6
A[53,8]=?

A[33,9]=?

A[23,10]=?

A[3,11]=?
5
A[63,12]=?
7
A[4,1]=?
8
A[4,2]=?
7
A[64,3]=?

A[44,4]=?

A[4,5]=?

4
A[4,6]=?
5
A[64,7]=?

A[74,8]=?

A[74,9]=?

A[64,10]=?
5
A[544,11]=?

A[4,12]=?

3
A[5,1]=?
5
A[65,2]=?

A[5,3]=?
7
A[5,4]=?
7
A[75,5]=?

A[65,6]=?
5
A[5,7]=?

6
A[5,8]=?
7
A[5,9]=?
7
A[5,10]=?
6
A[65,11]=?

A[55,12]=?

A[6,1]=?

4
A[6,2]=?
5
A[6,3]=?
56
A[6,4]=?
6
A[76,5]=?

A[76,6]=?

A[6,7]=?
7
A[66,8]=?

A[6,9]=?

4
A[6,10]=?
3
A[6,11]=?
3
A[6,12]=?
4
A[7,1]=?
5
A[7,2]=?
6
A[7,3]=?
6
A[77,4]=?
A[77,5]=?

A[77,6]=?

A[67,7]=?

A[7,8]=?

4
A[47,9]=?

A[37,10]=?

A[27,11]=?

A[7,12]=?
3
A[8,1]=?
4
A[8,2]=?
56
A[68,3]=?

A[78,4]=?

A[78,5]=?

A[8,6]=?

776
A[8,7]=?
65
A[8,8]=?

3
A[38,9]=?

A[58,10]=?

A[68,11]=?

A[8,12]=?
67
A[9,1]=?
7
A[79,2]=?

A[69,3]=?

A[59,4]=?

A[9,5]=?
6
A[9,6]=?
7
A[9,7]=?
7
A[9,8]=?

8
A[9,9]=?
7
A[69,10]=?

A[9,11]=?
5
A[549,12]=?
4
A[10,1]=?
4
A[10,2]=?
3
A[10,3]=?
4
A[510,4]=?

A[610,5]=?

A[610,6]=?
7
A[710,7]=?

A[810,8]=?
8
A[10,9]=?
8
A[10,10]=?
7
A[610,11]=?

A[610,12]=?

A[11,1]=?
4
A[11,2]=?
5
A[11,3]=?
6
A[11,4]=?
6
A[11,5]=?
7
A[11,6]=?
8
A[11,7]=?
9
A[11,8]=?

8
A[11,9]=?
7
A[611,10]=?
6
A[11,11]=?
5
A[11,12]=?
6
A[12,1]=?
7
A[12,2]=?
5
A[12,3]=?
4
A[12,4]=?
3
A[12,5]=?
2
A[12,6]=?
1
A[12,7]=?
2
A[12,8]=?
3
A[12,9]=?
4
A[12,10]=?
5
A[12,11]=?
6
A[12,12]=?
7
Вывод: Научился работать с файловым типом данных.

Вам также может понравиться