Цель работы: Овладение практическими навыками разработки, программирования алгоритмов разветвляющейся и циклической структур, получение дальнейших навыков по отладке и тестированию программы.
Задание:
1. Составить блок-схему алгоритма разветвленной структуры.
2. Вычислить значение функции, заданной в таблице (в соответствии с вариантом задания) при изменении аргумента в указанном диапазоне и с заданным шагом.
3. Организовать вывод значения аргумента и вычисленного значения функции в виде таблицы.
Методические указания
На практике редко удаётся представить решение задачи в виде алгоритма линейной структуры. Часто в зависимости от каких-либо промежуточных результатов вычисление осуществляется либо по одним, либо по другим формулам, т.е. в зависимости от выполнения некоторого логического условия вычислительный процесс осуществляется по одной или другой ветви. Алгоритм такого вычислительного процесса называется алгоритмом разветвляющейся структуры.
В общем случае число ветвей в алгоритме разветвляющейся структуры необязательно равно двум, а может быть и больше. Для организации разветвления в программах используется операторы условного, безусловного перехода и выбора. Операторы условного и безусловного перехода могут также использоваться для организации циклических вычислительных процессов.
Логические функции
Таблица 3
Паскаль | |
НЕ | Not |
И | And |
ИЛИ | or |
Логические отношения
Паскаль | |
Равно | = |
Не равно | <> |
Больше | > |
Меньше | < |
Больше или равно | >= |
Меньше или равно | <= |
Таблица 4
Вариант задания | Функция | Исходные данные | Диапазон и шаг изменения аргумента |
![]() | a=-0.5 b=2 |
t ![]() | |
![]() | a=1.5 |
x ![]() | |
![]() | a=2.8 b=-0.3 c=4 |
x ![]() | |
![]() | a=1.65 |
x ![]() | |
![]() | a=2.3 |
x ![]() | |
![]() | a=2.5 |
x ![]() | |
![]() | b=1.5 |
x ![]() | |
![]() |
x ![]() | ||
![]() | a=20.3 |
x ![]() | |
![]() | t=2.2 |
x ![]() | |
![]() | a=2.6 b=-0.39 |
x ![]() | |
![]() | a=0.9 |
x ![]() | |
![]() | a=2.1 b=1.8 c=-20.5 |
i ![]() | |
![]() | a=0.3 n=10 |
i ![]() | |
![]() | a=2.5 b=0.4 |
t ![]() |
Пример программы разветвленной структуры.
uses CRT; { Подключается библиотека CRT }
var x, y: Real;
s: Char; { Переменная символьного типа }
f: Boolean; { Переменная логического типа }
begin
ClrScr; { Производится очистка экрана }
WriteLn('Cоставил Поляков Д.Г., КТФ, гр. Р-11 ');
WriteLn; { Вывод пустой строки }
repeat { Цикл с постусловием }
f:= False; { Флаговая переменная }
WriteLn('Введите аргумент вычисляемого выражения');
ReadLn(x); { Считывается вводимое число }
if (x>10) then y:=1
else if (x>=0) and (x<=10) then y:=2*x–1
else if (x<0) then y:=Abs(1–3*x);
WriteLn('Выводится результат вычисляемого выражения');
WriteLn(y:4:5); { Форматный вывод }
WriteLn('Вычислять ли функцию для другого аргумента? Y/N');
s:=ReadKey; { Считывается символ с клавиатуры }
WriteLn;
if s in ['y','Y'] then f:= True;
until f = False;
end.
Содержание отчёта по лабораторной работе
1 Цель лабораторной работы.
2. Задание.
3. Методические указания.
4. Блок-схема алгоритма программы.
5. Текст программы.
6. Результаты расчетов.
Контрольные вопросы
1 Как выполняется оператор if?
2 Какое выражение называется логическим?
3 Как обозначаются логические операции в Паскале?
4 Каких основных правил следует придерживаться при программировании разветвляющихся алгоритмов?
5 Нарисуйте блок-схему оператора if.
6 Что такое алгоритм разветвлённой структуры?
7 Перечислите логические функции на языке Паскаль.
8 Перечислите логические отношения на языке Паскаль.
9 Как выполняется оператор for?
10 Нарисуйте блок-схему оператора for.
Литература [2, 3].
Лабораторная работа № 3