Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.10.2012, 01:07   #1
isus
Пользователь
 
Регистрация: 07.06.2009
Сообщений: 41
По умолчанию фортран задача

добрый день.... хотел помочь человеку с фортраном до сегоднешнего дня в глаза не видал такого зверя.

вообщем суть задачи определить по отрезкам можно ли построить треугольник и определить его тип.


набросал программку


program treugolnikotrezok
implicit none
real :: d(3),i

write(*,*) 'Vveditelybyestorony'
do i=1,3,1
read(*,*) d(3)
end do

if ((d(2)+d(3)).LE.d(1).or.(d(1)+d(3)) .LE.d(2).or.(d(1)+d(2)).LE.d(3)) then
write(*,*) 'nelzyasosttreugolnik'
else

if ((d(1)**2).EQ.(d(2)**2+d(3)**2).or. (d(2)**2).EQ.(d(1)**2+d(3)**2).or.( d(3)**2).EQ.(d(1)**2+d(2)**2)) then
write(*,*) 'treugolnikpryamougolnyi'
else

if ((d(1)**2).LT.(d(2)**2+d(3)**2).and .(d(2)**2).LT.(d(1)**2+d(3)**2).and .(d(3)**2).LT.(d(1)**2+d(2)**2)) then
write(*,*) 'treugolnikostrougolnyi'
else

write(*,*) 'treugolniktupougolnyi'

end if
end if
end if

end program

проходит до окончания ввода массива и выкидывает, что я делаю не так?
Заранее благодарен!
isus вне форума Ответить с цитированием
Старый 28.10.2012, 16:57   #2
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

Цитата:
Сообщение от isus Посмотреть сообщение
...
do i=1,3,1
read(*,*) d(3)
end do
...
i

Кстати, зачем оно у Вас типа real ?

Ну и, в реальных задачах проверки на строгое равенство для результатов операций над вещественными числами никто никогда не делает.
Vago вне форума Ответить с цитированием
Старый 28.10.2012, 17:45   #3
isus
Пользователь
 
Регистрация: 07.06.2009
Сообщений: 41
По умолчанию

Цитата:
Сообщение от Vago Посмотреть сообщение
i

Кстати, зачем оно у Вас типа real ?

Ну и, в реальных задачах проверки на строгое равенство для результатов операций над вещественными числами никто никогда не делает.
спасибо за совет, вчера голова не варила совсем))


вот как сделал


program treugolnikotrezok
implicit none
integer d(3), i

write(*,*) 'Vveditelybyestorony'
read *, (d(i), i=1,3)

if ((d(2)+d(3)).LE.d(1).or.(d(1)+d(3)) .LE.d(2).or.(d(1)+d(2)).LE.d(3)) then
print *, 'nelzyasosttreugolnik'
else

if ((d(1)**2).EQ.(d(2)**2+d(3)**2).or. (d(2)**2).EQ.(d(1)**2+d(3)**2).or.( d(3)**2).EQ.(d(1)**2+d(2)**2)) then
print *, 'treugolnikpryamougolnyi'
else

if ((d(1)**2).LT.(d(2)**2+d(3)**2).and .(d(2)**2).LT.(d(1)**2+d(3)**2).and .(d(3)**2).LT.(d(1)**2+d(2)**2)) then
print *, 'treugolnikostrougolnyi'
else

print *, 'treugolniktupougolnyi'

end if
end if
end if

end program
isus вне форума Ответить с цитированием
Старый 28.10.2012, 20:11   #4
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

Цитата:
Сообщение от isus Посмотреть сообщение
implicit none
integer d(3), i
В реальной жизни так бывает очень редко. Почему не написать
Код:
          implicit none
          real     d(3)
          integer  i
?

А до погрешностей вычислений страдалец-"заказчик", я так понимаю, просто не дорос ещё. Он сейчас, очевидно, на таком этапе, когда дай Бог элементарный алгоритм написать, не заморачиваясь машинной арифметикой. Пускай тогда остаются жёсткие равенства в проверках. Будет этим заниматься - сам разберётся со временем...
Vago вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Фортран! Hellodeni Помощь студентам 0 22.06.2011 19:15
Фортран XOKS Помощь студентам 1 09.11.2010 20:56
Язык Фортран? VintProg Свободное общение 1 18.07.2010 13:40
Фортран 90! Файлы Nigel007 Помощь студентам 0 22.05.2010 14:39