
Лабораторная работа № 8. Файлы
Задание 1. Определите, что выполняется в программе. В фигурных скобках укажите назначение команд.
Program Example15;
Uses crt;
Var f: text;
st: string;
Begin
Assign(f, 'C:\Example.txt'); {Связывает файловую переменнуюfс текстовым файлом}
Rewrite(f); {Создает файл для записи}
Writeln('Введите текст ');
Read(st);
Write(f, st); {Записывает значение переменнойstв файл}
Close(f);{Закрывает файл}
End.
Программа записывает введенный текст в текстовый файл.
Задание 2. Определите, что выполняется в программе и для чего предназначена командаAppend?
Program Example16;
Uses crt;
Var f: text;
i, n, x: integer;
Begin
Assign(f, 'C:\Example.txt');
Append(f); {Открывает файл для записи в конец файла}
Writeln('Введите количество чисел');
Readln(n);
Writeln('Введите числа');
for i:= 1 to n do Begin
Readln(x);
Write(f, x:4);
End;
Close(f);
End.
Программа задает числа и добавляет их в конец текстового файла.
Задание 3. Определите, что выполняется в программе. В фигурных скобках запишите назначение команд.
Program Example17;
Uses crt;
Var f: text;
st: string;
Begin
Clrscr;
Assign(f, 'C:\Example.txt');
Reset(f); {Открывает существующий файл для чтения}
While not EOF(f) do { Выполняет пока нет конца файла}
Begin
Readln(f, st);{Чтение из файла в переменнуюst}
Writeln(st);{Запись значенияstв файл}
End;
Close(f);
Readln
End.
Программа выводит текст из текстового файла.
Задание 4. Разработайте программу, которая создает файлdate.txtи записывает в негоnслучайных чисел в диапазоне от 5 до 30.
Листинг программы:
Program z84;
Uses crt;
Var f: text;
i, n, x: integer;
Begin
Assign(f,'date.txt');
Rewrite(f);
Writeln('Vvedite kolichestvo chisel');
Readln(n);
Randomize;
for i:=1 to n do Begin
x:=5+Random(26);
Write(f,x:4);
End;
Close(f);
Readln;
End.
Протокол выполнения программы:
Vveditekolichestvochisel
10
date.txt
29 29 8 18 20 14 18 23 17 7
Задание 5. Разработайте программу, которая считывает информацию из файлаdate.txt, находит максимальное число и общую сумму. Результат запишите в файлresult.txt.
Листинг программы:
Program z85;
Uses crt;
Var f1, f2: text;
x, S: integer;
Begin
Clrscr;
Assign(f1,'date2.txt');
Assign(f2,'result.txt');
Reset(f1);
Rewrite(f2);
S:=0;
While not EOF(f1) do
Begin
Readln(f1,x);
Write(x:5);
S:=S+x;
End;
Writeln;
Writeln('S=',S);
Writeln(f2,S);
Close(f1);
Close(f2);
Readln;
End.
Протокол выполнения программы:
date2.txt
1
2
3
4
5
result.txt
15
Лабораторная работа № 9. Записи
Задание 1. Наберите текст программы и познакомьтесь с типом данныхRecord. Определите, что выполняется в программе.
Program Example18;
Type STR= Record
Fam: string;
B1, B2, B3, B4, B5: 2..5;
SB: real;
End;
Var Tbl: array[1..50] of str;
i,n: integer;
Begin
Write('n=');
Readln(n);
For i:=1 to n do
Begin
Write('FIO:'); Readln (Tbl[i].FAM);
Write('Ozenki: ');Readln(Tbl[i].B1, Tbl[i].B2,Tbl[i].B3, Tbl[i].B4, Tbl[i].B5);
End;
Writeln('Sredniy ball');
For i:=1 to n do
Begin
Tbl[i].SB:=(Tbl[i].B1+Tbl[i].B2+Tbl[i].B3+ Tbl[i].B4+Tbl[i].B5)/5;
Writeln(Tbl[i].FAM,' – ', Tbl[i].SB:5:2);
End;
End.
В программе содержится много повторяющихся данных. Для её упрощения воспользуйтесь оператором присоединения With.
For i:= 1 to n do Begin
With Tbl[i] do Begin
Write('FIO:'); Readln (FAM);
Write('Ozenki: ');
Readln(B1, B2, B3, B4, B5);
End;
End;
Writeln('Sredniy ball');
For i:= 1 to n do Begin
With Tbl[i] do Begin
SB:= (B1+B2+B3+B4+B5)/5;
Writeln(FAM,' – ',SB:5:2);
End;
End;
Программа вводит ФИО, оценки студентов и вычисляет средний балл.
Задание 2. Доработайте программу, чтобы данные о студентах и их средние баллы записывались в файл.
Листинг программы:
Program z92;
Type STR=Record
Fam: string;
B1, B2, B3, B4, B5: 2..5;
SB: real;
End;
Var Tbl: array[1..50] of str;
i, n: integer;
f: text;
Begin
Write('n=');
Readln(n);
Assign(f,'date.txt');
Rewrite(f);
For i:=1 to n do
With Tbl[i] do Begin
Write('FIO: '); Readln(Fam);
Write('Ozenki: ');
Readln(B1, B2, B3, B4, B5);
End;
Writeln('Sredniy ball');
For i:=1 to n do
With Tbl[i] do Begin
SB:=(B1+B2+B3+B4+B5)/5;
Writeln(Fam,' -',SB:5:2);
Writeln(f,Fam,' -',SB:5:2)
End;
Close(f);
Readln;
End.
Протокол выполнения программы:
n=3
FIO: IvanovPeterStepanovich
Ozenki: 3 4 4 4 5
FIO: Sidorov Oleg Sergeevich
Ozenki: 4 4 5 5 5
FIO: Mihailova Nina Yuryevna
Ozenki: 4 4 4 4 5
date.txt
Ivanov Peter Stepanovich - 4.00
Sidorov Oleg Sergeevich - 4.60
Mihailova Nina Yuryevna - 4.20