Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
mister2010
0 / 0 / 0
Регистрация: 23.05.2010
Сообщений: 64
#1

Цикл for - C++

25.05.2010, 01:24. Просмотров 459. Ответов 7
Метки нет (Все метки)

Не могу понять как работает программа, объясните её логику.
Код
#include <iostream>
#include <conio.h>
using namespace std;

int main()
{
    setlocale(0, "");
    bool salo;
	int num=14;
	for(int i=2; i<=num/i; i++){
              if((num%i)==0)
              {
              salo = false; break;

             }
	}
      if(salo) cout<<"Простое";
      else cout<<"Не простое";
	  getch();
  }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.05.2010, 01:24     Цикл for
Посмотрите здесь:

C++ Цикл FOR
цикл for... C++
Цикл for C++
цикл While C++
C++ Цикл
C++ Цикл while
C++ цикл while
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Crudelis
Шаровик затейник
 Аватар для Crudelis
669 / 411 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
25.05.2010, 01:48     Цикл for #2
Цитата Сообщение от mister2010 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
 setlocale(0, "");
 bool salo;
 int num=14;
 for(int i=2; i<=num/i; i++){
 if((num%i)==0)//деление числа по модулю, i меняется от 2 до 14ти если число делится без остатка то это 1 - тру, иначе фолс
 {
 salo = false; break;// как только мы получаем фолс выходим из цикла и выводим что сало не простое
}
 }
 if(salo) cout<<"Простое";
 else cout<<"Не простое";
 getch();
 }
вот я одного не могу понять это смысл программы) как только деление по модулю будет равно 0 выходим из цикла и получаем сало не простое....
mister2010
0 / 0 / 0
Регистрация: 23.05.2010
Сообщений: 64
25.05.2010, 02:09  [ТС]     Цикл for #3
Почему только 1 вывод и всё?
Логика вывода такая?
а) фор(2<7 ) да Остаток от деления 14/2 = 0 выходим из цикла и идём на след. итерацию
б) фор(3<7 ) да Остаток от деления 14/3 = 2 выводим слово простое
в) фор(4<7 ) да Остаток от деления 14/4 = 2 выводим слово простое
и так до 7, почему это всё не выводится, а выводится только 1 строка?
Crudelis
Шаровик затейник
 Аватар для Crudelis
669 / 411 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
25.05.2010, 02:17     Цикл for #4
Цитата Сообщение от mister2010 Посмотреть сообщение
а) фор(2<7 ) да Остаток от деления 14/2 = 0 выходим из цикла и идём на след. итерацию
здесь мы получим на экране Не простое и выйдем с цикла.
salo = false; break; - закончит цикл
mister2010
0 / 0 / 0
Регистрация: 23.05.2010
Сообщений: 64
25.05.2010, 02:36  [ТС]     Цикл for #5
Цитата Сообщение от Crudelis Посмотреть сообщение
здесь мы получим на экране Не простое и выйдем с цикла.
salo = false; break; - закончит цикл
Первая итерация. 2<7 14/2=0 Первая итерация понятно, что ничего не выводит потому-что брик ,а брик потому-что остаток от деления ноль у нас получился,но за 2-ой итерацией
3<7 Да, меньше. 14/3=Остаток 2. Тогда должно вывестись каутом результат Не простое(1раз должно вывестись)
3-ая итерация 14/4=тоже остаток 2, 2ой раз должно вывестись не простое
4-ая итерация 14/5= остаток 4, 3-ий раз должно вывестись не простое
и так до 7-ой итерации, почему только 1 вывод?
Crudelis
Шаровик затейник
 Аватар для Crudelis
669 / 411 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
25.05.2010, 02:42     Цикл for #6
mister2010, вы пробывали запускать программу? ну и что выводит? я ещё раз повторюсь как только цикл увидет break для него прекратятся все итерации, вообще для цикла всё прекратиться и программа продолжит свой ход уже после цикла.

т.е. как только будет 2<7 14/2=0 дальше не будет никаких итераций выполнится код после цикла
а именно отработает else cout<<"Не простое";
далее getch(); и конец программы
mister2010
0 / 0 / 0
Регистрация: 23.05.2010
Сообщений: 64
25.05.2010, 02:48  [ТС]     Цикл for #7
Значит эта программа работает только 1-ну итерацию?
Первый раз попало на брик, и пошло вниз из акончилась?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.05.2010, 12:01     Цикл for
Еще ссылки по теме:

цикл for C++
C++ цикл for
Цикл for C++
цикл while C++
Цикл while C++

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

Или воспользуйтесь поиском по форуму:
Crudelis
Шаровик затейник
 Аватар для Crudelis
669 / 411 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
25.05.2010, 12:01     Цикл for #8
mister2010, да вы совершенно правы, уберите брик у будут все итерации
Yandex
Объявления
25.05.2010, 12:01     Цикл for
Ответ Создать тему
Опции темы

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