|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
17.04.2012, 12:01 | #1 |
Пользователь
Регистрация: 19.11.2010
Сообщений: 13
|
Ввод трёхмерной матрицы
Доброго времени суток, ув форумчане!
Возникла следующая проблема: как прочитать из файла и вывести на экран трехмерную матрицу A(N,N,M) ? сделал по аналогии с двумерными..но не работает..в чём ошибка? ........... const N=4; M=3; ............ For i:=1 to N do For j:=1 to N do For l:=1 to M do begin Read(inputA,A[i,j,l]); write(A[i,j,l]:5:2); end; writeln; end; Спасибо. |
17.04.2012, 12:06 | #2 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,342
|
Как вы определяете, что она не работает?
Все зависит от того, как задана матрица в текстовом файле. Приведите пример входных данных.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
17.04.2012, 12:13 | #3 |
Пользователь
Регистрация: 19.11.2010
Сообщений: 13
|
MasA.txt
1 2 3 4 5 6 7 8 9 10 10 9 8 7 6 5 4 3 2 1 11 12 13 14 15 16 17 18 Текст программы: Program mas15; uses crt; const N=3; M=4; K=1; type matrix=array[1..N, 1..N, 1..M] of real; var i,j,l:integer; inputA,inputB:text; z:integer; A:matrix; procedure vvod_masA; begin assign(inputA,'masA.txt'); reset(inputA); For i:=1 to N do For j:=1 to N do For l:=1 to M do begin Read(inputA,A[i,j,l]); write(A[i,j,l]:5:2); end; writeln; end; begin vvod_masA; close(inputA); end. Итог работы программы: 12345678910109876543211112131415161 71800000000 Что бы хотелось видеть)) 1 2 3 10 9 8 11 12 13 14 |
17.04.2012, 12:15 | #4 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,342
|
Так у вас не трехмерный массив, а двухмерный во входном файле.
Напишите и условие задачи, а то по коду программы совершенно не хочется разбираться, что нужно получить и из чего.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
17.04.2012, 12:22 | #5 |
Пользователь
Регистрация: 19.11.2010
Сообщений: 13
|
Используя универсальную для различных наборов исходных данных подпрограмму нахождения транспонированной матрицы самой в себя, преобразовать исходные матрицы A(N,N,M) и B(N,N,K) в горизонтальных плоскостях.
Элементы матриц-вещественные числа. В качестве одного из вариантов исходных данных принять: N=8 M=6 K=4. Алгоритм должен быть параметризован; обмен данными с подпрограммой должен осуществляться только через параметры; исходные массивы должны храниться в отдельных файлах. |
17.04.2012, 12:33 | #6 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,342
|
Как происходит транспонирование трехмерных матриц?
Относительно диагонали, идущей от (1,1,1) вглубь матрицы? Матрица задается по слоям в файле? A(N,N,M) - матрица с N строками N столбцами и глубиной M?
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
17.04.2012, 12:43 | #7 |
Пользователь
Регистрация: 19.11.2010
Сообщений: 13
|
Вот нашёл программу, которая вывод 3-х мерную матрицу как бы по слоям(горизонтальным плоскостям)..но здесь она заполняется через процедуру рандом..
uses crt; const amax=3; var a:array[1..amax,1..amax,1..amax] of byte; i,j,k:byte; procedure rnd; begin randomize; for i:=1 to amax do begin for j:=1 to amax do begin for k:=1 to amax do begin a[i,j,k]:=random(2); gotoxy(i*5+k,j*4-k); write(a[i,j,k]); end; end; end; end; begin clrscr; rnd; gotoxy(1,amax*4+1); writeln; readln; end. Результат работы программы 1111.png |
17.04.2012, 12:51 | #8 | |
Пользователь
Регистрация: 19.11.2010
Сообщений: 13
|
Цитата:
Про то как задаётся матрица в файле ничего не было сказано, те задаём как хотим) N,N,M - это как блина ширина высота, те строки, столбцы и глубина, те M количество слоёв, а NХN матрица которую нужно транспонировать |
|
17.04.2012, 15:13 | #9 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,342
|
Код:
Файл вида: n h первая строка первого слоя ... последняя строка последнего слоя (все числа могут идти в одну строчку).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
Последний раз редактировалось BDA; 17.04.2012 в 15:23. |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ввод символьной матрицы | Exoo | Помощь студентам | 2 | 29.10.2011 22:26 |
c++ допишите ввод матрицы в файл | Repac123456 | Помощь студентам | 3 | 26.05.2011 01:04 |
Ввод матрицы | La`Fleur | C++ Builder | 3 | 07.05.2011 20:41 |
гибкий ввод матрицы | konstantin_ | Паскаль, Turbo Pascal, PascalABC.NET | 6 | 29.06.2010 18:06 |