- •«Вычислительная техника и программирование»
- •0702 «Прикладная физика»
- •Тема 1. Основы алгоритмизации
- •В вод / Вывод данных Блок вычислений
- •Задания для практических занятий
- •Тема 2. Язык программирования
- •Вопросы для практических занятий
- •Тема 3. Интегрированная система программирования Turbo Pascal
- •Задания для практических занятий
- •Тема 4. Элементы алгоритмического языка Pascal
- •Вопросы и задания для практических занятий
- •Тема 5: Структура программы
- •Задания для практических занятий
- •Раздел 6.1 Линейная алгоритмическая структура
- •Задания к практическим занятиям
- •Раздел 6.2 Алгоритмическая структура – ветвления
- •Где If, then, else – зарезервированные слова
- •Задания к практическим занятиям
- •Задания для практических занятий
- •Раздел 6.3 Алгоритмическая структура - циклы
- •Оператор цикла с постусловием Repeat . . . Until
- •Задание для практических занятий
- •Тема 7. Структурированные типы данных
- •7.1 Массивы
- •Двумерный массив (матрица)
- •Задания для практических занятий
- •7.2 Множества
- •Задания и вопросы к практическим
- •7.3 Записи
- •Вопросы к практическим занятиям
- •Задание к практическим занятиям
- •Задания к практическим занятиям
- •Тема 8. Строки
- •Задания к практическим занятиям
- •Тема 9. Подпрограммы (Процедуры. Функции)
- •Пример:
- •Задания к практическим занятиям
- •Тема 10. Графика
- •В tp принята следующая система координат графического режима.
- •Задание к практическим занятиям
- •Меры длины
- •Линии и точки
- •Процедура SetLineStyle. Устанавливает новый стиль вычерчиваемых линий.
- •Список литературы
- •Пособие для изучения дисциплины «Вычислительная техника и программирование»
- •Специальности 6.070200 «радиофизика и электроника»
Вопросы к практическим занятиям
Что понимается под записью в языке Паскаль?
Приведите пример записи.
Как объявляется запись?
Какие операции допустимы над элементами записи?
Для чего предназначено уточненное имя?
Как организовать ввод и вывод данных записи?
Как записывается уточненное имя?
Чем отличается запись от массива?
Можно ли использовать в записи элементы одного типа?
Какие операции допустимы над записью в целом?
Задание к практическим занятиям
Комплексное задание.
Создать файл, содержащий сведения о телефонах абонентов. Каждая запись имеет поля: фамилия абонента, его имя и отчество, год установки телефона, номер телефона. Количество записей произвольно. Составить прграмму, которая:
По данной фамилии абонента выдает номер телефона;
Определяет количество телефонов, установленных с начала заданного года;
Ищет абонентов по данным первым n буквам (выдаетсписок абонентов и номера их телефонов);
Ищет номер телефона абонента по его фамилии и инициалам;
Корректирует созданный файл: добавляет запись, изменяет запись, удаляет запись.
Создать файл, содержащий сведения о сотрудниках крупного предприятия. Структура записи: фамилия работающего, год рождения, стаж работы, название отдела, должность, оклад. Количество записей произвольно. Составить программу, которая выдает:
Список сотрудников пенсионного возраста с указанием стажа работы;
Списки сотрудников по заданной должностной категории с указанием отдела;
Смета расходов на заработную плату по заданному отделу;
Ведомость на получение льготных путевок для сотрудников с уровнем заработной платы, меньшим заданного.
Дан файл, содержащий сведения об экспортируемых товарах: указывается наименование товара, страна, импортирующая товар, стоимость и объем поставляемой партии в штуках. Составить программу вывода списка:
Стран, в которые экспортируется данный товар, общий объем его экспорта и сумму денежного оборота;
Стран, в которые производятся поставки товара, в порядке убывания объема сделок;
Экспортируемых товаров в порядке убывания общей стоимости поставок.
Файл содержит информацию о наличии товаров: название товара, цена единицы товара, количество, дата выпуска, конечная дата использования. Составить программу вывода на экран:
Списка просроченных товаров с указанием их стоимости;
Стоимости товаров по годам выпуска;
Списка товаров, подлежащих использованию в течение месяца, с указанием их цены и количества.
Создать файл, содержащий сведения о личной коллекции книголюба. Структура записи: автор книги, название, год издания, местоположение (номера стеллажа). Количество записей произвольно. Составить программу, которая обеспечивает получение следующей информации:
Списка книг заданного автора, находящихся в коллекции;
Списка книг, нахлдящихся на заданном стеллаже;
Списка книг, находящихся в коллекции и изданных до заданного года;
Списка книг, в названии которых встречается заданное слово, с указанием полного названия книги, ее автора, года издания.
Создать файл данных о библиотеке с такими записями: автор книги, название, год издания, фамилия читателя, который взял книгу. Составить программу, которая должна выводить на экран следующую информацию:
Есть ли в библиотеке книга с данным названием: если да, то можно ли ее взять;
Есть ли в библиотеке книги данного автора; если есть, то какие;
Какие книги взял данный читатель;
Какую часть библиотеки составляют книги, изданные за последние 10 лет;
Сколько книг должно быть в наличии.
Создать файл, содержащий базу данных об автомобилях и их владельцах (марка, цвет, год выпуска, фамилия владельца). Составить программу, которая выдавала бы следующую информацию:
количество автомобилей каждой марки;
список владельцев автомобилей заданных марки и цвета;
список автомобилей заданного года выпуска и формирование приглашения их владельцам на прохождение техосмотра.
Создать файл данных о вашей фонотеке. Структура записи о каждом произведении имеет следующий вид: наименование, автор, исполнитель, направление (классика, поп, рок, и.т.д.). Составить программу, которая обеспечивает вывод на экран список произведений:
содержащийся в фонотеке;
заданного направления;
из репертуара заданного исполнителя;
заданного автора.
Создать файл данных о фильмах в вашей видеотеке. Структура записи о каждом фильме имеет следующий вид: название фильма, год выпуска, страна – производитель, характеристика (комедия, вестерн, фантастика и.т.д.) исполнитель главной мужской роли, исполнительница главной женской роли. Составить программу, которая обеспечивает вывод на экран списка фильмов:
заданного режиссера;
с заданным актером (актрисой) в главной роли;
отсортированного по году выпуска;
выпущенных в заданной стране;
с заданной характеристикой (которые выпущены в заданной стране).
Составить программу обработки файла данных о перелетах самолетов, который содержит такие записи для каждого самолета: его бортовой номер, тип, час прибытия, час отлета, номер посадочной площадки.Программа должна находить по желанию диспетчера такую информацию:
какой самолет и на какой площадке находится в данный момент времени;
на какой самолет идет посадка в заданный момент времени;
какой самолет должен приземлиться в ближайшим;
какой самолет должен вылететь первым после заданного часа;
вылет каких самолетов надо задержать, если необходимо срочно принять незапланированный самолет.
7.4 Файлы
Файл – именованная область внешней памяти ПК (жесткого диска, гибкой дискеты, электронного виртуального диска).
Особенности файла:
имеет имя, что дает возможность работать одновременно не с одним файлом;
содержит компоненты одного и того же типа;
длина вновь создаваемого файла никак не оговаривается при его объявлении, ограничена только емкостью устройств внешней памяти.
Файловый тип или переменную задают одним из трех способов:
< имя> = FILE OF <тип>, типизированный файл;
< имя> = TEXT, текстовые ;
< имя> = FILE, нетипизированные ;
где < имя> - имя файлового типа – правильный идентификатор,
FILE OF – зарезервированные слова (файл из),
TEXT – имя стандартного типа текстовых файлов,
<тип> - любой тип Турбо Паскаля, кроме файлов.
Пример - задания файлов:
type
product = record;
name: string;
code: word;
cost : comp
end;
text80 = file of string [80];
var
f1: file of char; {- типизированный}
f2: text; {- текстовый}
f3: file; {- нетипизированный}
f4: text80; {- типизированный}
f5: file of product; {- типизированный}
Текстовые файлы хранят любую информацию в виде символов ее изображающих (текст программы на языке Паскаль – текстовый файл).
Типизированные – содержат машинное представление чисел, структур, символов, т.е. хранят данные в том же виде, что и память ПК. С их помощью можно осуществлять обмен данными между диском и рабочей областью памяти, но нельзя вывести данные на экран.
Нетипизированные – тоже содержат машинное представление чисел, структур, символов. Отличие от типизированных – данные не определенного типа, а произвольный набор байтов независимо от их структуры и природы.
Файлы становятся доступными только после выполнения процедуры открытия файлов. Она связывает ранее объявленную файловую переменную с именем существующего или вновь создаваемого файла. Осуществляет эти функции стандартная процедура ASSIGN:
ASSIGN (<Ф.П.>, <ИМЯ ФАЙЛОВ>);
где <Ф.П.> - файловая переменная (правильный идентификатор, объявленный в программе как переменная файлового типа).
<ИМЯ ФАЙЛОВ> – текстовое выражение содержащие имя файла или логическое устройство.
Пример- доступа к файлам:
Var
f: text; { объявляем файловую переменную }
Begin
Assign ( f, A:\TST.doc)
{связывает физический файл A:\TST.doc на диске А: с логическим файлом f }
End.
Или
Var
finp : text;
fout : file of string;
const
name = ‘c:\dir\subdir\out.txt’;
begin
assign (finp,’123.dat’);
assign (fount, name);
end.
Инициировать файл – указать для него направление передачи данных. В Турбо Паскале можно открыть файл для чтения, записи информации как отдельно, так и вместе.Открытие файла для чтения осуществляется с использованием стандартной процедуры RESET (<ф. п >), где <ф. п > - файловая переменная связанная ранее процедурой ASSIGN с уже существующим файлом или логическим устройством – приемником информации.
Стандартная процедура для записи в файл REWRITE (<ф. п >);
В Турбо Паскале разрешается обращаться к типизированным файлам открытым процедурой RESET (т. е для чтения информации) с помощью процедуры WRITE (т.е. для записи информации). Для текстовых файлов открытых RESET нельзя использовать WRITE. Процедурой REWRITE нельзя инициировать запись информации в ранее существовавший дисковый файл. Процедура APPEND (<ф.п.>) инициирует запись в ранее существовавший текстовый файл для его расширения. Применяется только к текстовым файлам. Процедуры и функции для работы с файлами приведены в приложении №4.
Текстовые файлы:
Текстовый файл трактуется в ТП как совокупность строк переменной длины. Доступ к каждой, возможен лишь последовательно начиная с первой. В конце каждой строки ставится специальный признак EOLN (End of line), конец файла EOF(end of file). Эти признаки можно протестировать одноименными логическими функциями. Для доступа к записям применяются процедуры READ, READLN, WRITE, WRITELN.
READ (< ф.п >, <сп. ввода>).
Пример:
Const
N=1000; {Максимальная длина ввода}
Var
f : text
m: array [1. . N] of real;
i : integer;
begin
assign(f, ‘prog.dat’);
reset(f);
i:=1;
while not EOF(f) and (i<= N) do
begin
read(f,m[i]);
inc(i)
end;
close (f)
end.
Типизированные файлы
Длина любого компонента строго типизированного файла строго постоянна, что дает организовать доступ к каждому из них. Перед первым обращением указатель файла стоит в его начале и указывает на первый компонент с номером 0. Основные процедуры READ, WRITE.
Нетипизированные файлы
В отличие от типизированных для них не указан тип компонентов, это делает их совместимыми с любыми другими файлами, а с другой позволяет организовать высокоскоростной обмен данными между дисками и памятью.
При инициализации нетипизированного файла можно указать длину записи нетипизированного файла в байтах.
Пример:
Var
F: file;
Begin
Assign (f, ‘myfile.dat’);
Reset (f, 512);
. . . . .
end.