Файл: Лабораторная работа 1 Программы линейной структуры.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 18.03.2024

Просмотров: 9

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.


Раздел 3 Программирование на языке Pascal

Лабораторная работа №1

Программы линейной структуры

Цель работы: изучить структуру программы на языке Pascal, операторы присваивания, ввода и вывода данных

Содержание работы:

1 Структура программы на языке Pascal

2 Операторы языка Pascal

3 Стандартные функции Pascal

2 Вариант

Задание: найти периметр и площадь прямоугольника.

Ответы на контрольные вопросы:

1 Из каких разделов состоит любая программа на языке Pascal?

Структура программы на языке:

РАЗДЕЛ ОБЪЯВЛЕНИЙ

Этот раздел может содержать следующие операторы:

program

Заголовок программы

{$…}

Глобальные директивы компилятора

uses

Подключаемые библиотеки (модули)

label

Раздел объявления глобальных меток

const

Раздел объявления глобальных констант

type

Раздел объявления глобальных типов

var

Раздел объявления глобальных переменных

Так называемые «локальные» переменные могут быть объявлены внутри блоков программы

РАЗДЕЛ ПРОЦЕДУР И ФУНКЦИЙ

Procedure (function)

Заголовок процедуры (функции)

{тело процедуры}

РАЗДЕЛ ОСНОВНОГО БЛОКА ПРОГРАММЫ

begin

end.

Основной блок программы

Точка ставится только после последнего оператора end


В тексте программы могут присутствовать комментарии. Это невыполняемая часть программы, она не компилируется в машинные коды. Они составляются программистом для пояснения работы программы, её элементов, операторов и т.д. Вставка комментариев считается хорошим тоном среди программистов.
2 Формат и назначение оператора присваивания.

С помощью оператора присваивания ( := ) переменной присваивается новое значение. Формат (синтаксис) оператора:

<имяпеременной>:=<значение (выражение)>
Присваиваемое значение или выражение должно быть совместимо по присваиванию с типом переменной.

3 Формат и назначение операторов ввода данных.

Операторы ввода предназначены для ввода пользователем исходных данных в программу во время её выполнения и имеют вид:

READ(X,Y,Z,...);

READLN(X,Y,Z,...);
где X,Y,Z,... - имена переменных. Данные операторы обеспечивают ввод значений с клавиатуры и присваивают их переменным X,Y,Z,....

Оператор READLN (X,Y,Z,...) отличается от READ(X,Y,Z,...) тем, что после ввода последней переменной курсор переводится в начало новой строки.

Допускается использование оператора ввода без параметров: READLN. Это делается обычно перед последним оператором END. (с точкой), чтобы остановить программу и показать пользователю её результат.

4 Формат и назначение операторов вывода данных.

Для вывода данных на экран используются операторы:

WRITE (X,Y,Z,...);

WRITELN (X,Y,Z,...);

WRITELN ;
где: X,Y,Z,... - имена переменных, значения которых подлежат вы-воду

Оператор WRITE(X,Y,Z,...) выполняет вывод на экран значений переменных X,Y,Z,... в одну строку. Оператор WRITELN (X,Y,Z,...) кроме вывода на экран значений X,Y,Z,..., осуществляет перевод курсора в начало новой строки после вывода последнего значения.

Оператор WRITELN осуществляет просто пропуск строки, в которой находится курсор, к началу новой строки.

Операторы вывода допускают использование указания ширины поля, отводимого под значение в явном виде:

WRITE (Y:m:n,X:k:l,...);

WRITELN (Y:m:n:,X:k:l,...);
где m и k - количество позиций, отведенных под запись целой части значения переменных Y и X соответственно; n и l - количество позиций, отведенных под запись дробной части чисел Y и X.

Вывод: Я изучила структуру программы на языке Pascal, операторы присваивания, ввода и вывода данных.

Лабораторная работа №2

Операторы ветвления: условный оператор, оператор варианта

Цель работы: изучить операторы, используемые для организации ветвления в программе.

Содержание работы:

1 Условный оператор

2 Оператор варианта

2 Вариант

Задание:
2.1 Составить алгоритм и программу вычисления функции y0 (x,y- даны):



2.2 Задание по оператору варианта:

Реализовать в программе меню выбора арифметических действий. В зависимости от варианта посчитать значение выражения Y:=X{+|-|*|/}А. Х и А вводятся.

Ответы на контрольные вопросы:

1 Назначение условного оператора и оператора варианта.

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

2 Формат и действие оператора IF.

