IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Двумерный массив, Транспонирование не квадратной матрицы
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 40
Пол: Женский

Репутация: -  0  +


Задача состоит в следующем: транспонировать матрицу f(10,8) и вывести на печать элементы главной диагонали и диагонали, расположенной под главной. Результаты разместить в двух строках

Практики решения задач с двумерными массивами не имею. Помогите пожалуйста (процедуры мы не изучали).
Пока получилось следующее, но транспонирование работает не верно, остальное что-то вообще никак не соображу:

program zadacha;
uses crt;
type
matr=array[1..10, 1..8] of integer;
var
a:matr; i,j,b:integer;
begin
randomize;
writeln('ishodnaya matrica:');
for i:=1 to 10 do
begin
for j:=1 to 8 do
begin
a[i,j]:=random(100);
write(a[i,j]:4);
end;
writeln;
end;
for i:=1 to 10 do
for j:=i to 8 do
begin
b:=a[i,j];
a[i,j]:=a[j,i];
a[j,i]:=b;
end;
writeln('transponirovannaya matrica:');
for i:=1 to 8 do
begin
for j:=1 to 10 do
write(a[i,j]:4);
writeln;
end;
readkey;
end.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






При транспонировании матрицы 10x8 не получается вторая матрица 10х8, а получается 8х10. Придется тебе описывать второй тип для транспонированной матрицы.

А все, чего ты добилась своим кодом - это вылет за пределы массива, при попытке в строке b:=a[i,j]; обратиться к элементу 9-го столбца при i = 9 . Ну запускайте же уже программы с контролем границ!!! (Options -> Compiler -> [X] Range Checking)

Может, в правила раздела это написать: "прежде чем задать вопрос на форуме, убедитесь, что программа компилируется в режиме [X] Range checking [X] Stack checking [X] I/O checking [X] Overflow checking"?
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 5.05.2024 21:11
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name