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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.11.2012, 15:59   #1
KIRILOW
Форумчанин
 
Регистрация: 28.10.2012
Сообщений: 118
Печаль Двумерный массив

1.Сформировать и вывести матрицу А(10,10),элементы которой заданы произвольно,кроме элементов,расположенных в заштрихованной области (рис.) и равных нулю.
2.Вывести элементы и номер столбца, содержащего наибольшее количество нулей.
Изображения
Тип файла: jpg рис.jpg (4.8 Кб, 122 просмотров)
KIRILOW вне форума Ответить с цитированием
Старый 27.11.2012, 16:23   #2
KIRILOW
Форумчанин
 
Регистрация: 28.10.2012
Сообщений: 118
По умолчанию

Вот что у меня получилось...

Код:
var row:integer;
var column:integer;
var my2Darray:array[1..10,1..10] of integer;
begin
randomize;
for row :=1 to 10 do
begin
for column:=1 to 10 do
begin
my2Darray[row][column]:=Random(11);
end;
end;
end;
Дальше не могу
KIRILOW вне форума Ответить с цитированием
Старый 28.11.2012, 14:49   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

всё просто.

надеюсь, Вы знаете, что такое "главная диагональ" и "побочная диагональ" в квадратной матрице. И знаете, чему равны индексы элементов, расположенных на этих диагоналях.

Тогда,

элементы, которые лежат ПОД главной диагональю,
имеют индексы row>column

элементы, которые лежат НАД побочной диагональю
имеют индексы column<(10-row+1)

ну, т.к. нам нужно, чтобы оба условия выполнялись одновременной (область - это пересечение элементов, лежащих под главной и над побочной диагоналями),
то условия должны выполняться оба.

выполните для иллюстрации такой код:
Код:
var row: integer;
var column: integer;
var
  my2Darray: array[1..10, 1..10] of integer;
begin
  randomize;
  for row := 1 to 10 do
    for column := 1 to 10 do
      if ((row>column) and
              (column < (10 - row + 1)) )
      then
        my2Darray[row][column] := 0
      else
        my2Darray[row][column] := 1; {это просто для наглядности, 
           в готовой программе поставите случ.числа через Random(11);}

  {выести матрицу на экран}
  WriteLn('Матрица:');
  for row := 1 to 10 do begin
    for column := 1 to 10 do
      Write(my2Darray[row][column]: 1, ' ');
    WriteLn;
  end;

  Readln;
end.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двумерный массив Ленка ленка Паскаль, Turbo Pascal, PascalABC.NET 3 02.05.2012 10:25
Одномерный массив и Двумерный массив eugene1437 Общие вопросы C/C++ 15 25.05.2011 19:17
Двумерный массив svim Помощь студентам 1 03.04.2011 23:05
Двумерный массив, одномерный массив. Branbal Помощь студентам 14 18.11.2009 12:40
двумерный массив JOHN1992 Помощь студентам 4 15.11.2009 08:51