Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.03.2013, 17:17   #21
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
Оно оказалось true и управление перешло на действие в конце итерации, после чего снова проверилось условие, и мы перешли в тело цикла, обрамленное операторными скобками {}
Чего-чего? После проверки условия, если оно истинно, выполняется тело цикла. Не говоря уж о том, что в обсуждаемой программе операторных скобок как раз не было. Так каким образом получилось 132?
Цитата:
только что то сумма не та выводится
Ещё бы. Меньше, чем надо, раза примерно в полтора
Abstraction вне форума Ответить с цитированием
Старый 01.03.2013, 17:23   #22
Diana528
Форумчанин
 
Регистрация: 13.02.2013
Сообщений: 221
По умолчанию

потому что этих скобок не было, поэтому получилось 132, т.е. действия проходили только до ; и не переходили в тело цикла, т.е. телом цикла считалась только одна инструкция до первой ;

Последний раз редактировалось Diana528; 01.03.2013 в 17:26.
Diana528 вне форума Ответить с цитированием
Старый 01.03.2013, 17:34   #23
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Ответ правильный, но неполный. Почему 132, а не 131?
Abstraction вне форума Ответить с цитированием
Старый 01.03.2013, 17:39   #24
Diana528
Форумчанин
 
Регистрация: 13.02.2013
Сообщений: 221
По умолчанию

потому что мы написали i+=2; а если бы мы написали i+=1; то вышло бы 131
Diana528 вне форума Ответить с цитированием
Старый 01.03.2013, 17:42   #25
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
потому что мы написали i+=2; а если бы мы написали i+=1; то вышло бы 131
Коварный вопрос: а если бы написали i+=4, вышло бы 134? Если ответили "да", то проверьте и удивитесь. Если "нет", то объясните, сколько должно получиться в этом случае и почему.
Abstraction вне форума Ответить с цитированием
Старый 01.03.2013, 17:43   #26
Blind Guard
Форумчанин
 
Регистрация: 14.03.2012
Сообщений: 139
По умолчанию

Diana528, вы приводите примеры частных случаев, ответы на которые знаете, вместо того, чтобы выучить общую суть этих примеров.

Abstraction, я понял что вы имели в виду, но о5 же говорю "в цикле я смотрел только шаг", это не ошибка, а невнимательность

Последний раз редактировалось Blind Guard; 01.03.2013 в 17:45.
Blind Guard вне форума Ответить с цитированием
Старый 01.03.2013, 17:49   #27
Diana528
Форумчанин
 
Регистрация: 13.02.2013
Сообщений: 221
По умолчанию

Получилось 131, почему?
Diana528 вне форума Ответить с цитированием
Старый 01.03.2013, 17:53   #28
Diana528
Форумчанин
 
Регистрация: 13.02.2013
Сообщений: 221
По умолчанию

Поняла, потому что мы задали переменной i значение 81, а если бы задали значение 80, то получили бы 131. Т.е. проблема была в инициализации.

Последний раз редактировалось Diana528; 01.03.2013 в 17:55.
Diana528 вне форума Ответить с цитированием
Старый 01.03.2013, 17:55   #29
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
Получилось 131, почему?
Возьмите цикл. Напишите, где там инициализация, где условие, где всё остальное. Распишите, с числами, чему равно значение i на всех шагах первых трёх итераций, по шаблону:
Инициализация. i=???
Проверка условия. i=???
Тело цикла. i=???
Действие в конце итерации. i=???
Проверка условия. i=???
Тело цикла. i=???
...

Цитата:
Поняла, потому что мы задали переменной i значение 81, а если бы задали значение 80, то получили бы 131
- Слушай, дед, а чьи бараны пасутся на том холме?
- Чёрные или белые?
- Положим, чёрные.
- Чёрные мои.
- Ясно. А белые?
- Белые тоже мои.
Abstraction вне форума Ответить с цитированием
Старый 01.03.2013, 18:00   #30
Diana528
Форумчанин
 
Регистрация: 13.02.2013
Сообщений: 221
По умолчанию

Код:
#include <cstdlib>
#include <iostream>

using namespace std;


int main()
{
   int sum=0;
   int i;
   for (i=80;/*Инициализация*/ i<=130;/*условие*/ i++/*инкремент,действие в конце итерации*/ )
   //тело цикла
   i+=2;//проверка условия
   sum=sum+i;//сумма
   cout<<"summa= "<<sum;
   cin>>sum;
   return 0;
}
Diana528 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
найти сумму всех нечетных чисел в диапазоне от 42 до 73. mkerimkulov Общие вопросы C/C++ 11 29.09.2012 11:09
список всех четырехзначных нечетных чисел, делящихся без остатка на сумму своих цифр. Kami-sama Общие вопросы C/C++ 2 12.11.2010 17:07
Посчитать сумму всех целых чисел в этом диапазоне LION7777 Фриланс 14 15.06.2010 00:16
программа с использованием подпрограмм, создаёт односвязный список и вычисляет сумму положительных чисел LOVELY Паскаль, Turbo Pascal, PascalABC.NET 5 13.12.2008 01:27