Глава 2. Задание первой части курсовой работы
Разработать модуль (схемы алгоритмов и программы), содержащие процедуры и функции, решающие поставленную задачу :
Вариант № 21
Вычислить произведение элементов каждого столбца матрицы :
Определить максимальное значение произведения :
Разработать вызывающую программу (алгоритм и текст программы), предусмотрев процедуру очистки экрана и вывода информации на экран с текстовыми комментариями. Например :
Курсовую работу выполнил студент группы А – 61 Иванов Роман Борисович
Разработанный модуль содержит следующие программы :
Процедуру формирования элементов матрицы в интервале –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