Условный оператор IF позволяет выбрать одно из двух направления расчёта в зависимости от некоторого условия, при этом одна из ветвей может отсутствовать. В качестве условия выбора используется значение логического выражения. Оно может быть простым или сложным. Сложные условия организуются при помощи логических операций AND, OR, NOT.

Формат оператора IF имеет вид:

if <выражение> then <оператор1>

[else <оператор2>]
3 Формат и действие оператора Case.

Оператор Case (case – случай) производит ветвление программы на произвольное множество ветвей. Из этого множества либо выбирается единственная ветвь, отвечающая одному из заданных условий, либо ни одной, если ни одно из условий не выполняется.

Оператор варианта состоит из выражения (селектора) и списка операторов, каждому из которых предшествует одна или более констант (они называются константами выбора) или ключевое слово else. Селектор должен иметь порядковый тип данных. Строковый тип и длинный целый тип данных являются недопустимыми типами селектора. Все константы выбора должны быть уникальными и иметь порядковый тип данных, совместимый с типом селектора.

Формат оператора Case:

case <селектор> of

<константа_выбора1>: <оператор1>;

<константа_выбора2>: <оператор2>;

...

<константа_выбораN>: <операторN>;

[else <оператор>]

end;
Оператор Сase сравнивает значение селектора со всеми константами (или диапазонами) выбора и, в случае их выполняет следующий за константой оператор. Если такой константы выбора или такого диапазона выбора не существует и присутствует ветвь else, то выполнятся оператор, следующий за ключевым словом else. Если же ветвь else отсутствует, то никакой оператор конструкции Case не выполняется, а программа автоматически переходит к своему следующему оператору.

Вывод: Я изучила операторы, используемые для организации ветвления в программе.

Лабораторная работа №3

Арифметические циклы

Цель работы: изучить операторы циклов, используемые для организации повторяющихся процессов.

Содержание работы:

1 Оператор цикла repeat

2 Оператор цикла while

3 Оператор цикла for

2 Вариант

Задание:
Вычислить сумму и произведение полученных значений функции. Составить три варианта программы – с операторами repeat, while, for.

t=2х3sin(e3x–450+a)-lnс

10≤x≤25; ∆x=0,2; a=2,22; c=14,2

Контрольные вопросы

1 Какие операторы цикла применяются в языке Pascal?

Оператор цикла задает повторное выполнение определенных операторов. Паскаль предусматривает использование трех операторов цикла:

  • оператор цикла с постусловием repeat

  • оператор цикла с предусловием while

  • оператор цикла с параметром for

Если число повторений заранее известно, то подходящей конструкцией является оператор for. В противном случае следует использовать операторы while или repeat. Для управления повторением операторов можно использовать стандартные процедуры Break и Continue. Break завершает оператор цикла и передает управление первому непо-средственно следующему за циклом оператору, а Continue завершает текущую итерацию и продолжает со следующей итерации этого оператора.

2 Что такое переменная цикла, тело цикла, оператор цикла?

Последовательность действий, которые повторяются в цикле, называют телом цикла. Один проход цикла называют шагом, или итерацией. Переменные, которые изменяются внутри цикла и влияют на его окончание, называются параметрами цикла.

Параметр цикла – это переменная, управляющая выполнением цикла. Параметр цикла изменяет свое значение при каждом проходе тела цикла.

Операторы цикла выполняют блок кода заданное число раз, либо до тех пор, пока не выполнится заданное условие.

3 Формат и действие оператора цикла с пост условием repeat.

Оператор цикла с постусловием начинается со служебного слова repeat, заканчивается после выполнения условия, следующего за служебным словом until.

Формат оператора:

repeat

<последовательность операторов>;

until <выражение>;
Результат выражения должен быть булевского типа. Операторы, заключенные между ключевыми словами repeat и until, выполняются последовательно до тех пор, пока результат выражения не примет значение True (т.е. если выражение есть false, то цикл повторяется). Последовательность операторов выполнится по крайней мере один раз, поскольку проверка - вычисление выражения производится в конце цикла, после каждого выполнения последовательности операторов. При использовании оператора repeat возможно зацикливание программы. Это может произойти, если проверяемое выражение постоянно сохраняет значение False.

4 Формат и действие оператора цикла с предусловием while.

Оператор цикла с предусловием начинается с ключевого слова while и содержит в себе выражение, которое управляет повторным выполнением оператора тела цикла. Оператор тела цикла может быть составным оператором.

Формат оператора:

while <выражение> do <оператор>;

