Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.16;
Скачать: CL | DM;

Вниз

delphi или c++   Найти похожие ветки 

 
KSergey   (2003-05-29 13:27) [40]

> Danilka © (29.05.03 13:22)

Флейм?! Ответ на вопрос "Почему" - флейм?!!
У нас с вами разные понятия о флейме. Ну кроме риторических вопросов, конечно, к которым данный не относится явно.


 
Danilka   (2003-05-29 13:31) [41]

KSergey © (29.05.03 13:27)
Нет, флейм это когда кто-то спришивает что круче с++ или дельфи или что круче линукс или винда, и при этом начинается драка и крики, в результате которых каждый остается при своем мнении, которое у него было до начала драки. :))

А на вопрос "почему"... незнаю почему. Может потому-же почему и begin..end а не start..end


 
Danilka   (2003-05-29 13:32) [42]

Darts (29.05.03 13:25)
точна! Оберон от Вирта и Форт от Андрея Черезова - рулез форевер!
Дельфи и С++ - маздай!


 
Ihor Osov'yak   (2003-05-29 13:34) [43]

2 Игорь Шевченко © (29.05.03 13:16)

> С++ малость побогаче будет

ну и малость более грабле-наступаемый.. Совсем малость..


> Языки совершенно одинаковые по своим возможностям.

Языки то равные, а вот линкеры от соотв. пакетов - увы..
Так что при всем моем почтении к Делфи (чисто по религигозным убеждениям) иногда приходится сталкиватся с безальтернативностью в контекте vc :-( (выше спич только о win-платформах)


 
Knight   (2003-05-29 13:39) [44]

>> KSergey © (29.05.03 12:48)
> Например, для меня бешенная загадка: почему перед else нельзя
> ставить ";".

Описывать надо то, что не логично, а то что напрашивается само-собой описывать смысла нет...

Давно я плотно с СИ не сталкивался, но помню, что там с ";" тоже не всё гладко...


if () ...; // тут обязательно, как окончание инструкции
else ...;



if () {...} // так - ошибка
else ...;



if () {...;}; // и так ERROR
else ...;



if () {...;} // а так - работает
else ...;


Где же тут закономерность? Это можно только в книге описать... :)


 
Arch-vile   (2003-05-29 13:42) [45]

Я десятиклассник! Обясните что написал Zz_ (29.05.03 11:51)
n[i]=(Z-=(n[i++]=(Z-=(n[i++]=(Z-=(n[i++]=(Z-=(n[i++]=(Z-=(n[i++]=Z/I)*I)/J)*J)/K)*K)/L)*L)/O)*O);


 
Darts   (2003-05-29 13:48) [46]

> Arch-vile © (29.05.03 13:42)

Это только для взрослых.
Вот вырастешь - узнаешь... :))


 
KSergey   (2003-05-29 13:48) [47]

> Arch-vile © (29.05.03 13:42)

Зачем?!


 
Danilka   (2003-05-29 13:49) [48]

Arch-vile © (29.05.03 13:42)
Это из области дзен-буддизма.
И еще из области многоэтажного мата, когда сидишь и разбираешся, как дурак, вот в таком чужом коде.

А тот кто на работе пишет такие вещи, считает себя мегапрограммером (именно мега!) и когда его увольняют круто обижается, а весь отдел потом долго-долго его вспоминает и его маму и какие-то сексуальные извращения в их адрес.


 
Danilka   (2003-05-29 13:52) [49]

но, наверняка, нейдется не одна филосовская книжка, популярно обьясняющая, почему такие конструкции в Ц-плас-плац имеют место быть и вообще, для чего они необходимы. ;))


 
KSergey   (2003-05-29 14:14) [50]

> Knight © (29.05.03 13:39)
> >> KSergey © (29.05.03 12:48)
> > Например, для меня бешенная загадка: почему перед else
> нельзя
> > ставить ";".
>
> Описывать надо то, что не логично, а то что напрашивается
> само-собой описывать смысла нет...

