Страница 1 из 6

Детский лепет

Добавлено: 02 авг 2011, 19:35
grigoriy
В 3 года моя дочка вместо "капюшон" говорила "кашипитон".
Я и мои сверстники где-то в 8-9 лет не могли без усилий произнести фамилию писателя Гюго
(Козетта, Гаврош из "Отверженные"). "Пю", "Гю" - чуть сложнее для артикуляции, чем "Па", "Га".
Англичанам, говорят, проще произнести "Татанья" вместо "Татьяна". Это преамбула.

Собственно по сабжу. Детский лепет в языках программирования.

Задача. В логическую переменную b нужно записать результат - равно a единице, или нет.

На Паскале.

1. По-взрослому:
b:=a=1;

2.
По-детски:
if a=1 then b:=true else b:=false;

более жуткий вариант:
if ((a=1)=true) then b:=true else if ((a=1)=false) then b:=false; :lool:

Где-то такое направление.

Более глубокий уровень (в котором я не копенгаген) - наверное, не всегда из языковой компактности
следует компактность машинного кода.

Детский лепет

Добавлено: 03 авг 2011, 00:56
k1ng1232
ну вся проблема в том- что это работает только на паскале, на C/C++ это не работает, поэтому это лишь особенности языка Паскаль, и в том что вы назвали "по детски" ничего плохого не вижу
а если хотите увидеть нечто действительно жуткое то вот [url=http://govnokod.ru]http://govnokod.ru[/url]

Детский лепет

Добавлено: 03 авг 2011, 09:12
Wild Bill
k1ng1232 писал(а):Source of the post ну вся проблема в том- что это работает только на паскале, на C/C++ это не работает...
Почему?
C++

Код: Выбрать все

b = (a == 1);
Fortran

Код: Выбрать все

b = (a .eq. 1)

Детский лепет

Добавлено: 03 авг 2011, 09:15
homosapiens
b = (a == 1);

Борланд дебилдер такую конструкцию временами не воспринимает. Но это не значит, что ей не стоит пользоваться. Это значит, что дебилдер - фигня.

Детский лепет

Добавлено: 03 авг 2011, 12:17
k1ng1232
Wild Bill писал(а):Source of the post
k1ng1232 писал(а):Source of the post ну вся проблема в том- что это работает только на паскале, на C/C++ это не работает...
Почему?
C++

Код: Выбрать все

b = (a == 1);
Fortran

Код: Выбрать все

b = (a .eq. 1)


а ну да, точно

Детский лепет

Добавлено: 03 авг 2011, 12:28
uxx

Код: Выбрать все

b = !(a-1);

Детский лепет

Добавлено: 03 авг 2011, 12:29
Wild Bill
Мы часто забываем, что сравнения точные такие же операции, как сложение и умножение.

Детский лепет

Добавлено: 03 авг 2011, 12:51
Wild Bill
uxx писал(а):Source of the post

Код: Выбрать все

b = !(a-1);
А это уже зависит от реализации языка, компилятора, вдруг там true и false не 1 и 0?

Детский лепет

Добавлено: 03 авг 2011, 12:55
uxx
Wild Bill не правда. Преобразование типов int -> bool регламентировано стандартом.

Детский лепет

Добавлено: 03 авг 2011, 13:25
Wild Bill
Тогда

Код: Выбрать все

b = !(bool)(a-1);
Если бы все компиляторы поддерживали стандарт... Почитайте сообщение Homo Sapiens.