Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Программирование на старом языке Fortran

9.5K
20 мая 2007 года
Jumper
11 / / 18.06.2005
Помогите, не могу записать один массив в другой массив со смешением, получается какой то бред, кто может сказать как это делать и вообще почему так получается
Текс программы
Program a1 ! имя программы Program a1
integer i, j, n, m, s, d ! описание типа данных (целый)
integer, allocatable :: mas_a(:,:) ! объявление размещаемого массива
integer, allocatable :: mas_b(:,:) ! объявление размещаемого массива
character(30),parameter ::st1='Xotite echo raz?Y/N'
character(40),parameter ::st2='Gelajete isprobovat programmy?(Y\N)'
logical yes
!*********************************************************
write(*,"(a\)")"Input n " ! ввод массива с клавиатуры
read *,n
write(*,"(a\)")"Input m " ! ввод массива с клавиатуры
read *,m
allocate(mas_a(n, m),mas_b(n, m))

!
write(*,"(/a/)")"Input array "
do i=1,n
read *,mas_a(i,1:m)
end do
!do i=1,n
!end do
!if ((n>2).and.(m>2)) then
call Calculete(n, m, mas_a, mas_b)
!end if
do i=1,n
print *,mas_a(i,1:m)
end do
end program
!**********************************************************
!Процедуры
subroutine Calculete (li, lj, a, b)
integer i_b, j_b, li, lj, ai, aj, ti, tj !параметры массива, длинна
integer a(li,lj)
integer b(li,lj)
i=2
j=2

!b = reshape((/ ((a(i,j), i=1,li), j=1,lj) /), shape = (/ li,lj /))
b = (a(i-1,j-1)+a(i-1,j)+a(i-1,j+1)+a(i,j-1)+a(i,j+1)+a(i+1,j-1)+a(i+1,j)+a(i+1,j+1))/8
do ai=1,li
print *,b(ai,1:lj)
end do
!print *,li
!print *,lj
end subroutine
!*********************************************************
257
20 мая 2007 года
kosfiz
1.6K / / 18.09.2005
[quote=Jumper]Помогите, не могу записать один массив в другой массив со смешением, получается какой то бред, кто может сказать как это делать и вообще почему так получается[/quote]
бред?! что в коде то и в результате. ты чего сделать-то хочешь? сместить? тогда поясни что ты понимаешь под
[quote=Jumper]записать один массив в другой массив со смешением[/quote]
потому что по приведенному тобой коду некий массив заполняется средним арифметическим элементов, окружающих элемент с индексами 2,2 исходного массива.
257
21 мая 2007 года
kosfiz
1.6K / / 18.09.2005
да, кстати, условие
 
Код:
if ((n>2).and.(m>2)) then

надо бы раскомментировать, а то будет обращение к несуществующим элементам массива, если m, например будет 1 и т.д.
9.5K
23 мая 2007 года
Jumper
11 / / 18.06.2005
Все спасибо за то что вообще ответил я все сделал
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог