IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Двумерные массивы, Вывод, поиск, операции с двумерными массивами
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 3
Пол: Мужской
Реальное имя: 19:38

Репутация: -  0  +


Дана матрица A[5,4] масс грузов P-отправителей, Q-получателя; P=5;Q=4 при распечатке:
1) Ввести матрицу по строкам и получить распечатку матрицы.
2) Определить сумму элементов каждой строки.
3) Определить строку с максимальной суммой и разместить её первой (поменяв при необходимости местами).
4) Реализовать выбор всех элементов матрицы > больше 10 т. и вывод их значений и индексов.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Знаток
****

Группа: Пользователи
Сообщений: 481
Пол: Мужской
Реальное имя: Федосеев Павел

Репутация: -  9  +


Круто!

Возможно, ты был невнимателен, но в условии говорится о матрице А[5,4], а ты определяешь A[4,5]. И в дальнейшем используешь обращения PQ[j, i] вместо привычных глазу PQ[i, j].

В процедуре вывода матрицы я бы ограничился только выводом, без подсчёта суммы. А сам подсчёт выполнял бы в другом месте.

При вычислении суммы, ты обнуляешь переменную где-то в конце, а не перед вычислением суммы строки.


В итоге, сделал бы так:
uses
crt;

const
P = 5;
Q = 4;

var
i, j, IndexMaxSum: integer;
PQ: array[1..P, 1..Q] of real;
Sum, MaxSum, Mem: real;
QSummes: array[1..Q] of real;

procedure ShowTablePQ;
begin
clrscr;

for j := 1 to Q do
Write(' Q', j);
writeln;
writeln('---------------------------------------');

for i := 1 to P do
begin
Write('P', i);
for j := 1 to Q do
begin
Write(PQ[i, j]: 7: 2);
end;
writeln;
end;

end;

begin

for i := 1 to P do
for j := 1 to Q do
begin
Write(' P', i, ' --> Q', j, ' =');
Read(PQ[i, j]);
end;

ShowTablePQ;

Writeln('Суммы строк матрицы:');
for i := 1 to P do
begin
Sum := 0;
for j := 1 to Q do
Sum := Sum + PQ[i, j];
if (i = 1) or (Sum > MaxSum) then
begin
MaxSum := Sum;
IndexMaxSum := i;
end;
writeln(' Строка ', i, ' Sum=', Sum: 0: 2);
end;
writeln('Максимальная сумма (', MaxSum: 0: 2, ') в строке ', IndexMaxSum, '.');

writeln;
writeln('Выносим строку с максимальной суммой на первую позицию');
readln;
for j := 1 to Q do
begin
Mem := PQ[1, j];
PQ[1, j] := PQ[IndexMaxSum, j];
PQ[IndexMaxSum, j] := Mem;
end;

ShowTablePQ;

writeln;

writeln('Выводим все элементы c грузом > 10');
readln;
writeln('-START-------------------');
for i := 1 to P do
for j := 1 to Q do
if PQ[i, j] > 10 then
writeln(' P', i, ' --> Q', j, ' =', PQ[i, j]);
writeln('---------------------END-');
end.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 18.05.2024 23:38
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name