Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 03.01.2016
Сообщений: 16

Заменить элементы матрицы суммой элементов соответствующих подматриц

02.03.2016, 10:46. Показов 1953. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дана вещественная матрица A размером (m x n). Обозначим A'(i,j)-верхний левый угол матрицы A до i-й строки и j-го столбца(подматрица). Каждому элементу исходной матрицы a[i,j] присвоить значение суммы элементов A'(i,j). Ограничение:разрешается в программе использовать единственную матрицу.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.03.2016, 10:46
Ответы с готовыми решениями:

Заменить элементы главной диагонали суммой элементов каждой строки матрицы X(m,m).
Заменить элементы главной диагонали суммой элементов каждой строки матрицы X(m,m).

Заменить все элементы последнего столбца суммой элементов последней строки матрицы
1) дана матрица целых чисел размером 4х4.Заменить все элементы последнего столбца суммой элементов последней строки матрицы. 2)элементы...

В строке с максимальной суммой элементов заменить все отрицательные элементы на ноль
почему в процедуре замены не может отпределить номер строки? const maxN = 100; maxM = 100; type matrix = array of integer; ...

5
Модератор
10416 / 5703 / 3401
Регистрация: 17.08.2012
Сообщений: 17,363
04.03.2016, 02:07
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
const mr = 5; {максимальный размер массива по вертикали и горизонтали}
              {можно поменять, однако, возможно, придётся кое-где изменять формат вывода}
 
{ввод размера массива с проверкой на корректность}
procedure inp_rng(s: string; var x: integer);
begin
  repeat
    write(s, ' in range [1..', mr, '],  ', s, ' = '); {печать приглашения}
    readln(x) {ввод числа}
  until x in [1..mr] {повторяем, пока число не будет в допустимом диапазоне}
end;
 
var i, j, k, l, m, n: integer;
    s: real;
    a: array [1..mr, 1..mr] of real;
 
begin
  randomize;
  inp_rng('m', m); {ввод количества строк}
  inp_rng('n', n); {ввод количества столбцов}
  writeln('Source matrix:'); {"Исходная матрица"}
  {генерация и печать элементов матрицы}
  for i := 1 to m do {цикл по строкам}
    begin
      for j := 1 to n do {цикл по столбцам}
        begin
          a[i, j] := 100 * random - 200; {генерация элемента в диапазоне -100..100}
          write(' ', a[i, j]:14) {печать пробела, а также числа в 14 позициях}
        end;
      writeln {перевод на новую строку}
    end;
  {вычисления по заданию}
  for i := 1 to m do {цикл по строкам}
    for j := 1 to n do {цикл по столбцам}
      begin
        s := 0; {сумма ещё не посчитана ( = 0 )}
        for k := i to m do {цикл по строкам подматрицы}
          for l := j to n do {цикл по столбцам подматрицы}
            s := s + a[k, l]; {прибавляем к сумме очередной элемент подматрицы}
        {циклы по k и l завершены, сумма очередной подматрицы вычислена}
        a[i, j] := s {записываем сумму на место соответствующего элемента матрицы}
      end;
  {циклы по i и j завершены, все суммы найдены}
  writeln('Result:'); {"Результат:"}
  {печатаем получившуюся матрицу}
  for i := 1 to m do {цикл по строкам}
    begin
      for j := 1 to n do write(' ', a[i, j]:14); {цикл по столбцам, печать аналогично строке 28}
      writeln {перевод на новую строку}
    end;
  readln {ждём нажатия <Enter> (чтобы программа не закрылась и результат можно было бы посмотреть)}
end.
1
0 / 0 / 0
Регистрация: 03.01.2016
Сообщений: 16
06.03.2016, 18:37  [ТС]
А можно комментарии? С английским плоховато(в принципе,как и с паскалем)
0
Модератор
10416 / 5703 / 3401
Регистрация: 17.08.2012
Сообщений: 17,363
06.03.2016, 19:03
Комментарии добавил. Ещё подправил строку 27, чтобы отрицательных и положительных чисел генерировалось примерно поровну.
1
0 / 0 / 0
Регистрация: 03.01.2016
Сообщений: 16
06.03.2016, 19:29  [ТС]
Цитата Сообщение от Cyborg Drone Посмотреть сообщение
write(s, ' in range [1..', mr, '], *', s, ' = '); {печать приглашения}
что значит печать приглашения?
0
Модератор
10416 / 5703 / 3401
Регистрация: 17.08.2012
Сообщений: 17,363
06.03.2016, 19:46
Это общепринятый термин текстового интерфейса. Приглашение - это текст, который описывает, что именно в данный момент нужно ввести. Например, при первом вызове процедуры
Pascal
19
  inp_rng('m', m); {ввод количества строк}
s будет равно строке 'm', значение константы mr определено до процедуры и равно 5. В результате выполнения оператора write из строки 8 будет напечатано

m in range [1..5], m =

Что переводится как

m в диапазоне [1..5], m =

и, так как используется оператор write, курсор будет находиться после знака "=". Программа остановится на операторе readln в строке 20 и будет ожидать ввода значения. Далее, после ввода значения (формальный параметр - локальная переменная x, действительный параметр при вызове в строке 19 - переменная m, в которую и будет помещено введённое значение), далее производится проверка на принадлежность диапазону, если число не принадлежит указанному диапазону, то печать приглашения и ввод повторяются, если принадлежит диапазону, то подпрограмма завершается и управление передаётся на следующую после вызывающей строку основной программы (на строку 20).

Проще написать, чем описать...
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.03.2016, 19:46
Помогаю со студенческими работами здесь

Заменить все нечетные элементы массива суммой второго и предпоследнего элементов
Здравствуйте, помогите пожалуйста решить задачку. Ввести с экрана одномерный массив А целого типа. Заменить все нечетные элементы массива...

Элементы главной диагонали матрицы поставить на место соответствующих элементов первого столбца
В массиве С(1:3, 1:3) элементы главной диагонали поставить на место соответствующих элементов первого столбца и определить сумму угловых...

В матрице (m x n) все элементы, равные единице, заменить суммой положительных элементов той строки
В матрице (m x n) все элементы, равные единице, заменить суммой положительных элементов той строки, где встретилась первая единица.

Процедуры: определить столбец с наибольшей суммой и заменить на строку с наименьшей суммой элементов
Всем привет, срочно помогите пожалуйста с программой. Я ее написал (вернее не я), но нужно оформить с процедурами. Срочно program...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru