Модули и Файлы

Автор работы: Пользователь скрыл имя, 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

Работа состоит из  1 файл

Курсовая работа по информатике.doc

— 131.00 Кб (Скачать документ)

Файл – племенованная  область памяти на внешнем носителе, предназначенная для хранения различных данных.

Элементы файла  называется записями, нумерация записи с нуля.

Текущий указатель  указывает на обрабатываемую в данный момент запись и после обработки  смещается на одну запись вперед.

Каждый файл имеет  имя и может иметь расширение(до 3х символов), полное имя файла (спецификация) содержит имя диска и всех папок, а также имя файла.

При описании длина  файла не задается и ограничивается только объемом свободного пространства на внешнем носителе. 

Описание файловой переменной:

  1. В разде type: имя = file of базовый тип (кроме файлового);

                                    var

                                   идентификатор: имя;

  1. 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 
 
 
 
 
 
 
 
 
 
 

 

Заключение. 

На основе проделанной  работы я приобрела навыки использования  модулей в среде Турбо Паскаль, научилась работать с файлами и использовать записи. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

Список  литературы:

Информация о работе Модули и Файлы