Отчет
по лабораторным работам
Дисциплина: Информатика
Лабораторная работа 9
Студент: Галкин А.В.
Группа ЭМ-11
Проверила: Давыдова Е.Н.
Вологда
Лабораторная работа №7
РАБОТА С ФАЙЛАМИ
Цель работы:
1. Научиться составлять программы файлы.
Вариант №1
Задание 1. Заданы два текстовых файла x.txt и y.txt. Создайте третий файл z.txt, в который поместите сначала все строки файла x.txt, затем все строки файла y.txt. Подсчитайте число строк в полученном файле. Выведите на экран все самые длинные и самые короткие строки.
Работа программы
В файлы x.txt и y.txt вводятся различные строки
Назначение переменных
Переменная | Тип | Назначение | |
fd | text | Присваивает имя файла. | |
min | byte | Минимальное количество знаков в строке, выводится на экран. | |
smin | string | Самая короткая строка, выводится на экран. | |
max | byte | Максимальное количество знаков в строке, выводится на экран. | |
smax | string | Самая длинная строка, выводится на экран. | |
line | integer | Количество строк в окончательном файле. | |
Блок – схема алгоритма программы
Текст программы
program z1;
uses crt;
const
Lines:integer=0;
Min:byte=255;
Max:byte=0;
sMin:string = '';
sMax:string = '';
var
fd: text;
procedure CopyFile (a:string);
var
fs: text;
s: string;
begin
assign(fs, a); reset(fs);
while not eof(fs) do
begin
readln(fs, s);
inc(Lines);
if length(s) < Min then begin
sMin:=s;
Min:=length(s)
end;
if length(s) > Max then begin
sMax:=s;
Max:=length(s)
end;
writeln(fd, s);
end;
close(fs);
end;
begin
clrscr;
assign(fd, 'z.txt');
rewrite(fd);
CopyFile('x.txt');
CopyFile('y.txt');
close(fd);
writeln('Количество строк в окончательном файле: ', Lines);
writeln('Самая короткая строка: "', sMin,'" = ', Min,' знаков');
writeln('Самая длинная строка: "', sMax,'" = ',Max,' знаков');
readln;
End.
Тестирование
Вводим случайные строки в файлы x.txt и y.txt. Программа ведет себя корректно.
1:
Количество строк в окончательном файле: 13
Самая короткая строка “1b” = 2 знаков
Самая длинная строка “sdfsdfsdf’ = 9 знаков
Задание 2. Разработать библиотечный модуль, содержащий следующие подпрограммы (процедуры или функции) для работы со строками:
А. подсчитать количество слов в заданной строке
Б. для заданной строки возвратить слово с заданным номером (если такого слова нет, возвратить пустую строку)
С. удалить слово с заданным номером (если такого слова нет, возвратить строку без изменения).
Написать программу, к которой подключается модуль, демонстрирующую работоспособность всех подпрограмм модуля.
Работа программы
Вводятся исходные данные: произвольная строка St.
Назначение переменных
Переменная | Тип | Назначение | |
k | byte | Количество слов в строке, выводится на экран. | |
n | byte | Номер слова, вводится с клавиатуры. Вывод оставшихся слов в строке. | |
s, s1 | string | Строка, вводится с клавиатуры. | |
word_arr | tstring | Вывод выбранного слова | |
Блок – схема алгоритма программы
Текст программы
program z2;
uses crt, newmod;
var
k,n:byte;
s,s1:string;
word_arr:Tstring;
begin
clrscr;
write ('Введите строку: '); readln(s);
s1:=s;
KolSlov(s,k);
writeln;
write('Введите номер слова для удаления: '); readln(n);
DeleteWord(s,n);
writeln;
write('Введите номер слова для вывода: '); readln(n);
Vibor (s1,word_arr,n);
readln;
end.
Тестирование
Вводим строку, номер удаляемого слова, номер выводимого слова. Программа ведет себя корректно.
1:
Введите строку: раз два три
Количество слов: 3