Помощь - Поиск - Пользователи - Календарь
Полная версия: задача-менять местами столбцы и строки
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
кучаТрупов
задача-матрица размещена в одномерном массиве по строкам.поменять местами k-ый и 1ый столбцы матрицы (к и 1 заданы). результат напечатать по строкам.
указание-k-ый столбец матрицы расположен в одномерном массиве в элементах с индексами-- ((i-1)*m+k)го,
i=1..n

не могу я записать это так как надо. только месяц еще его изучаем. а я болела. буду признательна в оказанной помощи.(я согласно с правилами смотрела в поиске нет ли похожего,но нашла то что не похоже)
Lapp
Вот, примерно так:

var
a: array[1..n*m]of tElement;
...
for i:=1 to n do begin
b:=a[(i-1)*m+1];
a[(i-1)*m+1]:=a[(i-1)*m+1];
a[(i-1)*m+k]:=b
end;


P.S.
особо понравилось вот это:
Цитата(кучаТрупов @ 13.12.2008 1:17) *
(к и 1 заданы).
smile.gif)))

кучаТрупов
я очень благодарна. спасибо огромное.
кучаТрупов
program lab_9;

const n=10;k=5;
m=9;
var a:array[1..n*m]of integer;
b,j,t,i: integer;
begin
randomize;
for i:=1 to n*m do begin
a[i]:=random(20)-10;
write(a[i],' '0;
end; writeln;
for i:=1 to n*m do begin
b:=a[(i-1)*m+1]:
a[(i-1)*m+1]:=a[(i-1)*m+1];
a[(i-1)*m+k]:=b;
end;
for i:=1 to n do begin
write(a[i],' ');
end;
readln;
end.

вот получается задачка,если использовать предложенное решение)).
при решении получается беда с выводом ответа. нужно вывести матрицу одномерного массива по строкам. имеется еще ошибка с индексами или что-то такое.
я обессилен.
volvo
Цитата
я обессилен.
Я тоже, разбирая твой код... Форматируй его хоть немного, ничего ж не понять... Ты не путай строки со столбцами, главное... У тебя N = 10 - это число столбцов, а M = 9 - число строк... Тогда программа выглядит так:

program lab_9;

const
n = 10;
m = 9;

k = 5;

var
a: array[1 .. n*m] of integer;
b, j, t, i: integer;

begin
randomize;
for i := 1 to n*m do begin
a[i]:=random(20)-10;
write(a[i]:4);
if i mod n = 0 then writeln;
end;
writeln;

for i:=1 to m do begin
b:=a[(i-1)*n+1];
a[(i-1)*n+1]:=a[(i-1)*n+k];
a[(i-1)*n+k]:=b;
end;

for i:=1 to n*m do begin
write(a[i]:4);
if i mod n = 0 then writeln;
end;
readln;
end.
кучаТрупов
^^
я стараться буду форматировать.
а н и м по условию с клавиатуры вводятся. ну в любом случае все верно будет при любых н и м.я думаю.

if i mod n = 0 then writeln;
end;
^
||
вот этой штуки мне очень не хватало))спасибо)
Гость
Дан двухмерный массив (1..3,1..3) поменять местами строку и столбец проходящие через максимальный элемент.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.