Поиск:

Ответ в темуСоздание новой темы Создание опроса
> помогите с задачей пожалуйста, задачка 
:(
    Опции темы
emilsitdikov
Дата 17.11.2011, 22:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 17.11.2011

Репутация: нет
Всего: нет



такая задача: дан одномерный массив из 18 элементов, надо найти произведение элементов первой половины массива, а вторую половину инвертировать (поменять местами девятый с восемнадцатым, десятый с семнадцатым и тд) помогите решить пожалуйста! произведение легко находится а вот как вторую половину инвертировать? smile 
заранее спасибо!
PM MAIL   Вверх
Фантом
Дата 18.11.2011, 01:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


Профиль
Группа: Участник Клуба
Сообщений: 1516
Регистрация: 23.3.2008

Репутация: 5
Всего: 49



Если считать, что массив называется A и индексы меняются от 1 до 18, то произведение ищется так:
Код

product(A(1:9))

а инвертирование делается так:
Код

forall(i=9:18) A(i)=A(27-i)

где i - переменная типа integer. Да, это в случае, если "вторая половина" действительно начинается с 9-го элемента (вообще-то должна с 10-го). 
PM   Вверх
emilsitdikov
Дата 18.11.2011, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 17.11.2011

Репутация: нет
Всего: нет



ой, мы такими операторами не пользовались еще, нужно составить программу в примитивном виде через оператор do
например произведение так будет: 
n=18 
p=1 
do i=1, n/2
p=p*a(i)
end do
! а в этой части программы нужно инвертировать вторую половину (только как??!)
и вывести массив на экран до инвертирования и после )

Добавлено через 2 минуты и 12 секунд
ээ... и кстати да вторая половина с десятого элемента а не с девятого (ошибочка в первом посте)
PM MAIL   Вверх
BakinEugene
Дата 19.11.2011, 09:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 26.9.2011
Где: Челябинск

Репутация: нет
Всего: нет



Без forall можно так:

Код

A(9:18) = A(18:9:-1)


Это сообщение отредактировал(а) BakinEugene - 19.11.2011, 09:28
PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Fortran | Следующая тема »


 




[ Время генерации скрипта: 0.1456 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.