2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 Ввод и вывод массива (Delphi)
Сообщение03.11.2014, 22:43 
Аватара пользователя


27/03/14
1091
Нужно осуществить ввод элементов двумерного массива с помощью repeat.. until, а вывод-while. Укажите, пожалуйста, на ошибку мою:
Код:
program asd;

{$APPTYPE CONSOLE}

uses
  SysUtils;

type
    TMatrix=array [1..30, 1..30] of integer;
Var k,l:integer;
    b:TMatrix;

procedure vvod (m, n:integer; var a:Tmatrix);
Var
    i, j:integer;
begin
   i:=1;
   j:=1;
   randomize;
    repeat
    i:=i+1;
      repeat
      j:=j+1;
    a[i,j]:=random(26)-4;
    until i<=m;
      until j<=n;
end;

procedure vivod (m, n:integer; var a:Tmatrix);
Var
    i, j:integer;
begin
  i:=1;
  while i<=m do
  begin
   j:=1;
    while j<=n do
      begin
        write(a[i, j]:4);
        j:=j+1;
      end;
      i:=i+1;
       writeln;
  end;
end;
Begin
  writeln ('kol-vo strok');
  readln (k);
  writeln ('kol-vo stolbcov');
  readln (l);
  vvod(k,l,b);
  vivod (k,l,b);
readln;
End.

 Профиль  
                  
 
 Re: Ввод и вывод массива (Delphi)
Сообщение03.11.2014, 22:45 
Заслуженный участник


04/05/09
4589
j надо инициализировать в начале каждого цикла по i.

 Профиль  
                  
 
 Re: Ввод и вывод массива (Delphi)
Сообщение03.11.2014, 22:47 
Аватара пользователя


27/03/14
1091
venco в сообщении #926198 писал(а):
j надо инициализировать в начале каждого цикла по i.

Так я же его задал.

 Профиль  
                  
 
 Re: Ввод и вывод массива (Delphi)
Сообщение03.11.2014, 22:55 
Заслуженный участник


04/05/09
4589
Во вводе тоже.

 Профиль  
                  
 
 Re: Ввод и вывод массива (Delphi)
Сообщение04.11.2014, 11:57 
Аватара пользователя


22/09/09

1907
fronnya
1) Начните с того, что приведите в порядок левые отступы в коде, как в учебнике: операторы одного уровня вложенности должны начинаться с одной позиции, тогда легче будет исправлять код. И писать нужно однообразно, а у Вас то "Begin", а то "begin".
2) У Вас две процедуры с двумя вложенными циклами в каждой. Подумайте, не перепутали ли Вы счетчики этих циклов, правильно ли записали условия выхода? Все ли элементы массива записываются, читаются? Например, как обстоит дело с записью в первый элемент?:
Используется синтаксис Delphi
a[1,1]:=random(26)-4;

3) Отладить будет легче, если после этого оператора поставить:
Используется синтаксис Delphi
a[i,j]:=n*i+j;
Потом его уберете, когда отладите.
4) Попробуйте пошагово пройти программу в отладчике Delphi и посмотрите какие значения принимают переменные i, j. Какие нужно?

Общее замечание. Для начинающих IDE Delphi сложновато. Был когда-то Dr Pascal: там такие программки любой новичок в минуты отлаживал в режиме анимации.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group