• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Заполнение массива

  • Автор темы Автор темы Linka
  • Дата начала Дата начала

Linka

Новые
Регистрация
24 Янв 2010
Сообщения
43
Реакции
1
Баллы
0
Заполнение массива

Нужно составить программу, которая заполнила бы в двумерный массив так же как на картинке снизу. Такими же значениями.

Но для непосредственного заполнения массива нельзя использовать операторы присвоения, которые не находятся в теле цикла.

Ссылка удалена

Ниже выкладываю пример похожей программы, если есть чуток времени, помогите, пожалуйста, код переделать.

Код:
program massiv2;
 const   num=10;   {razmer massiva}
 var  i,j :   integer;    {indeksi }
    wrk: integer ;
    ms: array[1..num, 1..num] of integer;{massiv, kotorij obrabativaem}
begin
for i:=1 to num do
   for j:=1 to num do
      ms[i,j]:=0;
   wrk:=1;                                  { . . . 1 2 3 . . . . }
   for i:=1 to 6 do {cikl po strokam}       { . . 4 5 6 . . . . . }
     begin                                  { . 7 8 9 . . . . . . }
    j:=5-i; if j<1 then j:=1;               {101112 . . . . . . . }
    while(j <= 7-i) do {cikls po kolonnam}  {1314 . . . . . . . . }
      begin                                 {15 . . . . . . . . . }
        ms[i,j]:=wrk;                       { . . . . . . . . . . }
        wrk:=wrk+1;                         { . . . . . . . . . . }
                                            { . . . . . . . . . . }
                                            { . . . . . . . . . . }

         j:=j+1
      end;
        end;
   for i:=1 to num do  {Uzgenereta masiva izvads}
     begin writeln;
           for j:=1 to num do
           write( ms[i,j]:7)
     end;
end.

Спасибо заранее большое :>
 
Последнее редактирование модератором:
Вы уж извините, но я как-то по-своему:
Код:
VAR
 A:ARRAY[1..10,1..10] of BYTE;
 i,j:INTEGER;
BEGIN
 FOR j:=1 TO 5 DO
  begin
   A[j,j]:=j;
   A[j,11-j]:=11-j;
   A[j+1,j]:=j+10;
   A[j+1,11-j]:=21-j;
  end;

 FOR i:=1 TO 10 DO
  begin
   FOR j:=1 TO 10 DO
    begin
     if ((j<6) and (i=j))
     or ((j>5) and (i=11-j))
     or ((j<6) and (i=j+1))
     or ((j>5) and (i=12-j))
     then Write(A[i,j]:5) else
     Write('     ');
    end;
   WriteLn;
  end;
 ReadLn;
END.
 
Владимир, спасибо!

А как можно сделать, чтобы на месте пустых элементов стояли ноли ?
 
Владимир, спасибо!

А как можно сделать, чтобы на месте пустых элементов стояли ноли ?

Очень просто: в шестой строке снизу заменить
Код:
Write('     ') на
Write('    0').
 
Назад
Сверху