LOGO
==>
О проекте и его создателях.
Все для учебы (книги, методички...)
Тоже для учебы, но другого плана (шпоры, советы...)
Для инфосистемщиков и интересующихся.
Отдых - юмор, спорт, творчество...
Отдых, не привязанный к РФ.
Lnks - полезные ссылки.
на главную страницу
~home > Неофициальные ништяки > FORTRAN > 02
гостевая книгаконтакты
Пункт2 - Задание 2.

Ну, что чайники-лентяи! Начинаем урок номер 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

 

 
* (c) by Fil McArov, Dmitry Sinelnikov, Alexander Kireev, Victor Sangalov, Dmitry Ilyukhin, Pavel Sharkin, Danil Svyatoshenko, Dmitry Bakshaev, Vladimir Razumov. *
Hosted by uCoz