Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.04.2011, 22:46   #1
Shukhrat
 
Регистрация: 11.04.2011
Сообщений: 3
По умолчанию Из трех массивов вывести матрицу

Здравствуйте, помогите пожалуйста с задачкой!
Например данны три массива, которые ввели с клавиатуры.
В первом массиве содержатся ненулевые элементы, во втором номера столбцов этих ненулевых элементов, в 3 массиве указываются номера начала и конца строки, исходя из первых двух массивов. Например: Матрица (курсивом столбцы и ряды)
N1 2 3 4 5
1 3 0 0 1 0
2 0 0 2 0 5
3 0 0 0 7 0
в первый массив пойдут значения (3,1,2,5,7)
во второй массив пойдут значения(1,4,3,5,4)
в третий массив пойдут значения (1,3,5,6)
То есть третий массив указывает с какого элемента по счету из 1 и 2 массива начинается описание строки.
Так вот надо чтобы по вводу этих трех массивов он вывел эту матрицу. Если есть идеи хотя бы алгоритма вывода этой матрицы напишите пожалуйста.
Shukhrat вне форума Ответить с цитированием
Старый 13.04.2011, 09:14   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

цикл по строкам матрицы = цикл по m3
for x:=1 to m3.count-1 do
цикл внутри строки по столбцам = цикл по m2
for j:=m3[x] to m3[x+1]-1 do
формирование ненулевого эл-та
z:=m1[j];
y:=m2[j];
matr[x,y]:=z;
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 13.04.2011, 10:16   #3
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

всё просто.

берем объявляем некую матрицу, ну, например, const m = 9; var mx : array [1..m,1..m] of integer; ну и вспом переменные i,j : integer; ну и сами массивы a,b,c : array [1..m*m] of integer;
пишем ввод массивов и потом такой кодец:
Код:
j := 1;
for i := 1 to m // rows
do repeat 
  mx[i,b[j]] := a[j];
  inc(j);
until с[j] = j
ну а потом вывод mx

вроде в уме протрассировал, нормально пошло по твоему примеру, в реале не проверял, времени особо нет )
phomm вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывести записи из трех таблиц Demares SQL, базы данных 6 02.03.2011 13:30
Вывести данные при трех условиях. segail Microsoft Office Excel 11 07.12.2010 22:36
Вывести матрицу, числа в которой возрастают по спирали(C). juzam Помощь студентам 3 22.10.2010 00:59
Вывести на печать нижнюю треугольную матрицу [Паскаль] pionerka Помощь студентам 2 07.11.2009 15:02
Транспонировать матрицу(Без исп. доп. массивов)) Doublefaced Помощь студентам 4 27.06.2009 13:03