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

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

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

> Подпрограммы
Камтугеза
сообщение 15.01.2006 18:18
Сообщение #1





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

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


Даны массивы А (30; 20) и В (40;50) из вещ чисел. Найти номер строки с максимальной суммой элементов. В том массиве, где этот номер число нечетное, обнулить элементы данной строки. Если номер окажется нечетным, то выдать соответ сообщение.

помогите, пожалуйста...=)
буду рада идеям, потому что не могу понять сам алгоритм.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
klem4
сообщение 15.01.2006 19:30
Сообщение #2


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

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

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


Вот мой вариант, менее гибкий, более громоздкий, но более понятный

uses crt;
const
Nmax = 5;
Mmax = 6;
type
TMx = array[1..Nmax,1..Mmax] of single;

procedure print_mx(mx : TMx; n,m : byte);
var
i,j : byte;
begin
for i := 1 to n do begin
writeln;
for j := 1 to m do write(mx[i,j]:5:2,' ');
end;
end;
procedure row_zero(var mx : TMx; n,m,row : byte);
var
j : byte;
begin
for j := 1 to m do mx[row,j] := 0;
end;

function row_sum(mx : TMx; n,m,row : byte) : extended;
var
j : byte;
s : extended;
begin
s := 0.0;
for j := 1 to m do
s := s + mx[row,j];
row_sum := s;
end;

procedure max_row(var mx : Tmx; n,m : byte);
var
i,nMax : byte;
begin
for i := 1 to n do
if (nMax = 0) or (row_sum(mx, n, m, i) > row_sum(mx, n ,m, nMax)) then
nMax := i;
if odd(nMax) then begin
readln;
writeln('Yes ', nmax);
row_zero(mx, n, m, nMax);
end;
end;

var
test: TMx =
(
(1, 2, 3, 4, 5, 6), { 21 }
(6, 9, 0, 1, 2, 10), { 28 }
(6, 3, 9, 9, 6, 0), { 33 }
(4, 7, 3, 9, 8, 8), { 39 }
(5, 4, 2, 8, 1, 30) { 50 }
);

begin
clrscr;
max_row(test, 5, 6);
print_mx(test, 5, 6);
readln;
end.



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

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


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

 



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