Ход отладки программы и контрольный пример

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

Файлы: 1 файл

kursovaya.doc

— 251.50 Кб (Скачать)

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 - вывод меню.

Информация о работе Ход отладки программы и контрольный пример