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

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

Восстановить пароль Регистрация
 
snyppimylt
 Аватар для snyppimylt
7 / 7 / 1
Регистрация: 18.12.2011
Сообщений: 400
26.09.2012, 13:10     Объясните, как работает код - циклы #1
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 но я чет не понял.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.09.2012, 13:10     Объясните, как работает код - циклы
Посмотрите здесь:

C++ Объясните как работает this -> и ->
Объясните как работает программа C++
C++ Объясните пожалуйста, как конкретно работает код
qsort объясните как работает C++
C++ Объясните как работает код
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5548 / 2562 / 233
Регистрация: 01.11.2011
Сообщений: 6,332
Завершенные тесты: 1
26.09.2012, 13:22     Объясните, как работает код - циклы #2
Чего непонятного-то? Всмысле вообще совсем все, или некоторые отдельные моменты?

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

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

Добавлено через 14 минут
И вот еще, что значит этот оператор % - там что-то с остатком связанно.
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
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5548 / 2562 / 233
Регистрация: 01.11.2011
Сообщений: 6,332
Завершенные тесты: 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) вернет ноль, если ее кто-нибудь об этом попросит;
}

Вооооот! Я думаю теперь все очень понятно.
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) вернет ноль, если ее кто-нибудь об этом попросит;
}

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

Не по теме:

Мужик)

SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5548 / 2562 / 233
Регистрация: 01.11.2011
Сообщений: 6,332
Завершенные тесты: 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. Вообще пофиг.
   }
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.09.2012, 14:20     Объясните, как работает код - циклы
Еще ссылки по теме:

C++ Объясните пожалуйста, как работает код. Указатели
C++ Объясните, как работает программа
C++ Объясните как работает код (pacman)

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

Или воспользуйтесь поиском по форуму:
snyppimylt
 Аватар для snyppimylt
7 / 7 / 1
Регистрация: 18.12.2011
Сообщений: 400
26.09.2012, 14:20  [ТС]     Объясните, как работает код - циклы #8
SatanaXIII
Peperovich

Спасибо парни я все понял.
Yandex
Объявления
26.09.2012, 14:20     Объясните, как работает код - циклы
Ответ Создать тему
Опции темы

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