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

Ну знаете! Смотреть решение этого задание полное бесстыдство! Вам всего-то добавить пару IFов. Ах!, вы не знаете что такое цикл с явной организацией управлением переменными цикла? Тогда придётся немного почитать.

Цикл – это такая алгоритмическая структура, которая позволяет выполнять какие либо действия несколько раз. Например, вам надо выдать на экран числа 0, 3, 6, 9, … 30. Мож-но, конечно, написать так
----------------------------------
write (*,*) 0
write (*,*) 3
:
:
write (*,*) 30
---------------------------------

Но согласитесь это длинно. Поэтому настоятельно рекомендую писать так:
---------------------------------
I=0
1 write(*,*) i
I=I+3
IF (I .le. 30) goto 1
---------------------------------

Во многих случаях тупой перебор просто не поможет, так как не известно сколько всего раз нужно сделать ту или иную операцию.

В данном задании можно обойтись и перебором, так как достаточно подобрать всего три пары значений. Но к несчастью препод посмотрит вашу программу и надаёт вам по шее. Тем более надо, чтобы начальные значения, конечные значения и шаг изменения вводи-лись с клавиатуры. В приведённом примере с write’ом начальном значением будет 0, конечным 30, а шагом изменения 3. Думаю теперь более-менее понятно как организовать цикл по одной переменной. В задании же нужно менять значения двух переменных. Это делается следующим образом:
1) устанавливаем начальное значение первой переменной
2) теперь у второй
3) делаем необходимые действия
4) меняем значение второй переменной на необходимый шаг
5) проверяем меньше ли второе значение своего максимального (если да, то переходим к пункту 3)
6) проверяем меньше ли первое значение своего максимального (если да, то переходим к пункту 2)
Для полного понимания, почему мы пользуемся таким алгоритмом, лучше всего выпол-нить его самому на листочке бумаги. А теперь, когда вы всё знаете, то немного изменим нашу программу.
----------------------------------------
Program T2
real t, tn, tk, te, z, zn, zk, ze, y, d
integer n

write (*,*) 'Vvesti tn, tk, te'
read (*,*) tn, tk, te
write (*,*) 'Vvesti zn, zk, ze'
read (*,*) zn, zk, ze

t=tn
10 z=zn
20 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
z=z+ze
IF (z .le. zk) goto 20
t=t+te
IF (t .le. tk) goto 10

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