
- •Порядок выполнения работы
- •Алгоритм разветвляющейся структуры
- •Условие
- •Операторы разветвления
- •Оператор условного перехода - if ... Then … end if
- •Оператор условного перехода - if ... Then … else … end if
- •Оператор условного перехода - if ... Then …else if
- •Оператор выбора - select case
- •Программирование задач разветвляющейся структуры
- •II Схема алгоритма представлена на рис.2.
Программирование задач разветвляющейся структуры
Рассмотрим на примерах основные этапы решения задач разветвляющейся структуры.
Пример№1. Найти наименьшее значение из трех произвольных чисел.
Введем обозначения: a, b и c – три произвольных числа; Мин – наименьшее из них.
I Математическое описание задачи
Дано: a, b, c
Основные зависимости, необходимые для решения задачи:
Mин=a; (1)
Mин=b; (2)
Mин=c. (3)
Ограничения:
Зависимость (1) выполняется, если а – наименьшее;
Зависимость (2) выполняется, если b – наименьшее;
Зависимость (3) выполняется, если c – наименьшее.
Найти: Mин.
II Схема алгоритма представлена на рис.2.
Да
Нет
Структура
"ЕСЛИ". Из
двух значений aиbвыбирается меньшее. 8
7
9
Структура
"ОБХОД" Для
определения окончательного результата
меньшее из aиbсравнивается сс.
Вывод
в файл
Рис. 2. Пример схемы алгоритма разветвленной структуры
III. Таблица идентификации переменных и их типов
Математическая переменная |
a |
b |
c |
Mин |
Машинная переменная |
a |
b |
c |
Min |
Тип |
real |
IV. Текст программы на языке Фортран 90/95
! Пример №1 программы с разветвляющимся алгоритмом
! Нахождение минимального значения из трех чисел
! Выполнил ст. 219 гр. Иванченко А. Е.
Program Prog_min
implicit none
! Описание переменных
real :: a, b, c, Min
open (5, file='Rezult.txt') ! Файл 'Rezult.txt' связывается с логическим
! устройством с номером 5
print *, 'a, b, c ?' ; read *,a, b, c
if_1: if (a<b) then ! Нахождение наименьшего из двух чисел а и b
Min=a
else
Min=b
end if if_1
if_2: if (c<Min) then ! Нахождение наименьшего из c и Min
Min=c
endif if_2
write (5,*)'Исходные числа' ! Вывод в файл Rezult.txt
write (5,*) 'a=',a, 'b=', b, 'c=',c ! исходных чисел и
write (5,*) 'Наименьшее из них', Min ! минимального из них
close (5) ! Закрытие файла
end Program Prog_Min
Протокол решения задачи.
a, b, c?! подсказка о вводе значений a, b, c
10.5 25 5! значения, введенные с клавиатуры
Press any key to continue! Вывод системного сообщения
На экране нет выходных данных так как они выведены в файл с именем Rezult.txt
Содержимое файла 'Rezult.txt':
Исходные числа:
a= 10.50000 b= 25.00000 c= 5.000000
Наименьшее из них 5.000000
Пример№2. Вычислить значения y по одной из следующих формул в зависимости от значения х, вводимого из заданных диапазонов:
В качестве результата программа должна выводить:
- вводимое значение х;
- результат вычисления y;
- номер формулы, используемой для вычисления.
Введем обозначения:
х – вводимое данное; y – вычисляемое значение; N – номер формулы.
I Математическое описание задачи
Дано: х
Основные зависимости, необходимые для решения задачи:
;
(1)N=1;
(2)
;
(3) N=2;
(4)
y= sin(x) (5) N=3; (6)
Ограничения:
зависимости (1) и (2) выполняются, если 3 х 10;
зависимости (3) и (4) выполняются, если x>10;
зависимости (5) и (6) выполняются, если x<3.
Найти: значение y для произвольных значений х.
II Схема алгоритма приведена на рис. 3.
1
2
3
Да
Нет
4
Вход
3
х 10
Нет
Да
7 11
5
10
6
9
8
12
13
Рис. 3. Пример схемы алгоритма разветвленной структуры
III. Таблица идентификации переменных и их типов
Математическая переменная |
x |
y |
N |
Машинная переменная |
x |
y |
N |
Тип |
real |
integer |
IV. Текст программы на языке Фортран 90/95
! Пример №2 программы с разветвляющимся алгоритмом
! Вычисление y(x)
! Выполнил ст. 219 гр. Иванченко А. Е.
Program Prog_y
implicit none
real ::x, y
integer ::N
! При открытии файла параметр position='append' позволяет дописывать
! данные в файл при повторном запуске программы на выполнение
open (5,file='out_xy.txt', position='append')
print *,'x=?'; read *, x
if_1: if (x ≥ 3 .AND. x ≤ 10) then
y=5.*cos(x)**3
N=1
else if (x>10) then
y=sqrt(x)
N=2
else
y=sin(x)
N=3
endif if_1
write (5,*) 'При х=',x
write (5,*) 'y=',y, 'Формула №', N
close(5)
end Program prog_y
Результаты, записанные в файл с именем out_xy.txt
При = 2.000000
y= 0.9092974 'Формула № 3
При х= 12.00000
y= 3.464102 'Формула № 2
При х= 5.000000
y= 0.1141233 'Формула № 1
Содержание отчета по лабораторной работе
Номер, тема и цель лабораторной работы.
Краткие сведения из теории:
- понятие разветвляющегося вычислительного процесса;
- базовые структуры "ЕСЛИ" и "ОБХОД";
- условия: простые и сложные;
- операторы разветвления.
Условия заданий выданных преподавателем.
Математическое описание задач.
Схемы алгоритмов.
Тексты программ.
Листинги с текстом программ (с комментариями) и результатами выполнения.
Анализ результатов.
Контрольные вопросы.
Какой вычислительный процесс называется разветвляющимся?
Какие базовые структуры алгоритмов используются в разветвляющихся вычислительных процессах?
Назначение базовой структуры "ЕСЛИ".
Назначение базовой структуры "ОБХОД".
В чем отличие логических выражений от арифметических?
Что такое простое условие? Приведите примеры.
Что такое сложное условие? Приведите примеры.
Операторы отношений и правила их записи.
Логические операторы и правила их записи.
Назначение и выполнение оператора if … then …endif
Назначение и выполнение оператора if … then …else …endif.
Назначение и выполнение оператора if … then …else if.
Назначение и выполнение оператора select case.
Какой тип выражения (селектора) используется в операторе select case?
Правила записи списков констант в операторе select case.
В каких случаях выполняются действия, записанные в ветвиcase default?
С помощью какого оператора реализуется структура "ЕСЛИ"?
С помощью какого оператора реализуется структура " ОБХОД "?
Как вывести результаты в файл?
Назначение оператора open.
Назначение оператора close.
ст. преп. каф. ЭВМ Скабалланович Т.И.