Автор: Пользователь скрыл имя, 13 Мая 2012 в 15:31, курсовая работа
Персональные компьютеры – это универсальные устройства для обработки информации, они могут выполнять любые действия в этом направлении. Но для этого надо составить для компьютера на понятном ему языке точную и подробную программу.
Введение 5
1. Теоретическая часть 6
1.1. Постановка задачи 6
1.2. Описание языка программирования 6
2. Экспериментальная часть 16
2.1. Описание структурной схемы алгоритма 16
2.2. Описание программного кода 20
2.3. Ход отладки программы и контрольный пример 21
Заключение 23
Список литературы 24
Приложение(листинги программ) 25
date_27_sep_39
external {Это - стандартная директива!}
_beta
Примеры неправильных идентификаторов:
Program {начинается цифрой}
blocktl {содержит специальный символ}
My Prog {содержит пробел}
mod {зарезервированное слово}
Константы.
В качестве констант в Турбо Паскале могут использоваться целые, вещественные и шестнадцатеричные числа, логические константы, символы, строки символов, конструкторы множеств и признак неопределенного указателя NIL.
Целые числа записываются со знаком или без него по обычным правилам и могут иметь значение от -2 147 483 648 до +2 147 483 647. Следует учесть, что если целочисленная константа выходит за указанные границы, компилятор выдает сообщение об ошибке. Такие константы должны записываться с десятичной точкой, то есть определяться как вещественные числа.
Вещественные числа записываются со знаком или без него с использованием десятичной точки и/или экспоненциальной части. Экспоненциальная часть начинается символом е или Е, за которым могут следовать знак + (плюс) или - (минус) и десятичный порядок. Символ е (Е) означает десятичный порядок и имеет смысл «умножить на 10 в степени». Например:
3 .14Е5 — 3.14 умножить на 10 в степени 5;
-17е-2— минус 17 умножить на 10 в степени минус 2.
Если в записи вещественного числа присутствует десятичная точка, перед точкой должна стоять хотя бы одна цифра. Если используется символ экспоненциальной части е (Е), за ним должна следовать хотя бы одна цифра десятичного порядка.
Шестнадцатеричиое число состоит из шестнадцатеричных цифр, которым предшествует знак доллара $ (ASCII-код 36). Диапазон шестнадцатеричных чисел — от $00000000 до $FFFFFFFF.
Логическая константа — это либо слово False (ложь), либо слово True (истина).
Символьная константа — любой символ ПК, заключенный в апострофы:
' z' — символ z;
' Ф' — символ Ф.
Если необходимо записать собственно символ апострофа, он удваивается: ""-символ ' (апостроф).
Допускается запись символа указанием его внутреннего кода, которому предшествует символ # (код 35), например:
#97 — символ а;
#90 — символ Z;
#39— символ ';
#13 — символ CR (возврат каретки).
Строковая константа — любая последовательность символов (кроме символа возврата каретки CR), заключенная в апострофы. Если в строке нужно указать сам символ апострофа, он удваивается, например:
'Это — строка символов'
'That' 's string'
Строка символов может быть пустой, то есть не иметь никаких символов в обрамляющих ее апострофах. Строку можно составлять из кодов нужных символов с предшествующими каждому коду символами #, например, следующие две строки эквивалентны:
#83#121#109#98#11#108
'Symbol'
Наконец, в строке можно чередовать части, записанные в обрамляющих апострофах, с частями, записанными кодами. Таким способом можно вставлять в строки любые управляющие символы, в том числе символ CR (код 13), например:
#7'Ошибка !'#13'Нажмите любую клавишу ...'#7 .
Конструктор множества — список элементов множества, обрамленный квадратными скобками, например:
[1,2,2..7,12] [blue, red]
[]
[true]
В отличие от стандартного Паскаля, в Турбо Паскале разрешается в объявлении констант использовать произвольные выражения, операндами которых могут быть ранее объявленные нетипизированные константы, имена типов и объектов, а также следующие функции от них:
abs lo ptr swap
chr odd round trunc
hi ord sizeof
length pred succ
Например:
const
MaxReal = Maxlnt div SizeOf(real);
NumChars = ord('Z') - ord('a') + 1;
LnlO - 2.302585092994;
LnlOR = 1 / LnlO;
Выражения.
Основными элементами, из которых конструируется исполняемая часть программы, являются константы, переменные и обращения к функциям. Каждый из этих элементов характеризуется своим значением и принадлежит к какому-либо типу данных. С помощью знаков операций и скобок из них можно составлять выражения, которые фактически представляют собой правила получения новых значений.
Частным случаем выражения может быть просто одиночный элемент, то есть константа, переменная или обращение к функции. Значение такого выражения имеет, естественно, тот же тип, что и сам элемент. В более общем случае выражение состоит из нескольких элементов (операндов) и знаков операций, а тип его значения определяется типом операндов и видом примененных к ним операций.
Примеры выражений:
У
21
(а + b) * с
sin(t)
а > 2
not Flag and (a = b)
NIL
[1, 3..7] * setl
Операции.
В Турбо Паскале определены следующие операции:
- унарные операции: not, @;
- мультипликативные операции: *, /, div, mod, and, shl, shr;
- аддитивные операции: +, -, or, xor;
- операции отношения: =, о, <, >, <=, >=, in.
Приоритет операций убывает в указанном порядке, то есть высшим приоритетом обладают унарные операции, низшим — операции отношения. Порядок выполнения нескольких операций равного приоритета устанавливается компилятором из условия оптимизации кода программы и не обязательно слева направо. При исчислении логических выражений операции равного приоритета всегда вычисляются слева направо, причем не обязательно все: при установленном в среде Турбо Паскаля флажке Options - Compiler - Complete boolean eval вычисляются все операции отношения, при неустановленном — только те, которые достаточны для получения результата.
Структура программы.
Структура любой программной единицы (программы, модуля, процедуры или функции) должна быть такой:
«Объявление программной единицы>
{Раздел описаний}
begin
(Раздел исполняемых операторов)
end<символ конца программной единицы>
Здесь <Объявление программной единицы> — заголовок программы, модуля, процедуры или функции (заголовок программы можно опускать без каких-либо последствий для программы, а для модуля, процедур и функций наличие заголовка обязательно); <символ конца программной единицы> — символ точки (.) для программы и модуля или символ точки с запятой (;) для процедуры и функции.
Любой из двух разделов программной единицы (раздел описаний и раздел исполняемых операторов) или оба одновременно могут быть пустыми, то есть не содержать никаких описаний или исполняемых операторов.
В разделе описаний должны содержаться описания всех идентификаторов, используемых в разделе исполняемых операторов. Исключением являются идентификаторы, определенные в интерфейсных частях программных модулей (библиотек), а также глобальные для процедуры или функции идентификаторы. Если в программной единице используется идентификатор из интерфейсной части какого-либо модуля, в начале программы в предложении uses необходимо указать имя этого модуля. Последнее не относится к идентификаторам, определенным в стандартном модуле System, то есть имя этого модуля в предложении uses указывать не нужно. Более того, модуль System считается предварительно объявленным, поэтому следующее объявление компилятор расценит как попытку двойного объявления модуля System и выдаст соответствующее сообщение об ошибке:
uses System;
В разделе описаний объявляются идентификаторы типов, объектов, констант, переменных, а также метки, процедуры и функции. Описанию типов и объектов должно предшествовать зарезервированное слово type, описанию констант — const, переменных — var и меток — label, например:
type
DigType = set of ' 0'..'9';
StrType = String [40]; const
N = IOC-EPS = le-9; var
x,y : real;
st :.StrType; label
lbl, lb2;
В отличие от стандартного Паскаля, разделы type, const, var, label могут следовать друг за другом в любом порядке и встречаться в разделе описаний сколько угодно раз.
2 Экспериментальная часть
2.1. Описание структурной схемы алгоритма
Рис. 1. Блок – схема алгоритма поиска минимального элемента столбца матрицы и умножение всех элементов этого столбца на найденное значение
Рис. 2. Блок – схема алгоритма вычислений в векторах.
Рис. 3. Блок – схема программы
2.2. Описание программного кода
Разработанная программа состоит из одного модуля KURS1.1.PAS.
Рассмотрим его состав.
Константы:
k=10 – максимальная размерность матрицы.
Типы:
vektor=array[1..k] of integer - одномерный массив целых чисел.
matric=array[1..k,1..k] of integer - двумерный массив целых чисел.
Глобальные переменные:
A,B – матрицы до и после преобразований, matric.
G – вектор, vektor.
Ch - номер режима работы с программой, Char.
GD,GM – графический драйвер, графический модуль, integer
TecDeystvie – номер активного пункта, integer.
i,j – номер столбца, строки, integer.
M,N – количество строк, столбцов, integer.
Min – минимальный элемент, integer.
Sum – сумма, integer.
Proizv – произведение, integer.
Процедура SlowText(x,y,c,s) – вывод текста на экран.
Х,у - координаты, integer.
C – расстояние межу символами, integer.
S – выводимый текст, string.
Процедура Menu - вывод меню.
Информация о работе Ход отладки программы и контрольный пример