Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Fortran]Массивы


Автор: MaryMary 25.5.2010, 22:52
Массив А состоит из 13 элементов. Найти среднее геометрическое и количество элементов массива А, принадле-жащих интервалу [–1;+1]. 
вот что-то никак вообще не идёт....))) 
хотя бы скажите как всё объединить)) smile 

Автор: Фантом 25.5.2010, 23:16
Цитата(MaryMary @  25.5.2010,  22:52 Найти цитируемый пост)
Найти среднее геометрическое

Код

product(A)**(1.0/size(A))



Цитата(MaryMary @  25.5.2010,  22:52 Найти цитируемый пост)
количество элементов массива А, принадле-жащих интервалу [–1;+1]. 

Код

count((A>=-1) .and. (A<=1))

Автор: MaryMary 25.5.2010, 23:39
а вы не могли бы как-нибудь попроще? ))) нам таких операторов не давали...(((
скорее всего надо использовать оператор цикла, условный оператор...

Автор: Фантом 25.5.2010, 23:48
Цитата(MaryMary @  25.5.2010,  23:39 Найти цитируемый пост)
а вы не могли бы как-нибудь попроще? ))) нам таких операторов не давали...(((

Так Вам нужно на Фортране или на чем-то, что "Вам давали"? Если первое - ответ выше. Если второе - давайте описание соответствующего языка программирования.

Автор: MaryMary 25.5.2010, 23:52
Нужно на фортране! Но те операторы, которые вы употребили, мы ни разу не использовали! 
По данной теме нам давали такие операторы как: dimension, операторы цикла и условий. всё)

Автор: FCM 26.5.2010, 10:54
По-простому что-то вроде следующего

Код

...
IMPLICIT NONE
INTEGER, PARAMETER :: N=13
INTEGER :: CNT, I
REAL  :: A(N), PROD, GMEAN

... ! инициализация A

PROD = 1.
CNT = 0
DO I = 1, N
   PROD = PROD*A(I)
   IF( A(I)>=-1 .AND.  A(I)<=1 )   CNT = CNT+1
END DO

и т.д.
...

Автор: MaryMary 26.5.2010, 17:03
оооо вот это кажется то, что нужно))
спасибо огромное))) smile 

Автор: MaryMary 26.5.2010, 19:23
REAL A(13), P, SG
INTEGER I,N
OPEN(3,FILE='LAB31.DAN')
READ(3,*)A
N=0 
P=1
DO I=1
IF(A(I).GE.-1.AND A(I).LE.1.)N=N+1

таблица идентификаторов:
P-произведение элементов
N-счетчик элементов
SG-среднее геометрическое
I-параметр цикла

Вот вроде посчитала кол-во элементов на промежутке [-1;1], как дальше посчитать их среднее геометрическое? Не знаю как связать...

Автор: FCM 26.5.2010, 20:04
Среднее геометрическое от чего?
от всего массива или от части, удовлетворяющей заданному условию?  

Выше уже указывалась формула    
SG = корень n-ой степени от произведение n усредняемых элементов 
или 
произведение n усредняемых элементов в степени 1./n

Автор: MaryMary 26.5.2010, 20:07
от части!!!

Автор: FCM 26.5.2010, 20:15
Код

P = 1.
N = 0
DO I = 1, 13
    IF( A(I)>=-1 .AND.  A(I)<=1 )   THEN
        N = N+1
        P = P*A(I)
    ENDIF
END DO

SG = P**(1./N)


Но P в последней формуле  насколько помню не должно быть < 0

А по современному, как указывал Фантом, без явных циклов:
Код

  SG = PRODUCT(A,MASK=ABS(A)<=1)**(1./COUNT(MASK=ABS(A)<=1))


(Интересно в последней формуле MASK будет два раза считаться или компилятор проявит смекалку и сделает это один раз?)

Автор: MaryMary 26.5.2010, 20:22
=))) Оооо спасибо!!!
очень помогли))))

Автор: FCM 26.5.2010, 20:35
Не за что.
Купите книгу Артемова по Фортрану (для начинающих) и наслаждайтесь.

Автор: MaryMary 26.5.2010, 20:48
знаете, я хочу сдать последнюю лабораторную и забыть этот ужас)))))))

Автор: kemiisto 2.6.2010, 21:42

M
kemiisto
Для домашних заданий, курсовых и т.п. существует \"Центр Помощи\".




Тема перенесена. 

Автор: Ekaterinabru 8.10.2010, 18:46
Помогите, пожалуйста, составить программу обработки массива в Фортране. Результатом обработки элементов массива В с учётом его признаков должно стать нахождение произведения элементов массива и их количества. Признаки элементов: по модулю больше С. m=9, c=5

Добавлено через 8 минут и 57 секунд
[fortran]массивы 
необходимо составить программу обработки массива в Фортране. Результатом обработки элементов массива В с учётом его признаков должно стать нахождение произведения элементов массива и их количества. Признаки элементов: по модулю больше С. m=9, c=5

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)