Поскольку проверка условия на повторение цикла производится в начале, до тела цикла, оператор цикла while может быть выполнен ни разу, если выражение проверки примет значение False. Выражение, с помощью которого осуществляется управление повторением оператора, должно иметь булевский тип. Внутренний оператор выполняется повторно до тех пор, пока выражение имеет значение Тruе. Если выражение с самого начала принимает значение False, то цикл не выполняется ни разу. Применяя оператор while, также следует соблюдать осторожность, чтобы не допускать зацикливания.

5 Формат и действие оператора цикла с параметром for. Декрементный и инкрементный структуры оператора.

Оператор цикла с параметром начинается со слова for и вызывает повторяющееся выполнение оператора цикла пока переменной цикла присваивается последовательно возрастающие или убывающие значения. Оператор тела цикла может быть составным оператором.

Оператор for имеет два варианта записи:

- инкрементный (с возрастанием переменной цикла):

for <переменная цикла>:= <начало> to <конец> do <оператор>;
- декрементный (с убыванием переменной цикла):

for <переменная цикла>:= <начало> downto <конец> do <оператор>;
В качестве переменной цикла должна использоваться переменная порядкового типа, объявленная в том блоке, где содержится оператор for. Параметры <начало> и <конец> задаются выражениями, типы которых должны быть совместимы по присваиванию с типом переменной цикла. Когда начинает выполняться оператор for, начальное и конечное значения определяются один раз, и эти значения сохраняются на протяжении всего выполнения оператора for. Оператор, который содержится в теле цикла, выполняется один раз для каждого значения в диапазоне между начальным и конечным значением.

Переменная цикла всегда инициализируется начальным значением.

Когда работает оператор for, значение переменной цикла (счетчика циклов) увеличивается (в случае инкрементного варианта) при каждом повторении на единицу. Если начальное значение превышает конечное значение, то содержащийся в теле цикла оператор не выполнятся. (Операторы в теле цикла не выполняются ни разу, если конечное значение меньше начального).

В случае декрементного варианта цикла значение переменной цикла уменьшается при каждом повторении на единицу. Если начальное значение в таком операторе меньше, чем конечное значение, то содержащийся в теле оператора цикла оператор не выполнятся. (Операторы в теле цикла не выполняются ни разу, если конечное значение больше начального).

Если оператор, содержащийся в теле цикла for, изменяет значение управляющей переменной, то это является ошибкой. После выполнения оператора for значение управляющей переменной становится неопределенным.

Вывод: Я изучила операторы циклов, используемые для организации повторяющихся процессов.

Лабораторная работа № 4

Итерационные циклы

Цель работы: изучение алгоритмов и программ, реализующих итерационные циклы.

Содержание работы:

1 Итерационные циклы

2 Программа итерационного цикла

2 Вариант

Задание: вычислить сумму членов ряда с точностью Е=10-2 при заданном х=0.75


Контрольные вопросы

1 Какие циклы называются итерационными?

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

2 Какие операторы цикла используются в итерационных циклах?

Для организации итерационных циклов используются операторы цикла с предусловием while и цикла с постусловием repeat. Для вычислений с заранее неизвестным количеством повторений (итераций) оператор for не пригоден, поскольку в нём нужно задавать начальное и конечное значения аргумента.

3 Как выполняется проверка на окончание вычислений в цикле?

Для цикла repeat: операторы выполняются последовательно до тех пор, пока результат выражения не примет значение True (т.е. если выражение есть false, то цикл повторяется). Последовательность операторов выполнится по крайней мере один раз. Вычисление выражения производится в конце цикла, после каждого выполнения последовательности операторов.

Для цикла while: проверка условия на повторение цикла производится в начале, до тела цикла, Внутренний оператор выполняется повторно до тех пор, пока выражение имеет значение Тruе. Если выражение с самого начала принимает значение False, то цикл не выполняется ни разу.

Лабораторная работа № 5

Сложные алгоритмы

Цель работы: разработка программ, реализующих циклические и ветвящиеся вычислительные процессы.

Содержание работы:

1 Программа "цикл в цикле"

2 Программа "цикл и ветвление"

3 Программа "цикл в цикле и ветвление"

2 Вариант


(2 - x) +│x│ если -0.8≤x≤0.2

S = cos x + esin x если 0.2



Задание:

Контрольные вопросы

