Re[5]: мнение о Delphi
От: Аноним  
Дата: 26.09.03 08:01
Оценка:
Здравствуйте, Igor Trofimov, Вы писали:

DG>>>а если приходит человек и говорит, я тут сбацал крутую GUI-программу на Delphi, то это говорит только о том, что человек умеет держать мышку...


A>>Радикально неверное мнение!


iT>Не, он все правильно сказал — перечитай еще раз. Из слов, что человек написал прогу на Delphi — НЕ СЛЕДУЕТ ПОЧТИ НИЧЕГО. Он может быть супер-программером, который просто больше любит Delphi, но чтобы выяснить это — придется приложить усилия...


Это же относится и к Builder-у. Так что тут язык ни при чем.
Re[9]: мнение о Delphi
От: akasoft Россия  
Дата: 27.09.03 13:55
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>...Но только больно уж громозко. То, что в C пишется одним оператором, на Паскале пишется двумя-тремя. А если этот оператор находится в условии, то приходится еще дописывать begin-end. В общем, программа на Паскале раза в полтора длинней такой же программы на C.


Ну просто убийственный аргументище.

Длиннющий энто язык. Так мы ещё договоримся, что C/C++ — это уникальный метод стенографирования. Знать всем серетаршам.

А> Я когда-то переводил программу с C на Паскаль, весь исплевался.


Мне приходилось делать и прямые, и обратные преобразования. Правда, больше с C на OP, и чаще это выглядело как "понять суть, алгоритм действий и написать его (или подобрать) на другом языке". Плеваться, кстати, не помогает. Но несколько таких переводов весьма развивает мозги. И беглое чтение что одного, что другого синтаксиса....
... << RSDN@Home 1.1 beta 2 >>
Re[10]: мнение о Delphi
От: Аноним  
Дата: 29.09.03 11:36
Оценка:
Здравствуйте, akasoft, Вы писали:

A>Здравствуйте, <Аноним>, Вы писали:


А>>...Но только больно уж громозко. То, что в C пишется одним оператором, на Паскале пишется двумя-тремя. А если этот оператор находится в условии, то приходится еще дописывать begin-end. В общем, программа на Паскале раза в полтора длинней такой же программы на C.


A>Ну просто убийственный аргументище.


По-вашему проще изучить десятипальцевый слепой метод печати?


A>Длиннющий энто язык. Так мы ещё договоримся, что C/C++ — это уникальный метод стенографирования. Знать всем серетаршам.


Обязательно!!!


А>> Я когда-то переводил программу с C на Паскаль, весь исплевался.


A>Мне приходилось делать и прямые, и обратные преобразования. Правда, больше с C на OP, и чаще это выглядело как "понять суть, алгоритм действий и написать его (или подобрать) на другом языке".


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

A>Плеваться, кстати, не помогает.


Конечно не помогает. Переводить надо, а не плеваться.

A>Но несколько таких переводов весьма развивает мозги. И беглое чтение что одного, что другого синтаксиса....


Для этого лучше взять разные языки. Попробуйте взять программу на Паскале и перевести ее на Пролог...
Re[11]: мнение о Delphi
От: FWP Россия  
Дата: 01.10.03 04:25
Оценка:
Здравствуйте, Аноним, Вы писали:

А>>>...Но только больно уж громозко. То, что в C пишется одним оператором, на Паскале пишется двумя-тремя. А если этот оператор находится в условии, то приходится еще дописывать begin-end. В общем, программа на Паскале раза в полтора длинней такой же программы на C.


A>>Ну просто убийственный аргументище.


А>По-вашему проще изучить десятипальцевый слепой метод печати?

В Delphi никто уже давно begin-end, а также прочие конструкции языка и имена переменных, типов и т.д. вручную не набирает.

A>>Длиннющий энто язык. Так мы ещё договоримся, что C/C++ — это уникальный метод стенографирования. Знать всем серетаршам.

А>Обязательно!!!
Да нет, C++ — это нормально. Но вот тексты на Perl — это что-то!


А>>> Я когда-то переводил программу с C на Паскаль, весь исплевался.


A>>Мне приходилось делать и прямые, и обратные преобразования. Правда, больше с C на OP, и чаще это выглядело как "понять суть, алгоритм действий и написать его (или подобрать) на другом языке".


А>C и Паскаль похожи, поэтому перевод заключается просто в повторении операторов на другом языке. Попробуйте написать одну и ту же функцию на C и на Паскале и посмотрите, какая запись будет компактней.


A>>Плеваться, кстати, не помогает.


