
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.30] |
![]() |
|
Страницы: (11) « Первая ... 2 3 [4] 5 6 ... 10 11 все ( Перейти к последнему сообщению ) |
Сообщ.
#46
,
|
|
|
Цитата Woland @ Вот вспомните, чего вас учили в институте? Пусть первый, кто скажет что небыло в учебной программе делфи, пусть бросит в меня монитором! Я бы бросил и НЕ ПОЖАЛЕЛ МОНИТОРА, но не знаю вектора ![]() ![]() ![]() ![]() Работать легко??? Легко. Проблемы решаются??? В меру знаний тонкостей!!! И плевать заказчику (цитата WOLAND'A) на чем написана программа.Emerald Я скажу так - припрет все изучишь. До тонкостей!!! Лучше самого Дяди Билла будешь знать!!!! А если такой вопрос задаешь - --Значит не приперло, радуйся что жизнь оставила время подумать и сделать выбор, и если есть время то уж не брезгуй, пожалуйста , разбирайся в ДЕЛЬФИ, пока есть время. Ведь, как сказал Кырла-Мырла, кажется, "Жизнь не спросит, что ты учил, а спросит, что ты знаешь!". И за место под Солнцем придется бороться с таким же как я, и возможно, драться насмерть, а тут все средства хороши - и ДЕЛЬФИ в том числе в запасе иметь не помешает. ![]() ![]() ![]() З.Ы.Ну и речь толкнул, прям на пленум выдвигай!!! ![]() ![]() ![]() |
Сообщ.
#47
,
|
|
|
Разберусь в статье... (разобрался) Так прочитал. А теперь по поводу реализации на Python... 1) Отдельные элементы строки в Python неизменны. Если надо то меняем всю строку целиком. 2)В Python "от греха" нет указателей на память как таковых. Они есть но в спрятанном от глаз виде.. короче с извратом до указателей добраться можно вот только смысл? Python позволяет подобное и без всяких классов реализовать ![]() ![]() ![]() def print_SetOf(SetOf): """Жуткая функция печатаем SetOf""" for variable in range(0,len(SetOf)): print SetOf[variable] #Присвоили str=['a',2,3] #Вывели print "Первый вывод" print_SetOf(str) #добавили элемент str.append('Вася супер стар') print "Второй..." print_SetOf(str) str.remove('a') print "Третий..." print_SetOf(str) А теперь ее вывод ![]() ![]() Первый вывод a 2 3 Второй... a 2 3 Вася супер стар Третий... 2 3 Вася супер стар Хвала последней Delphi ![]() ![]() Накладно это... да и к чему? Я тут при чем 8) что в Delphi нет класса нормальных матриц? Обьясни глубокий смысл создания того что и так существует проверенно не одним программером и прекрасно справляется со своими обязанностями? (блин привыкли по виндовзу...) ![]() ![]() Python – интерпретатор. (те время исполнения кода) Smike тебе критична скорость работы твоего проекта? Тогда только чистый ассемблер ибо он и только он самый быстрый в скорости по сравнению с чем угодно. Мне говоря откровенно по большему счету наплевать за 0,1 сек. или за 0,5 секунд выполнится мой код. Зато я точно уверен в том что мой код будет без изменений работать на всех осях под которые существует интерпретатор Python. Цитата Smike @ Кстати, я считаю, что верх совершенства языка - это возможность написания на нем себе подобных. Компиляторы C++ пишутся на C++, среда Delphi пишется на Delphi. Питон же на C++ написан, а писать на нем компилятор, при всей его красоте - задачу ну очень неблагодарная именно из-за низкой производительности выходного продукта. Smike – Python is NOT компилятор is интерпретатор! И он кстати реализован не только на С еще есть Jython - Python реализованный на Java... Smike разорви меня в клочья!!! ![]() ![]() #simple example for Smike A="ПРЕВЕД" B="Я МЕДВЕД" #вывели на печать A потом -:- и B print A,'-:-',B #что характерно поменяли содержимое A B местами A,B= B,A #<<<This is Python Power #опять вывели на печать A потом -:- и B print A,'-:-',B и вывод... ![]() ![]() ПРЕВЕД -:- Я МЕДВЕД Я МЕДВЕД -:- ПРЕВЕД Давай по существу можешь проще реализовать тоже самое на Delphi? |
![]() |
Сообщ.
#48
,
|
|
Цитата best_lamer @ да и к чему? Я тут при чем 8) что в Delphi нет класса нормальных матриц? Обьясни глубокий смысл создания того что и так существует проверенно не одним программером и прекрасно справляется со своими обязанностями? мы же языки сравниваем или vcl&rtl vs что там в Питоне вот и покажи так сказать всю мощь ![]() |
Сообщ.
#49
,
|
|
|
Цитата best_lamer @ Хвала последней Delphi ![]() ![]() А что, по твоему в последней BDS только .Net? У меня Delphi for .Net даже не стоит. JEDI JCL стоит, установилось нормально и легко. JVCL не пользуюсь, уж больно overhead большой, а результат маленький. Цитата best_lamer @ Smike тебе критична скорость работы твоего проекта? Тогда только чистый ассемблер ибо он и только он самый быстрый в скорости по сравнению с чем угодно. Для меня критична не столько скорость, а результирующий вектор из нескольких составляющих: 1) скорость разработки 2) удобство разработки 3) скорость и эффективность работы результата разработки Пока этот вектор указывает в сторону Delphi. Цитата best_lamer @ И он кстати реализован не только на С еще есть Jython - Python реализованный на Java... Все, можно вешаться. Java для меня неприличное слово. |
Сообщ.
#50
,
|
|
|
Цитата Shaggy @ вот и покажи так сказать всю мощь Считай что уговорил ![]() Создаю матрицу вида (это кстати результат работы программы) ![]() ![]() 0 0 1 1 2 2 3 3 4 4 Собственно ![]() ![]() #! /usr/bin/python """array.py -- A array example. """ class Array: def __init__(self, x, y): self.x = x self.y = y tmp = [] for i in range(5): obj = Array(i, i) tmp.append(obj) for tmpsub in tmp: #print "X is", tmpsub.x, "Y is", tmpsub.y print tmpsub.x, tmpsub.y Дальше чего с массивом делать будем? И Shaggy кстати как там по поводу примеров на делфи без модулей System, Math к примеру? Потому как я щаз сделал то же самое ![]() |
Сообщ.
#51
,
|
|
|
Цитата best_lamer @ Shaggy кстати как там по поводу примеров на делфи без модулей System, Math к примеру? Цитата best_lamer @ Без модуля Math - да что угодно!все равно что без array... А вот без System (впрочем, как и без array) - это уже, извини, бред. System - не есть модуль. Это, так сказать, часть самого языка Delphi - его отличие от Object Pascal ![]() |
Сообщ.
#52
,
|
|
|
Цитата best_lamer @ Разберусь в статье... (разобрался) Так прочитал. А теперь по поводу реализации на Python... 1) Отдельные элементы строки в Python неизменны. Если надо то меняем всю строку целиком. 2)В Python "от греха" нет указателей на память как таковых. Они есть но в спрятанном от глаз виде.. короче с извратом до указателей добраться можно вот только смысл? Python позволяет подобное и без всяких классов реализовать Прочитал, но не разобрался. Где там у меня указатели? Я там в классе только со строкой общаюсь, специально взял ее для простоты. Ты прочитал только введение? Оно несущественно. Если проблемы с доступом к отдельному символу строки - ничто не мешает реализовать динамическую таблицу, например, чисел. Стек - он и есть стек. А смысл в том, что в приведенной структуре время добавления-удаления элемента O(1) (в смысле амортизационной стоимости). Вопрос: а ты знаешь, какова стоимость вставки элемента в set, время поиска элемента в наборе и тд? Я не говорю, и не говорил, что Delphi - крутой язык. Я говорю, что Питон отнюдь не превосходит ни Delphi, ни Java, ни C, ни какой либо другой язык из своей категории. У него есть своя ниша, и говорить, что это - замена всему, глупость. Этот язык неплох для обучения программированию, и написания небольших программ, например, лабораторных работ. Для чего-то серьезного он не подходит, он небезопасен. И говорить, что Питон - язык более высокго уровня, чем Delphi - тоже глупость. Языком более высокого уровня, чем процедурные, является, например, SQL. И разница видна сразу. |
Сообщ.
#53
,
|
|
|
Цитата Testudo @ Без модуля Math - да что угодно! Да я не о том я решил операции с массивом без использования массивов (запись + стек) на Delphi без Math вполне можно обойтись особенно если сама программа не сильно привяна к математике. Цитата Romkin @ Стек - он и есть стек. Вот именно и на Python городить для стека класс это бред. «Динамическая таблица» ![]() ![]() a=[] a.append("q") a.append("r") print a ![]() ![]() >>> ['q', 'r'] И все вот тебе стек! Надо тебе строки? ![]() ![]() a.append("тут свою строку") Надо вложенный стек в стеке (массив) сделать? ![]() ![]() a.append(переменная_с_вложенным_стеком) Что не так? К примеру разберу по косточкам то что я сделал для массива Класс Array реализует аналог типа Запись из Delphi. Цитата best_lamer @ class Array:{на самом деле это банальная Запись} def __init__(self, x, y): self.x = x self.y = y Этот кусок создает переменную tmp (типа стек из записей) и заполняет ее числами... Цитата best_lamer @ tmp = [] for i in range(5):{for i:=0 to 5 do} obj = Array(i, i) {заполняем запись переменной от 0 до 4} tmp.append(obj){tmp – стек ! я могу добавлять удялять и тд Все как у стека} {в данном случае append добавление в стек} Ну и вывод на печать Цитата best_lamer @ for tmpsub in tmp: print tmpsub.x, tmpsub.y Цитата Romkin @ а ты знаешь, какова стоимость вставки элемента в set, время поиска элемента в наборе и тд? ![]() Цитата Romkin @ Я не говорю, и не говорил, что Delphi - крутой язык. Я говорю, что Питон отнюдь не превосходит ни Delphi, ни Java, ни C, ни какой либо другой язык из своей категории. У него есть своя ниша, и говорить, что это - замена всему, глупость. Опять пустые слова... Я и не говорю что он замена всему. Он элегантнее красивее проще и на голову выше всех языков. Считаешь иначе? Я приводил кучу примеров и Смайка просил «обломать» меня... Не надо классов записей массивов и скорости. Просто есть 2 переменные поменяй их значения местами и все это покажет какой из языков более изящен ! На Delphi для обмена нужна лишняя переменная а это лишние затраты памяти и быстродействия! Или я не прав? И по тенденции развития... то к чему Delphi только приходит в Python есть от рождения. Еще по поводу Delphi VCL обожает Strings (и ему подобное) тогда как математический аппарат с числами в виде строк считать не умеет... те характерно для Delphi следующая схема: ВВОД (строка)- ПРЕОБРАЗОВАНИЕ СТРОКА->ЧИСЛО – Собственно расчет – ПРЕОБРАЗОВАНИЕ ЧИСЛО -> СТРОКА – ВЫВОД Не беря во внимание ввод/вывод вопрос какого лешего я должен уделять внимание не тому что меня интересует в первую очередь (собственно расчету) а преобразованию типов? И ли в самом процессе преобразования типов сокрыт какой то тайный сакральный смысл постичь который обязанность каждого программиста? На Python преобразованием типов я не занимаюсь если это мне не нужно по самому алгоритму. ![]() ![]() Цитата Romkin @ Для чего-то серьезного он не подходит, он небезопасен. Пример в студию. |
Сообщ.
#54
,
|
|
|
Цитата best_lamer @ На Delphi для обмена нужна лишняя переменная а это лишние затраты памяти и быстродействия! Ох, как заговорил ![]() Цитата best_lamer @ Еще по поводу Delphi VCL обожает Strings (и ему подобное) тогда как математический аппарат с числами в виде строк считать не умеет... те характерно для Delphi следующая схема: ВВОД (строка)- ПРЕОБРАЗОВАНИЕ СТРОКА->ЧИСЛО – Собственно расчет – ПРЕОБРАЗОВАНИЕ ЧИСЛО -> СТРОКА – ВЫВОД Интересно, на чем основан такой вывод. Для хранения нестроковых данных есть TList. Ты вот лучше расскажи, как можно на Питоне например написать компонент вроде VCL? Добавлено Кстати, есть способо обмена чисел без дополнительных переменных, но там 3 действия. |
Сообщ.
#55
,
|
|
|
Цитата Smike @ А я умею Ох, как заговорил А что, Питон такой чудесный, что умеет обменивать значение переменных без дополнительных переменных? ![]() ![]() ![]() ![]() procedure TForm1.Button1Click(Sender: TObject); var s1,s2:DWord; begin s1:=10; s2:=55; ShowMessage(IntToStr(s1)+':'+IntToStr(s2)); s1:=s1 xor s2; s2:=s1 xor s2; s1:=s1 xor s2; ShowMessage(IntToStr(s1)+':'+IntToStr(s2)); end; |
Сообщ.
#56
,
|
|
|
Цитата Smike @ А что, Питон такой чудесный ![]() Цитата Smike @ Кстати, есть способо обмена чисел без дополнительных переменных, но там 3 действия. ![]() ![]() Цитата Smike @ Ты вот лучше расскажи, как можно на Питоне например написать компонент вроде VCL? Я лучше покажу ладно? Могу (лично тебе по секрету, блату и за огромные деньги) рассказать как поиметь любой компонент VCL Delphi из Python-a. Добавлено Смайк ![]() ![]() Цитата Smike @ ВВОД (строка)- ПРЕОБРАЗОВАНИЕ СТРОКА->ЧИСЛО – Собственно расчет – ПРЕОБРАЗОВАНИЕ ЧИСЛО -> СТРОКА – ВЫВОД "ВВОД" Цитата Testudo @ s1:=10; s2:=55; "ПРЕОБРАЗОВАНИЕ" Цитата Testudo @ IntToStr(s1)+':'+IntToStr(s2) "Собственно расчет" Цитата Testudo @ s1:=s1 xor s2; s2:=s1 xor s2; s1:=s1 xor s2; И все это в Delphi сплошь и рядом ![]() |
Сообщ.
#57
,
|
|
|
Цитата best_lamer @ Цитата (Smike @ Сегодня, 12:31) Кстати, есть способо обмена чисел без дополнительных переменных, но там 3 действия. ![]() ![]() суть вопроса была не в этом, а в том, что в python так или иначе один из этих способов используется - Цитата best_lamer @ затраты памяти и быстродействия |
Сообщ.
#58
,
|
|
|
Цитата best_lamer @ Уж лучше это будет видно, а не скрыто. Контроль над кодом всегда нужен.И все это в Delphi сплошь и рядом А вообще, сравнивать эти два языка - бессмысленно. Они разных уровней. Таким же манером можно сравнивать и delphi и ассемблером. Простая операция на делфи c:=a+b; на ассемблере будет иметь огромный вид (ведь кроме самого сложения нужно еще учитавать возможность переполнения). С другой стороны, если я знаю наверняка, что переполнения не будет, то код на ассемблере это упростит. А вот делфи я никак не заставлю не делать эту проверку ![]() |
Сообщ.
#59
,
|
|
|
Цитата Testudo @ А вот делфи я никак не заставлю не делать эту проверку Ну почему? Есть же директива компилятора, check overflow. Другое дело, что всегда все рекомендуется проверять ![]() |
Сообщ.
#60
,
|
|
|
Цитата Testudo @ Они разных уровней. ![]() Я думаю так если продолжать дальше конструктивно то другое дело а так как разговор скатывается в холивар есть смысл продолжать в холиваре это моё мнение. |