Ну знаете! Смотреть решение этого задание полное бесстыдство!
Вам всего-то добавить пару 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