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

Аватар пользователя
grigoriy
Сообщений: 11916
Зарегистрирован: 18 ноя 2009, 21:00

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

Сообщение grigoriy » 02 авг 2011, 19:35

В 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:

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

Более глубокий уровень (в котором я не копенгаген) - наверное, не всегда из языковой компактности
следует компактность машинного кода.
Последний раз редактировалось grigoriy 28 ноя 2019, 19:55, всего редактировалось 1 раз.
Причина: test

k1ng1232
Сообщений: 1673
Зарегистрирован: 21 ноя 2008, 21:00

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

Сообщение k1ng1232 » 03 авг 2011, 00:56

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

Аватар пользователя
Wild Bill
Сообщений: 4820
Зарегистрирован: 26 июл 2009, 21:00

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

Сообщение Wild Bill » 03 авг 2011, 09:12

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

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

b = (a == 1);
Fortran

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

b = (a .eq. 1)
Последний раз редактировалось Wild Bill 28 ноя 2019, 19:55, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
homosapiens
Сообщений: 8400
Зарегистрирован: 16 июн 2008, 10:02

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

Сообщение homosapiens » 03 авг 2011, 09:15

b = (a == 1);

Борланд дебилдер такую конструкцию временами не воспринимает. Но это не значит, что ей не стоит пользоваться. Это значит, что дебилдер - фигня.
Последний раз редактировалось homosapiens 28 ноя 2019, 19:55, всего редактировалось 1 раз.
Причина: test

k1ng1232
Сообщений: 1673
Зарегистрирован: 21 ноя 2008, 21:00

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

Сообщение k1ng1232 » 03 авг 2011, 12:17

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

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

b = (a == 1);
Fortran

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

b = (a .eq. 1)


а ну да, точно
Последний раз редактировалось k1ng1232 28 ноя 2019, 19:55, всего редактировалось 1 раз.
Причина: test

uxx
Сообщений: 44
Зарегистрирован: 13 июл 2011, 21:00

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

Сообщение uxx » 03 авг 2011, 12:28

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

b = !(a-1);
Последний раз редактировалось uxx 28 ноя 2019, 19:55, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
Wild Bill
Сообщений: 4820
Зарегистрирован: 26 июл 2009, 21:00

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

Сообщение Wild Bill » 03 авг 2011, 12:29

Мы часто забываем, что сравнения точные такие же операции, как сложение и умножение.
Последний раз редактировалось Wild Bill 28 ноя 2019, 19:55, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
Wild Bill
Сообщений: 4820
Зарегистрирован: 26 июл 2009, 21:00

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

Сообщение Wild Bill » 03 авг 2011, 12:51

uxx писал(а):Source of the post

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

b = !(a-1);
А это уже зависит от реализации языка, компилятора, вдруг там true и false не 1 и 0?
Последний раз редактировалось Wild Bill 28 ноя 2019, 19:55, всего редактировалось 1 раз.
Причина: test

uxx
Сообщений: 44
Зарегистрирован: 13 июл 2011, 21:00

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

Сообщение uxx » 03 авг 2011, 12:55

Wild Bill не правда. Преобразование типов int -> bool регламентировано стандартом.
Последний раз редактировалось uxx 28 ноя 2019, 19:55, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
Wild Bill
Сообщений: 4820
Зарегистрирован: 26 июл 2009, 21:00

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

Сообщение Wild Bill » 03 авг 2011, 13:25

Тогда

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

b = !(bool)(a-1);
Если бы все компиляторы поддерживали стандарт... Почитайте сообщение Homo Sapiens.
Последний раз редактировалось Wild Bill 28 ноя 2019, 19:55, всего редактировалось 1 раз.
Причина: test


Вернуться в «Computer Science»

Кто сейчас на форуме

Количество пользователей, которые сейчас просматривают этот форум: нет зарегистрированных пользователей и 25 гостей