Алгоритмы линейной структуры и их
Программирование
Линейныминазывают алгоритмы, в которых операции выполняются последовательно одна за другой, в естественном и единственном порядке.
Рассмотрим реализацию простейших линейных алгоритмов и приведем полный текст программы на языке Рascal. В линейных алгоритмах все блоки имеют последовательное соединение логической связью передачи информационных потоков. Линейные алгоритмы, как правило, являются составной частью любого алгоритмического процесса.
Пример 3. Вычислить значение функции:
.
Функцию Y целесообразно вычислять в такой последовательности: предварительно ввести с клавиатуры переменные a, b, c. Далее присвоить значение переменной х. Потом найти значение выражения, обозначенное переменной z, и далее определить выражение Y. Используя общепринятые символы блоков (рисунок 1), изобразим схему разрабатываемого алгоритма (рисунок 2) и составим программу: при значении аргумента x = 1,5 и произвольных (задаваемых самим пользователем) значениях переменных a,b,c.
. | PROGRAM PRIMER2 ; VAR b,c : INTEGER ; a,x,Y,z : REAL ; BEGIN READLN(a,b,c) ; x := 1.5 ; z := (a*x*x + b) / c ; Y := ARCTAN(SQRT(z) + z) ; WRITELN(‘Y=’, Y:8:4) ; END. |
Рисунок 2 – Схема алгоритма линейной структуры и его программная линеаризация (пример 3) |
После запуска программы на выполнение вводим численные значения исходных данных a, b, c с клавиатуры, разделяя числа пробелами. После выполнения программы на экране появится результат вычислений.
|
|
Рассмотрим реализацию другого простого линейного алгоритма.
Пример 4. Вычислить значение функции Y по формуле
Y = sina2 + 4ax3 + |a – b| для заданных значений переменных a, x, b (a = 1,5, x = 2, b = 5).
PROGRAM PRIMER4; VAR x,b: INTEGER; a,Y: REAL; BEGIN READLN (a,b,x); Y:=SIN(a*a)+4*a*x*x*x+ABS(a-b); WRITELN (‘Y=’, Y:8:4); END. | |
Рисунок 3 – Схема алгоритма линейной структуры примера 4 |
После запуска программы на выполнение вводим численные значения исходных данных a, b, x с клавиатуры, разделяя числа пробелами: 1.5 2 5.
После выполнения программы на экране появится результат вычислений в виде: Y= 52.2781.
Программирование разветвляющихся
Алгоритмов
Оператор условного перехода IF
Для программирования разветвляющихся алгоритмов используются операторы перехода, которые позволяют изменять последовательность выполнения операторов программы. Операторы перехода, обеспечивающие выполнение той или иной ветви алгоритма в зависимости от выполнения некоторого условия, называются условными.
Условный оператор IF записывается в виде:
IF <(логическое) выражение выполняется>
THEN <оператор 1>
ELSE <оператор 2>;
|
|
Оператор условного перехода IF может быть представлен схемой (рисунок 4). Если логическое выражение истинно, то выполняется оператор 1, если нет – оператор 2. В качестве операторов 1, 2 могут использоваться другие операторы IF. В этом случае каждое ELSE относится к ближайшему слеваIF. Рекомендуется словоELSE писать под соответствующим ему словом THENдля удобства восприятия программы. Перед ELSE“;” никогда не ставится.
Рисунок 4 – Схема оператора условного перехода IF
В логических выражениях используются операции отношения (таблица 4). Результатом вычисления логического выражения могут быть только два значения: истина (TRUE) или ложь (FALSE).
Таблица 4 – Операции отношения Рascal
Операция | Действие | Выражение | Результат |
= | Равно | A=B | True, если A=B |
<> | Не равно | A<>B | True, если A<>B |
< | Меньше | A<B | True, если A<B |
> | Больше | A>B | True, если A>B |
<= | Меньше или равно | A<=B | True, если A<=B или А=В |
>= | Больше или равно | A>=B | True, если A>=B или А=В |
Пример 5. При заданных значениях переменных a и b вычислить Y по одной из формул:
Рисунок 5 – Схема алгоритма решения примера 5 | PROGRAM PRIMER5 ; VAR a,b,Y: REAL; BEGIN READLN (a,b); IF a>b THEN Y:=SIN(a) ELSE Y:=COS(b) ; WRITELN (‘Y=’,Y:10:4) ; END. |
Пример 6. При задаваемом значении x вычислить Y по одной из формул:
|
|
PROGRAM PRIMER6 ; VAR Y : INTEGER; x : REAL; BEGIN READLN (x); IF x<0 THEN Y:=1 ELSE IF x<10 THEN Y:=2 ELSE Y:=3; WRITELN (‘Y=’,Y:2); END. | |
Рисунок 6 – Схема алгоритма решения примера 6 |
У оператора IF ветвь ELSE может отсутствовать, тогда оператор записывается в следующем виде:
IF <логическое выражение> THEN <оператор 1>;
и реализующая его схема имеет вид:
Рисунок 7 – Схема условного оператора IF при отсутствии ветви ELSE
В логических выражениях для записи сложных условий, кроме операций отношения, могут использоваться логические операции (таблица 5).
Дата добавления: 2018-05-31; просмотров: 357; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!