1 Назовите известные вам структуры алгоритмов.

  • Следование. Предполагает последовательное выполнение команд сверху вниз. Если алгоритм состоит только из структур следования, то он является линейным.

  • Ветвление. Выполнение программы идет по одной из двух, нескольких или множества ветвей. Выбор ветви зависит от условия на входе ветвления и поступивших сюда данных.

  • Цикл. Предполагает возможность многократного повторения определенных действий. Количество повторений зависит от условия цикла.

  • Функция (подпрограмма). Команды, отделенные от основной программы, выполняются лишь в случае их вызова из основной программы (из любого ее места). Одна и та же функция может вызываться из основной программы сколь угодно раз.

2 Какие вычислительные процессы реализуются в сложных алгоритмах?

Общая совокупность вычислительных процессов делится на три типа:

  • линейные;

  • ветвящиеся;

  • циклические.


3 Как организуются программы с вложенными циклами?

Если телом цикла является циклическая структура, то такие циклы называют вложенными или сложными. Цикл, содержащий в себе другой цикл, называют внешним. Цикл, содержащийся в теле другого цикла, называют внутренним.

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

4 Какие вычислительные процессы можно выделить в задании по вашему варианту?

«Цикл и ветвление»

5 Охарактеризуйте синтаксис и особенность применения операторов if, repeat.

Условный оператор IF позволяет выбрать одно из двух направления расчёта в зависимости от некоторого условия, при этом одна из ветвей может отсутствовать. В качестве условия выбора используется значение логического выражения. Оно может быть простым или сложным. Сложные условия организуются при помощи логических операций AND, OR, NOT.

Формат оператора IF имеет вид:

if <выражение> then <оператор1>

[else <оператор2>]
Оператор цикла с постусловием начинается со служебного слова repeat, заканчивается после выполнения условия, следующего за служебным словом until. Формат оператора:

repeat

<последовательность операторов>;

until <выражение>;
Результат выражения должен быть булевского типа. Операторы, заключенные между ключевыми словами repeat и until, выполняются последовательно до тех пор, пока результат выражения не примет значение True (т.е. если выражение есть false, то цикл повторяется). Последовательность операторов выполнится по крайней мере один раз, поскольку проверка - вычисление выражения производится в конце цикла, после каждого выполнения последовательности операторов.

Вывод: в ходе лабораторной работы я разработала ряд программ, реализующих циклические и ветвящиеся вычислительные процессы.

Лабораторная работа № 6

Обработка массивов

Цель работы: разработка программ, реализующих вычислительные процессы с индексированными переменными.

Содержание работы:

1 Одномерные массивы

2 Многомерные массивы

3 Обработка массивов

2 Вариант

Задание: найти минимум и сумму отрицательных элементов массива А



Контрольные вопросы

1 Что такое массив данных?

Массив — это последовательная упорядоченная совокупность элементов некоторого типа, которые адресуются с помощью некоторого индекса (номера элемента в массиве).

Наряду с термином «массив» часто используются термины «матрица», «таблица», «вектор».

Поскольку все элементы массива должны быть одного типа, определение типа массива имеет следующий вид:

Type Tarr = array [T1] of T2,

где Tarr – имя массива, array, of – служебные слова, Т1 – означает тип индекса массива, Т2 – тип элементов массива.

2 Как описываются одномерные и многомерные массивы?

Массивы могут быть одномерными и многомерными, например, X[I], A[I,J], D[I,J,K] и др. Число индексов в определении (то есть раз-мерность массива) не ограничивается. Элемент массива также может быть массивом, тогда количество ячеек памяти, отводимое под массив программой, равно общему количеству элементов в массиве. Если тип элемента в типе массив также является массивом, то результат можно рассматривать как массив массивов или как один многомерный массив.

Например, array [1..5] of array [1..10] of Real интерпретируется компилятором точно так же, как массив: array[1..5,1..10] of Real.

3 Как описывается тип элемента массива?

Тип массива (его элементов) должен быть описан до объявления самого массива (его имени):

type

V1 = array[1..100] of real;

V2 = array[char] of boolean;

M1 = array[1..10] of array [1..15] of integer;

Var

Vector: V1;

Symb_Table: V2;

Matrix1, Matrix2: M1;

Однако допускается объявление массива непосредственно в разделе описания переменных:

var

B: array[1..5] of byte;

S: array[(Red, Yellow, Green)] of Boolean;

M: array[1..5,1..7] ofinteger;
Иногда требуется задать массив с помощью типизированной константы:

const

Marks: array[1..4] of integer = (2,3,4,5);

Tmatr: array[1..2,1..3] of byte = ((3,1,5),(7,2,4));
4 Объясните организацию циклов, содержащих индексированные переменные.

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

