Автор: Пользователь скрыл имя, 21 Ноября 2011 в 18:11, курсовая работа
Процесс решения задачи на ПК – это совместная деятельность человека и машины. Его условно можно разделить на несколько этапов. Человеку отводятся шаги, связанные с творческой деятельностью (постановкой, алгоритмизацией, программированием задачи и анализом результатов), на долю компьютера – этапы обработки информации в соответствии с разработанным алгоритмом. При этом говорят, что компьютер выполняет программу, реализующую данный алгоритм.
Введение 3
Общая часть 4
Алгоритм. Свойства алгоритмов. Виды алгоритмов 4
Среда программирования ИИО Borland Pascal 6
Алфавит языка Borland Pascal 7
Структура программы 9
Типы данных 10
Операторы ввода- вывода 11
Операции. Стандартные функции 13
Условный оператор 17
Операторы цикла 17
Оператор выбора 20
Одномерные и двумерные массивы 21
Строки. Процедуры и функции для работы со строками 23
Подпрограммы 26
Множества 26
Записи 27
Файлы 27
Динамическая и статистическая память 30
Динамические типы данных 31
Модуль Graph 34
Модуль Crt 35
Модули и модульное программирование 36
2 Постановка задачи 39
3 Описание входных и выходных переменных, процедур и функций 40
4 Проект решения задания 44
5 Текст программы 45
6 Листинг результатов 63
7 Список использованных источников 68
8 Графическая часть
For j:= 1 to 20 do
A[i, j] := 0;
При организации вложенных (сложных) циклов необходимо учитывать:
1.12
Строки. Процедуры функции работы
со строками
Строка (строковый тип данных) – это последовательность символов кодовой таблицы ПК. Количество символов в строке (длина строки) может лежать в диапазоне от 0 до 255. Для определения данных строкового типа используется идентификатор string, за которым следует значение максимальной длины строки данного типа (заключается в квадратные скобки).
Строковые данные могут использоваться в качестве констант. Строковая константа – последовательность символов, заключенная в апострофы. Например, ‘237’, ‘это строковая константа’.
Переменную строкового типа можно определить в разделе описания переменных:
Var <имя>: string[<максимальная длина строки>].
Например, var Name: string[20]. В описании строки можно не указывать длину, в этом случае она равна максимальной величине – 255. Элементы строки определяются именем строки с индексом, заключенным в квадратные скобки. Например, N[5]. Первый символ строки имеет номер 1 и т.д. Можно сказать, что строка представляет собой одномерный массив, элементами которого являются символы. Тип string и тип char совместимы, они могут употребляться в одних и тех же выражениях.
Выражения, в которых операндами служат строковые данные, называются строковыми. Они могут состоять из строковых констант, переменных, знаков операций. Над этими данными допустимы операция сцепления (конкатенация) и операции отношения.
Операция сцепления (+) применяется для соединения нескольких строк в одну строку. Сцеплять можно и константы, и переменные. Длина результирующей строки не должна превышать 255 символов.
Операции отношения (=, <>, >, <, <=, >=) проводят сравнение двух строк и имеют приоритет более низкий, чем операция конкатенации. Сравнение строк производится слева направо до первого несовпадающего символа. Строка считается больше, если в ней первый несовпадающий символ имеет больший номер в таблице кодов.
Например, ‘MS-DOS’<’MS-Dos’.
Процедура Delete(St, poz, n) – удаление n символов строки St, начиная с позиции Poz.
Процедура Insert (S1, S2, Poz) – вставка строки S1 в строку S2, начиная с позиции Poz.
Процедура Str(N,St) – преобразование числового значения N в строковый и помещение результата в строку St.
Процедура Val(St, N,Code) – преобразует значение St в величину целочисленного или вещественного типа и помещает результат в N. Code – целочисленная переменная. Если во время операции преобразования ошибки не обнаружено, значение Code равно 0, если же обнаружена ошибка, то Code будет содержать номер позиции первого ошибочного символа, а значение N не определено.
Функция Copy(S, Poz, N) – выделяет из строки S подстроку длиной N символов, начиная с позиции Poz.
Функция Concat(S1,S2,…,Sn) – выполняет сцепление строк S1,S2,…,Sn в одну строку.
Функция Length(S) – определяет текущую длину строки S.
Функция Pos(S1,S2) – определяет первое появление в строке S2 подстроки S1.
Функция UpCase (ch) – преобразует строчную букву в прописную.Обрабатывает буквы только латинского алфавита.
[2,10-25]
1.13
Подпрограммы
Рекомендуется большую задачу разбивать на отдельные смысловые части (подпрограммы), программировать их отдельно, а затем объединять в единую программу. Использование подпрограмм считается хорошим стилем программирования.
Любая
программа может содержать
В языке программирования Pascal имеется два вида подпрограмм: процедуры (Procedure) и функции (Function).
Различают
формальные и фактические параметры. Формальные
параметры располагаются в подпрограмме.
Они определяют, как будет происходить
обработка конкретных значений этих параметров.
Фактические параметры указываются при
обращении к подпрограмме. При вызове
подпрограммы значения фактических параметров
автоматически передаются в переменные,
являющиеся формальными параметрами.
После чего начинается выполнение подпрограммы.
1.14
Множества
Множество - неупорядоченная совокупность неповторяющихся элементов одного типа, имеющих общее имя. Количество элементов множества может меняться в пределах от 1 до 255. Описание типа множество имеет вид:
< имя типа > = Set Of < базовый тип >;
Здесь <базовый тип> - это тип элементов множества, в качестве которого может использоваться любой порядковый тип, кроме Integer. (В Турбо-Паскале также кроме типов Word, Shortint, Longint).
Для
задания множества используется
конструктор множества, заключенный
в квадратные скобки список элементов
множества.
1.15
Записи
Запись - это структура данных, состоящих из фиксированного числа компонентов, называемых полями записи. В отличие от массива, компоненты (поля) записи могут быть различного типа. Чтобы можно было ссылаться на тот или иной компонент записи, поля именуются. Описание записи имеет вид:
< имя типа >= Record < список полей > End
Список полей содержит описания полей с указанием их имен и типов. Тип определяется от имени двоеточием, описания полей определяются друг от друга точкой с запятой. Описания нескольких полей одного типа можно объединить, перечислив через запятую их имена и затем указав их общий тип.
В этом примере тип birthday (день рождения) содержит три поля с именами day, month, year (день месяц и год), переменные a и b содержат записи типа birthday. К каждому из компонентов записи можно получить доступ, если использовать составное имя, т.е. указать имя переменной, затем точку и имя поля: a.day := 27; b.year := 1984;
Имена
полей должны быть уникальными в
пределах той записи, где они объявлены,
однако, если записи содержат поля-записи,
то имена могут повторяться на разных
уровнях вложенности.
1.16
Файлы
В языке Паскаль файл - это состоящая из некоторого числа компонент одного типа структура данных со следующими особенностями - число компонент файла не фиксируется (в отличие от массива) и не ограничивается сверху некоторым числом (в отличие от строк и множеств);- доступ к компонентам файла возможен только путем их последовательного перебора от начала файла (с первой компоненты); - компоненты файла создаются только процедурой вывода и доступны только процедуре ввода. В Паскале определены файлы двух видов, описываемые следующим образом:
< имя > = File Of < тип > ;ъ
< имя > = Text ;
Первые называются типизированными файлами, а вторые -текстовыми.
В Турбо-Паскале описанные выше файлы называются логическими (кроме того, в системе Турбо-Паскаль есть логические файлы третьего вида - не типизированные). Основное назначение логического файла - обеспечить программе средства для обмена данными с периферийными устройствами компьютера. В связи с этом вводится понятие физического файла, как совокупности данных во внешней памяти (дискета, жесткий диск, магнитная лента и др.) Кроме того, в качестве физического файла могут использоваться и сами периферийные устройства, например, принтер). Средством установления связи между логическими и физическими файлами в Турбо-Паскале является процедура Assign.
Assign (< ф.п. >, < имя файла >); < ф.п. > - файловая переменная (переменная файлового типа), описанная в программе (имя логического файла). < имя файла > - текстовое выражение, значением которого является записанное по правилам операционной системы MS DOS имя файла (имя физического файла). Типы компонент логического и физического файла должны совпадать. Затем необходимо инициализировать файл, указав для него направление передачи данных, т.е. открыть файл для записи или чтения. Для чтения файл открывается стандартной процедурой Reset (< ф.п. >); при этом специальная переменная-указатель устанавливается на начало файла.
Стандартная процедура Rewrite (< ф.п. >) открывает файл для записи, при этом файл всегда создается заново, с потерей информации в данном физическом файле, если она была туда ранее записана.
Стандартная процедура Append(< ф.п. >) открывает для записи существующий текстовой файл с целью его расширения, при этом переменная-указатель ставится в конец файла. Чтение и запись происходят при помощи уже знакомых нам процедур ввода-вывода Read и Write, с тем лишь отличием, что в них необходимо указать в качестве первого параметра файловую переменную. После каждой операции переменная-указатель перемещается на одну компоненту. После завершения в программе операций по обмену данными с файлом его необходимо закрыть стандартной процедурой. Close(< ф.п. >).
При работе с файлами используется функция Eof(< ф.п. >), которая возвращает значение True, если переменная-указатель стоит в конце файла, и False - в противном случае.
Типизированный тип файлов, для которого нет поддержки в OS и VCL – это типизированные файлы. Это такой вид файлов, в котором содержатся записи одного типа и фиксированной длины. Часто используется или для организации мини баз, конфигураций, иногда для импорта/экспорта в специальных форматах. Работа с такими файлами не сложнее, чем работа с текстовыми файлами, наряду с освоенными методами добавляется только одно новое свойство. Если текстовые файлы чисто последовательные, то в типизированных файлах можно перемещаться на любую запись и затем производить последовательное чтение или запись. Это очень похоже на работу с TFileStream за одним исключением, единицей информации является не байт, а тип.
Типизированный файл определяется следующим образом
var
FileVar: file of тип;
Где тип это или предопределенный или пользовательский типы. В качестве типов не могут фигурировать динамические структуры, такие как динамические массивы, длинные строки или любые указатели, поскольку все записи должны быть одинаковой длины и не должны указывать на внешние данные. Для обработки таких данных надо использовать не типизированные файлы.
Текстовые файлы представляют собой последовательность строк, а
строки
- последовательность символов. Строки
имеют переменную длину, каждая строка
завершается признаком конца строки.
1.17
Динамическая и статистическая память
Структуры, обладающие перечисленными признаками, называются статическими. Из оперативной памяти к ним можно обращаться по именам. Они определяются до выполнения программы и не изменяются и не уничтожаются во время выполнения программы. Эти типы адекватны очень широким классам задач в разных проблемных областях (например, в математических и физических задачах используются массивы – векторы и матрицы; в информационно-логических задачах со сложным описанием объектов – записи-records и т.д.). Именно поэтому они и реализованы в языках программирования. Три уровня описания данных здесь максимально сближены. Если для решения задачи достаточно этих структур, то не требуется особых усилий для их описания на языке программирования. Фактически на уровне языка отображаются абстрактные структуры данных. До сих пор мы рассматривали только классы задач, где статических типов было достаточно и они эффективно работали.