Автор работы: Пользователь скрыл имя, 14 Февраля 2012 в 15:45, курсовая работа
Целью моей курсовой работы является приобретение и закрепление навыков в организации вычислительных процессов и программирования на алгоритмическом языке 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
Файл – племенованная область памяти на внешнем носителе, предназначенная для хранения различных данных.
Элементы файла называется записями, нумерация записи с нуля.
Текущий указатель указывает на обрабатываемую в данный момент запись и после обработки смещается на одну запись вперед.
Каждый файл имеет имя и может иметь расширение(до 3х символов), полное имя файла (спецификация) содержит имя диска и всех папок, а также имя файла.
При описании длина
файла не задается и ограничивается
только объемом свободного пространства
на внешнем носителе.
Описание файловой переменной:
идентификатор: 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
Заключение.
На основе проделанной
работы я приобрела навыки использования
модулей в среде Турбо Паскаль,
научилась работать с файлами и использовать
записи.
Список литературы: