Задача по теме записи. Оператор With.
Составить программу, которая ведет учет призывников. Программа позволяет: вводит фамилии и район проживания призывников, выводить данные по всем призывникам на экран, выводить фамилии призывников по заданному району.
Для решения задачи опишем новый тип Priz, который будет содержать поля fio и raion. И тип spisok-который будет массивом из записей типа Priz.(каждый элемент массива- отдельная запись о призывнике, содержащая ФИО и район проживания). Размер массива определим постоянной.
Постановка задачи:
Программа запускается файлом Priz.exe. На экране появляется главное меню программы, содержащие пункты:
Что будем делать?
1. ввод данные;
2. вывод всех;
3. вывод по заданному району;
4. выход:
ваш выбор __
Для того чтобы выполнить отдельный режим нужно в строке выбора набрать соответствующую цифру. После выполнения режима, выходим в главное меню. Для выхода из программы набираем 5. Запуск каждого режима осуществляется отдельной процедурой. Рассмотрим необходимые процедуры:
Подпрограмма | Назначение |
Procedure Vvod_priz(var a:priz) | Процедура ввода данных по одному призывнику |
Procedure Vvod_spisok(var a:spisok) | Процедура ввода данных по всем призывникам |
Procedure Vivod_priz(a:priz) | Процедура вывода данных по одному призывнику |
Procedure Vivod_spisok(a:spisok) | Процедура вывода данных по всем призывникам |
Procedure Vivod_raion(a:spisok) | Процедура вывода данных по введенному району |
program _;
uses crt;
const n=3;
type
priz=record
fio:string[20];
raion:string[15];
end;
spisok=array[1..n] of spisok;
var x: spisok;
v:byte;
procedure Vvod_priz(var a:priz);
begin
Writeln('введите фамилию студента и район через enter');
readln(a.fio);
readln(a.raion);
end;
Procedure Vvod_spisok(var a:spisok)
Var i: byte;
Begin
Clrscr;
For i:=1 t n do vvod_priz(a[i]);
End;
procedure Vivod_priz(a:priz);
begin
Writeln(a.fio:25, a.raion:20);
end;
Procedure Vivod_spisok(a:spisok)
Var i: byte;
Begin
Clrscr;
Writeln(‘фио’:25,’район’:20)
For i:=1 t n do vivod_priz(a[i]);
End;
Procedure Vivod_raion(a:spisok)
Var i: byte;
R:string[15];
Begin
Clrscr;
Writeln(‘введите район’);
Readln(r );
For i:=1 to n do
If a[i].raion= r then vivod_priz(a[i]);
End;
{ОСНОВНАЯ ПРОГРАММА}
begin
repeat
clrscr;
writeln(‘Что будем делать?’);
writeln(‘1-ввод данные;’);
writeln(‘2-вывод всех;’);
writeln(‘3-вывод по заданному району;’);
writeln(‘4-выход:’);
writeln(‘ваш выбор ‘);
readln(v);
case v of
1:vvod_spisok(x);
2:vivod_spisok(x);
3:vivod_raion(x);
end;
until v=4;
end.
Лекция 35.
Файлы
Большие совокупности данных, например сведения обо всех учащихся школы, телефонный справочник, удобно иметь записанными во внешней памяти в виде последовательности сигналов. Любой сколько-нибудь развитый язык программирования должен содержать средства для организации хранения информации на внешних запоминающих устройствах и доступа к этой информации. В Паскале для целей предусмотрены специальные объекты — файлы.
Файлом называется совокупность данных, записанная во внешней памяти под определенным именем.
Целесообразность применения файлов диктуется следующими причинами.
1. Ввод больших объемов данных, подлежащих обработке, утомителен и требует большого времени. Гораздо удобнее создать отдельный файл данных, который может быть подготовлен заранее и, самое главное, применяться неоднократно.
2. Файл данных может быть подготовлен другой программой, становясь, таким образом, связующим звеном между двумя разными задачами, а также средством связи программы с внешней средой.
3. Программа, использующая данные из файла, не требует присутствия пользователя в момент фактического исполнения.
Сведения о файловой системе ms dos
Каждый файл на диске имеет обозначение, которое состоит из двух частей: имени и расширения. В имени файла может быть от 1 до 8 символов. Расширение начинается с точки, за которой следуют от 1 до 3 символов, например: command.com, turbo.exe, autoexec.bat, turbo.tph, proba.pas.
Имя файла — это любое выражение строкового типа, которое строится по правилам определения имени в MS DOS:
• имя содержит до восьми разрешенных символов (прописные и строчные латинские буквы, цифры и символы: !, @, #, %, ^, &, (,),', ~, —, _;
• за именем может быть расширение — последовательность до трех разрешенных символов; расширение, если оно есть, отделяется от имени точкой.
Расширение имени файла, как правило, описывает содержание файла и не является обязательным. Многие программы устанавливают расширение имени файла автоматически, по нему вы можете узнать, какая программа создала файл. Например:
com, exe — готовые к исполнению программы;
bat — командные (Batch) файлы;
txt, doc — текстовые файлы;
hip — файл справочной службы;
pas — файл программы на языке Паскаль;
asm — файл программы на языке Ассемблер;
dat — файл данных;
arj — файл архива, созданный архиватором arj.
Устройства в Турбо Паскале.
Входящие в компьютер компоненты принято называть устройствами. Некоторые устройства компьютера используются во внешней памяти Турбо Паскаль как файлы. При этом для указания устройств используются специальные имена (которые не могут иметь "настоящие" файлы), например:
А:, В: — накопители на гибких магнитных дисках;
С:, D:, Е: и т.д. — винчестер;
CON — пульт управления (консоль), при выводе этим устройством является экран видеомонитора, а при вводе — клавиатура;
— устройства, подключенные к параллельным портам 1, (портом называют многоразрядный вход или выход в устройстве. Чаще все порту LPT1 подключен принтер);
PRN-принтер
СОМ1, СОМ2, СОМ3- устройства, подключенные к последовательным портам
NUL- пустое устройство
Примечание. Устройство Nul работает следующим образом: при чтении с него про--амме сообщается о конце файла, а при выводе на него информация на самом деле никуда не выводится, но программе, которая делала вывод, сообщается, что вывод произошел успешно.
Неотъемлемой характеристикой каждого файла являются размер, дата и время создания файла. Размер файла определяется числом входящих в него байтов. Дата время создания файла изменяются при изменении файла. Имена файлов регистрируются на магнитных дисках в каталогах (или директориях).
Любой файл содержит компоненты одного типа. Компонентами может быть любой тип Turbo Pascal, кроме файлового.
Все компоненты файла пронумерованы от 0 до последнего компонента.
компонент№0 | компонент№1 | компонент№2 | компонент№3 | …. |
Текущий указатель
В любой момент времени программе доступен только один компонент файла, на который ссылается текущий указатель (указатель обработки). Часто позицию размещения доступного элемента называют текущей позицией.
Как правило, все действия с файлом (чтение из файла, запись в файл) производится поэлементно, причем в этих действиях участвует текущий элемент файла. В результате совершения операций текущий указатель может перемещаться, настраиваясь на тот или иной элемент файла.
По способу доступа к элементам различают файлы последовательного и прямого доступа.
Файлом последовательного доступа называется файл, к элементам которого обеспечивается доступ в такой же последовательности, в какой они записывались.
Файлом прямого доступа называется файл, доступ к элементам которого осуществляется по адресу элемента.
По типу компонентов файла в Turbo Pascal существуют следующие разновидности файлов: текстовые, типизированные и нетипизированные.
Текстовый файл можно рассматривать как последовательность символов, разбитую на строки длиной от 0 до 255 символов.
К типизированным файлам относятся файлы строго определенного типа. Чаще всего это файлы, состоящие из записей. Они применяются для создания различных баз данных.
Нетипизированный файл рассматривается в Паскале как совокупность символов или байтов.
Лекция 36.
Вопросы:
1. Что такое файл.
2. Предпосылки использования файлов в программе.
3. Типы файлов по способу доступа к компонентам.
4. Типы файлов по типу компонентов.
Дата добавления: 2016-05-25; просмотров: 632;