Лабораторная работа № 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; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!