- •Лабораторный практикум по информатике
- •Часть II программирование в системе турбо паскаль
- •Введение
- •Лабораторная работа №1 Создание простейшей программы
- •Начало работы с новой программой
- •Задание 1
- •Сохранение текстового файла программы на диске:
- •Задание 2
- •Задание 3
- •Задание 4
- •Лабораторная работа №2 Ввод данных и вывод результатов
- •Задания
- •Лабораторная работа №3 Программирование линейных алгоритмов
- •Задание
- •Лабораторная работа №4 Программирование разветвляющихся алгоритмов
- •Задание 1
- •Задание 2
- •Лабораторная работа № 5 Программирование циклических алгоритмов с известным числом повторений
- •Задание
- •Лабораторная работа №6 Программирование циклических алгоритмов с неизвестным числом повторений
- •Задания
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Лабораторная работа №7 Программирование алгоритмов итерационной циклической структуры
- •Задание
- •Лабораторная работа №8 Массивы
- •Лабораторная работа №9 Процедуры и функции пользователя в языке Паскаль
- •Задание
- •Лабораторная работа №10 Записи
- •Задания
- •Лабораторная работа №11 Работа с файлами
- •Лабораторная работа №12 Графический режим в языке Паскаль
- •Лабораторная работа №13 Построение графика функции
- •Задания
- •Лабораторная работа №14 Создание движущихся изображений
- •Задание 1
- •Задание 2
- •Лабораторная работа №15 Вычисление определённого интеграла численными методами
- •Метод прямоугольников
- •Метод трапеций
- •Метод Симпсона
- •Задания
- •Лабораторная работа №16 Решение нелинейных уравнений численными методами
- •Метод половинного деления
- •Метод Ньютона
- •Метод хорд
- •Задания
- •Лабораторная работа №17 Решение обыкновенных дифференциальных уравнений численными методами
- •Метод Эйлера
- •Модифицированный метод Эйлера
- •Метод Рунге-Кутта
- •Задание
- •Приложение
- •Список литературы
- •Оглавление
- •Лабораторный практикум по информатике
- •Часть II программирование в системе турбо паскаль
- •Архангельск
Задания
Организовать ввод, хранение в массиве, вывод на экран следующих данных:
Информация о движении поездов включающая номер поезда, пункт отправления, пункт назначения, дата и время отправления, время в пути.
Информация о продаже билетов в кинотеатре, включающая дату, время сеанса, ряд, место, признак проданного билета.
Информация о знакоместах экрана монитора, работающего в текстовом режиме: строка, позиция в строке, символ, цвет символа, цвет фона.
Информация об адресе человека: почтовый индекс, страна, город, улица, номер дома, номер квартиры.
Информация о владельцах животных: фамилия владельца, вид животного, порода, окрас, пол, возраст животного.
Экзаменационная ведомость: предмет, номер группы, дата экзамена, 10 строчек с фамилиями студентов, номерами их зачётных книжек, оценками.
Информация о движении самолетов: номер рейса, пункт назначения, периодичность, тип самолета, время вылёта, время прилёта.
Информация о командах, участвующих в турнире по хоккею: название команды, город, количество побед, ничьих, поражений, количество забитых и пропущенных шайб.
Информация о лекарствах, имеющихся в аптеке: название, фирма-производитель, вид (таблетки, мазь, микстура и т.д.), цена, дата изготовления, срок годности, признак разрешения свободной продажи.
Информация о квартиросъёмщиках в многоквартирном доме: номер квартиры, фамилия квартиросъёмщика, подъезд, этаж, общая площадь, жилая площадь, количество проживающих.
Информация о выдаче книг в библиотеке: шифр книги, тематика, автор, название, издательство, год издания, количество страниц.
Лабораторная работа №11 Работа с файлами
Файлом называется последовательность данных, размещаемая на внешнем запоминающем устройстве и рассматриваемая в процессе чтения-записи как единое целое.
Порядок работы с файлами:
1. Описать тип файловой переменной, например f :
var |
var |
var |
f : File of type; |
f : Text; |
f : File; |
Тип File описывает линейную последовательность компонент указанного типа. Тип файла Text означает файл, состоящий из строк символов.
2. Осуществить связь файловой переменной с именем файла – команда Assign(f). Одновременно в программе может быть открыто несколько десятков файлов, каждый из которых должен иметь свою файловую переменную.
3. Открыть файл – командой Rewrite(f) для записи во вновь создаваемый файл или Reset(f) для чтения/записи уже имеющегося файла. Если открывается существующий текстовый файл, то используем команду Append(f).
4. Осуществить чтение/запись в файл – команды Read/Write соответственно (для построчной работы с текстовыми файлами можно использовать ReadLn/WriteLn). Например, команда записи выглядит следующим образом: Write(f, а), где f – файловая переменная; а – переменная любого типа (byte, real, string и т. д., соответствующая типу файла). При обращении к командам Read/Write позиция чтения/записи в файле автоматически увеличивается на единицу.
5. Закрыть файл – команда Close(f).
Пример:
Var
f: text;
Begin
Assign(f, 'TEST.TXT'); { Cвязываем файловую переменную f } { c именем файла 'TEST.TXT' }
Rewrite(f); { Создаем новый файл }
WriteLn(f,'Исходный текст'); { Записываем строку в файл }
Close(f); { Закрываем файл }
Append(f); { Открыть файл для добавления}
{ в его конец строки }
WriteLn(f,'Добавляемый текст'); { Добавляем строку }
Close(f); { Закрываем файл }
End.
Ниже приведено описание процедур и функций, работающих с файлами:
Procedure Append(var f : Text);
Открывает существующий текстовый файл f для дополнения.
Procedure Assign(var f; name : String);
Связывает внешний файл с именем name и переменную файлового типа f. Все дальнейшие операции с переменной f будут выполняться с указанным внешним файлом.
Procedure Close(var f);
Закрывает открытый файл, связанный с переменной f.
Function Eof(var f) : Boolean;
Показывает значение Истина (True) при наличии признака конца файла для типизированных или нетипизированных файлов, указываемых файловой переменной f.
Function FilePos(var f) : Longint;
Показывает текущую позицию в файле, указываемом переменной f. Если эта позиция в конце файла, то функция возвращает значение, равное длине файла, а если в начале файла, значение 0.
Function FileSize(var f) : Longint;
Показывает текущий размер файла f в байтах. Если файл пуст, то 0.
Procedure Reset(var f [ : file; RecSize : Word ] );
Открытие существующего файла. Имя внешнего файла, связанного с f, должно быть ранее определено. Необязательный параметр RecSize: размер записи нетипизированного файла.
Procedure Rewrite(var f : file [;RecSize : Word ] );
Создает и открывает новый файл. Если такой файл уже есть, то он удаляется и создается новый с тем же именем.
Procedure Seek(var f; n : Longint);
Перемещает текущую позицию файла к элементу с номером n (не может быть использована для текстовых файлов, первая позиция равна 0).
Procedure Truncate(var f);
Усекает размер файла f до текущей позиции в файле.
Ниже приведен пример программы, которая открывает сразу два файла (один для чтения, а второй создает вновь для записи). Командой Readln(f1,s); из первого файла считывается строка s. В цикле For организуется доступ к ее отдельным символам и производится замена буквы k на K. Затем преобразованная строка сохраняется во втором файле. Считывание строк проводится в цикле Repeat–Until и завершается при нахождении конца первого файла Eof(f1).
Var
f1,f2:text;
s:string;
i:byte;
Begin
Assign(f1, 'text.txt');
Assign(f2, 'text_new.txt');
Reset(f1);
Rewrite(f2);
Repeat
Readln(f1, s);
for i:=1 to Length(s) do
if s[i]='k' then s[i]:='K';
WriteLn(f2, s);
Until Eof(f1);
Close(f1);
Close(f2);
End.
Следующая программа выполняет ту же функцию, однако доступ к элементам файла значительно упрощен. Это достигается за счет иного описания структуры файла. В данном случае тип того же файла задан как символьный, что позволяет использовать только один цикл.
Var
f1,f2:file of char;
ch:char;
Begin
Assign(f1, 'text.txt');
Assign(f2, 'text_new.txt');
Reset(f1);
Rewrite(f2);
Repeat
Read(f1, ch);
if ch='k' then ch:='K';
Write(f2, ch);
Until Eof(f1);
Close(f1);
Close(f2);
End.
Задания
Вариант 1
а) Создать текстовый файл, в котором имеется 100 строк и в каждой строке содержится ее номер.
б) Создать программу, которая все числа в файле, кратные 10, заменяет символом «!».
Вариант 2
а) Создать файл, состоящий из 10 записей. Каждая запись должна иметь следующую структуру: фамилия, номер телефона, адрес. Заполните файл данными о студентах Вашей группы.
б) Создать программу, запрашивающую фамилию и выдающую из созданного ранее файла номер телефона и адрес.
Вариант 3
а) Создать файл, состоящий из 15 записей. Каждая запись должна иметь следующую структуру: фамилию, дату рождения (год, месяц, день). Заполните файл данными о студентах Вашей группы.
б) Создать программу, запрашивающую месяц рождения и выдающую из созданного ранее файла соответствующие данные, если таковые имеются.
Вариант 4
а) Создать файл, состоящий из 15 записей, в которых хранится информация о имеющихся в лаборатории химических реактивах. Каждая запись должна иметь следующую структуру: название вещества, масса или объем, степень очистки, номер шкафа, номер полки. Заполните файл данными.
б) Создать программу, запрашивающую название реактива и выдающую из созданного ранее файла соответствующие данные, если таковые имеются.
Вариант 5
Создать программу, которая обрабатывает текстовый файл таким образом, что, начиная с третьей строки, все буквы «Р» заменяет на буквы «Л».
Вариант 6
Создать программу, которая обрабатывает текстовый файл таким образом, что символы каждой второй строки будут записаны в обратной последовательности.
Вариант 7
Создать программу, которая выводит на экран содержимое текстового файла и при этом гласные буквы выделяет красным цветом, а все остальные символы – синим.
Вариант 8
а) Создать программу, которая записывает в файл типа byte 1000 случайных чисел от 0 до 255 и программу, которая записывает такие же числа в текстовый файл.
б) Создать программу, которая выводит на экран содержимое текстового файла и его размер.
Вариант 9
Создать программу, которая выводит на экран сообщение «Привет!», причем информацию о цвете букв, фона, расположении надписи на экране берет из файла privet.cfg, созданного ранее.
Вариант 10
Создать программу, которая считывает текстовый файл и создает новый файл, вставляя в нем между всеми символами пробел.