Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.62
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
#1

Сформулируйте, что такое разделитель операторов и где он ставится - C++

05.07.2013, 08:59. Просмотров 1805. Ответов 44
Метки нет (Все метки)

Я интуитивно понимаю, в своих программах всегда ставлю, где надо, но словами написать не могу. А нужен полностью формализованный абзац, где и зачем ставится точка с запятой.
1
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.07.2013, 08:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сформулируйте, что такое разделитель операторов и где он ставится (C++):

Что такое "перегрузка операторов"? Каковы принципы работы перегруженных операторов и назначение указателя this - C++
Добрый день . Помогите понять принцип работы перегрузки операторов. объясните пожалуйста в зависимости от чего зависит агрумент при...

Что такое паттерны, где их применяют и где прочитать о них? - C++
Насколько я понимаю, паттерны - это шаблон. Т.е. уже кем-то написанный код, который хорошо работает и не занимается любовью с головным...

Что такое компилятор, и где его взять? - C++
Здравствуйте дорогие форумчане! Вот начал изучать по самоучителям С++ и сталкнулся с таким термином, как компилятор. Я так понял он...

Не секу что такое gsoap и где его искать на win7 - C++
Чур не ругаться за оффтоп, я впервые пользуюсь форумами! :) Итак, прилагаю файл с лабками, первую я уже сделал, осталась вторая, и на ней...

Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с файлами? - C++
Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с файлами?

Что такое рекурсивный тип данных? Что такое конструкция рекурсивного типа? - C++
Что такое рекурсивный тип данных? Что такое конструкция рекурсивного типа?

44
svk2140
-8 / 0 / 1
Регистрация: 04.07.2013
Сообщений: 274
05.07.2013, 13:45 #31
так, вот только не надо говорить про меня, если вы даже не поняли. я имел ввиду именно for(int i = 0; i <x;i++) и как по моему он пересчитывает числа, и вообщем используется для пересчёта чего либо.
0
Croessmah
Ушел
Эксперт CЭксперт С++
13553 / 7704 / 872
Регистрация: 27.09.2012
Сообщений: 19,006
Записей в блоге: 3
Завершенные тесты: 1
05.07.2013, 13:55 #32
svk2140, Его можно смело использовать для проверки корректности ввода, для прохода списков, для проиведения множества каких-то действий, он во многих случаях намного удобнее того же while

Добавлено через 1 минуту
Да и что будет пересчитывать такой цикл?
C++
1
2
for(;;)
   //...
0
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
05.07.2013, 14:11  [ТС] #33
Цитата Сообщение от svk2140 Посмотреть сообщение
и как по моему он пересчитывает числа, и вообщем используется для пересчёта чего либо.
Какие числа во что пересчитывает? Дано число 3. Чему равен ответ? Функция пересчёта - это вот что:
C++
1
2
3
4
double f(double x)
{
 return регрессионное уравнение;
}
. А циклы этим не занимаются.

Добавлено через 3 минуты
И давайте вернёмся к теме.
0
svk2140
-8 / 0 / 1
Регистрация: 04.07.2013
Сообщений: 274
05.07.2013, 14:22 #34
нет но он же пересчитывает 1 2 3 4 5 6 ... так пока ограничитель не сработает. Например делает чтото n количество раз, как бы "пересчёт"
0
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
05.07.2013, 14:26 #35
svk2140, тогда уж "повтор", а не "перерасчет", но всё равно это не то.
Допустим, вы знаете, что for можно использовать как if?
C++
1
2
if (x == 1)
cout << x;
то же самое
C++
1
2
3
4
5
for(;x == 1;)
{
cout << x;
break;
}
0
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
05.07.2013, 15:06  [ТС] #36
Цитата Сообщение от svk2140 Посмотреть сообщение
нет но он же пересчитывает 1 2 3 4 5 6
Во что?

Добавлено через 1 минуту
Цитата Сообщение от nexen Посмотреть сообщение
if (x == 1)
cout << x;
то же самое
Код C++
1
2
3
4
5
for(;x == 1
{
cout << x;
break;
}
А это называется недообфускация алгоритма.
0
nexen
05.07.2013, 15:22
  #37

Не по теме:

taras atavin, пф, ну и ладно, что "недо-"
Кстати, я тут подумал, а

C++
1
for (;x==1;break;) cout<<x;
сработает? о_О

0
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
05.07.2013, 15:39  [ТС] #38
Цитата Сообщение от nexen Посмотреть сообщение
taras atavin, пф, ну и ладно, что "недо-"
Именно недо, так как прочитать такой исходник ни для кого не проблема.
0
OhMyGodSoLong
05.07.2013, 21:05
  #39

Не по теме:

Раздули тут спор из-за ничего. Точки с запятой нужны, потому что синтаксис языка использует точку с запятой в качестве разделителя. Питон и Хаскелл вон одними переводами строки и пробелами могут обходиться. Какой-нибудь Пролог или там Смолток точками разделяют фразы.

Цитата Сообщение от AntonChik Посмотреть сообщение
OhMyGodSoLong, это не "полностью формализованный абзац")
Может мне и книгу за него написать? Не, спасибо, мне пока своей хватает.