А>Конечно не помогает. Переводить надо, а не плеваться.


A>>Но несколько таких переводов весьма развивает мозги. И беглое чтение что одного, что другого синтаксиса....

Затруднения может вызвать перевод как в одну сторону так и вдругую. Попробуй к примеру перевести следующее:

  A := ProbeM;
  SD := [];
  for j := 4 downto 1 do begin
    D := A mod 10;
    A := A div 10;
    if (D in SD) then begin
      Err := -2;
      Break;
    end
    else begin
      Include(SD,D);
      RD[j] := D;
    end;
  end;


Сомневаюсь, что на С++ будет короче.
Re[12]: мнение о Delphi
От: Sinclair Россия https://github.com/evilguest/
Дата: 01.10.03 05:26
Оценка:
Здравствуйте, FWP, Вы писали:
FWP>Затруднения может вызвать перевод как в одну сторону так и вдругую. Попробуй к примеру перевести следующее:
  A := ProbeM;
  SD := [];
  for j := 4 downto 1 do begin
    D := A mod 10;
    A := A div 10;
    if (D in SD) then begin
      Err := -2;
      Break;
    end
    else begin
      Include(SD,D);
      RD[j] := D;
    end;
  end;

FWP>Сомневаюсь, что на С++ будет короче.
   A = ProbeM();
     SD = 0;
     for(int j=4; j>0; j--)
     {
            D = A % 10;
            A /= 10;
            if (SD & (1<<D))
            {
                Err = -2;
                break;
            } 
            else 
                SD |= (1<<(RD[j] = D));
     }
... << RSDN@Home 1.1 beta 2 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[13]: мнение о Delphi
От: AndrewK  
Дата: 01.10.03 05:33
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, FWP, Вы писали:

FWP>>Затруднения может вызвать перевод как в одну сторону так и вдругую. Попробуй к примеру перевести следующее:
S>
S>  A := ProbeM;
S>  SD := [];
S>  for j := 4 downto 1 do begin
S>    D := A mod 10;
S>    A := A div 10;
S>    if (D in SD) then begin
S>      Err := -2;
S>      Break;
S>    end
S>    else begin
S>      Include(SD,D);
S>      RD[j] := D;
S>    end;
S>  end;
S>

FWP>>Сомневаюсь, что на С++ будет короче.
S>
S>   A = ProbeM();
S>     SD = 0;
S>     for(int j=4; j>0; j--)
S>     {
S>            D = A % 10;
S>            A /= 10;
S>            if (SD & (1<<D))
S>            {
S>                Err = -2;
S>                break;
S>            } 
S>            else 
S>                SD |= (1<<(RD[j] = D));
S>     }
S>



Да, получилось не короче, но бегло воспринять смысл кода стало гораздо сложнее, ИМХО. Хотя — дело привычки...
Re[14]: мнение о Delphi
От: Sinclair Россия https://github.com/evilguest/
Дата: 01.10.03 05:55
Оценка:
Здравствуйте, AndrewK, Вы писали:

AK>Да, получилось не короче, но бегло воспринять смысл кода стало гораздо сложнее, ИМХО. Хотя — дело привычки...

Именно. Единственная не вполне очевидная вещь — смысл манипуляций с битами. Но следует отметить, что я привел код на голом С++ — без классов. Хорошая библиотека сделает код не менее понятным, чем на Delphi. Что-то типа
{
A = ProbeM();
BitSet<int, 10> SD;
for(int j=4; j>0; j--)
{
D = A % 10;
A /= 10;
if (D < SD)
{
Err = -2;
break;
}
else
SD <<= D;
}
}
... << RSDN@Home 1.1 beta 2 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[13]: мнение о Delphi
От: FWP Россия  
Дата: 01.10.03 08:27
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, FWP, Вы писали:

FWP>>Затруднения может вызвать перевод как в одну сторону так и вдругую. Попробуй к примеру перевести следующее:
S>
S>  A := ProbeM;
S>  SD := [];
S>  for j := 4 downto 1 do begin
S>    D := A mod 10;
S>    A := A div 10;
S>    if (D in SD) then begin
S>      Err := -2;
S>      Break;
S>    end
S>    else begin
S>      Include(SD,D);
S>      RD[j] := D;
S>    end;
S>  end;
S>

FWP>>Сомневаюсь, что на С++ будет короче.
S>
S>   A = ProbeM();
S>     SD = 0;
S>     for(int j=4; j>0; j--)
S>     {
S>            D = A % 10;
S>            A /= 10;
S>            if (SD & (1<<D))
S>            {
S>                Err = -2;
S>                break;
S>            } 
S>            else 
S>                SD |= (1<<(RD[j] = D));
S>     }
S>

