Помощь - Поиск - Пользователи - Календарь
Полная версия: МОЙ вам вопрос по матрицам....
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Slava8888
У меня задача по массивам:Дана матрица размером 4х4. Поменять местами
строки и столбцы этой матрицы.
Вот мой исходник, проверьте пожалуйста,что не так:

Program Mas_2;
Var
matr:array[1..4,1..4] of integer;
i,j,buf:integer;
BEGIN
for i:=1 to 4 do
for j:=1 to 4 do begin write('vvedite element',i,'',j,'');
readln (matr[i,j]);
end;
Writeln('Sodergmoe matrici do obrabotki');
for i:=1 to 4 do begin for j:=1 to 4 do write(matr[i,j]:4);
writeln;
end;
for i:=1 to 4 do
for j:=1 to 4 do begin
buf:=matr[i,j];
matr[i,j]:= matr[j,i];
matr[j,i]:= buf;
end;
writeln('sodergimoe matrici posle obrabotki');
for i:=1 to 4 do begin for j:=1 to 4 do
write(matr[i,j]:4);
writeln;
end;
END.
Прога в паскале нормально выполняется, без ошибок. Но всё равно мне препод сказал что неправильно.
Далее запускаю ехе проги, и она постоянно просит вводить числа до бесконечности, тоесть:
введите элемент-ввели цифру->жмем ентер и с новой строки опять строка "введите элемент" и так до бесконечности.
Видимо прога пашет как то неправильно,ПРОШУ ВАС ПОПРАВЬТЕ МЕНЯ!!
Нажмите для просмотра прикрепленного файла Нажмите для просмотра прикрепленного файла
мисс_граффити
ну почему же до бесконечности? до того, как введешь 16 элементов.

for i:=1 to 4 do
for j:=1 to 4 do begin
buf:=matr[i,j];
matr[i,j]:= matr[j,i];
matr[j,i]:= buf;
end;

У тебя элементы поменяются местами дважды... то есть вернутся в исходное состояние.
делай j не от 1 до 4, а от 1 до i (даже до i-1), то есть только для элементов, лежащих ниже главной диагонали.
Гость
Цитата(мисс_граффити @ 18.01.2011 8:43) *

ну почему же до бесконечности? до того, как введешь 16 элементов.

for i:=1 to 4 do
for j:=1 to 4 do begin
buf:=matr[i,j];
matr[i,j]:= matr[j,i];
matr[j,i]:= buf;
end;

У тебя элементы поменяются местами дважды... то есть вернутся в исходное состояние.
делай j не от 1 до 4, а от 1 до i (даже до i-1), то есть только для элементов, лежащих ниже главной диагонали.

Спасибо!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.