Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка 2 для выполнения 2 лабораторной работы по Паскалю.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
538.11 Кб
Скачать

2. Управляющие операторы языка pascal

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

2.1. Оператор условной передачи управления

Оператор условной передачи управления (рис. 6) используют для программирования ветвлений, т.е. ситуаций, когда возникает необходимость при выполнении условия реализовывать одни действия, а при нарушении – другие. Условие записывают в виде логического выражения, в зависимости от результата которого осуществляется выбор одной из ветвей: если результат «True», то выполняется оператор, следующий за служебным словом Then, иначе – оператор, следующий за служебным словом Else.

В каждой ветви допускается запись одного оператора (в том числе и другого If) или составного оператора.

Рис. 6. Синтаксическая диаграмма <Оператор условной передачи управления>

Составным оператором называют последовательность операторов, заключенную в операторные скобки BeginEnd . Операторы последовательности отделяют друг от друга точкой с запятой «;». Перед End точку с запятой можно не ставить. Перед Else точка с запятой не ставится, так как продолжается запись условного оператора.

Из синтаксической диаграммы (БНФ) видно, что допускается не использование ветви Else, например:

If x>2 Then y:=12.45 Else y:=-123*x/454;

If a>b then Writeln(‘a>b);

3. Реализация разветвляющихся алгоритмов в mathcad

MATHCAD – физико-математический пакет для решения прикладных задач, удобный в работе и простой по освоению [4, 5]. Графическая среда MATHCAD позволяет записывать математические формулы в привычном виде, результаты вычислений могут быть представлены как численно, так и аналитически (в виде формул).

С помощью панели «Programming (программирование)» в MATHCAD можно реализовать вычисления и по разветвляющимся алгоритмам. Для создания программной строки понадобится команда «Add Line», для осуществления выбора по условию – команда «if» и команда «otherwise»  в остальных случаях (рис.7). График неэлементарной функции f(x) построен с помощью панели «Graph (Графики)».

Рис. 7. Программирование разветвляющихся алгоритмов в MATHCAD

4. Порядок выполнения лабораторной работы «Разработка алгоритмов для структурного программирования и их реализация. Часть 1: ветвление»

4.1. Пример 1.

Этап 1. Постановка задачи 1. Разработать алгоритм, спецификацию, тестовый пример и программу, которая вычисляла бы значение функции:

.

Этап 2. Анализ. Программа должна начинаться с ввода значений аргумента. Затем, в зависимости от того, в какой интервал попадает введенное значение, вычисляется значение функции по одному из заданных выражений.

Этап 3. Проектирование и определение спецификаций.

Расчет тестовых примеров выполняем в MATHCAD (тесты должны быть определены таким образом, чтобы проверить все ветви программы, рис.8). Результаты расчетов занесены в табл. 1.

Рис. 8. Расчет тестовых примеров

Разветвляющийся алгоритм представлен на рис. 9. Спецификация к алгоритму – в табл. 2.

Рис. 9. Алгоритм решения задачи 1.

Таблица 1.

Тестовые примеры для задачи 1.

Номер теста

х

Результат у

1

-1 (x<0)

1

2

25 (x>8)

5

3

7

4

Таблица 2.

Спецификация к алгоритму на рис. 8.

Наименование

Обозначение в алгоритме

Обозначение в программе

Ед.

изм.

Статус переменной

Тип

1

Аргумент функции

х

х

-

Входная

Веществ.

2

Значение функции

у

у

-

Выходная

Веществ.

Этап 4. Реализация. Разрабатываем программу:

Program Lini; {Заголовок с именем программы}

Uses Crt; {Будет использована процедура из этой библиотеки процедур}

Var x, y:real; {Описание переменных не целого типа}

Begin {Начало программных действий}

ClrScr; {Процедура очистки экрана}

Writeln(‘Введите значение аргумента х= ’);

Readln(х); {Ввод с клавиатура значения}

If x<0 Then y:=Abs(x) Else

If x>8 Then y:=Sqtr(x) Else

у:=4; {Условные операторы и вычисления по формуле}

Writeln(‘y(’,x:4:1,’)=’,y:6:1); {Вывод значения с комментариями}

Readln; {Пустой оператор для просмотра результатов}

End. {Конец действий программы}

Результат тестирования программы:

y(-1.0)= 1.0

y(25.0)= 5.0

y(7.0)= 4.0

Сверяем полученные результаты с тестовым примером.

Вывод: результаты работы программы на алгоритмическом языке PASCAL совпадают с тестовыми (контрольными) примерами.