Vector[1]

Vector[(i+1)*2]

M[i,j]

M[3][1]

M[3,1]
Элемент массива считается переменной; он может получать значения (например, в операторе присваивания), а также участвовать в выражениях.

5 Как задать обработку элементов только 2-го столбца?

Организовать цикл по строкам и фиксированной переменной по колонке равной 2.

For i=1 to n do
<
оператор> a[i,2]
6 Как задать обработку элементов, расположенных ниже главной диагонали?

Следует задать индексы массива в виде:
Fori=2 tondo
For j=1 toi-1 do

<оператор>a[i,j]
7 Как определить максимальный элемент массива?

max:=A[1,1];

for i:=1 to n do

for j:=1 to m do

if A[i,j]>max then

max:=A[i,j];

8 Как определить нечётные элементы массива?

for i:=1 to n do

for j:=1 to m do

if A[i,j] mod 2 <> 0 then
Вывод: в ходе лабораторной работы я разработала программы, реализующие вычислительные процессы с индексированными переменными.

Лабораторная работа №7

Подпрограммы-функции в Turbo Pascal

Цель работы: изучить операторы, используемые для организации подпрограмм – функций.

Содержание работы:

1 Описание функций

2 Параметры функции

2 Вариант

Задание:
Составить программу вычисления функции с использованием подпрограммы - функции при х = 0,45.



Контрольные вопросы

1 Для чего предназначены подпрограммы-функции?

Смысл функции заключается в задании алгоритма вычисления некоторого значения и организации возврата (передачи) этого значения в точку вызова.

2 Как описывается функция?

В заголовке функции определяется идентификатор функции, формальные параметры (если они имеются) и тип результата функции.

Формат функции:

function <идентификатор> [(<список формальных параметров>)]: <тип результата>;

3 Виды параметров функции.

В описании процедуры или функции задается список формальных параметров. Каждый параметр, описанный в списке формальных параметров, является локальным по отношению к описываемой процедуре или функции, и в теле подпрограммы на него можно ссылаться по его идентификатору.

Существует два основных типа параметров: параметр-значение и параметр-переменная. Они характеризуются следующим:

  • Группа параметров без предшествующего ключевого слова var является списком параметров-значений.

  • Группа параметров, перед которыми стоит ключевое слово var является списком параметров-переменных.

4 Как обрабатываются параметры-значения?

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

function MaxElem(A: Vector; n:Byte): Real;

function IsZero(I, K: Integer): Boolean;
5 Как обрабатываются параметры-переменные?

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

Примеры:

function SumMatr(A, B: Matrix; var C: Ma-trix):Real;

function ChrString(var S: String):String;
Вывод: в ходе лабораторной работы я изучила операторы, используемые для организации подпрограмм – функций.

Лабораторная работа №8

Подпрограммы-процедуры в Turbo Pascal

Цель работы: изучить операторы, используемые для организации подпрограмм – процедур.

Содержание работы:

1 Формат описания процедуры

2 Параметры процедуры

2 Вариант

Задание:
Составить программу вычисления функции с использованием подпрограммы-процедуры при х = 0,45.



Контрольные вопросы

1 Для чего предназначены подпрограмма-процедура?

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

2 Как описывается процедура?

Формат объявления процедуры:

procedure<идентификатор>[(<список формальных параметров>)];
3 Как вызывается процедура?

Процедура активизируется с помощью оператора процедуры, в котором содержатся имя процедуры и необходимые параметры (если это необходимо). Вызов процедуры приводит к выполнению операторов, составляющих тело процедуры. Пример описания и вызова процедуры:

procedure ChrXY(N: Byte; var X, Y: Integer);

begin

case N of

1: X:=X+1;

2: X:=X-1;

3: Y:=Y+1;

end;



N:=Random(4)+1;

ChrXY(N,X,Y);
4 Как обрабатываются параметры-значения процедуры?

Смотри ответ на вопрос 4 в лабораторной работе №7

5 Как обрабатываются параметры-переменные процедуры?

Смотри ответ на вопрос 5 в лабораторной работе №7

Вывод: в ходе лабораторной работы я изучила операторы, используемые для организации подпрограмм – процедур.

Лабораторная работа №9

Отладка программ в Turbo Pascal

Цель работы: изучить инструментальные средства и процедуры отладки программы в IDE Turbo Pascal 7.0.

Содержание работы:

1 Средства и процедуры отладки программ