Сдается мне, что в этом коде ошибка. Смысл приведенного фрагмента на Pascal в следующем:
-разобрать 4-х значное целое число;
-если в числе есть повторяющиеся цифры, то сформировать ошибку.
Так вот код на С++ не отловит повторяющиеся нули. Хотя я могу и ошибаться, а под рукой нет С++ компилера.
Re[15]: мнение о Delphi
От: FWP Россия  
Дата: 01.10.03 08:33
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, AndrewK, Вы писали:


AK>>Да, получилось не короче, но бегло воспринять смысл кода стало гораздо сложнее, ИМХО. Хотя — дело привычки...

S>Именно. Единственная не вполне очевидная вещь — смысл манипуляций с битами. Но следует отметить, что я привел код на голом С++ — без классов.
А Pascal код тоже впрочем на чистом Pascal. Еще на Виртовском! 1968 года производства

S>Хорошая библиотека сделает код не менее понятным, чем на Delphi. Что-то типа

S>{
S> A = ProbeM();
S> BitSet<int, 10> SD;
S> for(int j=4; j>0; j--)
S> {
S> D = A % 10;
S> A /= 10;
S> if (D < SD)
S> {
S> Err = -2;
S> break;
S> }
S> else
S> SD <<= D;
S> }
S>}
Приведенный код еще хуже по читаемости чем голый С++ Одно
if (D < SD)

чего стоит
Re[14]: мнение о Delphi
От: Sinclair Россия https://github.com/evilguest/
Дата: 01.10.03 08:45
Оценка:
Здравствуйте, FWP, Вы писали:
FWP>Сдается мне, что в этом коде ошибка. Смысл приведенного фрагмента на Pascal в следующем:
FWP>-разобрать 4-х значное целое число;
FWP>-если в числе есть повторяющиеся цифры, то сформировать ошибку.
Ну да
FWP>Так вот код на С++ не отловит повторяющиеся нули. Хотя я могу и ошибаться, а под рукой нет С++ компилера.
С чего бы это? Или кто-то думает, что (1<<0) == 0?
... << RSDN@Home 1.1 beta 2 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[13]: мнение о Delphi
От: Аноним  
Дата: 01.10.03 08:47
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>
S>                SD |= (1<<(RD[j] = D));
S>


Чем манипулячествовать над битами, не проще ль использовать bitset?
Re[16]: мнение о Delphi
От: Sinclair Россия https://github.com/evilguest/
Дата: 01.10.03 08:55
Оценка:
Здравствуйте, FWP, Вы писали:
FWP>А Pascal код тоже впрочем на чистом Pascal. Еще на Виртовском! 1968 года производства
Разве? А по-моему, процедура Include появилась только в Delpi, и то не сразу.
Про читаемость — точно, я не прав. Надо использовать <=, т.к. нас вполне устроит совпадение.
Если хочется большей строгости, то достаточно превратить это в
(BitSet<int, 4>(D) <= SD)

но я предполагаю, что соответствующий неявный конструктор уже объявлен.
Такая запись гораздо ближе к математическому синтаксису "а принадлежит B" (помните "э наоборот?"), чем in.
На плюсах человек вообще довольно быстро отвыкает механически трактовать a++ как inc eax. А для тех, кто не хочет — всегда есть шанс воспользоваться классическим
(SD.Contains(D))
... << RSDN@Home 1.1 beta 2 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[12]: мнение о Delphi
От: Аноним  
Дата: 01.10.03 08:58
Оценка:
A>>>Но несколько таких переводов весьма развивает мозги. И беглое чтение что одного, что другого синтаксиса....
FWP>Затруднения может вызвать перевод как в одну сторону так и вдругую. Попробуй к примеру перевести следующее:

FWP>
FWP>  A := ProbeM;
FWP>  SD := [];
FWP>  for j := 4 downto 1 do begin
FWP>    D := A mod 10;
FWP>    A := A div 10;
FWP>    if (D in SD) then begin
FWP>      Err := -2;
FWP>      Break;
FWP>    end
FWP>    else begin
FWP>      Include(SD,D);
FWP>      RD[j] := D;
FWP>    end;
FWP>  end;
FWP>


FWP>Сомневаюсь, что на С++ будет короче.


