Форум: Форум C++Разное
Новые темы: 00
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Освоение циклов в С++

Сообщения:  [1-10]   [11-12] 

 
 автор: Deck   (12.11.2011 в 10:18)   письмо автору
 
   для: cheops   (11.11.2011 в 18:26)
 

Спасибо, очень помогли. Постараюсь учесть в последующих работах.

  Ответить  
 
 автор: Miha_drinking_bout   (12.11.2011 в 06:47)   письмо автору
 
   для: cheops   (11.11.2011 в 18:26)
 

Спасибо за пояснение - тоже полезно было. Всегда интуитивно понимал работу for, но не задумывался над тем - почему... ; не ставится/ставится. Теперь знаю.

  Ответить  
 
 автор: cheops   (11.11.2011 в 18:26)   письмо автору
 
   для: Deck   (11.11.2011 в 15:13)
 

>Такой вопрос: почему после строки cout << "циклов\n " нужна точка с запитой(там же вроде тоже
>фигурная скобка)?
Не совсем так, внутри фигурных скобок три оператора cout, в конце каждого из них нужна точка с запятой. Если бы в случае оператора for фигурные скобки не использовались, то ему бы тоже потребовалась точка с запятой
for (i = loopCount; i > 0; i--)  cout << "осталось выполнить " << (i-1)  << " циклов\n";
Так как де-факто это и есть истинная форма оператора for - он выполняет в цикле один оператор. Однако, одного оператора зачастую мало, поэтому используется составной оператор - фигурные скобки
for (i = loopCount; i > 0; i--)
{
  // Тут много других операторов, все они будут выполняться
  // в цикле
}
Вот в конце составного оператора (фигурные скобки) точка с запятой не обязательна (есть парочка исключений, например, класс, но в большинстве случаев скобки обходятся без точки с запятой, так как и так понятно, что это просто контейнер для других операторов). Все остальные операторы требуют в конце точки с запятой, иначе C++ не будет "понимать" где начинаются и заканчиваются операторы.

  Ответить  
 
 автор: cheops   (11.11.2011 в 18:20)   письмо автору
 
   для: Deck   (11.11.2011 в 15:13)
 

1. По поводу русского текста, возможно вас заинтересуют темы по ссылкам
http://softtime.ru/cpp/read.php?id_forum=1&id_theme=10
http://softtime.ru/cpp/read.php?id_forum=1&id_theme=295
если останутся вопросы, лучше завести новую тему.

  Ответить  
 
 автор: Deck   (11.11.2011 в 15:13)   письмо автору
 
   для: cheops   (10.11.2011 в 18:51)
 

Спасибо, все скомпилировалось, но надпись "осталось 1(2,3) цикла" написана непонятно :)
Такой вопрос: почему после строки cout << "циклов\n " нужна точка с запитой(там же вроде тоже фигурная скобка)?

  Ответить  
 
 автор: cheops   (10.11.2011 в 18:51)   письмо автору
 
   для: Deck   (10.11.2011 в 16:06)
 

Вообще странно себя ведет wxDev-C++, он хочет, чтобы i была объявлена вне цикла for (как в чистом C - это одно из характерных отличий C от C++). Вот вариант, который у меня скомпилировался, обратите внимание, что после for точки с запятой не нужно, так как далее идут фигурные скобки.
#include <stdio.h>
#include <iostream>

using namespace std;

int main (int arg, char* pszArgs[])
{
  int loopCount = 3;
  int i;
  for (i = loopCount; i > 0; i--)
  {
    cout << "осталось выполнить ";
    cout << (i-1);
    cout << " циклов\n";
  }
  system ("pause ");
  return 0;
}

  Ответить  
 
 автор: cheops   (10.11.2011 в 18:38)   письмо автору
 
   для: Deck   (10.11.2011 в 16:06)
 

>>напишите, явно в программе, сколько вы хотите, чтобы циклы выполнялись,
>Если можно делать так зачем тогда нужно значение cout << 12(в моем блоке). Как я понимаю
>это вывод на экран, а cin это то что нужно ввести
Совершенно верно.

>(правда я не понимаю где осуществляется этот ввод в самом коде или в командной строке).
В командной строке, нужно переключить фокус на неё и вводить цифры (по мере ввода они будут отображаться).

>>Заключите выражение в круглые скобки
>Не помогает, выводит все теже ошибки.
Сейчас, попробую воспроизвести ситуацию.

  Ответить  
 
 автор: Deck   (10.11.2011 в 16:06)   письмо автору
92.2 Кб
 
   для: cheops   (10.11.2011 в 15:52)
 

>напишите, явно в программе, сколько вы хотите, чтобы циклы выполнялись,
Если можно делать так зачем тогда нужно значение cout << 12(в моем блоке). Как я понимаю это вывод на экран, а cin это то что нужно ввести(правда я не понимаю где осуществляется этот ввод в самом коде или в командной строке).

>Заключите выражение в круглые скобки
Не помогает, выводит все теже ошибки.

  Ответить  
 
 автор: cheops   (10.11.2011 в 15:52)   письмо автору
 
   для: Deck   (10.11.2011 в 15:49)
 

Сделайте проще, вместо вот этого блока
int loopCount;
cout << "12 ";
cin >> loopCount;
напишите, явно в программе, сколько вы хотите, чтобы циклы выполнялись, присвоив это значение переменной loopCount
int loopCount = 3;

>Когда я убираю двойные кавычки выдает ошибки (fordemo\fd.cpp name lookup of `i' changed for
>new ISO `for' scoping и fd.cpp using obsolete binding at `i' )
Заключите выражение в круглые скобки
cout << (i - 1);

  Ответить  
 
 автор: Deck   (10.11.2011 в 15:49)   письмо автору
 
   для: cheops   (10.11.2011 в 14:40)
 

Т.е. вместо cin >> loopCount надо написать например cin >> 3 ?
Когда я убираю двойные кавычки выдает ошибки (fordemo\fd.cpp name lookup of `i' changed for new ISO `for' scoping и fd.cpp using obsolete binding at `i' )

  Ответить  

Сообщения:  [1-10]   [11-12] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования