В паскале остро не хватает операторов &, &&, | и ||

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

Re: В паскале остро не хватает операторов &, &&, | и ||

Сообщение Лекс Айрин » 18.04.2017 10:00:32

чтобы оно не воспринималось "а не вот так" есть приоритеты... т. е сначала выполняются сравнения a>0 и b>0, а когда подобные условия закончатся, вот тогда идет булева операция and.

vitaly_l писал(а):а вот здесь скобок нет:

Никогда не стоит так писать, если не охота проблем. Конечно, компилятор может быть это и переварит, но программист может плюнуть и перейти на брейнфак... типа "если нет разницы, то..."
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: В паскале остро не хватает операторов &, &&, | и ||

Сообщение Awkward » 18.04.2017 10:10:36

...А ещё, потом этот извращённый код не будет компилироваться, например, в дельфи, если нужен будет код для разных компиляторов. И вообще, это будет уже не паскаль.
Не надо извращать и усложнять компилятор и язык!
Awkward
новенький
 
Сообщения: 43
Зарегистрирован: 19.01.2017 00:06:47

Re: В паскале остро не хватает операторов &, &&, | и ||

Сообщение vitaly_l » 18.04.2017 10:23:23

Лекс Айрин писал(а):Никогда не стоит так писать, если не охота проблем. Конечно, компилятор может быть это и переварит, но программист может плюнуть и перейти на брейнфак... типа "если нет разницы, то..."

Ты явно гонишь туфту. Я просто на примерах объяснил, что: "искомое" - уже заложено в Паскале. Просто нужно ясно понимать что именно там происходит и для чего там ставят скобки.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: В паскале остро не хватает операторов &, &&, | и ||

Сообщение SSerge » 18.04.2017 10:26:41

Awkward писал(а):И вообще, это будет уже не паскаль


Нынешняя практическая версия де-факто давно уже не паскаль; причем для всех существующих компиляторов.
SSerge
энтузиаст
 
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: В паскале остро не хватает операторов &, &&, | и ||

Сообщение Лекс Айрин » 18.04.2017 10:55:37

vitaly_l писал(а): Просто нужно ясно понимать что именно там происходит и для чего там ставят скобки.


Я тебя, возможно, удивлю, но чаще всего они ставятся для программиста.

vitaly_l писал(а):Ты явно гонишь туфту.


Попробуй скомпилировать свой "пример". Хотя, с учетом заимствований из С и иже с ним, этот код может и собраться... но тогда я буду плохо думать о разработчиках.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: В паскале остро не хватает операторов &, &&, | и ||

Сообщение vitaly_l » 18.04.2017 11:08:53

Лекс Айрин писал(а):тогда я буду плохо думать о разработчиках.

Собирается без проблем, т.к. скобки там явно ненужны. И разработчики - всё правильно сделали.
Лекс Айрин писал(а):чаще всего они ставятся для программиста.

очередной флуд от Лекса и Айрина.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: В паскале остро не хватает операторов &, &&, | и ||

Сообщение Лекс Айрин » 18.04.2017 12:00:31

vitaly_l писал(а):Собирается без проблем, т.к. скобки там явно ненужны.


Не в скобках дело.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: В паскале остро не хватает операторов &, &&, | и ||

Сообщение Cheb » 18.04.2017 12:42:36

Что я наделал! Изображение
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34

Re: В паскале остро не хватает операторов &, &&, | и ||

Сообщение Лекс Айрин » 18.04.2017 12:48:18

Cheb, всего лишь вызвал очередной холивар на тему какой язык лучше.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: В паскале остро не хватает операторов &, &&, | и ||

Сообщение vitaly_l » 18.04.2017 16:59:56

Лекс Айрин писал(а):чтобы оно не воспринималось "а не вот так" есть приоритеты... т. е сначала выполняются сравнения a>0 и b>0, а когда подобные условия закончатся, вот тогда идет булева операция and.

флудеры: Лекс и Айрин - внесли заведомо ложные данные в решение и миллиарды программистов поверив флудерам - ошиблись, потому что доверились их ложным утверждениям про приоритеты. В итоге, падали самолёты и взрывались атомные станции. И только флудеры: Лекс и Айрин - ехидно улыбались мониторам несчастных программистов. Но атомные станции всё взрывались и взрывались, а с неба падали прошлогодние снежинки :wink:
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: В паскале остро не хватает операторов &, &&, | и ||

Сообщение Лекс Айрин » 18.04.2017 17:58:25

Что же это за программисты, которые не проверяют написанное собой? Это уже профнепригодность.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: В паскале остро не хватает операторов &, &&, | и ||

Сообщение pupsik » 18.04.2017 18:45:42

Что я наделал!
затронули "художников"... Где то на 7-ой + странице остановится.

По поводу темы: лазарь выбрал позицию совместимости с борландом. А вот что далее будет: как вила ляжут...

п.с.
Что то слишком все хотят модернизации и побольше плюх. Только какая из этого польза? Со "своей стороны" - вроде польза. Только вот польза у каждого разная..
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: В паскале остро не хватает операторов &, &&, | и ||

