﻿#include <iostream>
using namespace std;

/* A "Minden" (for) ciklus


for(kezdőérték;feltétel;léptetés){
    utasítás1
    utasítás2
    .....
}

-------------------------------------------

Ez pontosan ugyanúgy működik, mint ha azt írtuk volna, hogy:

kezdőérték;
while (feltétel) {
    utasítás1
    utasítás2
    .....
    léptetés;
}

*/

int main()
{
    // Pl. Í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 << " ";
    }
    */

    
    // Pl. Írjuk ki 100-szor, hogy "I love Chemistry."
    //
    /*
    for (int i = 1; i <= 100; i = i+1) {
        cout << "I love Chemistry." << endl;
    }
    */

    // Rövidített értékadások:
    /*
        i=i+10; helyett írhatjuk, hogy:
                    i += 10;
        Ugyanez igaz a -=, *=, /=
        és %= műveletekre.

        i += 1; helyett írhatjuk, hogy:
                    i++;
                VAGY:
                    ++i;

        i -= 1; helyett írhatjuk, hogy:
                    i--;
                VAGY:
                    --i;
    */

    // Pl. Írjuk ki a term. számokat 1-től 10-ig.
    for (int i = 1; i <= 10; i++) {
        cout << i << " ";
    }
    cout << endl;

    // Pl. Írjuk ki a term. számoka 10-től 1-ig.
    for (int i = 10; i >= 1; i--) {
        cout << i << " ";
    }
    cout << endl;

    // Általában akkor érdemes for ciklust használni, ha előre
    // meghatározott a lépések száma.

    // A kezdőértékadás, feltétel, léptetés kifejezések közül
    // bármelyek elhagyhatók.

    // Pl. for (; feltétel; ) { ... }
    // Pl. for (;;) { ... } - végtelen ciklus


    // HF. Írjuk meg for ciklussal
    // az alábbi feladatmegoldásainkat:
    //
    //      a) Adott n, ki kell írni az
    //         első n darab páros pozitív
    //         egészet.
    //      b) Piramis:
    //              1
    //              1 2
    //              1 2 3
    //              ........... (n sor)
    //      c) +pont: fordított piramis
    //                n   (n-1) ... 2 1
    //              (n-1) (n-2) ... 1
    //              ..................
    //                2      1
    //                1

    return 0;
}
