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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
Tiami
Яростный кот
-4 / 1 / 1
Регистрация: 10.03.2009
Сообщений: 220
#1

Кто обяснит как правильно строить циклы ставлю спасибо! - C++

16.03.2009, 16:54. Просмотров 1224. Ответов 11
Метки нет (Все метки)

Обидно мне читаю читаю а не понимаю циклы и не умею решать с ними задачи,прям серьездно обидно,обясните как их строить ветвления эти,как циклы строить правильно,логику в них соблюдать,а то если дальше не пойму,то капецПожалуйста если не трудно...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.03.2009, 16:54
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Кто обяснит как правильно строить циклы ставлю спасибо! (C++):

Конструктор дерева (не бинарного). Или как вообще правильно строить дерево? - C++
Хочу разобраться с деревьями, да что только не читал, не пересматривал - не могу разобраться. Для примера - хочу построить дерево такого...

Кто умеет строить блок схемы? - C++
Написал программу в с++ и не могу построить блок схему...нужно для курсовой... помогите кому не сложно...программа в общем строит...

Постигаю c++ и не могу в здешние циклы, а ещё в тип char кто знает как они работают подскажите - C++
Есть сия код. Массив 7 столбцов на 5 строк (5 доярок(строки), 6 дней(столбцы), и 7 столбец для занесения в него среднего числа) ...

Я понял, мало кто знает, как ПРАВИЛЬНО интегрировать Internet Explorer в свою :-) окно... - C++
Али все же кто-то этим занимался? (Да не сочтет модератор это дублированием :-)) Снорк.

Может кто нибут обяснит что такое try, catch(...)? - C++ Builder
Добрый вечер форум Может кто нит обияснит что такое try, catch(...)

Как правильно строить запрос - PHP БД
Доброго времени суток! Стал строить запрос в БД. Переставлял местами, переставлял... Чет допереть не могу... ...

11
Vourhey
Почетный модератор
6482 / 2256 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
16.03.2009, 16:55 #2
Конкретнее. Вот ты прочитал. Что именно тебе не понятно?
1
Tiami
Яростный кот
-4 / 1 / 1
Регистрация: 10.03.2009
Сообщений: 220
16.03.2009, 17:01  [ТС] #3
Цитата Сообщение от Vourhey Посмотреть сообщение
Конкретнее. Вот ты прочитал. Что именно тебе не понятно?
Мне не понятно как рещать задачи с for и do,как использовать ветвления,в задачах и везде,строить формулы по циклам,организовывать просчеты по for,как описывать цикл do внутри там,много чеголучше все и сразу про всех обяснить

Добавлено через 30 секунд
Цитата Сообщение от Tiami Посмотреть сообщение
Мне не понятно как рещать задачи с for и do,как использовать ветвления,в задачах и везде,строить формулы по циклам,организовывать просчеты по for,как описывать цикл do внутри там,много чеголучше все и сразу про всех обяснить
Даже если и посмотреть все мои задачи у меня одни трудности с циклами
0
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
16.03.2009, 17:45 #4
циклов три вида:

самый простой - while

Код
    while (1 < 2)
        printf("yes\n");
(1 < 2) - условие цикла while
printf("yes\n"); - тело цикла while

условие может принять одно из двух значений 0 и любое другое
0 - ложь
любое не ноль - истина (1, -1, 100, -500, 0.5 и т.д.)

когда ложь, тело цикла не выполняется
когда истина, тело цикла выполняется
тело цикла всегда выполняется только после проверки условия

результат операции сравнения < может быть 0 или 1
1 < 2 == 1
1 == 2 == 0
1 > 2 == 0
1 <= 2 == 1

по такому конечному значению будет решено выполнять тело цикла или не выполнять и закончить цикл

этот цикл получится бесконечным, потому что условие
1) истинно
2) не меняется

менять условие можно как в теле цикла, так и в самом условии

Код
    n = 5;    
    while (n--)
        ;
цикл 5 раз выполнит пустое тело

или

Код
    n = 5;    
    while (n)
        n--;
цикл 5 раз выполнит тело, в котором один оператор
цикл выполняется не потому что n == 5, а потому что 5 это не ноль, то же самое когда оно 4, 3, 2, 1
2
Tiami
Яростный кот
-4 / 1 / 1
Регистрация: 10.03.2009
Сообщений: 220
17.03.2009, 11:54  [ТС] #5
Цитата Сообщение от accept Посмотреть сообщение
самый простой - while
Плиз Распиши еще for у меня с ним трудности,особенно как составлять правильно этот цикл
0
Бартимеус
181 / 33 / 2
Регистрация: 29.10.2008
Сообщений: 283
17.03.2009, 13:41 #6
for(переменная счетчик; условие выхода из цикла; изменение числа(например инкремент перменной счетка))
{
//сам цикл
}

вот сравнение с while:
C++
1
2
3
4
5
6
7
8
9
10
int i=0;
while(i<10)
{
   cout<<i<<endl;
  i++;
}
for(int i=0; i<10; i++)
{
   cout<<i<<endl;
}
огромной разницы нет, просто очень часто удобнее использовать for т.к. в одних скобках можно и инициализировать счетчик (или несколько, через запятую), и указать условие выхода, и дать значение на которое идет приращивание
1
Tiami
Яростный кот
-4 / 1 / 1
Регистрация: 10.03.2009
Сообщений: 220
17.03.2009, 21:34  [ТС] #7
Цитата Сообщение от Бартимеус Посмотреть сообщение
вот сравнение с while:
и еще Цикл Do
0
ISergey
Maniac
Эксперт С++
1375 / 886 / 52
Регистрация: 02.01.2009
Сообщений: 2,661
Записей в блоге: 1
17.03.2009, 21:44 #8
Цитата Сообщение от Tiami Посмотреть сообщение
и еще Цикл Do
в прынципе тоже самое что и цыкл while , но он в любом случае выполнится хотябы один раз.
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
using namespace std;
 
