Тема: Массивы
Показать сообщение отдельно
  #1  
Старый 11.01.2010, 21:08
Asira Asira вне форума
Новичок
 
Регистрация: 11.12.2009
Сообщения: 76
Репутация: -26
По умолчанию Массивы

Дан двумерный массив действительных чисел размером NxM. Поменять местами строки с номерами 1 и 3, 2 и 4, 5 и 7, 6 и 8 и т. д. Мой вариант
Код:
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;
const N=5;M=7;
type mas=array[1..N,1..M] of integer;
var l:mas; i,j:integer;

 procedure vvod(var l:mas);
var i,j: integer;
begin
randomize;
for i:=1 to N do
for j:=1 to M do
l[i,j]:=random(100);
end;

procedure vivod(l:mas);
var i,j: integer;
begin
for i:=1 to N do begin
for j:=1 to M do
write(l[i,j]:4,' ');  writeln; end;
end;

procedure ioke(var l:mas);
var i,j,p: integer;
begin
i:=1;
while i< = m -2 do
begin
for j:=1 to n do begin
p:=l[i,j];
l[i,j]:=l[i+2,j];
l[i+2,j]:=p;
end;
if i mod 2=0 then i:=i+3
else i:=i+1;end;
end;
begin
vvod(l);vivod(l);
ioke(l);
writeln(' ');
vivod(l);
readln;
end.

Помогите найти ошибку!! Программа работает но из-за того что M >N в последней строке получаются 0 Подскажите как можно это исправить
__________________
Asira
Ответить с цитированием