Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.04.2016, 16:55   #1
gleensande
Пользователь
 
Регистрация: 03.04.2016
Сообщений: 39
Радость Вывод двумерного массива

Всем добрый день!
Изучаю на досуге программирование на Паскале и вот, возник такой вопрос. Пусть у нас есть двумерный массив. Как вывести его на экран так, чтобы строчка на экране соответствовала строчке в массиве, столбец на экране - столбцу в массиве. При этом, конечно, хотелось бы организовать циклы, с наименьшим количеством кода.
Было сделано так:
Код:
program pr4_4;
const 
  n=3;
  m=3;
var
  a: array[1..n,1..m]of integer;
  i,j,t: integer;
begin
  a[1,1]:=1;
  a[1,2]:=2;
  a[1,3]:=3;
  a[2,1]:=4;
  a[2,2]:=5;
  a[2,3]:=6;
  a[3,1]:=7;
  a[3,2]:=8;
  a[3,3]:=9;
  t:=0;
  for i:=1 to n do
    for j:=1 to m do
      begin
        if (t<m) then
          begin
            write(a[i,j],' ');
            inc(t)
          end  
        else
          begin
            writeln();
            t:=1;
            write(a[i,j],' ')
          end;
       end;
end.
На выходе получаю:
Код:
123
456
789
Может, вы знаете другие, более красивые, способы вывести так массив

Последний раз редактировалось gleensande; 03.04.2016 в 16:59.
gleensande вне форума Ответить с цитированием
Старый 03.04.2016, 18:20   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Код:
for i := 1 to n do
begin
  for j := 1 to m do
    write(a[i, j], ' ');
  writeln();
end;
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 04.04.2016, 20:27   #3
gleensande
Пользователь
 
Регистрация: 03.04.2016
Сообщений: 39
По умолчанию

Благодарю!)
А можете еще пояснить, чем именно отличается представленная Вами конструкция от такой:
Код:
for i := 1 to n do
for j := 1 to m do
begin
    write(a[i, j], ' ');
  writeln();
end;
gleensande вне форума Ответить с цитированием
Старый 04.04.2016, 21:09   #4
Niddin_hp
Пользователь
 
Регистрация: 06.10.2015
Сообщений: 12
По умолчанию

Цитата:
Сообщение от gleensande Посмотреть сообщение
Благодарю!)
А можете еще пояснить, чем именно отличается представленная Вами конструкция от такой:
Код:
for i := 1 to n do
for j := 1 to m do
begin
    write(a[i, j], ' ');
  writeln();
end;
Отличие будет заключать в выводе. Как известно, если мы не пишем begin .. end для цикла, то он прорабатывает только одну операцию.
Так будет выглядеть вывод методом уважаемого BDA:
1 2 3
4 5 6
7 8 9
А так будет выглядеть ваш:
1
2
3
...
Niddin_hp вне форума Ответить с цитированием
Старый 05.04.2016, 00:26   #5
gleensande
Пользователь
 
Регистрация: 03.04.2016
Сообщений: 39
По умолчанию

Да, все понятно стало, спасибо огромное!
gleensande вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод двумерного массива спиралью Valerie_Kotik Помощь студентам 1 28.12.2012 09:15
Вывод двумерного массива Kocapb Общие вопросы C/C++ 4 11.10.2012 11:05
Вывод двумерного массива denolend Помощь студентам 2 12.12.2011 13:41
Вывод двумерного массива(asm) Xanex Помощь студентам 0 29.05.2010 23:19
Вывод двумерного массива pancho Общие вопросы Delphi 10 25.01.2009 23:31