Задачи на знание ООП, (только для Турбо-Паскаля 7.0) |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Задачи на знание ООП, (только для Турбо-Паскаля 7.0) |
volvo |
Сообщение
#41
|
Гость |
Угу... Молодец... А что произойдет с локальной копией, когда закончится выполнение процедуры, ты мне можешь рассказать? Даже не так... Давай начнем с такого вопроса: куда копируется переменная, переданная "по значению"?
|
Bokul |
Сообщение
#42
|
Гуру Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация: 11 |
Цитата Угу... Молодец... Цитата Давай начнем с такого вопроса: куда копируется переменная, переданная "по значению"? Не знаю... Добавил: уже знаю, благодаря той ссылке, - в стек. Сообщение отредактировано: Bokul - -------------------- Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее. |
мисс_граффити |
Сообщение
#43
|
просто человек Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
Передавать как константу?
procedure count_each(const p:PT); -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
volvo |
Сообщение
#44
|
Гость |
Нет, ребята (и девушки тоже ) - так не пойдет... Чего вы по одной строке спрашиваете? Я тоже могу сказать, что менять надо одну их этих строк, и что? Помогло это вам? Нисколько... Мне тоже вот этот момент
Цитата Передавать как константу? ничего не сказал... Где объяснение, что изменится в таком случае? Что будте происходить, чего происходить не будет... Полную программу в студию Которая не дает утечек... Только проверяться она будет на моих тестах Вот эти части:varя изменю... Так, как позволяет синтаксис и описания объектов... А потом сравню размер свободной памяти ДО начала выполнения программы с размером ПОСЛЕ окончания работы, договорились? Естественно, программа должна реализовывать и основные функции: печать любого из элементов кортежа, проверку количества элементов того или иного типа... |
мисс_граффити |
Сообщение
#45
|
просто человек Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
запрет на пользование компилятором в силе?
если нет - где можно размер свободной памяти проверить? -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
volvo |
Сообщение
#46
|
Гость |
Нет, теперь на пользование компилятором нет запрета... Сейчас закрыт только код, который будет добавляться мной для теста
Но компилироваться программа должна в TP (и менять настройки среды для того, чтобы она заработала, пользователь не должен... Если нужно изменить режимы компиляции, или еще какие вещи - пользуемся директивами компилятора) |
Bokul |
Сообщение
#47
|
Гуру Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация: 11 |
Цитата Выходит мы получаем два указателя на один объект - один локальный (копия) и второй - который мы не знаем. Мне интересно, что делает Паскаль с этим неизвестным? Так что же компилятор делает потом с неизвестным указателем? -------------------- Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее. |
мисс_граффити |
Сообщение
#48
|
просто человек Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
...и как посмотреть, сколько памяти свободно?
-------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
volvo |
Сообщение
#49
|
Гость |
writeln(memavail); |
Bokul |
Сообщение
#50
|
Гуру Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация: 11 |
А я?
-------------------- Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее. |
volvo |
Сообщение
#51
|
Гость |
А ты - по ссылке, которую я давал раньше, там все написано
Ничего к сказанному там я добавить не могу... |
Bokul |
Сообщение
#52
|
Гуру Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация: 11 |
Так?
Полный код: Сообщение отредактировано: Bokul - Прикрепленные файлы Objects.PAS ( 1.75 килобайт ) Кол-во скачиваний: 214 -------------------- Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее. |
volvo |
Сообщение
#53
|
Гость |
Цитата Так? Добавление 3-х строк в те участки, в которые я показал - результат в аттаче... Не все утечки убраны... Эскизы прикрепленных изображений |
Bokul |
Сообщение
#54
|
Гуру Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация: 11 |
Что ж там за строки У меня максимальная утечка была 16 байт, у тебя -320
-------------------- Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее. |
volvo |
Сообщение
#55
|
Гость |
Bokul, в моем скриншоте содержится скрытая подсказка
|
Bokul |
Сообщение
#56
|
Гуру Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация: 11 |
Все, сдаюсь... Не вижу, где убегают драгоценные байты... Идей нету, может только еще один деструктор для TArr сделать, но это уже гадание... так что прошу показать правильное решение.
-------------------- Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее. |
volvo |
Сообщение
#57
|
Гость |
Цитата Не вижу, где убегают драгоценные байты... Хорошо... Подсказываю. Вот тут:procedure TArr.set_index(i: integer; p: PT); Что будет, например, если я запишу 4 раза подряд в первую ячейку заново инициализированный объект? Я имею в виду, что будет с тем объектом, адрес которого там был записан РАНЬШЕ? Он останется висеть в памяти, а указатель на него ты потеряешь Теперь понятно, что надо поправить? |
Bokul |
Сообщение
#58
|
Гуру Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация: 11 |
Аааа... Мелькала такая мысль, ну только я ее сразу почему-то отбросил.
Цитата Теперь понятно, что надо поправить? Ага Но я вижу три способа: 1 удалять с кучи прежний объект 2 не допускать этого 3 самому назначать индексы Цитата Я имею в виду, что будет с тем объектом, адрес которого там был записан РАНЬШЕ? но смотря как передавать... если инициализировать объект прямо в методе any_arr.set_index(1,new(PTfloat,create)); то действительно потеряем, если же через известный указатель, то не вижу никаких проблем. Сообщение отредактировано: Bokul - -------------------- Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее. |
volvo |
Сообщение
#59
|
Гость |
Цитата если же через известный указатель, то не вижу никаких проблем. Да? Зато я вижу: допустим, тебе надо создать кортеж из 500 элементов... Будешь создавать 500 переменных-указателей? Тогда зачем, извини, тебе кортеж... Работать-то будешь все равно через одну (максимум - две, потому что есть 2 разных типа реальных объектов, которые ты можешь создать) переменные. И все равно потеряешь старое значение при инициализации нового экземпляра...Цитата я вижу три способа: Если можно - решения для всех трех - в студию |
Bokul |
Сообщение
#60
|
Гуру Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация: 11 |
Цитата Если можно - решения для всех трех - в студию Сделаем, но только через часиков 10 - сейчас спать, а завтра в школу не идти P.S. Я конечно понимаю, что достал уже, но я так и не понял, что Паскаль делает с этим неизвестным указателем -------------------- Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее. |
Текстовая версия | 4.10.2024 13:21 |