И где же тут логика? Каждый оператор завешается ;, а тут нет...
Вы скажете "тут нет завершения оператора if"? С одной строны да, с другой - тогда и в case of не надо вроде как ставить...

>Давно я плотно с СИ не сталкивался, но помню, что там с
> ";" тоже не всё гладко...
>
(1)> if () ...; // тут обязательно, как окончание инструкции
> else ...;
>
(2)> if () {...} // так - ошибка
> else ...;
>
(3)> if () {...;}; // и так ERROR
> else ...;
>
(4)> if () {...;} // а так - работает
> else ...;
>
> Где же тут закономерность? Это можно только в книге описать...

Проблема в том, что под ... вы каждый раз понимаетете разное, формальнее надо подходить к вопросу.

Так, если под ... понимать оператор (где оператор - единица, отделяемая ";"), но не включающую собственно ";" - тогда совершенно не понятно, почему в (2) не поставлена ;, а в (3) - явно вставлена лишняя перед else

Есть соверненно четкая конструкция:

if ( условние ) блок1 else блок2

где блок - либо одиночный оператор, либо набор операторов

При этом одиночный оператор подчиняется шаблону

оператор ;

а набор операторов соответствует шаблону

{
одиночный оператор_1
одиночный оператор_2
...
одиночный оператор_n
}

Жирным выделены элементы конструкции, курсивом - так скажем термины, или как-то это правильнее называется.. элементы языак, так чтоли сказать, для которых есть свои правила.

Дельше дробить уже не стану, думаю понятно.

Теперь аккуратно и _формально_ разберите приведенные вами примеры - и увидете, что они просто напросто не соответсвуют документированному шаблону оператора.

PS: и да простят меня люди за сочиение трактата по синтаксису Си. Очень надеюсь, что я не погрешил против истинного смысла и ничего не приврал.


 
KSergey   (2003-05-29 14:19) [51]

> Danilka © (29.05.03 13:52)

На счет того, будет ли расписана их необходимость - имею сомнения, а вот то, что будет точно и дотошно расписано как такой оператор будет работать и какие побочные эффекты будет иметь - это точно. И это мне в книжках по Си нравится.


 
MOA   (2003-05-29 14:21) [52]

>почему перед else нельзя ставить ";"
Потому что в Паскале ";" - это разделитель опреаторов, а не признак конца оператора, как в С. if...then...else...; - это оператор. И if.... - это тоже оператор. if...then....;else...; - это 2 оператора - первый - это if, второй - это else. Но оператора else в языке нет (есть if..else), о чём и докладывает компилятор.
Удачи!


 
KSergey   (2003-05-29 14:26) [53]

> MOA © (29.05.03 14:21)

Хорошо, но тогда и case of .. end есть неделимый оператор
Однако же...
Или тут какая-то разница?


 
MOA   (2003-05-29 14:40) [54]

>тут какая-то разница?
Вот, скопировал прямо из хелпа:

case selectorExpression of
caseList1: statement1;
...
caseListn: statementn;
end
where statements is a semicolon-delimited sequence of statements.
А вот описание if-else
if expression then statement1 else statement2

Ну, про ";" здесь всё написано. Попробуем понять причину. Причина вот в чём:
1. ";" в Паскале - разделитель операторов
2. В конструкциях if1-if2-else- нужно определиться, к которому if относится else (в генераторах компиляторов, yacc, например, эта ситуция называется "конфликт сдвиг-свёртка"). В Паскале принят подход, в котором if-else - это как бы (упрощённо) "один" опрератор. Вот, смотрите:
if-if-;else- - esle - это к первому if
if-if-else- - а здесь - от второго.
В С мы разруливаем такую ситуцию блоками (заключаем в {}), поскольку ";" - не более чем ограничитель (есть в С такое даже понятие "пустой оператор" - ;).
3. А в case никакого конфликта нет.


 
Danilka   (2003-05-29 14:44) [55]

