Ну, что чайники-лентяи! Начинаем урок номер 2.
Здесь вам понадобится знание оператора IF. Вообще, существует
два типа: арифметиче-ский и логический. Первый тип:
IF (арифметическое_выражение)
метка_1, метка_2, метка_3
Он работает следующим образом. Если арифметическое_выражение<0,
то управление передаётся оператору с меткой метка_1. Если арифметическое_выражение=0,
то управ-ление передаётся оператору с меткой метка_2. Если арифметическое_выражение>0,
то управление передаётся оператору с меткой метка_3.
Второй тип:
IF (логическое_выражение)
оператор
Если логическое_выражение истинно, то выполняется оператор. Существует
и более общая запись IFа:
IF (логическое_выражение)
THEN оператор_1 ELSE оператор_2
Если логическое_выражение истинно, то выполняется оператор_1,
в противном случае выполняется оператор_2. Можно писать по несколько
оператор сразу. В этом случае они записываются в столбик и каждый
и вся структура закрывается ключевым словом END IF:
IF (логическое_выражение)
THEN
[группа_операторов]
ELSE
[группа_операторов_else]
END IF
Что будет означать следующее: Если логическое_выражение истинно,
то выполняется [группа_операторов], в противном случае выполняется
[группа_операторов_else]. Но на мой взгляд наиболее удачной и
удобной в использовании является следующая конструк-ция:
IF (логическое_выражение_1)
THEN
[группа_операторов_1]
ELSE IF (логическое_выражение_2) THEN
[группа_операторов_2]
:
:
:
ELSE
[группа_операторов_else]
END IF
Здесь, я думаю, вы уже догадались, Если логическое_выражение_1
истинно, то выпол-няется [группа_операторов_1], если нет, то проверяется
на истинность логичское_ вы-ражение_2. Если истинно, то выполняется
[группа_операторов_2], и т.д. Если неверно ни одно из условий,
то выполняется [группа_операторов_else].
А теперь, перейдём к самому заданию. В принципе ничего сложного
нет. Стоит по-говорить разве что только об оптимизации. Возьмём
для примера следующую функцию:
Сразу заметим, что постоянное вычисление значение zt замедляет
работу программы. По-этому поместим это значение в не которую
переменную d. Во-вторых, если начинать про-верять все условия
подряд, то мы получаем лишнюю проверку. Поэтому будем проверять
только два условия, а третье значение оставшейся функции будет
вычисляться методом исключения. Причём будем проверять первое
и третье условия. Ну, всё! Теперь вы не чайники, по крайней мере,
по этому вопросу. И не лентяи тоже, так как всё-таки дочитали
до конца.
----------------------------------------
Program T2
real t, z, y, d
integer n
write (*,*)
'Vvesti t'
read (*,*) t
write (*,*) 'Vvesti z'
read (*,*) z
d=z*t
IF (d.le.-2.0) THEN
y=exp(z)
n=1
ELSE IF (d .gt.3.0) THEN
y=sqrt(d)
n=3
ELSE
y=sin(t)
n=2
END IF
write (*,*)'t=
', t, ' z= ', z, ' d= ', d
write (*,*) 'Vetv nomer', n, ' y= ',y
pause
end
----------------------------------------------
(с)Kultivator
0
- 1 - 2 - 3
- 4 - 5 - 6 - 7 - 8