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

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

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

Цикл for - C++

25.05.2010, 01:24. Просмотров 479. Ответов 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();
  }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.05.2010, 01:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Цикл for (C++):

Цикл: цикл for вообще никак не воспринимается транслятором - C++
Пишу программу, которая производит различные действия с одномерным массивом. Возникла следующая проблема: цикл for вообще никак не...

Почему цикл на при 1 уходит в бесконечный цикл? - C++
#define _CRT_SECURE_NO_WARNINGS #include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;string.h&gt; int main() { int x=0, y=0,...

Цикл for/Цикл while Помогите срочно пожалуйста... - C++
1.Вычислить и вывести на экран в виде таблицы значения функции F от x1 до x2 с шагом dx. где a, b и c - действительные числа. 2.Цикл...

Задание на цикл с параметром и цикл с постусловием - C++
Помогите пожалуйста написать программу с этими циклами. 1. Вычислить и напечатать таблицу значений функции Z= (e^-x)sinx для 0&lt;=x&lt;=П,...

Цикл с параметром и цикл с условием - C++
1. Составить программу вычисления суммы первых 10 непарных чисел 2. Дано числовой ряд и некоторое число &quot;епсила&quot;. Найти сумму...

Изменить цикл for на цикл do-while - C++
помогите передать программу с цикла FOR в цикл DO-WHILE #include &lt;math.h&gt; #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace...

7
Crudelis
Шаровик затейник
674 / 416 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
25.05.2010, 01:48 #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 выходим из цикла и получаем сало не простое....
0
mister2010
0 / 0 / 0
Регистрация: 23.05.2010
Сообщений: 64
25.05.2010, 02:09  [ТС] #3
Почему только 1 вывод и всё?
Логика вывода такая?
а) фор(2<7 ) да Остаток от деления 14/2 = 0 выходим из цикла и идём на след. итерацию
б) фор(3<7 ) да Остаток от деления 14/3 = 2 выводим слово простое
в) фор(4<7 ) да Остаток от деления 14/4 = 2 выводим слово простое
и так до 7, почему это всё не выводится, а выводится только 1 строка?
0
Crudelis
Шаровик затейник
674 / 416 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
25.05.2010, 02:17 #4
Цитата Сообщение от mister2010 Посмотреть сообщение
а) фор(2<7 ) да Остаток от деления 14/2 = 0 выходим из цикла и идём на след. итерацию
здесь мы получим на экране Не простое и выйдем с цикла.
salo = false; break; - закончит цикл
0
mister2010
0 / 0 / 0
Регистрация: 23.05.2010
Сообщений: 64
25.05.2010, 02:36  [ТС] #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 вывод?
0
Crudelis
Шаровик затейник
674 / 416 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
25.05.2010, 02:42 #6
mister2010, вы пробывали запускать программу? ну и что выводит? я ещё раз повторюсь как только цикл увидет break для него прекратятся все итерации, вообще для цикла всё прекратиться и программа продолжит свой ход уже после цикла.

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

заменить цикл for на цикл while - C++
#include &lt;iostream&gt; using namespace std; int main() { int N, M, sum; cout &lt;&lt; &quot;Введите число N:&quot; &lt;&lt; endl; ...

Создать программу по всем 3 видам циклов...цикл с параметром,цикл с условием,цикл,и цикл с предусловием... - Turbo Pascal
Найти сумму чисел 1 в квадрате до 10 c квадрате...операцию возведению в степень не использовать учесть особенности получения квадратного...

Написать в турбо паскале, Цикл с параметром, Цикл, с постусловием, и с предусловием пожалуйста - Turbo Pascal

Как реализовать бесконечный цикл While, но чтобы этот цикл не грузил процессор? - Visual C++
Допустим есть цикл: while (1) { ... } Как сделать так, чтобы бесконечный цикл не грузил процессор. Избавиться от...


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

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

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