Рефераты. Модули, записи и файлы p> Подключение модуля к основной программе и их возможная компиляция осуществляется в порядке их объявления в предложении
USES. При переходе к очередному модулю система предварительно отыскивает все модули, на которые он ссылается. Ссылки модулей друг на друга могут образовывать древовидную структуру любой сложности, однако запрещается явное или косвенное обращение модуля к самому себе.
Дело в том, что Turbo PASCAL разрешает ссылки на частично откомпилированные модули, что приблизительно соответствует опережающему описанию подпрограммы. Если интерфейсные части любых двух модулей независимы, Turbo PASCAL сможет идентифицировать все глобальные идентификаторы в каждом из модулей, после чего откомпилирует тела модулей обычным способом.

Глава 2. Задание первой части курсовой работы

Разработать модуль (схемы алгоритмов и программы), содержащие процедуры и функции, решающие поставленную задачу :

Вариант № 21

Вычислить произведение элементов каждого столбца матрицы :


Определить максимальное значение произведения :

Разработать вызывающую программу (алгоритм и текст программы), предусмотрев процедуру очистки экрана и вывода информации на экран с текстовыми комментариями. Например :

Курсовую работу выполнил студент группы А – 61 Иванов Роман Борисович

Вариант № 21

Разработанный модуль содержит следующие программы :

Процедуру формирования элементов матрицы в интервале –1.0 до 1.0.

Функцию определения суммы элементов той строки, где находиться максимальный элемент.

Процедуру вывода элементов матрицы.

Результаты :

Сформированная матрица :

------------------------------

------------------------------


Сумма элементов строки, где находится максимальный элемент =…….

2.1. Вызывающая программа

2.2.Процедура формирования массива А

PROCEDURE FORM

2.3.Процедура ввывода массива А


PROCEDURE VIVOD

2.4.Процедура произведения элементов массива А

PROCEDURE PR

2.5.Функция поиска максимального элемента в векторном массиве С

FUNCTION MAX

Глава 3. Модуль основной программы

unit kurp1; interface const n=5; type matr=array[1..n,1..n] of real; vect=array[1..n] of real; procedure form(var a:matr); procedure vivod (var a:matr); function max(c:vect):real; procedure pr(a:matr;var c:vect); implementation procedure vivod (var a:matr); var i,j:integer; begin for i:=1 to n do begin for j:=1 to n do write (a[i,j]:6:2); writeln; end; writeln; end; procedure form(var a:matr); var i,j:integer; begin randomize; for i:=1 to n do for j:=1 to n do a[i,j]:=random*2-1; end; function max( c:vect):real; var i:integer; m:real; begin m:=-2; for i:=1 to n do if c[i]>m then m:=c[i]; max:=m end; procedure pr(a:matr;var c:vect); var i,j:integer; begin c[i]:=1; for i:=1 to n do begin for j:=1 to n do c[i]:=a[j,i]*c[i]; writeln('Произведение ',i,'-го столбца =',c[i]:6:4); end; writeln; end; end.

Глава 4. Основная программа

program kursovik; uses crt,kurp1; var a:matr; c:vect; begin clrscr; window (45,2,75,7) ; writeln ('Курсовая работа по информатике') ; writeln('Факультет АЭС группа А-92'); writeln ('студента: Грязина Дмитрия '); window(1,1,80,25); writeln('вариант 21'); window(10,8,80,20); writeln('Разработанный модуль содержит следующие программы:'); writeln('1.Процедуру формирования элементов матрицы в интервале от 1.0 до 1.0.'); writeln('2.Процедуру вывода матрицы на экран.'); writeln('3.Процедуру определения произведения каждого столбца матрицы.'); writeln('4.Функцию определения максимального произвелдения.'); window(1,1,80,25); gotoxy(10,24); writeln('Для продолжения нажмите пробел'); clrscr; form(a); writeln('Сформированная матрица'); vivod(a); pr(a,c); writeln('Максимальное произведение =',max(c):6:4); readln; end.

Глава 5. Результаты первой части курсовой работы

Сформированная матрица
-0.68 0.22 0.58 -0.62 -0.14
0.25 -0.11 -0.90 0.41 -0.57
0.24 -0.69 -0.84 0.28 0.71
-0.46 -0.26 0.16 0.49 -0.73
0.60 0.17 0.28 -0.77 -0.61

Произведение 1-го столбца =0.0112
Произведение 2-го столбца =-0.0007
Произведение 3-го столбца =0.0187
Произведение 4-го столбца =0.0264
Произведение 5-го столбца =0.0243

Максимальное произведение =0.0264

Глава 6. Записи.


Запись – это структура данных, состоящая из фиксированного числа компонентов, называемых полями записи. В отличие от массива, компоненты
(поля) записи могут быть различного типа. Чтобы можно было ссылаться на тот или иной компонент записи, поля именуются.

Структура обьявления типа записи такова:

= RECORD END

Здесь - правельный индификатор;

RECORD, END – зарезервированные слова (запись, конец);

- список полей; представляют собой последовательность

разделов записи, между которыми ставится точка с запитой.

Каждый раздел записи состоит из одного или нескольких индификаторов полей, отделяемых друг от друга запятыми. За индификатором ставится двоеточие и описание типа поля например:

type birthday = record day, month : byte; year : word: end; var a,b : Birthday;

