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

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

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

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

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

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

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

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

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

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

Как строить нормальные графики в VC++? - C++
Помимо обычного ручного построения по точкам или линиям. В Borland Buildere был специальный элемент управления для этого. В VC я ничего...

Где можно узнать про то как строить блок схемы по классам? - C++
В инете искал, так и не сумел найти как строить блок-схемы по классам сейчас изучаем ООП, препод у нас никакой поэтому я не знаю как...

Как из CString получить int ... заранее спасибо!! - C++
Проблемка ... Как из CString получить int.... только плиз не советуйте куда заглядывать в MSDN у меня его нету.... СПАСИБО....

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vourhey
Почетный модератор
6474 / 2249 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
16.03.2009, 16:55     Кто обяснит как правильно строить циклы ставлю спасибо! #2
Конкретнее. Вот ты прочитал. Что именно тебе не понятно?
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 внутри там,много чеголучше все и сразу про всех обяснить
Даже если и посмотреть все мои задачи у меня одни трудности с циклами
accept
4820 / 3240 / 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
Tiami
Яростный кот
-4 / 1 / 1
Регистрация: 10.03.2009
Сообщений: 220
17.03.2009, 11:54  [ТС]     Кто обяснит как правильно строить циклы ставлю спасибо! #5
Цитата Сообщение от accept Посмотреть сообщение
самый простой - while
Плиз Распиши еще for у меня с ним трудности,особенно как составлять правильно этот цикл
Бартимеус
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 т.к. в одних скобках можно и инициализировать счетчик (или несколько, через запятую), и указать условие выхода, и дать значение на которое идет приращивание
Tiami
Яростный кот
-4 / 1 / 1
Регистрация: 10.03.2009
Сообщений: 220
17.03.2009, 21:34  [ТС]     Кто обяснит как правильно строить циклы ставлю спасибо! #7
Цитата Сообщение от Бартимеус Посмотреть сообщение
вот сравнение с while:
и еще Цикл Do
ISergey
Maniac
Эксперт С++
1372 / 883 / 52
Регистрация: 02.01.2009
Сообщений: 2,652
Записей в блоге: 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;
}
Monte-Cristo
2787 / 1373 / 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 выполнится хотя бы один раз... так как сначало идет выполнение кода... а потом роверка условия..и если условие выполняется..то код повторяется...
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 раз
}
accept
4820 / 3240 / 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--; )_________;
и тогда в коде вот этого места как бы не видно, хотя оно есть
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.03.2009, 11:30     Кто обяснит как правильно строить циклы ставлю спасибо!
Еще ссылки по теме:

Как написать код на C++ по этому заданию? заранее спасибо - C++
Как написать код на C++ по этому заданию? заранее спасибо

Хочу сравнить как это задание сделать разными способами. Спасибо - C++
Хочу сравнить как это задание сделать разными способами. Спасибо

Visual Studio перестал строить - C++
Добрый вечер. Такая проблема: сижу пишу прогу и внезапно Visual Studio перестал перестраивать решения. Пишет ========== Построение:...

Какими средствами лучше строить графики? - C++
Всем привет. Задали лабораторки по цифровой обработке сигналов. Первая из них построить графики ф-ций sin(x). cos(x), ф-ции Хевисайда,...

Как останавливать циклы? - C++
Допустим у меня есть цикл,в который вложен другой цикл while с оператором if,если удовлетворяется какое-то условие мне нужно прервать...


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

Или воспользуйтесь поиском по форуму:
Tiami
Яростный кот
-4 / 1 / 1
Регистрация: 10.03.2009
Сообщений: 220
18.03.2009, 11:30  [ТС]     Кто обяснит как правильно строить циклы ставлю спасибо! #12
Цитата Сообщение от accept Посмотреть сообщение
цикл for
На отлично
Yandex
Объявления
18.03.2009, 11:30     Кто обяснит как правильно строить циклы ставлю спасибо!
Ответ Создать тему
Опции темы

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