KSergey © (29.05.03 14:19)
Угу, именно из-за наличия побочных эффектов во всех "фичах" (а может отсюда пошло, что фича - это документированый баг?) мне и не нравится с++.
:))
Господа, давайте пользоваться экологически чистыми продуктами, зачем нам побочные эффекты, пусть и хорошо документированые?
:))


 
pm   (2003-05-29 14:45) [56]

Лучше всего - OCaml!
Гибкость Lispа, скорость C++, удобство паскаля.
Хотя по надежности до Haskell не дотягивает, на порядок опережает эти три приведенные языка.


 
gn   (2003-05-29 15:17) [57]

Я болдею с вас ну как можно сравнивать два разных языка
я вам вот что скажу каждый язык для своей задачи
я обожаю с но учусь на делфи потомучто некоторые задачи на нём быстрее и проще делать чем на с включаю реверс

gn
cn 1101


 
pm   (2003-05-29 15:42) [58]

gn © (29.05.03 15:17)
C++ и дельфи чаще всего применяются для одного круга задач. Так что сравнение вполне правомерно. (Хотя я не могу себе представить ядро ОС, разработанное на дельфи :-)).
OCaml для таких задач подходит лучше - хотя в ядре ОС он уступит C++.
Кроме того он вполне применим для типично Lispовских задач, типа ИИ. А они все чаще встречаются на практике.
И еще OCaml имеет средство для переопредиления синтаксиса под определеннйю задачу. При этом средство достаточно сложное, по сравнению с C-шным препроцесором, что бы с его помощью можно создавать слишком запутанный код.


 
gn   (2003-05-29 15:55) [59]

pm
с foreva

я только ещё вот чего непонимаю
идёт реч о языке или о средстве разработки???

gn
cn 1101


 
pm   (2003-05-29 16:50) [60]

О языке. Я не знаю такого средства разработки - "C++".
К визуальным средам я не приучен, по этому мне судить трудно. Но для OCaml какая-то дико навороченная среда есть. Внимательно я на нее не смотрел.


 
KSergey   (2003-05-30 11:00) [61]

MOA © (29.05.03 14:40)

Спасибо, буду знать.


 
KSergey   (2003-05-30 11:02) [62]

I>> Pec (28.05.03 20:06)
> Привет народ!
> Просветите чайника ,что лучше delphi или c++

Ну и как "чайник", прсветили? полегчало? ;)

PS: прошу не воспрнимать "чайник" близко к сердцу, лишь использую термин из вопроса.

PPS: а знали бы вы, сколько таких религиозных войн постоянно возникает в инете на самых разных форумах!!!


 
Mirovodin   (2003-05-30 11:36) [63]

Вообще я считаю что C нужно знать любому программисту на уровне синтаксиса : понимать простые конструкции, типы данных. Т.к. приходится постоянно сталкиваться с MSDN - волей неволей приходится вникать в синтаксис примеров.

Для тех кто пишет на API - программы на VC и Delphi практически одно и то же. Вызовы API функций везде одинаковы.


 
Ihor Osov'yak   (2003-05-30 12:23) [64]

> Для тех кто пишет на API - программы на VC и Delphi практически одно и то же.

В делфи среда несколько более удобна.. Единственное, что в vc более нравится - Ctrl_].. В делфи иногда не хватает.. Особенно при разборе чужого кода..


 
KSergey   (2003-05-30 12:26) [65]

> Ihor Osov"yak © (30.05.03 12:23)

А что оно делает? Мне не удалось просечь...


 
Ihor Osov'yak   (2003-05-30 12:39) [66]

KSergey © (30.05.03 12:26)

Прыгает от { к соотв. } И наоборот. Курсор должен стоять на скобке..


 
KSergey   (2003-05-30 12:41) [67]

> Ihor Osov"yak © (30.05.03 12:23)

Скажите, пожалуйста. для меня: что это? Мне не удалось понять как это использовать...


 
KSergey   (2003-05-30 12:43) [68]

> Ihor Osov"yak © (30.05.03 12:39)

Извиняюсь за раздвоение личности...


 
JibSkeart   (2003-05-30 14:11) [69]

