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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.02.2013, 15:32   #1
hottab1
Пользователь
 
Регистрация: 03.10.2012
Сообщений: 23
Восклицание Pascal. Заполнение двухмерного массива

Здравствуйте! Я бы хотел попросить Вас написать программу на Pascal, которая заполнит двухмерный массив вот в таком виде:
1 2 3 4 5
10 9 8 7 6
11 12 13 14 15
20 19 18 17 16
Изображения
Тип файла: png Безымянный.png (1.7 Кб, 81 просмотров)
hottab1 вне форума Ответить с цитированием
Старый 02.02.2013, 15:59   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,427
По умолчанию

Код:
a[i, j] := (i - 1) * m + j * (i and 1) + (m - j + 1) * (i and 1 xor 1);
i от 1 до n (количесво строк)
j от 1 до m (количество столбцов)
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 02.02.2013, 22:18   #3
hottab1
Пользователь
 
Регистрация: 03.10.2012
Сообщений: 23
По умолчанию

Спасибо конечно, Вам большое, но мне желательно весь код полностью с прописанными переменными и так далее
hottab1 вне форума Ответить с цитированием
Старый 02.02.2013, 22:41   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,427
По умолчанию

Пожалуйста.

Ну так если всё за Вас напишут, чему же Вы научитесь?

Тут нужны 2 константы n и m, 2 переменных i и j, массив чисел nxm, 2 цикла - один вложен в другой.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 02.02.2013, 23:44   #5
hottab1
Пользователь
 
Регистрация: 03.10.2012
Сообщений: 23
По умолчанию

Да, действительно Вы правы
Я вроде сделал, но у меня не получилось, а сейчас понял почему
Вот так примерно будет?
Код:
var: a:array [1..10,1..10] of integer;
                i,j:integer;
                const n='10',m='10';
begin
for i:=1 to 10 do
for J:=1 to 10 do
Строга не критикуйте, пожалуйста
hottab1 вне форума Ответить с цитированием
Старый 03.02.2013, 00:34   #6
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,427
По умолчанию

Так уже лучше.
Не совсем верно.
Нужно так:
Код:
const
  n = 5;
  m = 4;
var
  a: array [1..n, 1..m] of integer;
  i, j: integer;
begin
  for i := 1 to n do
    for j := 1 to m do
    //еще несколько строк, одна из которых из моего поста выше
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 03.02.2013, 11:51   #7
hottab1
Пользователь
 
Регистрация: 03.10.2012
Сообщений: 23
По умолчанию

Большое спасибо!
Примерно вот так будет?
Код:
const
  n = 5;
  m = 4;
var
  a: array [1..n, 1..m] of integer;
  i, j: integer;
begin
  for i := 1 to n do
    for j := 1 to m do
a[i, j] := (i - 1) * m + j * (i and 1) + (m - j + 1) * (i and 1 xor 1);
write(a[i,j]:3);
readln;
end.
hottab1 вне форума Ответить с цитированием
Старый 03.02.2013, 13:33   #8
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,427
По умолчанию

Почти.
Вы программу запускали? Она выводит 1 число. Нужно добавить begin и end, чтобы вывела все элементы (в строку) и еще begin, end, writeln, чтобы вывела в виде двухмерного массива.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 03.02.2013, 16:09   #9
hottab1
Пользователь
 
Регистрация: 03.10.2012
Сообщений: 23
По умолчанию

Тогда наверное так?
Код:
const
  n = 5;
  m = 4;
var
  a: array [1..n, 1..m] of integer;
  i, j: integer;
begin
  for i := 1 to n do
    for j := 1 to m do
a[i, j] := (i - 1) * m + j * (i and 1) + (m - j + 1) * (i and 1 xor 1);
for i:=1 to n do
begin
for j:=1 to m do
write(a[i,j]:3);
end;
writeln(a[i,j];
readln;
end.
hottab1 вне форума Ответить с цитированием
Старый 03.02.2013, 16:28   #10
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,427
По умолчанию

Да, почти верно:
Код:
const
  n = 5;
  m = 4;
var
  a: array [1..n, 1..m] of integer;
  i, j: integer;
begin
  for i := 1 to n do
    for j := 1 to m do
      a[i, j] := (i - 1) * m + j * (i and 1) + (m - j + 1) * (i and 1 xor 1);
  for i := 1 to n do
  begin
    for j := 1 to m do
      write(a[i,j]:3);
    writeln;
  end;
  readln;
end.
или
Код:
const
  n = 5;
  m = 4;
var
  a: array [1..n, 1..m] of integer;
  i, j: integer;
begin
  for i := 1 to n do
  begin
    for j := 1 to m do
    begin
      a[i, j] := (i - 1) * m + j * (i and 1) + (m - j + 1) * (i and 1 xor 1);
      write(a[i,j]:3);
    end;
    writeln;
  end;
  readln;
end.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заполнение двухмерного масиива Иварунька Паскаль, Turbo Pascal, PascalABC.NET 1 16.11.2012 20:06
Заполнение двухмерного массива _PrizraK_ Общие вопросы Delphi 1 01.05.2011 14:23
Pascal поменять значение элемента двухмерного массива A(N,N) на сумму окружающих элементов. mrRastom Помощь студентам 3 06.04.2011 02:40
заполнение массива (pascal) Inferi Помощь студентам 10 16.06.2010 03:05
[Pascal] заполнение двумерного массива Рамик Помощь студентам 13 18.02.2009 20:08