Форум программистов, компьютерный форум, киберфорум
Fortran
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
w_J
0 / 0 / 0
Регистрация: 28.03.2012
Сообщений: 8
1

Работа с общей областью (common)

20.06.2012, 18:15. Просмотров 1612. Ответов 1
Метки нет (Все метки)

Доброго времени суток,

В задаче необходимо найти минимально отличающийся по модулю от корня уравнения элемент массива.
Подпрограмма cor находит корень методом деления отрезка пополам, работает нормально. Параметр С передаю через общую область, подпрограмма еговидит. Подпрограмма extr1 должна искать наименее различающийся элемент. Почему то не передается параметр xc (корень уравнения)через общую область, В главном модуле получаю его нормально, а в подпрограмме extr1 он равен нулю (вернее выдает значение порядка 10 в -45 степени, близкое к нулю). В чем может быть ошибка?

Спасибо!

Fortran
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
program e
common c,xc
real a,b,f1,xc,f2 
external f1,f2
dimension x(11)
integer I,c
write(*,*)'eps'
read(*,*)eps
write(*,*)'vvedite X'
read(*,*)(X(i),i=1,11)
a=0.0
b=1.0
do c=1,5
xc=cor (f1,a,b,eps )
call extr1 (x,11,f2,-1,L,xm)
write(*,*)'element, naibolee blizkii k',xc,':',x(L)
write(*,*)'ego index',L
enddo
end
 
real function f1 (x)
real x
integer c
common c
f1=x**3+c*x-c
end
 
real function f2 (a)
real xc,a
common xc
f2=abs(abs(a)-xc)
end
 
 
subroutine EXTR1(a,n,F,m,l,xm)
integer n,m,l ,k
dimension a(n)
real a,F,xm
common xc
write(*,*)xc
xm=F(a(1))
l=1
do k=2,n
write(*,*)f(a(k))
if ((m.eq.-1.and.F(a(k)).lt.xm).or.(m.eq.1.and.F(a(k)).gt.xm)) then
xm=F(a(k))
l=k
endif
enddo
return
end
 
real function COR(F,a,b,e)
real F,a,b,e ,xl,xp,s
common c
xl=a
xp=b
do while (abs(xp-xl).gt.e)
s=(xl+xp)/2.0
if ((F(xl)*F(s)).le.0) then
xp=s
else
xl=s
endif
enddo
COR=(xl+xp)/2.0
return
end
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.06.2012, 18:15
Ответы с готовыми решениями:

Работа с областью изображения
доброго времени суток. суть вопроса вот в чем: есть карта(РФ),(задача минимум) необходимо чтобы...

OpenCV. Работа с заданной областью
Товарищи, добрый день! Нужен ваш совет Я хочу на бинарном изображении закрасить черным...

Работа с областью system tray
Помогите пожалуста решить задачу: написать программу, которая будет добавлять иконку в область...

Работа с закрашенной областью stringgrid
Имеется двумерный массив (stringgrid). В массиве я выделяю различными цветами несколько...

1
MOHCTP
294 / 206 / 2
Регистрация: 20.02.2011
Сообщений: 551
22.06.2012, 08:06 2
Цитата Сообщение от w_J Посмотреть сообщение
Fortran
1
2
3
4
5
6
7
8
9
10
11
12
13
14
program e
common c,xc
.....
.....
subroutine EXTR1(a,n,F,m,l,xm)
integer n,m,l ,k
dimension a(n)
real a,F,xm
common xc
......
real function COR(F,a,b,e)
real F,a,b,e ,xl,xp,s
common c
.....
Сommon определяет некую область памяти, в которой последовательно хранятся переменные. Программа о них ничего не знает, даже тип переменной и то, сколько на нее выделено байт. Это каждый раз надо прописывать в подпрограмме, получающей Сommon-область для работы, причем прописывать правильно: переменные должны быть в правильном порядке и правильной длины. Передаете подпрограмме область Сommon - если нужна только первая переменная, можете, наверно, прописать только ее, программа возьмет что с краю. Нужна вторая переменная - придется прописать обе, без определения размера первой положение второй переменной будет не ясно.
2
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.06.2012, 08:06

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Работа с фоновым изображением и рабочей областью
Подскажите что мне нужно до\после/ этого участка кода прописать this.BackgroundImage = null; ...

Работа с областью печатной формы документа
Есть например отчет по инвентарицации. Нажали на печать и сформировалась таблица на 3 страници....

Работа с выделенной областью как с двумерным массивом
На рабочем листе выделена область двумерного массива. Можно ли в модуле определить её координаты и...

Common Lisp - Работа с векторами
Разработать программу используя функции работы с векторами и списками. Размерность и элементы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.