Массивы, передача параметров в процедуры и функции |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Массивы, передача параметров в процедуры и функции |
Eduard |
26.05.2011 19:21
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 14 Пол: Мужской Репутация: 0 |
uses crt; Как сделать сортировку в виде процедуры, а вычисление в виде функции? Препод говорил что-то о разных способах задания переменых в процедурах и функциях, и я запутался, когда, какой способ использовать. Помогите, пожалуйста,. |
Lapp |
27.05.2011 0:33
Сообщение
#2
|
Уникум Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Как сделать сортировку в виде процедуры, а вычисление в виде функции? Препод говорил что-то о разных способах задания переменых в процедурах и функциях, и я запутался, когда, какой способ использовать. Думаю, твой препод имел в виду параметры-значения и параметры-переменные. Сортировку нужно применять непосредственно к самой матрице, и результат должен отразиться на ней - следовательно, надо применять var-параметр. Вычисление чего-то там (я так и не понял, чего именно; если среднее по столбцам - то оно делается неправильно) дает некий отдельный результат, никак не отражающийся на самой матрице. Следовательно, жеательно применить параметр-значение (хотя var-параметр тоже будет работать, и даже быстрее, нужно только следить за тем, чтоб случайно не испортить матрицу). А все вспомогательные переменнные (параметры цикла, промежуточные суммы..) надо делать локальными, то есть определять их внутри процедуры/функции.Короче, примерно вот так: const -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Eduard |
27.05.2011 6:19
Сообщение
#3
|
Новичок Группа: Пользователи Сообщений: 14 Пол: Мужской Репутация: 0 |
|
Lapp |
27.05.2011 7:55
Сообщение
#4
|
Уникум Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
В этом месте вылазит ошибка Stack overflow error. Увеличь стек или уменьши размер массивов.Какой у тебя компилятор? -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Eduard |
27.05.2011 7:56
Сообщение
#5
|
Новичок Группа: Пользователи Сообщений: 14 Пол: Мужской Репутация: 0 |
|
Lapp |
27.05.2011 8:03
Сообщение
#6
|
Уникум Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
TP7 А ездишь ты на телеге?.. По умолчанию, в TP7 стек был, кажется.. 16 К. Твой массив 100х100х2=20К. Увеличь стек до максимума (64К). Это в опциях. Скачай FP (freepascal.org) и займись делом, а не бирюльками. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Eduard |
27.05.2011 8:08
Сообщение
#7
|
Новичок Группа: Пользователи Сообщений: 14 Пол: Мужской Репутация: 0 |
Спасибо. Я не мог понять что такое стек.
|
Lapp |
27.05.2011 8:25
Сообщение
#8
|
Уникум Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Спасибо. Я не мог понять что такое стек. Стек - это область памяти, где размещаются переменные вызываемых процедур. Динамически аллоцируемая память размещается в "куче" (heap). Она в TP может достигать аж ~600 килобайт!! Дикое количество, особенно если учесть, что размер памяти сейчас измеряется даже не мегабайтами, а гигабайтами.. Иначе говоря, ТР тебе позволяет использовать одну-две сотых доли процента установленной памяти..Зачем пользоваться краденным старьем, если есть бесплатный новый компилятор со всеми современными возможностями? -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
TarasBer |
27.05.2011 9:39
Сообщение
#9
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
> Иначе говоря, ТР тебе позволяет использовать одну-две сотых доли процента установленной памяти..
Можно перейти в защищённый режим и использовать всю память. Правда, не пи запуске из хрюши. -------------------- |
Lapp |
28.05.2011 6:15
Сообщение
#10
|
Уникум Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Можно перейти в защищённый режим и использовать всю память. А сделать один большой массив?-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Текстовая версия | 27.04.2024 16:43 |