int main()
{
    do 
    {
        cout<<"do .. while"<<endl;
    } while (false);
 
    return 0;
}
1
Monte-Cristo
2789 / 1375 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
17.03.2009, 21:45 #9
C++
1
2
3
4
5
6
7
8
9
10
11
12
do
{
// код
} while (пока выполянется условие)
 
// например
int i=0;
do
{
   cout<<i<<endl;
   i++;
} while (i<10);
разница между do-while и while, в том, что цикл do-while выполнится хотя бы один раз... так как сначало идет выполнение кода... а потом роверка условия..и если условие выполняется..то код повторяется...
1
ataman90
4 / 4 / 0
Регистрация: 15.02.2009
Сообщений: 30
17.03.2009, 21:59 #10
Простой пример цикла for
C++
1
2
3
4
for (i=0; i>n; i++) // ++ инкремент добавляет еденицу к i, i=i+1
 //это счетчик. 
{ //твой код заключенный здесь будет выполняться n раз
}
1
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
18.03.2009, 04:44 #11
цикл for

Код
    while (1 < 2)
        printf("yes\n");
Код
    for ( ; 1 < 2; )
        printf("yes\n");
так как он включает в себя заголовок всегда, все элементы заголовка подчёркиваются, даже если их нет; может не быть ни одного элемента заголовка цикла for, тогда пишут ( ; ; )

Код
    n = 5;    
    while (n--)
        ;
Код
    for (n = 5; n--; )
        ;
первый блок заголовка цикла for называется блоком инициализации, в него записываются не просто переменные какие-то там любые, а те переменные, которые управляют циклом, то есть, если у тебя есть переменные, которые можно туда вставить, но они не относятся к циклу (к управлению им), то лучше их туда не вставлять, а записать типа

Код
    a = 3;
    for (n = 5; n--; )
        ;
но если у тебя есть что-то, что всё таки относится к циклу, то можно

Код
    a = 3;
    for (printf("loop started\n") , n = 5; n--; )
        ;
внутри блока инициализации запятая совсем не такая, как у какой-нибудь функции при вызове, эта запятая - операция запятая, которая выполняется слева направо и возвращает тип и значение своего правого операнда

Код
    a = 3;
    for (printf("loop started\n") && (n = 5); n--; )
        ;
то есть здесь просто заменили операцию в блоке инициализации

второй блок, называется: блок условия

Код
    for (n = 5; n--; )
        ;
то есть если он истинен, выполнить тело один раз, там тоже набор операций канает, только результат блока проверяется на истинность

Код
    for ( ; printf(""); )
        ;
тело не выполнится ни разу, потому что функция printf возвращает количество выведенных символов или EOF если была ошибка в файле вывода (кстати EOF обычно равно -1, а это не 0, значит истина)

Код
    for ( ; printf("x"); )
        ;
здесь же наоборот, произойдёт зацикливание, так как printf каждый раз возвращает один, и тело снова и снова будет выполняться после проверки блока условия, так как в нём истина получается каждый раз после срабатывания функции

Код
    for (n = 5; n--; )
        ;
можно записать так

Код
    for (n = 5; n; )
        n--;
а можно записать вот так

Код
    for (n = 5; n; n--)
        ;
третий блок называется блок модификации, в него записываются операции для изменения переменной, относящейся к циклу (то есть так же как с первым блоком), если у тебя есть что-то, что ты можешь туда записать, но оно не относится к управлению циклом, то лучше этого не делать, а раз нужно, то можно оставить это в теле цикла

Код
    for (printf("loop started\n") , n = 5;
         n--;
         printf("loop continuing\n"))
        ;
то есть сделать не вот так, когда вывод работы цикла находится в блоке модификации, а вот так

Код
    for (printf("loop started\n") , n = 5; n--; )
         printf("loop continuing\n");
когда вывод работы цикла находится в теле

тело выполняется всегда, даже когда оно пустое, некоторые ставят его после цикла

Код
    for (n = 5; n--; );
когда кода много, его можно спутать с разделителем операторов, поэтому оно явно подчёркивается

Код
    for (n = 5; n--; )
        ;
потому что разделитель операторов не выполняется

Код
    for (n = 5; n--; )_________;
и тогда в коде вот этого места как бы не видно, хотя оно есть
1
Tiami
Яростный кот
-4 / 1 / 1
Регистрация: 10.03.2009
Сообщений: 220
18.03.2009, 11:30  [ТС] #12
Цитата Сообщение от accept Посмотреть сообщение
цикл for
На отлично
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.03.2009, 11:30
Привет! Вот еще темы с ответами:

Графика: как правильно строить графики? - Delphi
Нужна инфа как строить правильно графики. Вот у меня есть код на постройку графика.Как мне самому выбирать по какому столбцу строить...

Блог путешествий - как правильно строить семантическое ядро и организовывать фото? - SEO
сайт - дневник путешествий http://selftrips.ru/ 3.семантическое ядро Семантического ядра нет. Сначала вообще не знал о его...

Как правильно строить архитектуру для веб ресурса, у которого есть приложения на телефоны/таблеты - C# MVC
Посоветуйте ресурс - как правильно строить архитектуру для веб ресурса, у которого есть приложения на телфоны/таблеты - больлше всего...

Как правильно записать это выражение на C#. Спасибо - C#
R=\left|\sqrt{sin^2 y+6.835}+e^x \right|


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

Или воспользуйтесь поиском по форуму:
12
Yandex
Объявления
18.03.2009, 11:30
Ответ Создать тему
Опции темы

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