модули элементов в двумерном массиве |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
модули элементов в двумерном массиве |
мисс_граффити |
Сообщение
#21
|
просто человек Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
это формальный параметр.
вместо него при вызоые подставляется фактический - i. -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
18192123 |
Сообщение
#22
|
Профи Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: 2 |
|
18192123 |
Сообщение
#23
|
Профи Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: 2 |
большое спасибо! а у меня тут еще один вариант "родился", только, по-моему, где-то напутала с формальными и фактическими параметрами, т.к. программа не идет дальше вывода исходной матрицы...
Сообщение отредактировано: 18192123 - |
18192123 |
Сообщение
#24
|
Профи Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: 2 |
а у меня тут еще один вариант "родился", только, по-моему, где-то напутала с формальными и фактическими параметрами, т.к. программа не идет дальше вывода исходной матрицы...
ну почему мне никто не хочет помочь! неужели трудно объяснить, что я делаю не так! пожалуйста, объясните, в чем я ошибаюсь!!! Сообщение отредактировано: 18192123 - |
18192123 |
Сообщение
#25
|
Профи Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: 2 |
|
мисс_граффити |
Сообщение
#26
|
просто человек Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
послушай:
1. никто не обязан круглосуточно следить за твоими темами. когда будет время - все всё увидят. крики вроде "кто-нибудь меня слышит?" ничего, кроме раздражения, не вызывают. тем более с огромными скопированными кусками кода. 2. тебе дали рабочую программу? она тебе не нравится? тогда переделывай САМА. отлаживай. сравнивай с тем, что дали. procedure modyl(var a:matr; s:vect); ты хочешь тут изменять только a, оставляя s неизменным? нет? вот и пиши, что это var. -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
18192123 |
Сообщение
#27
|
Профи Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: 2 |
послушай: 1. никто не обязан круглосуточно следить за твоими темами. когда будет время - все всё увидят. крики вроде "кто-нибудь меня слышит?" ничего, кроме раздражения, не вызывают. тем более с огромными скопированными кусками кода. 2. тебе дали рабочую программу? она тебе не нравится? тогда переделывай САМА. отлаживай. сравнивай с тем, что дали. procedure modyl(var a:matr; s:vect); ты хочешь тут изменять только a, оставляя s неизменным? нет? вот и пиши, что это var. вот я и переделываю! согласна, это я погорячилась. понимаю, что мне здесь никто ничего не должен теперь о задаче: я делаю, как ты говоришь, но теперь прога выдает элементы 2-й строки, причем всегда и только первые два ???????????? |
Lapp |
Сообщение
#28
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Первое замечание: соблюдай отступы! после каждого begin текст идет на 2 позиции правее, после end - левее. Посмотри на мой код внизу - сразу видно, где задаются переменные, где тело процедуры, а где тело цикла, правда?
В процедуре Модыл (modyl) понаворочено.. 1. В тройном цикле самый внешний (по k) - лишний. 2. Соответственно, сам параметр k - лишний. Все k заменить на i. 3. Тело цикла упростить так: s[i]:=s[i]+abs(a[i,j]) 4. Тогда переменная t больше не нужна - убрать (она все равно неправильно использовалась) 5. Для краткости, убери цикл с занулением s[i] и сделай зануление во внешнем цикле двойного перед внутренним. Должно получиться что-то вроде этого: procedure modyl(var a:matr; var s:vect); В процедуре Поиск что-то совсем странное.. Ты печатаешь ВСЕ строчки, у которых s[k] больше чем s[1]. При этом первую строчка не напечатается, даже если s[1] больше всех остальных значений. Кроме того, ты перепутала n и m, поэтому выводятся не 3, а 2 элемента.. Как нужно делать: 1. Запоминаешь s[1] в max (это у тебя есть). 2. Заводишь еще один параметр (скажем, L) для номера искомой строки. 3. Кладешь в L единицу (номер первой строки). 4. Устраиваешь цикл по строчкам со 2-й (потому что первый элемент сравнивать с самим собой бессмысленно) до m. 5. В этом цикле, если s[k] больше чем max, то запоминаешь параметр цикла в L. 6. Выходишь из цикла и печатаешь строку с номером L. Последнее замечание: почему ты в процедуре Модыл параметры цикла определяла диапазоном, а в процедуре Поиск аналогичные параметры у тебя integer? Типа при поиске проверка диапазона тебе не важна? Вот потому-то у тебя и получаются ошибки от путаницы m и n. Уж если делаешь диапазоном, делай везде. Когда перестанешь делать очевидные ошибки (или хотя бы научишься их искать) - тогда делай intrger.. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
18192123 |
Сообщение
#29
|
Профи Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: 2 |
Первое замечание: соблюдай отступы! после каждого begin текст идет на 2 позиции правее, после end - левее. Посмотри на мой код внизу - сразу видно, где задаются переменные, где тело процедуры, а где тело цикла, правда? В процедуре Модыл (modyl) понаворочено.. 1. В тройном цикле самый внешний (по k) - лишний. 2. Соответственно, сам параметр k - лишний. Все k заменить на i. 3. Тело цикла упростить так: s[i]:=s[i]+abs(a[i,j]) 4. Тогда переменная t больше не нужна - убрать (она все равно неправильно использовалась) 5. Для краткости, убери цикл с занулением s[i] и сделай зануление во внешнем цикле двойного перед внутренним. Должно получиться что-то вроде этого: procedure modyl(var a:matr; var s:vect); В процедуре Поиск что-то совсем странное.. Ты печатаешь ВСЕ строчки, у которых s[k] больше чем s[1]. При этом первую строчка не напечатается, даже если s[1] больше всех остальных значений. Кроме того, ты перепутала n и m, поэтому выводятся не 3, а 2 элемента.. Как нужно делать: 1. Запоминаешь s[1] в max (это у тебя есть). 2. Заводишь еще один параметр (скажем, L) для номера искомой строки. 3. Кладешь в L единицу (номер первой строки). 4. Устраиваешь цикл по строчкам со 2-й (потому что первый элемент сравнивать с самим собой бессмысленно) до m. 5. В этом цикле, если s[k] больше чем max, то запоминаешь параметр цикла в L. 6. Выходишь из цикла и печатаешь строку с номером L. Последнее замечание: почему ты в процедуре Модыл параметры цикла определяла диапазоном, а в процедуре Поиск аналогичные параметры у тебя integer? Типа при поиске проверка диапазона тебе не важна? Вот потому-то у тебя и получаются ошибки от путаницы m и n. Уж если делаешь диапазоном, делай везде. Когда перестанешь делать очевидные ошибки (или хотя бы научишься их искать) - тогда делай intrger.. кажется, я в очередной раз запуталась в процедурах modyl и poisk , программа мне выводит три строчки по 2 элемента, я наверное снова путаю m и n? вот кусок для этих процедур:
ох! Сообщение отредактировано: 18192123 - |
18192123 |
Сообщение
#30
|
Профи Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: 2 |
кажется, я в очередной раз запуталась в процедурах modyl и poisk , программа мне выводит три строчки по 2 элемента, я наверное снова путаю m и n? вот кусок для этих процедур:
ох! теперь поняла в чем ошибка: вместо for j:=1 to m do writeln (s[l]); нужно for j:=1 to m do write(a[L,j],' '); |
Lapp |
Сообщение
#31
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
теперь поняла в чем ошибка Уррррааа! Ты делаешь громадные успехи, кроме шуток. Продолжай в том же духе! PS При ответе, пожалуйста, оставляй из цитаты сообщения, на которое отвечаешь, только то, что нужно, а остальное удаляй - вот как я сейчас сделал, видишь? -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Текстовая версия | 7.12.2024 8:22 |