
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.30] |
![]() |
|
Страницы: (11) « Первая ... 3 4 [5] 6 7 ... 10 11 все ( Перейти к последнему сообщению ) |
Сообщ.
#61
,
|
|
|
Цитата best_lamer @ Стек - он и есть стек. Вот именно и на Python городить для стека класс это бред. «Динамическая таблица» Дальше говорить бессмысленно. То ты говоришь, что все, что есть - это классы, то "городить класс". Я не просил тебя написать именно красс, я просил реализацию абстрактной структуры данных "динамическая таблица". Это структура обеспечивает хранение информации изменяемого размера, обеспечивая среднее время вставки/удаления элемента O(1), за счем использования двойного размера памяти. А что в ней лежит - да что угодно, например, очередь с приоритетами на основе двоичной кучи. Если ты говоришь, что такая структура (та, что в статье) уже есть - дай описание, с асимптотикой. Если тебя это не привлекает - реализуй что-нибудь другое, например, биномиальную кучу. Сам. Код для нее найти просто ![]() Ну какой пример? Того факта, что нет контроля типов - уже достаточно, чтобы я ЭТО не применял. Думаешь, почему я в свое время выбрал именно Паскаль? Потому что в нем, в отличие от С и Бейсика жесткий контроль типов. Потом, в С++, контроль все-таки ввели. И отсутствие контроля типов нравится только новичкам. Когда начинается серьезная работа - сразу начинает действовать принцип "чем больше я отловлю ошибок на этапе компиляции - тем меньше мне придется ловить багов при выполнении". И не понимаю я смысла сравнивать скриптовый язык, изначально созданный для обучения, с профессиональным компилятором. У них просто весовые категории разные. Добавлено Я уже не говорю о том, что блоки определяются отступами. Для учашегося - это нормально, прививает хороший стиль. Для меня - циклы-то иногда длинными бывают, чуть сдвинул в конце не туда, что, трассировать? Листинг проверять трудненько будет. |
![]() |
|
|
Чувствую пора в Холивар.
![]() Парень спросил про то,изучать ли ему Дельфи. Вот лично мой ответ и дмуаю его многие поддержат: Языки на основе С,на данный момент более востребованы,нежели ветка языков основанных на Pascal'е. (я уже не говорю про такой *****зм как линия Basic) Но C,соответственно сложнее. |
Сообщ.
#63
,
|
|
|
Цитата Romkin @ я просил реализацию абстрактной структуры данных "динамическая таблица" Она приведена! ![]() ![]() Цитата Romkin @ То ты говоришь, что все, что есть - это классы, то "городить класс". Пойми для этой задачи на Delphi без класса никак. На Python как я уже говорил переменная=класс которому доступны уже предопределенные методы. Есть стандартные классы: очереди, стека. И для их реализации не нужно создавать еще что то эти классы по дефолту доступны любой переменной (точно также как и все методы этих классов может использовать любая переменная). Сама переменная может хранить элемент любого мыслимого типа (точто также и отдельный элемент стека может содержать что угодно: текст, еще один стек... я не знаю) В общем "Python Tutorial" глава "5. Data Structures" если вас не затруднит. А потом задавайте вопросы ![]() Цитата Romkin @ Для чего-то серьезного он не подходит, он небезопасен. Пример в студию. Ну какой пример? Если человек говорит "он небезопасен" то он подразумевает что на этоя языке можно совершить нечто потенциально опасное... так? Меня это естесственно заинтересовало и я попросил привести "Пример в студию." бог с ним с Python-ом а вообще алгоритм реализация которого несет угрозу чему либо... невозможна по каким либо причинам... как еще понятнее? И я получаю ответ "Ну какой пример?". Пример реализация которого без явного контроля типов на Python станет "небезопасной". Так устроит? А по поводу этого: ![]() Цитата Romkin @ И не понимаю я смысла сравнивать скриптовый язык, изначально созданный для обучения, с профессиональным компилятором. У них просто весовые категории разные. Давай сюда PS Кстати рекомендую ознакомится ![]() |
![]() |
Сообщ.
#64
,
|
|
Примеры..
Ну тревиальный: TOKEN = 'одвсводаовд' print T0KEN подобную ошибку я на VBA два часа искал. Потом узнал про Option Explicit и нашел мгновенно... |
Сообщ.
#65
,
|
|
|
Цитата best_lamer @ Цитата (Romkin @ Сегодня, 15:13) я просил реализацию абстрактной структуры данных "динамическая таблица" Она приведена! Ты всегда читаешь только первый абзац? Вот смотри, что я написал во втором: Цитата Romkin @ Если ты говоришь, что такая структура (та, что в статье) уже есть - дай описание, с асимптотикой. ![]() Цитата best_lamer @ Есть стандартные классы: очереди, стека. Есть. Какой расход памяти и какая асимптотика то есть какие затраты на вставку/извлечение? В STL это тоже все есть. Но когда я спрашиваю программиста С++ об этом, он мне четко отвечает. Разницу чувствуешь? Цитата best_lamer @ Пример реализация которого без явного контроля типов на Python станет "небезопасной". Я говорил о небезопасности для программиста, а не AV. Это несколько разные вещи. Что мне мешает в Питоне ошибиться в названии переменной, и потом пару часов искать ошибку? Что мне мешает ошибится в том, какой на данный момент тип имеет данная переменная, и получить из--за этого неверный результат? В общем, диалог абсолютно пустой. |
Сообщ.
#66
,
|
|
|
Цитата best_lamer @ Пойми для этой задачи на Delphi без класса никак. Где ты такой чуши поднабрался? Без класса подобное тоже очень легко реализуется. Я писал в свое время матричную арифметику на TP5, без всяких классов. И матрицы у меня были размерностью, если память не изменяет, до 20000х20000 элементов типа double (здесь нет лишних ноликов!). Проблемы были в том, чтобы найти машину с подходящим диском, но никак не в отсутствии ООП. |
Сообщ.
#67
,
|
|
|
Цитата Romkin @ Что мне мешает в Питоне ошибиться в названии переменной, и потом пару часов искать ошибку? Сам Python ![]() Цитата jack128 @ Примеры.. Ну тревиальный: TOKEN = 'одвсводаовд' print T0KEN jack128 Для удобства я для ВАС даже строки пронумеровал! ![]() ![]() TOKEN = 'одвсводаовд'#Строка 1 print T0KEN#Строка 2 Запускаю на выполнение читаю: Цитата Отлаживаемая программа выбросила исключение unhandled NameError "name 'T0KEN' is not defined" Файл: /'тут был путь'/temp.py, строка 2 С этим вопрос исчерпан? (перед запуском на исполнение идет собственно процесс отладки и поиска ошибок и в этом плане Python дааааааалеко не Васёк) Еще идеи касательно «нетривиальных» подводных камней есть? Цитата Romkin @ Я говорил о небезопасности для программиста, а не AV. Для программиста так для программиста давай!!! Цитата Romkin @ Есть. Какой расход памяти и какая асимптотика то есть какие затраты на вставку/извлечение? В STL это тоже все есть. Но когда я спрашиваю программиста С++ об этом, он мне четко отвечает. Разницу чувствуешь? Ни этим «Какой расход памяти» ни этим «какие затраты на вставку/извлечение» специально не интересовался. Но думаю что если пойти на этот сайт то при желании эту информацию можно без проблем отыскать. (у мну диалап поэтому прошу прощения но искать для ВАС у меня просто нет времени) |
![]() |
Сообщ.
#68
,
|
|
Цитата best_lamer @ И Shaggy кстати как там по поводу примеров на делфи без модулей System, Math к примеру? примеры чего? говори, напишу... |
Сообщ.
#69
,
|
|
|
Цитата Shaggy @ примеры чего? говори, напишу... Да хотя бы те же массивы без Array ![]() |
![]() |
Сообщ.
#70
,
|
|
непонял
![]() начиналось то с чего? сравниваем возможности языка и неиспользуем модули, DLL etc. т.к. я и в Delphi могу например Uses Чего-то там ... супер-пупер действие ты имитируешь работу с массивом, потому что его поддержки нет в Питоне, но в Delphi-то Array встроен, это возможность языка, а не фишка какой-нибудь либы... |
Сообщ.
#71
,
|
|
|
Цитата Shaggy @ непонял начиналось то с чего? сравниваем возможности языка и неиспользуем модули, DLL etc. т.к. я и в Delphi могу например Uses Чего-то там ... супер-пупер действие ты имитируешь работу с массивом, потому что его поддержки нет в Питоне, но в Delphi-то Array встроен, это возможность языка, а не фишка какой-нибудь либы... Смотрим... программа с матрицами из см Сообщ. #29 от 8.08.06, 16:50 Реализована при помощи двух внешних модулей (Matrix и Numeric) из библиотеки Numerical-Python вслед за этим понеслись обвинения вида «А ты обманщик и мы тожа так можем с нашими uses-ами... Даешь чистый Python» Чистый Python? Нате вам чистый Python я написал реализацию матриц без единого внешнего модуля см Сообщ. #50 от Вчера, 21:38 Оцени еще раз то что именно я сделал. В Delphi это равносильно работе с матрицами без использования вообще чего либо в секции uses! «ты имитируешь работу с массивом, потому что его поддержки нет в Питоне» Не совсем точно вернее будет так «ты имитируешь работу с массивом, потому что в чистом Python без вредных внешних модулей нет прямого аналога Delphi-йскому типу Array» Shaggy Давайте будем до конца честными друг с другом! Мне запретили пользоваться какими то ни было библиотеками/модулями и тд Я предоставил решение проблемы удовлетворяющее поставленному условию. Т.е. отказавшись от вообще всего внешнего только средствами встроенными во все интерпретаторы Python я тем не менее решил задачу. А теперь пара вопросов... Кроме всего прочего файл system.pas является модулем в представлении языка Pascal? (Да безусловно!) А если является то наверное будет честно решить простенькую задачу с матрицами на Pascal/Delphi отказавшись от всего что предоставляют нам внешние модули/библиотеки и т.п.? В Python нет аналога файлу system.pas в Delphi! Т.е. в Python нет какой бы то ни было библиотеки/модуля которая загружалась бы автоматически при старте и была бы доступна любому приложению по умолчанию. И если вначале программы нет конструкции вида «from название_либы import *» значит эта программа использует исключительно то что умеет интерпретатор самого Python (а сам он надо сказать довольно беден на встроенные функции). В общем со своей стороны я решил задачу (несколькими путями) а от вас я очередной раз читаю отговорки. ЗЫ: Название Python ничего общего со змеёй не имеет! |
Сообщ.
#72
,
|
|
|
Чтоли выдумать задачу на которой питон сольет?
![]() |
Сообщ.
#73
,
|
|
|
Кстати, а как в дельфах обходят ограниченную ссылочную объектную модель? Вот в c++ есть автоматические объекты, т.е., можно из функции вернуть объект, после чего он сразу же будет уничтожен. В c#, java, и в (afaik) почти всех интерпретируемых языках --- сборка мусора. А в дельфе нет ни автоматических объектов, ни сборки мусора.
Поясню на примере: cpp: ![]() ![]() class MyClass { ... }; MyClass my_func(){return MyClass();} int my_func2(MyClass mc){...} int main() { my_func2(my_func()); } Утечки ресурсов нет --- все объекты уничтожены. c#: ![]() ![]() class MyClass { ... } MyClass my_func(){return new MyClass();} int my_func2(MyClass mc){...} int main() { my_func2(my_func()); } Утечки также нет --- все приберет сборщик. delphi: ![]() ![]() type MyClass = class ... end; function my_func: MyClass; begin result := MyClass.Create(); end; procedure my_func2(mc: MyClass); begin ... end; begin my_func2(my_func); end. А здесь --- утечка. что делают дельфисты в таких случаях? Пользуются временными переменными для сохранения ссылок? Но это моветон. |
Сообщ.
#74
,
|
|
|
Цитата best_lamer @ А если так:С этим вопрос исчерпан? ![]() ![]() TOKEN = 'одвсводаовд'#Строка 1 T0KEN = 'alwejkhgfK'#Строка 2 print TOKEN#Строка 3 |
Сообщ.
#75
,
|
|
|
Цитата Smike @ Чтоли выдумать задачу на которой питон сольет? Какое максимальное значение факториала можно вычислить на питоне? ![]() ![]() #! /usr/bin/python """factorial.py -- Выясняем и выводим максимально возможный факториал для Python. """ #Это сам факториал. Ни функций (def) ни циклов (for, while) Жутко не так ли? ;) fac = lambda x: x-1+abs(x-1) and fac(x-1)*x or 1 #Проверка факториала print "fac(0)=", fac(0), "fac(1)=", fac(1), "fac(10)=", fac(10) #Этим куском кода выяснял максимальный факториал for var in range(0,1000): try:#пробуем посчитать наш факториал для очередной var fac(var) except RuntimeError:#ошибка??? знач достигнут максимум целых! print var#Печатаем переменную #И выяснил что он равен fac(993) дальше не хватает :'( print "Максимально возможный факториал в Python выяснен опытным путем", fac(993) ![]() ![]() fac(0)= 1 fac(1)= 1 fac(10)= 3628800 994 995 996 997 998 999 Максимально возможный факториал в Python выяснен опытным путем (вырезано в целях экономии места) Smike ![]() |