powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Использование приоритетности операторов или скобки
25 сообщений из 107, страница 2 из 5
Использование приоритетности операторов или скобки
    #38824076
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблемы с приоритетом идут как правило на стыке арифметических и логических операций.

тут достаточно помнить, что приоритеты арифметических операций и операций отношения больше, чем у логических.

Вот за что не люблю си-подобные языки, так это как раз за кучу "лишних" скобок.


их там как раз нет, за это люби свой любимый паскаль.
...
Рейтинг: 0 / 0
Использование приоритетности операторов или скобки
    #38824079
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
For AllMasterZivнаоборот, лишние скобки создают нечитаемый код.
поэтому лишние скобки нужно убирать.LISP не может согласиться с вами


в лиспе вообще таких проблем нет, там нет приоритетов операций.
скобок конечно дофига...
...
Рейтинг: 0 / 0
Использование приоритетности операторов или скобки
    #38824093
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как уменьшить скобки.

Со ссылкой на http://bytes.com/topic/c/answers/219683-pros-cons-define-begin

Код: plaintext
1.
2.
3.
4.
5.
#define IF if(
#define THEN )
#define BEGIN {
#define END }
#define eq ==



converts this:

Код: plaintext
1.
2.
3.
if(x == 1) {
puts("The value is 1");
}



into this:

Код: pascal
1.
2.
3.
4.
IF x eq 1 THEN
BEGIN
puts("The value is 1");
END
...
Рейтинг: 0 / 0
Использование приоритетности операторов или скобки
    #38824099
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivих там как раз нет, за это люби свой любимый паскаль.
Потише демонстрируй свою некомпетентность, смешно.
...
Рейтинг: 0 / 0
Использование приоритетности операторов или скобки
    #38824106
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer,

Код: sql
1.
2.
3.
if (x == 1 && y == 1) ... // С

if (x = 1) and (y =1) ... // паскаль


Так где, говорите, больше скобочек?
Я вообще молчу про то, кому в здравом уме могло прийти в голову что у сравнения меньший приоритет чем у логических операций.
...
Рейтинг: 0 / 0
Использование приоритетности операторов или скобки
    #38824108
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Let the sruch begin :)
...
Рейтинг: 0 / 0
Использование приоритетности операторов или скобки
    #38824110
JeStone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
развели полемику на пустом месте ) давайте еще пробелы vs табы вспомним =))
...
Рейтинг: 0 / 0
Использование приоритетности операторов или скобки
    #38824111
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyLet the sruch begin :)
Habba-habba! I see everything! I see...
...
Рейтинг: 0 / 0
Использование приоритетности операторов или скобки
    #38824112
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Код: plaintext
1.
2.
int percent = 100 * progress/MAX_CNT; // Incorrect.
int percent = (100 * progress)/MAX_CNT; // Correct.

А в чём проблема?
Или просто: "второй вариант чётко демонстрирует понимание особенностей целочисленного деления"?
...
Рейтинг: 0 / 0
Использование приоритетности операторов или скобки
    #38824113
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyТак где, говорите, больше скобочек?
В си-подобных языках. Примеры, думаю, Вы знаете не хуже меня.

Anatoly Moskovskyпро то, кому в здравом уме могло прийти в голову что у сравнения меньший приоритет чем у логических операций.
Да, для того, кто не думает про одноимённые битовые операции, это аргумент.
...
Рейтинг: 0 / 0
Использование приоритетности операторов или скобки
    #38824114
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема в том, что первый вариант не работает. Даёт константу на всём диапазоне прогресса.
...
Рейтинг: 0 / 0
Использование приоритетности операторов или скобки
    #38824115
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JeStoneдавайте еще пробелы vs табы вспомним
Кстати да, давайте. Я постоянно сталкиваюсь с конфликтами слияния веток из-за разных пробелов/табов у разных разработчиков.
...
Рейтинг: 0 / 0
Использование приоритетности операторов или скобки
    #38824117
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerAnatoly MoskovskyТак где, говорите, больше скобочек?
В си-подобных языках. Примеры, думаю, Вы знаете не хуже меня.
Вы фигурные шоли имеете в виду? :)
...
Рейтинг: 0 / 0
Использование приоритетности операторов или скобки
    #38824118
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyВы фигурные шоли имеете в виду? :)
Нет, круглые. Долго собираетесь юродствовать?
...
Рейтинг: 0 / 0
Использование приоритетности операторов или скобки
    #38824119
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonПроблема в том, что первый вариант не работает. Даёт константу на всём диапазоне прогресса.Это что за компилятор меняет порядок вычисления равноприоритетных целочисленных операций???
...
Рейтинг: 0 / 0
Использование приоритетности операторов или скобки
    #38824120
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer,

Я вообще-то пример привел. А вы нет.
...
Рейтинг: 0 / 0
Использование приоритетности операторов или скобки
    #38824131
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Moskovsky, я предполагал, что человек с таким количеством сообщений в форуме Си знает хотя бы синтаксис языка. Прошу прощения за ошибку. Пример....

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
function Pi: real;
begin
  Result := 3.1415;
end;
...
function E: real;
begin
  Result := 2.7818;
end;
...
type
  TFunc = function: real;
...
var
  PFunc: TFunc;
...
begin
  PFunc := Pi;
  r := PFunc * PFunc;
  ...
  while a > b do
  ...
  for i := 1 to 5 do
  ...
  repeat until true;
  ...
  if a > b then
  ...
  v := TForm(SomeObject).Visible;
  ...



