С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
Fortran
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
steepzero
4 / 4 / 0
Регистрация: 30.11.2013
Сообщений: 45
1

Первый столбец матрицы записать сверху вниз, второй снизу вверх

16.07.2014, 04:02. Просмотров 843. Ответов 2
Метки нет (Все метки)

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
program matrix12
real a(100,100)
 
print *, 'Введите кол-во строк'
read *, m
print *, 'Введите кол-во столбцов'
read *, n
 
do i=1,m
   print '(1x,a,i2)', 'Введите элементы строки', i
   read *, (a(i,j),j=1,n)
enddo     
 
 
print *, 'Исходная матрица'
do i=1,m
   print *, (a(i,j),j=1,n)
enddo     
 
print *, 'Измененная матрица'
 
...
 
end
Никак не получается реализовать на фортране. Идея такая:делаем проверку на четность столбца через "mod j,2", если нечетный, то выводим как есть, если четный, то выводим сначала последний элемент столбца, потом предпоследний и так далее. Сделать это можно так: внутри двух циклов "и житых" мы напишем элемент матрицы " a(i,(n+1-j) ", где n это максимальное число столбцов.

Но не получается это написать. Помогите пожалуйста с этим кусочком. Алгоритм есть, напишите на фортране.

Добавлено через 5 часов 1 минуту
Я написал кусочек, который выполнит задание. Но проблема в том, что он выводит все это в один столбец. А нужно в виде матрицы.

Fortran
1
2
3
4
5
6
7
8
9
10
print *, 'Измененная матрица'
do i=1,m
 do j=1,n
  if (mod (j,2)==0) then 
    print *, (a(m-i+1,j))
      else
     print *, (a(i,j))
  endif
 enddo
enddo
Добавлено через 1 минуту
Как оформить в виде таблицы полученную матрицу?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.07.2014, 04:02
Ответы с готовыми решениями:

Вывести элементы матрицы в следующем порядке: первый столбец сверху вниз, второй столбец снизу вверх...
program Matrix12; var a:array of integer; M, N, i, j:Integer; begin...

Заполнение матрицы змейкой: первый столбец - снизу вверх, второй - сверху вниз
задать матрицу типа: 8 9 24 7 10 23 6 11 22 5 12 21 4 ...

Заполнение матрицы змейкой: первый столбец - вверх, второй - вниз
Заполнить массив A(n*m) числами от 1 до n*m змейкой по схеме (Городская...

Заполнение матрицы змейкой: первый столбец - вниз, второй - вверх
4. Заполнить таблицу размером 4 x 4 «змейкой» . В таблице отсутствуют...

Вывести первый столбец матрицы сверху вниз
Дана матрица размера M×N. Вывести ее элементы в следующем порядке: первый...

2
Krasme
3437 / 2742 / 980
Регистрация: 02.02.2014
Сообщений: 7,512
16.07.2014, 06:34 2
steepzero, в данной задаче вам надо не сразу выводить, а сделать либо дополнительную матрицу, либо использовать существующую... сделать все манипуляции с ней, а потом уже выводить стандартными методами.
1
steepzero
4 / 4 / 0
Регистрация: 30.11.2013
Сообщений: 45
16.07.2014, 12:35  [ТС] 3
Задание: Дана матрица размера M × N. Вывести ее элементы в следующем порядке: первый столбец сверху вниз, второй столбец снизу вверх, третий столбец сверху вниз, четвертый столбец снизу вверх и т. д.

Решение на фортране:
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
program matrix12
integer m,n,i,j
real matrix1(100,100),matrix2(100,100)
 
!Ввод размерности матрицы
print *, 'Введите кол-во строк'
read *, m
print *, 'Введите кол-во столбцов'
read *, n
 
!Ввод исходной матрицы
do i=1,m
   print '(1x,a,i2)', 'Введите элементы строки', i
   read *, (matrix1(i,j),j=1,n)
enddo     
 
!Вывод исходной матрицы
print *, 'Исходная матрица'
do i=1,m
   print *, (matrix1(i,j),j=1,n)
enddo     
 
!Преобразования матрицы
do i=1,m
  do j=1,n
   !Проверка на четность столбца
   if ((mod (j,2))==1) then 
     !Порядок элементов столбца сохранен
     matrix2(i,j)=matrix1(i,j)
      else 
     !Изменение порядка элементов столбца
     matrix2(i,j)=matrix1((n-i+1),j) 
   endif
  enddo
enddo
 
 
!Вывод измененной матрицы
print *, 'Измененная матрица'
do i=1,m
   print *, (matrix2(i,j),j=1,n)
enddo     
 
end
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.07.2014, 12:35

Вывести сообщения в чате не снизу вверх, а сверху вниз
Делаю чат ,так вот мне нужно вивести 20 последних сообщений но мне нужно...

Анимация: как сделать что бы шарик двигался снизу вверх, а не сверху вниз
ublic Class Form1 Dim x, y, h, w As Integer Private Sub...

Отсортировать по возрастанию первый и второй столбец матрицы
Нужна помощь в задаче с использованием многомерного массива 2. Відсортувати за...


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

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

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