Лабораторная работа № 7. Программирование структурных типов данных
1. Что такое файл? Какие бывают виды файлов и как они обозначаются?
Файлы – упорядоченные наборы данных различного типа, хранящиеся в памяти.
В языке Pascal файлы бывают:
- Текстовые (типа Text).
- Типизированные (типа File of …).
- Нетипизированные (типа File).
- Над текстовыми файлами обычно применяются следующие стандартные процедуры:
- Assign(FP,F) – связывание файловой переменной FP с именем файла F.
- Reset(FP) – открытие файла, связанного с файловой переменной FP, для чтения.
- ReWrite(FP) – открытие файла, связанного с файловой переменной FP, для записи новых данных с удалением старых.
- Append(FP) – открытие файла, связанного с файловой переменной FP, для записи новых данных с добавлением к старым.
- Close(FP) – закрытие файла, связанного с файловой переменной FP.
- Read(FP,P1,…) – ввод значений переменных P1, … из файла, связанного с файловой переменной FP.
- ReadLn(FP,P1,…) – ввод значений переменных P1, … из файла, связанного с файловой переменной FP, и перевод указателя в файле на новую строку.
- Write(FP,V1,…) – вывод значений выражений V1, … в файл, связанный с файловой переменной FP.
- WriteLn(FP,V1,…) – вывод значений выражений V1, … в файл, связанный с файловой переменной FP, и перевод указателя в файле на новую строку.
2. Какие процедуры применяются для связи файловой переменной с именем файла и для закрытия файла?
Assign – для связи
Close - закрыть
3. Какие процедуры применяются для открытия файла?
Для чтения – reset
|
|
Для записи – rewrite
4. Какие процедуры применяются для ввода данных из файла?
Read, Readln
5. Какие процедуры применяются для вывода данных в файл?
6. Write, Writeln
7. Что такое запись и поле?
Запись – неупорядоченный набор величин разных типов, называемых полями.
Поле – именованная величина, являющаяся частью записи.
8. Какой вид имеет описание записи и что это означает?
Описание записи в разделе описания переменных (Var) на языке Pascal имеет вид:
Zap : record
SP1 : T1;
…
SPN : TN
end;
где record – запись, end – конец описания записи, Zap – имя записи, SP1 – список полей 1-й, SPN – список полей
N-й, T1 – тип полей в 1-м списке, TN – тип полей в N-м списке.
Это означает, что переменная Zap является записью, включающей поля в списке SP1 типа T1 … поля в списке SPN типа TN.
9. Какой вид имеет доступ к полю записи и что это означает?
Доступ к полю записи имеет вид:
Zap . Pole
где Zap – имя записи, Pole – имя поля.
Это означает доступ к полю Pole записи Zap.
10. Какой вид имеет оператор присоединения и что он означает?
Оператор присоединения имеет вид:
with Zap do Op
где with – с, do – делать, Zap – имя записи, Op – оператор.
Это означает, что с полями записи Zap выполнять оператор Op.
11. Напишите, что означает каждая строка в вышеприведённых программах.
|
|
Program Lab7b; Var A:array[1..3,1..3] of real; описание массива i,j:integer; f1,f2:text;описание файловых переменных Begin assign(f1,'Lab7a.txt');подключение файла исходных данных assign(f2,'Lab7c.txt'); подключение файла результатов reset(f1); rewrite(f2);открытие файлов for i:=1 to 3 do for j:=1 to 3 do read(f1,A[i,j]);ввод массива for i:=1 to 3 do for j:=1 to 3 do if i<j then A[i,j]:=0;замена на нули элементов выше главной диагонали writeln(f2,'Массив A');вывод массива в файл for i:=1 to 3 do begin for j:=1 to 3 do write(f2,A[i,j]:10:3); writeln(f2,''); end; close(f1); close(f2);закрытие файлов readln; End. | |
Program Lab7d; Var student:record описание записи fam:string[10]; описание полей записи god:integer; ball:real; end; stip:real; Begin with student do readln(fam,god,ball);ввод полей записи if student.ball=5 then stip:=1000 else stip:=0; writeln('Стипендия – ',stip:5:1,' рублей'); End. | |
12. Напишите программу к одной из задач дополнительного задания.
С использованием ввода исходных данных из файла и вывода результатов в файл найти сумму всех элементов в двумерном массиве и заменить на нули элементы на главной диагонали.
Program Lab7b;
Var
A:array[1..3,1..3] of real;
i,j:integer;
f1,f2:text;
Begin
assign(f1,'Lab7a.txt');
assign(f2,'Lab7c.txt');
reset(f1); rewrite(f2);
for i:=1 to 3 do
|
|
for j:=1 to 3 do
read(f1,A[i,j]);
s:=0;
for i:=1 to 3 do
for j:=1 to 3 do
begin
S:=s+a[I,j];
if i=j then A[i,j]:=0;
end;
writeln(f2,’s=’,s);
writeln(f2,'Массив A');
for i:=1 to 3 do
begin
for j:=1 to 3 do
write(f2,A[i,j]:10:3);
writeln(f2,'');
end;
close(f1); close(f2);
readln;
End.
Дата добавления: 2018-04-04; просмотров: 452; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!