Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 13.04.2014, 22:15   #11 (permalink)
mp_12332
Новичок
 
Регистрация: 13.04.2014
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Так, а что мне необходимо исправить в фортрановской программе, чтобы она заработала?
mp_12332 вне форума   Ответить с цитированием

Старый 13.04.2014, 22:15
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Пока люди думают, что вам ответить вы можете ознакомиться с подобными темами

Нужна помощь с программой расчета колебаний струны
Помогите пожалуйста с программой на строки. Паскаль

Старый 13.04.2014, 22:31   #12 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от mp_12332 Посмотреть сообщение
Так, а что мне необходимо исправить в фортрановской программе, чтобы она заработала?
Попробуйте так:
1. В п/п COR вместо x ввести real x1, x2, dif.
2. В начале п/п присвоить x1=a, dif=a.
3. вместо
do while(abs(xl-xp)>e.and..not.p)
записать
do while(dif>e.and..not.p)
4. вместо
x=xp-v*(xl-xp)/(u-v)
записать
x2=xp-v*(xl-xp)/(u-v)
5. Далее вместо
d=f(x)
xl=x
xp=x
записать
d=f(x2)
xl=x2
xp=x2
6. В конце цикла while добавить
dif=abs(x2-x1)
x1=x2
7. Вместо
cor=x
поставить
cor=x2

Как-то так. Попробуйте.
Vladimir_S вне форума   Ответить с цитированием
Старый 13.04.2014, 22:45   #13 (permalink)
mp_12332
Новичок
 
Регистрация: 13.04.2014
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

нет, не работает, все так же пустое окно, на клавиши ноль реакции
mp_12332 вне форума   Ответить с цитированием
Старый 13.04.2014, 23:01   #14 (permalink)
mp_12332
Новичок
 
Регистрация: 13.04.2014
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

так должно получиться?
Код:
real function COR(f,a,b,e)
external F
real x1,x2,e,f,xl,xp,u,v,d,dif,a,b
logical P
xl=a
xp=b
U=f(xl)
v=f(xp)
x1=a
p=.false.
do while(abs(xl-xp)>e.and..not.p)
x2=xp-v*(xl-xp)/(u-v)
d=f(x2)
if((u*d)>0)then
 xl=x2
 u=d
 else
  if((u*d)<0)then
  xp=x2
  v=d
  else
  p=.true.
  endif
endif
dif=abs(x2-x1)
 x1=x2
enddo
cor=x2
return
end
mp_12332 вне форума   Ответить с цитированием
Старый 14.04.2014, 08:23   #15 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от mp_12332 Посмотреть сообщение
так должно получиться?
Нет. Вы не поменяли условие цикла do while.
Совет: не пытайтесь отлаживать сразу всю программу. Научите ее вначале правильно находить корень уравнения. Всё остальное временно отключите. Найденный корень выведите на экран.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 16.04.2014, 00:06   #16 (permalink)
mp_12332
Новичок
 
Регистрация: 13.04.2014
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

а теперь корень всегда получается равен 0
Код:
real function COR(f,a,b,e)
external F
real x1,x2,e,f,xl,xp,u,v,d,dif,a,b
logical P
xl=a
xp=b
U=f(xl)
v=f(xp)
x1=a
p=.false.
dif=a
do while(dif>e.and..not.p)
x2=xp-v*(xl-xp)/(u-v)
d=f(x2)
if((u*d)>0)then
 xl=x2
 u=d
 else
  if((u*d)<0)then
  xp=x2
  v=d
  else
  p=.true.
  endif
endif
dif=abs(x2-x1)
 x1=x2
enddo
cor=x2
return
end
mp_12332 вне форума   Ответить с цитированием
Старый 16.04.2014, 12:00   #17 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от mp_12332 Посмотреть сообщение
а теперь корень всегда получается равен 0
Уважаемый mp_12332, к сожалению, я не обладаю ни достаточными знаниями Фортрана, ни даже Фортран-транслятором, а потому провести за Вас полную отладку программы не могу. Так что Вы уж сами. С моей точки зрения, подпрограммы у Вас в #16 и у меня в #7 полностью идентичны. Ниже я привожу результат работы моей Паскаль-программы. Колонки соответствуют параметру-корню-интегралу. Что касается Ваших "нулей", то единственное, что могу предположить - ошибка в операции вывода на экран (что-то не то выводите). Проверяйте.
Миниатюры
fp02.jpg  
Vladimir_S вне форума   Ответить с цитированием
Старый 16.04.2014, 19:00   #18 (permalink)
Anna)
Новичок
 
Регистрация: 16.04.2014
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Помогите, пожалуйста, не могу разобрать 2 задачи в программе Паскаль

Третья и пятая задача. Вообще...

Замечание:
Прежде всего - у нас не принято цепляться к чужим темам, создавайте свои. На первый раз я сделал это за Вас: Помогите, пожалуйста, не могу разобрать две задачи в программе Паскаль

Модератор
Anna) вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 02:55.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.