На C его уже перевели до меня. Теперь текст на Прологе:
test (X, 0, _) :- !.
test (X, N, List) :-
  X1 = X mod 10,
  not member (X1, List),
  X2 = X div 10,
  N1 = N - 1,
  test (X2, N1, [X1| List]).


Re[17]: мнение о Delphi
От: zaiats_2k Россия  
Дата: 01.10.03 09:47
Оценка: +1
Здравствуйте, Sinclair, Вы писали:

FWP>>А Pascal код тоже впрочем на чистом Pascal. Еще на Виртовском! 1968 года производства

S>Разве? А по-моему, процедура Include появилась только в Delphi

Include появилась толи в 6м толи в 7м Turbo Pascal'е.
0 программистов ругал сердитый шеф,
потом уволил одного, и стало их FF!
Re[13]: мнение о Delphi
От: Sergey Россия  
Дата: 01.10.03 09:49
Оценка:
Hello, !
You wrote on Wed, 01 Oct 2003 08:58:08 GMT:

> На C его уже перевели до меня. Теперь текст на Прологе:

>
 > test (X, 0, _) :- !.
 > test (X, N, List) :-
 >   X1 = X mod 10,
 >   not member (X1, List),
 >   X2 = X div 10,
 >   N1 = N - 1,
 >   test (X2, N1, [X1| List]).
 >


А где здесь N или N1 на 0 проверяется?

Best regards,
Sergey.
Posted via RSDN NNTP Server 1.7 "Bedlam"
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Re[14]: мнение о Delphi
От: Аноним  
Дата: 01.10.03 10:20
Оценка:
Здравствуйте, Sergey, Вы писали:

S>Hello, !

S>You wrote on Wed, 01 Oct 2003 08:58:08 GMT:

>> На C его уже перевели до меня. Теперь текст на Прологе:

>>
 >> test (X, 0, _) :- !.
 >> test (X, N, List) :-
 >>   X1 = X mod 10,
 >>   not member (X1, List),
 >>   X2 = X div 10,
 >>   N1 = N - 1,
 >>   test (X2, N1, [X1| List]).
 >>


S>А где здесь N или N1 на 0 проверяется?


S>Best regards,

S> Sergey.

test (X, 0, _) :- !.
Re[18]: мнение о Delphi
От: Sinclair Россия https://github.com/evilguest/
Дата: 01.10.03 10:25
Оценка:
Здравствуйте, zaiats_2k, Вы писали:
_>Include появилась толи в 6м толи в 7м Turbo Pascal'е.
Может быть. Но у Вирта ее совершенно точно не было — было только объединение/пересечение множеств.
... << RSDN@Home 1.1 beta 2 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[15]: мнение о Delphi
От: Sergey Россия  
Дата: 01.10.03 11:01
Оценка:
Hello, !
You wrote on Wed, 01 Oct 2003 10:20:38 GMT:

S>> А где здесь N или N1 на 0 проверяется?


> test (X, 0, _) :- !.


Понятно. А где 4 в качестве начального значения N задается?


Best regards,
Sergey.
Posted via RSDN NNTP Server 1.7 "Bedlam"
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Re[19]: мнение о Delphi
От: zaiats_2k Россия  
Дата: 01.10.03 11:14
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, zaiats_2k, Вы писали:

_>>Include появилась толи в 6м толи в 7м Turbo Pascal'е.
S>Может быть. Но у Вирта ее совершенно точно не было — было только объединение/пересечение множеств.

Это настолько важно? Include\Exclude были добавлены в TurboPascal только с одной целью — повышение скорости добавления\удаления одиночного значения в\из множество. Вопреки синтаксису похожему на вызов процедуры, Include и Exclude, это не есть процедуры. Компилируются они в ОДНУ ассемблерную команду. Логически же это тоже самое пересечение множества с другим множеством, состоящим из одного элемента.
0 программистов ругал сердитый шеф,
потом уволил одного, и стало их FF!
Re[16]: мнение о Delphi
От: Аноним  
Дата: 01.10.03 11:31
Оценка:
Здравствуйте, Sergey, Вы писали:

S>Hello, !

S>You wrote on Wed, 01 Oct 2003 10:20:38 GMT:

S>>> А где здесь N или N1 на 0 проверяется?


>> test (X, 0, _) :- !.


S>Понятно. А где 4 в качестве начального значения N задается?


А это когда даешь команду вроде test (1234, 4, []). Если хочется, можно создать еще одну функцию, вроде

start (X) :- test (X, 4, []).

А можно задать и другое значение. Единственное ограничение — третий параметр должен быть [].
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.