Сообщение Awkward » 18.04.2017 19:16:39

pupsik писал(а):Что то слишком все хотят модернизации и побольше плюх

Да уж, от позиции Вирта это сильно отличается. В язык вводится всё больше и больше изменеий, из-за которых сам язык усложняется, порой чрезмерно (И неоправанно).
Awkward
новенький
 
Сообщения: 43
Зарегистрирован: 19.01.2017 00:06:47

Re: В паскале остро не хватает операторов &, &&, | и ||

Сообщение sign » 19.04.2017 06:57:12

SSerge писал(а):
sign писал(а):Всякие свистелки и перделки жаждут внести прибежавшие в Паскаль со всяких дурдомо-языков.
Этот дурдом в голове они жаждут привнести в Паскаль. :mrgreen:


Да, истинный паскалист должен пользоваться исключительно изначальной версией языка, предложенный Виртом, и отвергнуть с негодованием все гнусные привнесенности извне, типа объектов любого вида, строк, резиновых массивов и всякой похабщины, под которой можно понимать всякие неканоничные функци asin, acos, tanh. :D
А так то руководитель бывший борландовского паскаля спятил и в сумашествии своем создал ужасающее -- си шарп. Потому что над паскалем надругаться не дали. :mrgreen:

Всё должно быть разумно, потому я ваши претензии отвергаю с негодованием!
Жизнь не стоит на месте, всё развивается, в том числе и Паскаль!
Но!
Не нужно пихать лишние сущности.
Предлагаемые операторы (&, &&, | и ||) не вносят ничего нового в сам язык. Но увеличивают шансы на то, что программист наплодит, незаметно для себя, кучу трудно находимых ошибок, которых бы не было, будь соответствующее выражение грамотно структурировано скобками.

Добавлено спустя 14 минут 14 секунд:
vitaly_l писал(а):
Лекс Айрин писал(а):Кстати, в условии (a > 0 and b) > 0 нет смысла ставить скобки в этих местах... боюсь, что компилятор скажет "Упс!"

Так об этом и речь!!! Скобки ставятся, исключительно для того чтобы выражение:
Код: Выделить всё
if a > 0 and b > 0 then

понималось компилятором, вот так:
Код: Выделить всё
if (a > 0) and (b > 0) then

а не вот так:
Код: Выделить всё
if (a > 0 and b) > 0 then

Скобки нужны не компилятору, а человеку.
Один фиг, компилятор будет запихивать всё в стек, т.е. строить обратную польскую запись.
Код: Выделить всё
if (a > 0) and (b > 0) then => a 0 > b 0 > and

if a > 0 && b > 0 then => a 0 > b 0 > &&


Добавлено спустя 4 минуты 56 секунд:
vitaly_l писал(а):
Лекс Айрин писал(а):тогда я буду плохо думать о разработчиках.

Собирается без проблем, т.к. скобки там явно ненужны. И разработчики - всё правильно сделали.
Лекс Айрин писал(а):чаще всего они ставятся для программиста.

очередной флуд от Лекса и Айрина.

Что собирается баз проблем?

Изображение
sign
энтузиаст
 
Сообщения: 1131
Зарегистрирован: 30.08.2009 09:20:53

Re: В паскале остро не хватает операторов &, &&, | и ||

Сообщение скалогрыз » 19.04.2017 09:49:16

Код: Выделить всё
var
  a,b : integer;
begin
  if a > 0 and b > 0 then

внимательно смотрим список приоритетов
видим - что у оператора "and" приоритет выше, чем у оператора сравнивания, по-этому выражение выше, оператор видит, как
Код: Выделить всё
var
  a,b : integer;
begin
  if (a > (0 and b)) > 0 then

т.к. и 0 и b это тип INTEGER, то результат его работы, это INTEGER.
и получаем выражение:
Код: Выделить всё
  if (a > NNN) > 0 then

,где NNN - это некое число.

(a > xxx) - это операция сравнения, результат которой это BOOLEAN
Код: Выделить всё
  if (a > xxx) > 0 then

дальнейшая обработка операции привоидт нас к выражению:
Код: Выделить всё
  if (BBB > 0) then

где BBB это булеан (true или false).
Boolean, нельзя сравнивать на больше или меньше с integer-ом. Как результат получаем сообщение от компилятора: Operator is not overloaded "ShortInt" and "Boolean".

А вот теперь можно вернутся к первому посту от Cheba.
И кстати, попускать слюни на Си/Си++, где такие вещи можно! (т.к. boolean типа там нет... ну или не было, но по факту, им не очень руководствуются)

Ваш, КО!

ЗЫ: в Си такое вот выражение
Код: Выделить всё
  if (a > 0 && b > 0)

язык поймёт имеено как
Код: Выделить всё
  if ((a > 0) && (b > 0))

так-как приоритет сравнивания выше, чем Логическое И ... а вы говорите Паскаль!!!
Внемите Дожу, он плохого не посоветует.

Ещё раз, Ваш КО!
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

Пред.След.

Вернуться в Общее

Кто сейчас на конференции

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

Рейтинг@Mail.ru