Да ничто не лутьше ...
Бери Бейсик да и не мучийся :)


 
pm   (2003-05-30 16:38) [70]

> Единственное, что в vc более нравится - Ctrl_]
Забавно, что в популярном Unixовом редакторе vi "Ctrl_]" то же выполняет очень полезную функцию, особенно когда в чужем коде разбераешься - прыгает на определение функции (Ctrl t - обратно).
Есть что-то общее между системами :-)
А перейти к соответствующей скобке в vi - "%".


 
Marser   (2003-05-30 17:00) [71]

C++ мне нравится тем, что он "ближе к телу" и намного фривольнее. С другой стороны, Паскаль более удобочитаемый и просто мой любимый язык рограммирования.


 
MOA   (2003-05-30 17:08) [72]

Кстати, про общность. В данный момент она, в частности (не всегда!) объясняется, IMHO, общностью образования. Дело, опять же IMHO, в том, что лидеры западного IT сообщества довольно плотно общаются (то, чего не хватает мне, например ;(. Провинция..). Вот, например, в буржуйской кузнице программеров - MIT - основной язык - Lisp. Те, кто знаком с Lisp-ом, видимо, видят до боли знакомые конструкции, например, в:
С - директивы препроцессора(отчасти), формат printf и scanf - ну один в один
Clipper - кодовые блоки - ну очень близкое приближение к макросам Lisp-а
Ну, а про объектно-ориентированные языки и говорить нечего. В Lisp-е реализовано настоящее объектное программирование, впрочем, наряду с другими. Например, можно в run-time определить новый класс и объекты этого нового класса.
В связи с этим вопрос к участникам: Lisp - очень старый язык. М.б., вы поделитесь ссылками на современные языки и среды под них? А совсем хорошо - ссылочкой на среду Common Lisp под Win32.
В общем - общим чертам в различных средах (языках) удивлятся не нужно (люди, делающие VС ,были очень хоро знакомы с VI - пришлось в универе или практике). Удивление вызывает скорее нечто непохожее.
Кстати, по теме ветки - несколько иной синтаксис С и Паскаля объясняется среди прочего и тем, что создали С знали Паскаль и смогли обойти его проблемы.


 
pm   (2003-05-30 17:55) [73]

Про среды не скажу, не смотрет на них.
Наиболее современный язык, заменяющий Lisp - это OCaml ( http://www.ocaml.org/).
Еще интересен Haskell - ( http://www.haskell.org/), но некоторые распространенные задачи программировать на нем тяжело (но интересно :-)).

Сам я предпочитаю статически типизированные языки, по этому про прямых потомков мало что могу сказать.
Современный вариант Lispа - Scheme. ( http://www.scheme.org/ - там много реализаций, наверняка и под винды есть.)
Реализации Common Lisp можно поискать здесь: http://www.gnu.org/directory/devel/prog/lisp/. Я думаю под виндами они легко пойдут.
В качестве среды для Lisp наверняка хорош будет обычный Emacs - все-таки он сам на Lispе написан :-).


 
MOA   (2003-05-30 18:07) [74]

БОЛЬШУЩЕЕ СПАСИБО!
Пошёл глядеть любезно предоставленные Вами ссылки.



Страницы: 1 2 вся ветка

Текущий архив: 2003.06.16;
Скачать: CL | DM;

Наверх




Память: 0.61 MB
Время: 0.008 c
14-50447
Demon Hunter
2003-05-26 15:21
2003.06.16
Прога шлёт по4ту


8-50407
grei
2003-03-03 20:15
2003.06.16
gif, gif, gif, gif, gif, gif...


14-50518
dimodim
2003-05-27 07:08
2003.06.16
КАк написать CGI на дельфи для записи в базу данный?Есть ли исход


6-50424
Александр из Минска
2003-04-10 20:51
2003.06.16
Как установить обмен данными через МОДЕМ?


7-50550
SalCroW
2003-04-10 17:00
2003.06.16
Корзина и файлы!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский