balans писал(а):Source of the post
На сколько я понимаю, не инициализированная величина автоматически приравнивается нулю.
Как минимум не локальная переменная.
balans писал(а):Source of the post
На сколько я понимаю, не инициализированная величина автоматически приравнивается нулю.
NT писал(а):Source of the post
И не удивительно.
Поставьте инициaлизацию для int i и будет вам счастье.
Код: Выбрать все
1 do
z=(1+a)/k1-a
sk = z-sqrt(z*z-1)
t=sn/sk
a=0.5*((t+1/t)*k2-2)/(1-k2)
i=i+1
if (i<30) then go to 1 end if if (i>30) then
print*,'параметр, a
print*,'критическое скольжение', sk
stop
end if
end do
balans писал(а):Source of the postКод: Выбрать все
...
i=i+1
if (i<30) then
go to 1
end if
if (i>30) then
print*,'параметр, a
...
Вроде бы число итерации одинаковое и в обоих вариантах инициировал i=0, а результат вычислении разный.
NT писал(а):Source of the post
Подскажите, как же вы умудряетесь печатать результат?
Ведь, после выхода из цикла - i равно 30,
а печатать указано - если i больше 30.
Код: Выбрать все
if (i>=30) then
print*, a
print*, sk
stop
end if
На сколько я понимаю, не инициализированная величина автоматически приравнивается нулю.
Вернуться в «Computer Science»
Количество пользователей, которые сейчас просматривают этот форум: нет зарегистрированных пользователей и 0 гостей