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

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

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

> Матрица
test100
сообщение 9.06.2005 15:58
Сообщение #1


Гость






Помогите пожалуйста решить. :molitva:

Матрица n на m элементов

В каждой строке заменить максимальный элемент на сумму элементов соответствующей строки.
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 7)
volvo
сообщение 9.06.2005 16:00
Сообщение #2


Гость






Значит поиском пользоваться не хотим? Таких задач в разных вариантах ДЕСЯТКИ решены на форуме !!! Сколько можно одни и те же вопросы задавать?
 К началу страницы 
+ Ответить 
klem4
сообщение 9.06.2005 16:08
Сообщение #3


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


Цитата(volvo @ 9.06.05 16:00)
Значит поиском пользоваться не хотим? Таких задач в разных вариантах ДЕСЯТКИ решены на форуме !!! Сколько можно одни и те же вопросы задавать?
:yes:

на уже, не мучайся, но впредь пользуйся поиском!


for i:=1 to n do
begin
s:=0;
for j:=1 to m do
s:=s+x[i,j];
nmax:=1;
for j:=2 to m do
if x[i,j]>x[i,nmax] then
nmax:=j;
x[i,nmax]:=s;
end;


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
test100
сообщение 9.06.2005 16:58
Сообщение #4


Гость






Почему-то только в некоторых строках заменяет правильно...


program test; uses crt;
const n=4; m=4;
var
x:array[1..n,1..m] of integer;
nmax:integer;
s:integer;
i,j:byte;
begin
clrscr;
randomize;
writeln('Исходный матрица');
for i:=1 to n do
begin
for j:=1 to m do
begin
x[i,j]:=random(10);
write(x[i,j]:4);
end;
writeln;
end;

for i:=1 to n do
begin
s:=0;
for j:=1 to m do
s:=s+x[i,j];
nmax:=1;

for j:=2 to m do
if x[i,j]>x[1,nmax] then
nmax:=j;
x[i,nmax]:=s;
end;
writeln('Полученная матрица');
for i:=1 to n do
begin
for j:=1 to m do write(x[i,j]:4);
writeln;
end;
end.



Еще не подскажите как сделать чтобы максимальный элемент в сумму не входил.
 К началу страницы 
+ Ответить 
klem4
сообщение 9.06.2005 17:06
Сообщение #5


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


у меня все работает :

uses crt;
const n=2;
m=3;

var
x:array[1..n,1..m] of integer;
i,j,s,nmax:integer;

begin
clrscr;
randomize;
for i:=1 to n do
begin
writeln;
for j:=1 to m do
begin
x[i,j]:=random(11);
write(x[i,j]:2,' ');
end;
end;

for i:=1 to n do
begin
s:=0;
for j:=1 to m do
s:=s+x[i,j];
nmax:=1;
for j:=2 to m do
if x[i,j]>x[i,nmax] then
nmax:=j;
x[i,nmax]:=s;
end;

WRITELN;
for i:=1 to n do
begin
writeln;
for j:=1 to m do
write(x[i,j]:2,' ');
end;

readln;
end.







--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 9.06.2005 17:07
Сообщение #6


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


у тебя ошибка

Цитата
for j:=2 to m do
if x[i,j]>x[1,nmax] then
nmax:=j;
x[i,nmax]:=s;
end;


IF x[i,j]>x[i,nmax] а не x[1,nmax]

Сообщение отредактировано: klem4 - 9.06.2005 17:11


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 9.06.2005 17:13
Сообщение #7


Гость






Цитата(test100 @ 9.06.05 16:58)
Еще не подскажите как сделать чтобы максимальный элемент в сумму не входил.

Вместо
x[i, nmax] := s;

поставь
x[i, nmax] := s - x[i, nmax];
 К началу страницы 
+ Ответить 
test100
сообщение 9.06.2005 17:26
Сообщение #8


Гость






klem4 и volvo
Большое вам СПАСИБО
 К началу страницы 
+ Ответить 

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

 



- Текстовая версия 22.06.2025 23:24
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"