﻿#include <iostream>
using namespace std;

/*
    A for ciklus

        for (kezdőértékadás; feltétel; léptetés) {
            ...
        }


    Ugyanazt végzi el, mint:

        kezdőértékadás;
        while (feltétel) {
            ...

            léptetés;
        }

    Működése:
        Először végre lesz hajtva a kezdőértékadó kifejezés.
        Majd a ciklus addig ismétli a benne található utasításokat, amíg a
        feltétel igaz. Minden iteráció (kör) végén megtörténik a léptetés.
*/

int main()
{
    // Példák

    // 1. Írjuk ki a term. számokat 1-től 10-ig.

    /* 
    int i = 1;
    while (i <= 10) {
        cout << i << " ";
        i = i + 1;
    }
    */

    for (int i = 1; i <= 10; i = i + 1) {
        cout << i << " ";
    }
    cout << endl;


    /*
        Rövidített értékadások


        i = i + 2;  rövidebben: i += 2;
        i = i - 2;  rövidebben: i -= 2;
        i = i * 2;  rövidebben: i *= 2;
        i = i / 2;  rövidebben: i /= 2;
        i = i % 2;  rövidebben: i %= 2;

        i += 1; rövidebben: i++; vagy: ++i;
        i -= 1; rövidebben: i--; vagy: --i;
    */

    // 2. Írjuk ki a term. számokat 1-től 10-ig. (rövidebben)

    for (int i = 1; i <= 10; i++) {
        cout << i << " ";
    }
    cout << endl;

    // 3. Írjuk ki a term. számokat 10-től 1-ig.

    for (int i = 10; i >= 1; i--) {
        cout << i << " ";
    }

    /*
        Általában akkor érdemes for ciklust használni, mikor előre
        ismert a lépések száma (pl. egyesével számolunk valamettől valameddig, 
        vagy kettesével számolunk visszafelé).
    */

    /*
        HF.
            Beolvasunk n-t. Írjuk ki az alábbi piramist for ciklusok
            használatával:

            1
            1 2
            1 2 3
            1 2 3 4
            ...
            1 2 3 4 ... n

    */

    return 0;
}
