Модули и Файлы
Курсовая работа, 14 Февраля 2012, автор: пользователь скрыл имя
Описание
Целью моей курсовой работы является приобретение и закрепление навыков в организации вычислительных процессов и программирования на алгоритмическом языке Pascal. Основной частью курсовой является рассмотрение модульного программирования (использование процедур и функций) и файлов (рассмотрение функций открытия и закрытия файлов).
Содержание
Введение………………………………………………………………………………………………….. 3
Часть 1. Модули в Турбо Паскале.
Теоретические сведения по теме «Модули»…………………………………………. 4
Алгоритм подпрограммы процедуры form (схема 1.)…………………………… 6
Алгоритм подпрограммы процедуры vivod (схема 2.)…………………………. 6
Алгоритм подпрограммы функции get_kol (схема 3.)…………………………… 7
Алгоритм подпрограммы процедуры umn (схема 4.)…………………………… 7
Алгоритм вызывающей программы……………………………………………………… 8
Программа создания модуля………………………………………………………………… 8
Вызывающая программа……………………………………………………………………….. 10
Результаты выполнения программы…………………………………………………….. 11
Часть 2: «Файлы в Турбо Паскале»
Теоретические сведения по теме «Файлы»………………………………………….. 12
Схемы алгоритма……………………………………………………………………………………. 15
Программа создания файла…………………………………………………………………... 18
Программа обработки записи……………………………………………………………….. 19
Результаты выполнения программы…………………………………………………….. 20
Заключение…………………………………………………………………………………………….. 22
Список использованной литературы…………………………………………………….. 23
Работа состоит из 1 файл
Курсовая работа по информатике.doc
— 131.00 Кб (Скачать документ)Файл – племенованная область памяти на внешнем носителе, предназначенная для хранения различных данных.
Элементы файла называется записями, нумерация записи с нуля.
Текущий указатель указывает на обрабатываемую в данный момент запись и после обработки смещается на одну запись вперед.
Каждый файл имеет имя и может иметь расширение(до 3х символов), полное имя файла (спецификация) содержит имя диска и всех папок, а также имя файла.
При описании длина
файла не задается и ограничивается
только объемом свободного пространства
на внешнем носителе.
Описание файловой переменной:
- В разде type: имя = file of базовый тип (кроме файлового);
- var
идентификатор: file of базовый;
в зависимости от описания различают три типа файлов:
1)типизированные;
2)текстовые;
3)нетипизированные.
По способу доступа к записям файлы делятся на два класса:
а)файлы с непосредственным доступом(прямого доступа); для них существует специальная процедура перемещения текущего указателя на нужную запись.
б)файлы последовательного
доступа; особенность их в том, чтобы
прочитать какой-то элемент или
записать на место какую-то информацию.
Необходимо последовательно обработать
все предыдущие записи, начиная сначала.
Процедуры и функции работы с файлами:
- процедура назначения. Связывает файловую переменную с существующим или создаваемым на диске физическим файлом: assign(переменная, специфика файла)
Эта же процедура связывает файловую переменную с логическим устройством.
- процедура инициализации файла для чтения из него информации: reset(f).
Процедура устанавливает текущий указатель на запись 0.
- процедура инициализации файла для записи в него информации: rewrite(f).
Создает пустой файл с указателем на нулевой записи.
- процедура закрытия файла: close(f).
Эта процедура обязательно должна присутствовать в программе по созданию файла; при работе этой процедуры ликвидируются все буферные переменные, однако связь файловых переменных со спецификацией остается.
- процедура переименования файла: rename(f).
- процедура стирания файла: erase(f).
- процедура чтения из файла: read(f, список ввода).
- функция проверки конца файла: eof(f).
- процедура записи файла: write(f).
Замечания: списки ввода
и вывода должны содержать переменные
того же типа, что и переменные, описанные
файловые, f. Информация при чтении из файла
и записи в него считывается и записывается
через буфер. Размер буфера устанавливается
автоматически, на основе размера записи
файла.
Типизированные файлы:
Они характерны тем, что длина любой компоненты одинакова и постоянна.
Для них существует дополнительный набор процедур и функций.
а) процедура seek(f,n); смещает текущий указатель на запись с номером n.
б) функция filesize(f); определяет число записи в файле.
в) функция filepos(f); определяет порядковый номер той записи, которая обрабатывается в данный момент.
г) процедура transcate(f); удаляет часть файла, начиная с текущей позиции до конца.
Особенность типизированного
файла в том, что он позволяет
считывать и записывать структурную
переменную одной командой.
Задание.
Создать файл, состоящий из 20 записей:
Данные о работниках предприятия:
- № п/п;
- Табельный номер;
- Ф. И. О;
- № цеха;
- Основной оклад;
- Дополнительные оплаты;
- Сумма к выдаче.
Вывести данные о
работнике 4 цеха с самой большой
заработной платой.
Схемы
алгоритма.
Типы параметров в подпрограммах.
| идентификатор | назначение |
| N | Константа, равная количеству записей |
| N, No, FIO, Ceh, oklad, dop, sum | Поля записей |
| I, j | Счетчик циклов |
Программа
создания файла:
Program kurs2_1;
uses crt;
type
spisok=record
N: 1..20;
No: integer;
FIO: string[20];
Ceh: integer;
oklad: integer;
dop: integer;
sum: integer;
end;
const
list: array[1..20] of spisok=
((N:1; No:15; FIO:’Батурина А.Д.’; Ceh:5; oklad:15000; dop:1000; sum:16000);
(N:2; No:17; FIO:’Воскобоков Д.В.’; Ceh:3; oklad:15320; dop:1500; sum:15830);
(N:3; No:19; FIO:’Дудка В.Д.’; Ceh:4; oklad:14000; dop:2000; sum:16000);
(N:4; No:21; FIO:’Шаров А.А.’; Ceh:2; oklad:6000; dop:1000; sum:7000);
(N:5; No:23; FIO:’Зайцева М.В.’; Ceh:1; oklad:7530; dop:1500; sum:9030);
(N:6; No:25; FIO:’Игонин А.И.’; Ceh:7; oklad:10000; dop:2000; sum:12000);
(N:7; No:27; FIO:’Кузьмина К.В.’; Ceh:4; oklad:25330; dop:1000; sum:26330);
(N:8; No:29; FIO:’Ларинов С.С.’; Ceh:3; oklad:17000; dop:1500; sum:18500);
(N:9; No:31; FIO:’Осонина О.Д.’; Ceh:2; oklad:12050; dop:2000; sum:14050);
(N:10; No:33; FIO:’Панасеенко Т.В.’; Ceh:4; oklad:13000; dop:1000; sum:14000);
(N:11; No:35; FIO:’Рудакова В.В.’; Ceh:1; oklad:12000; dop:1500; sum:13500);
(N:12; No:37; FIO:’Солаценко Т.В.’; Ceh:5; oklad:11010; dop:2000; sum:13010);
(N:13; No:39; FIO:’Томченко А.Д.’; Ceh:4; oklad:3000; dop:1000; sum:4000);
(N:14; No:41; FIO:’Ухов Л.В.’; Ceh:2; oklad:20050; dop:1500; sum:21550);
(N:15; No:43; FIO:’Фролова З.П.’; Ceh:1; oklad:17050; dop:2000; sum:19050);
(N:16; No:45; FIO:’Храмов Т.П.’; Ceh:3; oklad:11000; dop:1000; sum:12000);
(N:17; No:47; FIO:’Цаплина А.А.’; Ceh:5; oklad:13050; dop:1500; sum:14550);
(N:18; No:49; FIO:’Чадов А.А.’; Ceh:4; oklad:15050; dop:2000; sum:17050);
(N:19; No:51; FIO:’Шеремет Т.П.’; Ceh:3; oklad:17000; dop:1000; sum:18000);
(N:20; No:53; FIO:’Яблоков Я.П.’; Ceh:2; oklad:21000; dop:1500; sum:22500););
var
f: file of spisok;
i: integer;
begin clrscr;
assign(f,’.\sp.dat’);
rewrite(f);
writeln(‘N Таб ФИО Nцеха Осн.окл. Доп.окл. Сумма ’);
for i:=1 to 20 do
begin
write(f, List[i]);
with List[i] do
writeln(N:3, No:5, FIO:20, Ceh:5, oklad:10, dop:8, sum:9);
end;
writeln;
writeln(‘Файл создан’);
readln;
close(f);
end.
Программа
обработки записи:
Program kurs2_2;
uses crt;
type
spisok=record
N: 1..20;
No: integer;
FIO: string[20];
Ceh: integer;
oklad: integer;
dop: integer;
sum: integer;
end;
var
i, max, k: integer;
s: array [1..N] of spisok;
f: file of spisok;
procedure get_max;
begin
max:=0;
for i:=1 to N do
with s[i] do
if (max < sum) and (ceh = 4) then
begin
max:=sum;
k:=i;
end;
end;
begin clrscr;
assign(f,’.\sp.dat’);
reset(f);
for i:=1 to N do
begin
read(f, s[i]);
end;
writeln(‘N Таб ФИО Nцеха Осн.окл. Доп.окл. Сумма ’);
for i:=1 to N do
begin
with s[i] do
writeln(N:3, No:5, FIO:20, Ceh:5, oklad:10, dop:8, sum:9);
end;
writeln;
get_max;
writeln(‘Работник 4 цеха с самой большой з\п:’);
with s[k] do
writeln(N:3, No:5, FIO:20, Ceh:5, oklad:10, dop:8, sum:9);
readln;
close(f);
end.
Результаты выполнения программы:
№ Таб ФИО №цеха Осн.окл. Доп.опл. Сумма
1 15 Батурина А.Д. 5 15000 1000 16000
2 17 Воскобоков Д.В. 3 15320 1500 15830
3 19 Дудка В.Д. 4 14000 2000 16000
4 21 Шаров А.А. 2 6000 1000 7000
5 23 Зайцева М.В. 1 7530 1500 9030
6 25 Игонин А.И. 7 10000 2000 12000
7 27 Кузьмина К.В. 4 25330 1000 26330
8 29 Ларинов С.С. 3 17000 1500 18500
9 31 Осонина О.Д. 2 12050 2000 14050
10 33 Панасеенко Т.В. 4 13000 1000 14000
11 35 Рудакова В.В. 1 12000 1500 13500
12 37 Солаценко Т.В. 5 11010 2000 13010
13 39 Томченко А.Д. 4 3000 1000 4000
14 41 Ухов Л.В. 2 20050 1500 21550
15 43 Фролова З.П. 1 17050 2000 19050
16 45
Храмов Т.П.
3
11000 1000
12000
№ Таб ФИО №цеха Осн.окл. Доп.опл. Сумма
17 47 Цаплина А.А. 5 13050 1500 14550
18 49 Чадов А.А. 4 15050 2000 17050
19 51 Шеремет Т.П. 3 17000 1000 18000
20 53
Яблоков Я.П.
2
21000 1500
22500
Работник 4 цеха с самой большой з\п:
7 27 Кузьмина
К. В.
4
25330 1000
26330
Заключение.
На основе проделанной
работы я приобрела навыки использования
модулей в среде Турбо Паскаль,
научилась работать с файлами и использовать
записи.
Список литературы: