![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
}0pa |
![]()
Сообщение
#1
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 75 Пол: Мужской Репутация: ![]() ![]() ![]() |
Дана вот такая процедура, вычисляющая сумму положительных элементов каждой строки. Но необходимо избавиться от write(...) в этой процедуре.
Код procedure summa (mx:PDynMatrix;c1:integer;c2:integer); var i,j, s:integer; begin for i:=1 to c1 do begin s:=0; writeln; for j:=1 to c2 do begin if mx^[I]^[J]>0 then s:=s+mx^[I]^[J] end; write('Matrica А :summa polozhitelnih elementov ',i,'-oy stroki = ',s); end; writeln; end; А вывести нужно в самой основной программе для любой дин.матрицы. что-то вроде Код procedure summa (mx:PDynMatrix;c1:integer;c2:integer;s:integer); begin ..... ..... .... end; begin summa(A,n,m,s1); write(s1); end. Но так как там сумма динамическая, у меня возникли некоторые проблемы Сообщение отредактировано: }0pa - 7.10.2006 9:23 -------------------- Ну, а почему бы в свободное время не позаниматься программированием?
|
мисс_граффити |
![]()
Сообщение
#2
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
а ты бы в основную программу что-нибудь возвращал...
сумму одной строки, например. а подпрограмму вызывал в цикле. или вектор сумм. -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
}0pa |
![]()
Сообщение
#3
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 75 Пол: Мужской Репутация: ![]() ![]() ![]() |
Я не могу понять, как это организовать нужно. Сумма динамическая. Нужно делать два цикла и процедуре и в основной программе? Помогите плиз. очень надо
-------------------- Ну, а почему бы в свободное время не позаниматься программированием?
|
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Цитата Сумма динамическая Поясни... Что в твоем понимании динамическая сумма?Вообще-то это извращение, делать подпрограмму, которая должна вернуть результат, процедурой. Функции в Паскале - не для красоты, кстати... Но если так нужно - procedure summa (mx:PDynMatrix;c1:integer;c2:integer;VAR s:integer); |
}0pa |
![]()
Сообщение
#5
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 75 Пол: Мужской Репутация: ![]() ![]() ![]() |
Я понимаю, что немного некорректно выразился...В общем, эта процедура вычисляет сумму элементов каждой строки матрицы. Т.е. понятно, что нужно будет вызывать ее в цикле. Неужели в этом случае нельзя обойтись без циклов в каком-то месте (в подпрограмме или в осн.программе)?
Цитата Вообще-то это извращение, делать подпрограмму, которая должна вернуть результат, процедурой. Функции в Паскале - не для красоты, кстати... Но если так нужно - Я с тобой полностью согласен, но задание требует это "извращение". Хотя, если получится с функцией, то фиг с ним. -------------------- Ну, а почему бы в свободное время не позаниматься программированием?
|
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
Цитата Т.е. понятно, что нужно будет вызывать ее в цикле Это с чего ты решил?Цитата Неужели в этом случае нельзя обойтись без циклов в каком-то месте Все можно...procedure summa(mx: PDynMatrix; c1, c2: integer; var s: array of integer); |
}0pa |
![]()
Сообщение
#7
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 75 Пол: Мужской Репутация: ![]() ![]() ![]() |
Весьма благодарен...
![]() -------------------- Ну, а почему бы в свободное время не позаниматься программированием?
|
Malice |
![]()
Сообщение
#8
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: ![]() ![]() ![]() |
...
vec: array[1 .. 10] of integer; for i:=1 to c1 do begin s[pred(i)] := 0; ... Неверное так не надо. |
volvo |
![]()
Сообщение
#9
|
Гость ![]() |
Malice, ты с открытыми массивами встречался? Индексация ВСЕГДА с нуля, им по барабану, как описана сама переменная... Хоть так:
Var хоть так Var - обращаться в процедуре все равно надо от 0 до 299... |
Malice |
![]()
Сообщение
#10
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: ![]() ![]() ![]() |
Неа, не встречался, поэтому "наверное" и написал.
|
![]() ![]() |
![]() |
Текстовая версия | 12.08.2025 8:21 |