2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Вывод двумерного массива [Delphi]
Сообщение02.01.2015, 02:59 
Аватара пользователя
Я написал программу для вывода двумерного массива. По строкам при помощи цикла while, по столбцам- repeat. Ерунду мне какую- то выдает, а не то, что я прошу, что я не так сделал ?
код: [ скачать ] [ спрятать ]
Используется синтаксис Delphi
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;
type Tmatrix=array [1..31,1..44] of integer;
procedure Tm (m,n:integer;Var a:TMatrix);
  var
      i,j:integer;
  begin
    writeln ('skolko strok? ');
    readln (m);
    writeln (' skolko stolbcov? ');
    readln (n);
    i:=1;
      while i<=m do begin
        j:=1;
          repeat
              a[i,j]:=random (5);
              write(a[i,j]:4);
             j:=j+1;
         until j=n;
         writeln;
        i:=i+1;
    end;
  end;
Var m,n:integer;
    a:TMatrix;

Begin
  Tm(m,n,a);

readln;
End.

 
 
 
 Re: Вывод двумерного массива
Сообщение02.01.2015, 03:10 
fronnya в сообщении #955331 писал(а):
Ерунду мне какую- то выдает, а не то, что я прошу
Строго говоря, выдает-то как раз то, что просите. А вот что Вы хотели попросить - это другой вопрос...

По-видимому, проблема в том, что не хватает одного столбца? Если да, то связано это с тем, что условие выхода из цикла until проверяется в тот момент, когда индекс уже увеличен на единицу, для получения желаемого поведения надо немного изменить условие выхода.

Но только зачем для таких целей использовать что-то другое, кроме циклов for? И вообще - зачем так сложно?

 
 
 
 Re: Вывод двумерного массива
Сообщение02.01.2015, 03:20 
Аватара пользователя
Pphantom в сообщении #955333 писал(а):
fronnya в сообщении #955331 писал(а):
Ерунду мне какую- то выдает, а не то, что я прошу
Строго говоря, выдает-то как раз то, что просите. А вот что Вы хотели попросить - это другой вопрос...

По-видимому, проблема в том, что не хватает одного столбца? Если да, то связано это с тем, что условие выхода из цикла until проверяется в тот момент, когда индекс уже увеличен на единицу, для получения желаемого поведения надо немного изменить условие выхода.

Да, так и думал, сейчас гляну.
Pphantom в сообщении #955333 писал(а):
Но только зачем для таких целей использовать что-то другое, кроме циклов for? И вообще - зачем так сложно?

А вот это уже нормальная реакция на подобные задания :D :D Преподавательница говорит, что просто хочет нас научить работать с циклами, не более, в этом идея подобных заданий.

-- 02.01.2015, 02:22 --

Проблема решена, очень глупая ошибка.

 
 
 
 Re: Вывод двумерного массива
Сообщение02.01.2015, 15:43 
fronnya в сообщении #955335 писал(а):
Pphantom в сообщении #955333 писал(а):
Но только зачем для таких целей использовать что-то другое, кроме циклов for? И вообще - зачем так сложно?

А вот это уже нормальная реакция на подобные задания :D :D Преподавательница говорит, что просто хочет нас научить работать с циклами, не более, в этом идея подобных заданий.

В этом случае надо давать задания, где применение таких циклов обосновано. Зато это объясняет, откуда потом возникает индусский код :-).

 
 
 [ Сообщений: 4 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group