. . . . . . . .

В этом примере тип Birthday есть запись с полями DAY, MONTH, и YEAR; переменные А и В содержат записи типа Birthday.
Как в массиве, значения переменных типа записи можно присваивать другим переменным того же типа, например: a : = b;
К каждому из компонентов записи можно получить доступ, если использовать составное имя, т.е. указать имя переменной, затем точку и имя поля: a.day := 27; b.year := 1991;
Чтобы упростить доступ к полям записи, используется оператор присоединения
WITH:

WITH DO

Здесь WITH, DO – ключевые слова (с, делать);

- имя переменной типа запись, за которым, возможно, следует список вложенных полей;

- любой оператор Турбо Паскаля.
Например: with c.bd do month := 9;
Имена полей должны быть уникальными в пределах той записи, где они обьявлены, однако, если записи содержат поля – записи, т.е. вложена одна в другую, имена могут повторяться на разных уровнях вложенности.

.

Глава 7. Файлы.


Под файлом понимается именованная область памяти на магнитном носителе, используемая для долговременного хранения некоторой логически связанной информации. В эту область внешней памяти можно как поместить определенные данные, так и извлечь их из нее. Эти действия имеют общее название - ввод- вывод.

7.1. Операция с файлами как единое целое.

Программирование доступа к файлу в языке Turbo Pascal начинается с описания файловой переменной (переменной файлового типа). Это описание строится с помощью служебного слова file, после которого (после служебного слова of) может быть указан тип отдельных элементов файла, например: var
F : file of integer;

При необходимости можно отдельно определить некоторый файловый тип, которым в дальнейшем пользоваться при описании файловых переменных: type
RecordFile = file of record

А, В : real; end; var
Fl, F2 : RecordFile;

Очень важно различать собственно файл (область памяти на магнитном носителе с некоторой информацией) и переменную файлового типа в некоторой
Turbo Pascal- программе. Считается, что файловая переменная является представителем некоторого дискового файла в программе. Для того, чтобы реализовать доступ к файлу па магнитном диске, программа должна связать его с файловой переменной. Для этого необходимо сопоставить переменную с именем файла. Это имя представляется в виде строки, содержащей полное имя файла и, быть может, цепочку объемлющих каталогов и обозначение дисковода. Такая строка носит название маршрута (или пути) к файлу и формируется по общим правилам MS-DOS.
Связывание маршрута и файловой переменной производится стандартной процедурой Assign, которой передаются два параметра: имя переменной файлового типа и строка с именем (маршрутом) дискового файла, например:
Assign (F, 'с: booksbook4test3 .раз ' ) ;
Помимо маршрута, во втором параметре может быть указано условное
(символическое) обозначение некоторого «псевдофайла» MS-DOS, то есть файла, связанного с конкретным физическим устройством. Допускаются имена, в основном совпадающие с принятыми в MS-DOS обозначениями (‘con’ – консоль, то есть экран дисплея и/или клавиатура, ‘lpti’ или ‘prn’ – печатающее устройство и т. д.).
До тех пор, пока файловая переменная не связана с каким-либо дисковым файлом, никакие операции с ней в программе невозможны, Заметим, что можно связать файловую переменную с еще не существующим дисковым файлом. Это может быть оправдано для случая последующего создания Turbo Pascal- программой файла с данным именем с помощью некоторой системной процедуры.
После того, как файловая переменная с помощью процедуры Assign связана с конкретным дисковым файлом, можно выполнить любую допустимую операцию с ним. Здесь рассмотрим две операции общего характера, позволяющие переименовывать и уничтожать существующие дисковые файлы. Такие операции выполняются системными подпрограммами Rename и Erase со следующими спецификациями:
Rename ( var f; nevname : string );
Erase ( var f );

Основным параметром этих процедур является файловая переменная (она может идентифицировать файл любого типа, и к ней должна была быть ранее применена процедура Assign), а процедуре Rename дополнительно передается новое имя файла. Действие указанных процедур основывается на соответствующих DOS-функциях и функционально эквивалентно командам ren и del командного процессора.

7.2. Структура файлов

7.2.1Открытие и закрытие файлов
В этом и следующем разделах рассматриваются файлы традиционной для языка
Pascal структуры, которые описываются в программе в терминах составляющих компонент. Кроме таких файловых переменных (они также называются
"типизированными" файлами), в языке Turbo Pascal имеются также файлы специального типа - текстовые файлы, которые введены для поддержки одного практически важного частного случая файловых структур, и нетипизированные файлы, которые используются для более эффективной организации обменов на низком уровне.
Важнейшим моментом при использовании переменных файловых типов является интерпретация файла как потенциально бесконечного списка значений одного и того же (базового) типа. Например, описание переменной F вида var
F : file of integer; понимается как определение в программе под именем F списка неопределенного количества целых чисел, расположенного на некотором внешнем запоминающем устройстве (например, на магнитном диске).

С каждой переменной файлового типа также связано понятие текущего указателя файла. Текущий указатель можно понимать как скрытую переменную
(то есть переменную, неявно описанную вместе с файловой переменной), которая обозначает ("указывает" на) некоторый конкретный элемент файла. Таким образом, можно графически так представить интерпретацию файла, связанного с переменной F: 0 1 2

Страницы: 1, 2, 3



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.