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

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

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

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

Паскаль. Работа с двумерными массивами

scorpius

Новые
Регистрация
20 Фев 2012
Сообщения
27
Реакции
0
Баллы
0
Паскаль. Работа с двумерными массивами

Безымянный.webp

от.webp

:tehnari_ru_837:
вообще ничего не понятно((((((
 
Здесь, прежде всего, в условии задачи содержится ГРУБЕЙШАЯ ошибка, а именно - диагонали (главная и побочная) бывают ТОЛЬКО у квадратных матриц, понятие "диагональ" к неквадратным (прямоугольным) матрицам НЕПРИЛОЖИМО в принципе, а в условии фигурирует матрица 5х6. Бред и абсурд - так можете преподу и сказать.
Задача может быть решена для произвольной КВАДРАТНОЙ матрицы NxN. В программе N=6, но можно поменять, изменив значение константы.
Код:
Const
 N=6;
Var
 M:Array[1..N,1..N] of Integer;
 Sum:Integer;
 i,j:byte;
Begin
 Randomize;
 writeln('Matrix:');
 for i:=1 to N do
  begin
   for j:=1 to N do
    begin
     M[i,j]:=50-Random(100);
     write(M[i,j]:4);
    end;
   writeln;
  end;
 writeln;
 Sum:=0;
 for i:=1 to N-1 do
  for j:=i+1 to N do
   Sum:=Sum+M[i,j];
 writeln('Sum = ',Sum);
 readln
End.
 
спасибо большое за всё!!!!!
 
А можно еще спросить по поводу этой программы.
Есть несколько строк, которые хотелось бы понять :) А если быть честным и точнее, то это практически весь код :tehnari_ru_942:, начиная со строки:
writeln('Matrix:')
 
А можно еще спросить по поводу этой программы.
Есть несколько строк, которые хотелось бы понять :) А если быть честным и точнее, то это практически весь код :tehnari_ru_942:, начиная со строки:
writeln('Matrix:')
Ну не знаю, сколь подробно Вам надо. Вообще-то там так:
1. В цикле по строкам (i) и столбцам (j) методом генерации случайных чисел формируется массив значений элементов матрицы. Диапазон взят от -50 до +50. Одновременно элементы матрицы построчно выводятся на экран.
2. Считается сумма элементов матрицы. Диапазон изменений номеров строк (от 1 до N-1) и номеров столбцов (от i+1 до N) выбран так, что перебираются и, соответственно, суммируются только те элементы матрицы, которые находятся над главной диагональю.
3. На экран выводится результат (найденная сумма).

Вообще-то там еще требуется найти количество членов матрицы над главной диагональю, если очень надо - можно вставить и это, но в принципе глупость полнейшая: это количество всегда есть
(N² - N)/2. И что тут считать, спрашивается?
 
Понятно, спасибо!
 
Назад
Сверху