2 Выполнение программы по шагам и трассировка

3 Отладочные выражения, точки останова
Задание:

9.1 Выполнение программы по шагам и трассировка:

1) Набрать программу примера 1 (п. 4.5)

2) Перед каждой строкой программы проставить номер. Например, {1},{2} и т.д.

3) Выполнить программу по шагам, фиксируя в отчете, в строке с каким номером находится строка выполнения при каждом нажатии на F8.

4) Внести в программу изменения в соответствии с примером 2.

5) Выполнить задание п.3)

6) Выполнить трассировку исходной программы (пример 1), фиксируя в отчете, в строке с каким номером находится строка выполнения при каждом нажатии на F7.

7) Выполнить п.4, п.6

9.2 Установка точек останова

1) Набрать и сохранить следующую программу:

program Lab_2;

var

X, Y, A, B, Sum, Sub: Integer;

begin

WriteLn('Введите значения переменныx А и В');

Write('А = ');

ReadLn(A);

Write('В = ');

ReadLn(B);

if A>B then

Sub:=A-B

else

Sub:=B-A;

X:=2*A;

Y:=3*B;

while (Y<>0) and (X<>0) do

begin

X:=X-1;

Y:=Y-1;

Sum:=X+Y;

end;

Sum:=Sub+Sum;

WriteLn('X = ',X);

WriteLn('Y = ',Y);

WriteLn('Sum = ',Sum);

end.

2) Оттрассировать программу, наблюдая вывод в специальном окне вывода Output.

3) Установить точку останова на операторе if. Выполнить программу до этой точки. Продолжать пошаговое выполнение.

4) После вычисления разности переменных А и В просмотреть результат (Sub), используя окно Evaluate and Modify.

5) Добавить в окно Watches переменные X,Y,Sum для наблюдения изменения их значений. Продолжать пошаговое выполнение.

6) Дойдя до оператора цикла while задать условную точку остано-ва по числу проходов или по логическому условию. Выполнить программу до этой точки.

7) Продолжать пошаговое выполнение до конца программы, наблюдая изменение значений X,Y,Sum в окне Watches.

8) Просмотреть результат работы программы, используя экран пользователя.

Контрольные вопросы

1 Какие средства и процедуры отладки программ имеются в Pascal?

Средства и процедуры отладки программы:

  • обзор ошибок и методов отладки

  • управление выполнением программы

  • проверка значений

  • остановки выполнения программы


2 Как выполнить программу по шагам?

Команды выполнения по шагам Step Over и трассировки Trace Into меню Run дают возможность построчного выполнения программы. Выбор команды Run|Step Over или нажатие клавиши F8 вызывает выполнение отладчиком всего кода в операторе, указанном строкой выполнения, включая любые вызываемые на ней процедуры или функции, пока управление не вернется обратно к программисту. После этого строка выполнения указывает следующий выполняемый оператор.

3 Что такое трассировка программы?

Трассировка — пошаговое выполнение программы с остановками на каждой команде или строке.

4 Что такое отладочные выражения, как они используются?

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

Часто программисту необходимо отслеживать значение перемен-ной или выражения при выполнении программы по шагам. Тогда по-лезно открыть окно просмотра Watches. Это окно IDE показывает пере-менные и их значения в каждый конкретный момент. Также пользователь имеет возможность добавлять и редактировать просматриваемые выражения. Кроме добавления просматриваемых выражений при выполнении программы, отладчик имеет средство, позволяющее в любой момент вычислять выражения и изменять на этапе выполнения значения переменных.

5 Что такое точки останова, как они устанавливаются?

Точка останова - это обозначенная в коде программы позиция, в кото-рой необходимо прекратить выполнение программы и вернуть выполнение отладчику.

Для задания точку останова нужно переместите курсор к той строке, где следует остановиться. Строка должна содержать выполняемый код и не может быть комментарием, описанием или пустой строкой. Выбор команды Toggle Breakpoint в локальном меню окна редактирования или нажатие клавиш Ctrl+F8 устанавливает на строке точку останова, которая обозначается подсветкой всей строки.

Теперь при выполнении программы из IDE она будет останавливаться при достижении данной строки, но перед ее выполнением. Строка, содержащая точку останова, выводится при этом в окне редактирования как строка выполнения. В этот момент можно выполнить любые другие действия по отладке (выполнение программы по шагам, трассировку, просмотр и вычисление).

Вывод: в ходе лабораторной работы я изучила инструментальные средства и процедуры отладки программы в IDE Turbo Pascal 7.0.