Тем более, описывать грамматику языка псевдоформальным естественным языком...

0
ValeryS
Модератор
6705 / 5114 / 482
Регистрация: 14.02.2011
Сообщений: 17,182
05.07.2013, 21:21 #40
taras atavin,
ты еще про один разделитель забыл ,
вот например можно записать так
C++
1
2
int x;
x=5,x++,++x,x++,printf("%d",x);
и все сработает
0
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
05.07.2013, 21:42  [ТС] #41
Суть от двух разделителей меняется? Но описывать двойственность разделителя не нужно, так как в новом языке их хоть и два, но для разных целей, они не взаимозаменяемы. Запятая разделяет фактические параметры подпрограммы, фактические операнды оператора и совместно декларируемые идентификаторы, точка с запятой разделяет операторы и независимые декларации.

Добавлено через 5 минут
Цитата Сообщение от OhMyGodSoLong Посмотреть сообщение
Раздули тут спор из-за ничего. Точки с запятой нужны, потому что синтаксис языка использует точку с запятой в качестве разделителя. Питон и Хаскелл вон одними переводами строки и пробелами могут обходиться.
А у меня будет комбинированное разделение, как на бейсике, когда несколько операторов в одной строке разделяются точкой с запятой, а для операторов на разных строках достаточно в роли разделителя символа перевода строки. Надо описать, где, когда и зачем нужен каждый разделитель, сейчас нужен абзац о внутристрочно разделителе операторов.
0
ValeryS
Модератор
6705 / 5114 / 482
Регистрация: 14.02.2011
Сообщений: 17,182
05.07.2013, 22:22 #42
Цитата Сообщение от taras atavin Посмотреть сообщение
Суть от двух разделителей меняется?
формально да
вот так
нормальная компиляция
C++
1
int x;x=5,x++;
вот так ошибка
C++
1
int x,x=5,x++;
типа два раза определение x

вот так нормально
C++
1
int x,y;
вот так ошибка
C++
1
int x;y;
y не определен

Добавлено через 1 минуту
Цитата Сообщение от taras atavin Посмотреть сообщение
так как в новом языке их хоть и два, но для разных целей,
не понял ты свой язык описываешь?
0
Croessmah
05.07.2013, 22:23
  #43

Не по теме:

Цитата Сообщение от ValeryS Посмотреть сообщение
не понял ты свой язык описываешь?
А Вы только узнали?

0
ValeryS
05.07.2013, 22:27
  #44

Не по теме:

Цитата Сообщение от Croessmah Посмотреть сообщение
А Вы только узнали?
ага
тогда откуда мне знать как у него будет разделятся операнды?
может как в препроцессоре
новая строка новая сущность, хочешь продолжения ставь слэш

0
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
06.07.2013, 11:00  [ТС] #45
Цитата Сообщение от ValeryS Посмотреть сообщение
формально да
вот так
нормальная компиляция
Код C++
1
int x;x=5,x++;
вот так ошибка
Код C++
1
int x,x=5,x++;
Не путай.
C++
1
int x;
- декларация, а сейчас обсуждаются разделители операторов. От того, что их два и в заголовке for есть правило, какой где можно ставить, а какой где нельзя, меняется не суть, а сложность. Есть разделители операторов в определённых местах их надо ставить, в других нельзя и для некоторых случаев есть правила выбора разделителя. Мне правило выбора для for не нужно, так как разделители разкатегориальны:
1 разделитель операторов и независимых деклараций,
2 разделитель фактических параметров, фактических операндов и совместно декларируемых идентификаторов.

Добавлено через 3 минуты
Цитата Сообщение от ValeryS Посмотреть сообщение
тогда откуда мне знать как у него будет разделятся операнды?
может как в препроцессоре
новая строка новая сущность, хочешь продолжения ставь слэш
Мне нужно упрощённое правило, которое подойдёт к c++, чтоб от него оттолкнуться.
0
06.07.2013, 11:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.07.2013, 11:00
Привет! Вот еще темы с ответами:

Что такое хэндлер файла? Что такое файловый указатель? - C++
Что такое хэндлер файла? Что такое файловый указатель?

Культура оформления кода: что такое enum? Где, когда и для чего уместно применять этот тип? - C++
не понял за что отвечают эти две строчки: enum ChosenOperation { ADD = 1, SHOW, SEARCH, EXIT }; enum SearchingCriteria { NAME =...

Что такое заголовочный файл? Что такое файл исходного кода? Рассмотрите назначение каждого из них - C++
Что такое заголовочный файл? Что такое файл исходного кода? Рассмотрите назначение каждого из них пожалуйста.

Тип void как возвращаемое значение функции: что он такое, зачем он нужен, где, когда и как его использовать? - C++
Объясните пожалуйста про Void для оооочень далекого человека. Читаю книгу Шилдта, в принципе всё ясно, всё понимаю и пробую, но вот Void -...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
45
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru