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

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

Войти
Регистрация
Восстановить пароль
 
snyppimylt
7 / 7 / 1
Регистрация: 18.12.2011
Сообщений: 400
#1

Объясните, как работает код - циклы - C++

26.09.2012, 13:10. Просмотров 527. Ответов 7
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// showprim.cpp   
// displays prime number distribution   
#include <iostream>   
using namespace std;   
#include <conio.h>               //for getche()   
   
int main()   
   {   
   const unsigned char WHITE = 219;  //solid color (primes)   
   const unsigned char GRAY  = 176;  //gray (non primes)   
   unsigned char ch;   
                                 //for each screen position   
   for(int count=0; count<2000; count++)   
      {   
      ch = WHITE;                //assume it's prime   
      for(int j=2; j<count; j++) //divide by every integer from   
         if(count%j == 0)        //2 on up; if remainder is 0,   
            {   
            ch = GRAY;           //it's not prime   
            break;               //break out of inner loop   
            }   
      cout << ch;                //display the character   
      }   
   getche();                     //freeze screen until keypress   
   return 0;   
   }
По книге Р. Лафоре 4 -е издание. вычитал и так и не понял, как работает этот цикл. прохоже на Rnd в Vb6 но я чет не понял.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.09.2012, 13:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Объясните, как работает код - циклы (C++):

Объясните как работает код - C++
можете подробно объяснить как работают программы. 1 #include&lt;iostream&gt; #include&lt;cmath&gt; using namespace std; int main() ...

Объясните как работает код (pacman) - C++
Странный вопрос но я не очень понимаю как работает код ниже, скажите как он работает и лучше объясните алгоритм передвижения призрака (это...

Объясните пожалуйста, как конкретно работает код - C++
Программа считывает из файла фамилии, имена, годы рождения и балы студентов, и записывает в другой файл фамилии, начинающейся с букв А и Б...

Объясните пожалуйста, как работает код. Указатели - C++
Если не сложно, напишите пожалуйста комметнтарии к каждой строке. Никак не могу разобраться. Программа разделяет строку на слова. ...

Почему не работает код и выдает три бэкслеша вместо двух. Экспериментирую циклы - C++
Так я понимаю код. Исправьте если не правильно #include &lt;stdio.h&gt; int main() { long t, l, s; l =0; while...

Объясните как работает this -> и -> - C++
Как написано в книжке this - это указатель на экземпляр класса. Что происходит в данных выражениях: 1. i = this -&gt; a -&gt; b -&gt; c; ...

7
SatanaXIII
Супер-модератор
Эксперт С++
5640 / 2675 / 252
Регистрация: 01.11.2011
Сообщений: 6,571
Завершенные тесты: 1
26.09.2012, 13:22 #2
Чего непонятного-то? Всмысле вообще совсем все, или некоторые отдельные моменты?

Добавлено через 1 минуту
Алгоритм попеременно выводит циферки двумя цветами. Серым и белым. Циферки по порядку от нуля до 1999 включительно.
0
snyppimylt
7 / 7 / 1
Регистрация: 18.12.2011
Сообщений: 400
26.09.2012, 13:45  [ТС] #3
SatanaXIII,

Желательно весь код

Добавлено через 14 минут
И вот еще, что значит этот оператор % - там что-то с остатком связанно.
0
Peperovich
43 / 43 / 4
Регистрация: 17.05.2011
Сообщений: 162
26.09.2012, 13:54 #4
Цитата Сообщение от snyppimylt Посмотреть сообщение
SatanaXIII,

Желательно весь код

Добавлено через 14 минут
И вот еще, что значит этот оператор % - там что-то с остатком связанно.
Этот оператор берет остаток от деление count на j. Если остаток при делении 0, то выводит серый цвет, а если нет то белый.
Например 6%3=0, а 7%2=1
1
SatanaXIII
Супер-модератор
Эксперт С++
5640 / 2675 / 252
Регистрация: 01.11.2011
Сообщений: 6,571
Завершенные тесты: 1
26.09.2012, 13:57 #5
// showprim.cpp - имя файла примера
// displays prime number distribution - вызов сатаны, собственно драсьте.
#подключить к проекту стандартную библиотеку <iostream>
использовать пространство имен самое стандартное;
#подключить к проекту стандартную библиотеку<conio.h> //в которой прописано что такое getche()

тип возращаемого значения главной функцией - целочисленный имя главной функции - main()
{
объявляем переменную тип которой никогда не изменяемый беззнаковый символьный с именем - WHITE = и делаем ее равной 219; //solid color (primes) - бессмысленынй текст
объявляем вторую переменную тип которой никогда не изменяемый беззнаковый символьный с именем - GRAY = и делаем ее равной 176; //gray (non primes) - отсылка к Саше
объявляем вторую переменную тип которой изменяемый беззнаковый символьный ch;
//for each screen position - что-то про какие-то позиции
Понесся цикл(объявляем новую переменну-счетчик целочисленного типа имя ей даем - count и сразу говорим, что она равна нулю; и пока переменная count строго меньше чем 2000; увеличиваем ее значение на единицу при каждой итерации цикла)
{
объявленной ранее символьной переменной ch присваиваем значение WHITE; //assume it's prime - тут говорится, что это работать не должно
пошел второй цикл(объявляем новую целочисленную переменную и нарицаем ее j ,значение же ей даем 2; пока эта переменная j меньше чем переменная count; увеличиваем ее на единицу в каждую итерацию) //divide by every integer from
Если(мы переменную count разделим и возьмем остаток на переменную j и этот остаток будет равен нулю) //2 on up; if remainder is 0, - два раза отмерь, один отрежь
{
переменной ch присваиваем значение GRAY; //it's not prime - вторая хрень
выходим из последнего цикла в предыдущий; //break out of inner loop - перерыв на ланч
}
вывести на экран то, что находится после двух открывающих треугольных скобок << собственно переменную ch; //display the character - хорошая сегодня погода, не правда ли?
}
остановить программу и ожидать нажатия любой кнопки(); //freeze screen until keypress - а-то так можно дойти и до конца всей программы
главная функция (main) вернет ноль, если ее кто-нибудь об этом попросит;
}

Вооооот! Я думаю теперь все очень понятно.
1
Peperovich
43 / 43 / 4
Регистрация: 17.05.2011
Сообщений: 162
26.09.2012, 13:58 #6
Цитата Сообщение от SatanaXIII Посмотреть сообщение
// showprim.cpp - имя файла примера
// displays prime number distribution - вызов сатаны, собственно драсьте.
#подключить к проекту стандартную библиотеку <iostream>
использовать пространство имен самое стандартное;
#подключить к проекту стандартную библиотеку<conio.h> //в которой прописано что такое getche()

тип возращаемого значения главной функцией - целочисленный имя главной функции - main()
{
объявляем переменную тип которой никогда не изменяемый беззнаковый символьный с именем - WHITE = и делаем ее равной 219; //solid color (primes) - бессмысленынй текст
объявляем вторую переменную тип которой никогда не изменяемый беззнаковый символьный с именем - GRAY = и делаем ее равной 176; //gray (non primes) - отсылка к Саше
объявляем вторую переменную тип которой изменяемый беззнаковый символьный ch;
//for each screen position - что-то про какие-то позиции
Понесся цикл(объявляем новую переменну-счетчик целочисленного типа имя ей даем - count и сразу говорим, что она равна нулю; и пока переменная count строго меньше чем 2000; увеличиваем ее значение на единицу при каждой итерации цикла)
{
объявленной ранее символьной переменной ch присваиваем значение WHITE; //assume it's prime - тут говорится, что это работать не должно
пошел второй цикл(объявляем новую целочисленную переменную и нарицаем ее j ,значение же ей даем 2; пока эта переменная j меньше чем переменная count; увеличиваем ее на единицу в каждую итерацию) //divide by every integer from
Если(мы переменную count разделим и возьмем остаток на переменную j и этот остаток будет равен нулю) //2 on up; if remainder is 0, - два раза отмерь, один отрежь
{
переменной ch присваиваем значение GRAY; //it's not prime - вторая хрень
выходим из последнего цикла в предыдущий; //break out of inner loop - перерыв на ланч
}
вывести на экран то, что находится после двух открывающих треугольных скобок << собственно переменную ch; //display the character - хорошая сегодня погода, не правда ли?
}
остановить программу и ожидать нажатия любой кнопки(); //freeze screen until keypress - а-то так можно дойти и до конца всей программы
главная функция (main) вернет ноль, если ее кто-нибудь об этом попросит;
}

Вооооот! Я думаю теперь все очень понятно.

Не по теме:

Мужик)

1
SatanaXIII
Супер-модератор
Эксперт С++
5640 / 2675 / 252
Регистрация: 01.11.2011
Сообщений: 6,571
Завершенные тесты: 1
26.09.2012, 14:09 #7
Цитата Сообщение от Peperovich Посмотреть сообщение
Этот оператор берет остаток от деление count на j. Если остаток при делении 0, то выводит серый цвет, а если нет то белый.
Например 6%3=0, а 7%2=1
Да так каждый дурак может объяснить.

snyppimylt, что-то я пока ждал ответа застрадался фигней. Щас по нормальному поясню.

Добавлено через 10 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// showprim.cpp   
// displays prime number distribution   
#include <iostream>   -Ю Подключение библиотеки ввода-вывода
using namespace std;   
#include <conio.h>               //for getche()   
   
int main()                 -Ю Главная функция программы по умолчанию
   {   
   const unsigned char WHITE = 219;     -Ю WHITE и GRAY объявлены
   const unsigned char GRAY  = 176;       -Ю  просто для удобства и большей наглядности
   unsigned char ch;     -Ю Переменная, которую будем изменять (цвет)
                                    
   for(int count=0; count<2000; count++)   -Ю Основной цикл, выводящий две тысячи записей типа 0, 1, 2, 3, 4... 1999
      {   
      ch = WHITE;                  -Ю Сначала цвет белый
      for(int j=2; j<count; j++)    -Ю Вложенный цикл : 2, ... count
         if(count%j == 0)            -Ю Если count делится нацело на j тогда исполняем то, что в скобочках
            {   
            ch = GRAY;              -Ю А конкретно выбираем серый цвет
            break;                 -Ю выходим из цикла
            }   
      cout << ch;                 -Ю Если вышли из цикла или count не разделился нацело на j то попадем сюда, и выведем на экран циферку с определенным цветом (серым или белым)
      }   
   getche();                         -Ю Ждет ввода с клавиатуры, чтобы не разгоняться
   return 0;   -Ю Точка выхода из программы. Обычно используется если функцию main будешь использовать где-то еще. Можно писать rеturn 666. Вообще пофиг.
   }
1
snyppimylt
7 / 7 / 1
Регистрация: 18.12.2011
Сообщений: 400
26.09.2012, 14:20  [ТС] #8
SatanaXIII
Peperovich

Спасибо парни я все понял.
0
26.09.2012, 14:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.09.2012, 14:20
Привет! Вот еще темы с ответами:

Объясните как написать код к задаче :) - C++
Даны натуральное число n , действительные числа x1, ... ,xn. В последовательности х1, ... ,xn все члены меньше двух, заменить нулями. Кроме...

Объясните вложеные циклы - C++
#include &lt;iostream&gt; using namespace std; int main() { setlocale ( 0, &quot;Rus&quot;); const int n = 2; int A;

Объясните как работает программа - C++
Данная программа делает подсчёт символов. Помогите разобраться как она работает. Сижу смотрю - и ступор просто #include &lt;stdio.h&gt; ...

qsort объясните как работает - C++
Объясните в подробностях как работает данная функция сортировки и как её использовать. К примеру если надо просортировать данный масив: ...


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

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

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