Думаю, достаточно. Считайте скобочки для сишного варианта.
...
Рейтинг: 0 / 0
Использование приоритетности операторов или скобки
    #38824148
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer,

А, вы про скобочки в синтаксисе операторов.
Если сравнить кол-во скобок в С с кол-вом do, : и ; в паскале, то еще не известно кто победит.
А уж по кол-ву набранного текста на единицу полезного кода паскаль точно лидер :)
...
Рейтинг: 0 / 0
Использование приоритетности операторов или скобки
    #38824171
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyЕсли сравнить кол-во скобок в С с кол-вом do, : и ; в паскале, то еще не известно кто победит.
Тёплое с мягким?

Anatoly MoskovskyА уж по кол-ву набранного текста на единицу полезного кода паскаль точно лидер :)
Вы правы. Офигенная прелесть Паскаля (точнее, дельфы, как его современного представителя) в исключительной информативности кода, по характеристике "прочитал немного красивого кода и всё понял" ему нет равных. Если, конечно, код правильно написан, испортить можно всё, что угодно. Худший из известных мне языков в этом плане - пожалуй, Ява. Хотя в последних версиях надо отметить большой прогресс, на семёрке уже даже вполне приятно работать.
...
Рейтинг: 0 / 0
Использование приоритетности операторов или скобки
    #38824363
JeStone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerВы правы. Офигенная прелесть Паскаля (точнее, дельфы, как его современного представителя) в исключительной информативности кода, по характеристике "прочитал немного красивого кода и всё понял" ему нет равных. Если, конечно, код правильно написан, испортить можно всё, что угодно. Худший из известных мне языков в этом плане - пожалуй, Ява. Хотя в последних версиях надо отметить большой прогресс, на семёрке уже даже вполне приятно работать.
Это все субъективно. Для меня, например, все C-подобные языки с точки зрения синтаксиса гораздо больше подходят под фразу "прочитал немного красивого кода и всё понял", чем тот же Делфи, Python, Ruby и т.д.
...
Рейтинг: 0 / 0
Использование приоритетности операторов или скобки
    #38824410
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonВот достаточно частый пример который я объясняю своим девелоперам.

Код: plaintext
1.
2.
3.
4.
5.
int progress = getProgress();

int percent = 100 * progress/MAX_CNT; // Incorrect.

int percent = (100 * progress)/MAX_CNT; // Correct.


А если так:
Код: plaintext
1.
2.
progress =  40000000
MAX_CNT = 2000000000


Тогда оба твоих варианта дают 0
Так правильно работает
Код: plaintext
1.
int percent =  progress / (MAX_CNT / 100); 
...
Рейтинг: 0 / 0
Использование приоритетности операторов или скобки
    #38824448
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerAnatoly Moskovsky, я предполагал, что человек с таким количеством сообщений в форуме Си знает хотя бы синтаксис языка. Прошу прощения за ошибку. Пример....

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
function Pi: real;
begin
  Result := 3.1415;
end;
...
function E: real;
begin
  Result := 2.7818;
end;
...
type
  TFunc = function: real;
...
var
  PFunc: TFunc;
...
begin
  PFunc := Pi;
  r := PFunc * PFunc;
  ...
  while a > b do
  ...
  for i := 1 to 5 do
  ...
  repeat until true;
  ...
  if a > b then
  ...
  v := TForm(SomeObject).Visible;
  ...



Думаю, достаточно. Считайте скобочки для сишного варианта.

Вы ошиблись(или опечатались) в значении числа Эйлера(если вы его имели ввиду). Расскажу как легко его запомнить. Первая цифра после запятой 7, а потом дважды будет год рождения Льва Николаевича Толстого 1828.

Первая часть вашего примера, на языке Си, будет выглядеть следующим образом
Код: plaintext
1.
2.
const double pi = 3.1415;
const double e = 2.718281828;  



Не вижу какой-то красоты в том что вы привели, код Си красивее. Большая часть скобок заменяется словами begin и end. Мне кажется, что символов будет больше, 8 вместо двух(). Приведите пожалуйста аналог следующего кода Си на Паскале

Код: plaintext
1.
2.
while ((int c = getc(in)) != EOF)
	putc(c, out);
...
Рейтинг: 0 / 0
Использование приоритетности операторов или скобки
    #38824460
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer,
вы конечно может быть дружите, и потому когда вы обзываете представителей нашего Сообщества С++, это нормально(шутите), но если вы не дружите, и это всерьёз, то вы полностью неправы, заканчивайте.
...
Рейтинг: 0 / 0
Использование приоритетности операторов или скобки
    #38824507
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Moskovsky,

как мне кажется приоритеты операторов сравнения в Паскале специально выбраны таким образом,
чтобы скобки не требовались в простых случаях вроде
Код: pascal
1.
  if a*x+b=c*x+d then y:=z;
...
Рейтинг: 0 / 0
Использование приоритетности операторов или скобки
    #38824518
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, как вы думаете, что лучше, := для присваивания, и = для сравнения, либо = для присваивания, и == для сравнения ?
У нас два фактора, частота появления оператора, и читабельность.
1. Инициализация встречается в среднем чаще(собственно потому в Си, токен присваивания занимает 1 символ)
2. В математике присваивание выполняется в один символ
...
Рейтинг: 0 / 0
25 сообщений из 107, страница 2 из 5
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Использование приоритетности операторов или скобки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]