TFeri.hu

A C++ nyelv alapjai 3. rész PDF Nyomtatás E-mail
  
Tartalomjegyzék
A C++ nyelv alapjai 3. rész
Hátultesztelő
Számláló ciklus
További lehetőségek
Minden oldal

6. fejezet: Ciklusok

Mint a nyelvekben általában, itt is léteznek ciklusok. Az alapvető három ciklus-típus: elöltesztelő, hátultesztelő és számláló. Lássuk ezeket sorban!

Elöltesztelő = while. A while utasítás addig hajtódik végre, amíg a feltétele hamis nem lesz. Ugye arról sem szabad megfeledkezni, hogy az elöltesztelő ciklus akkor nem fut le egyetlen egyszer sem, ha a feltétel hamis!

 

A ciklusokat egy igen egyszerű programmal szeretném bemutatni. Alapötlet: adjuk össze a pozitív egész számokat 10-ig (a 10-et is). Az összeg: 55. Ezt először egy elöltesztelő ciklussal oldjuk meg!

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

//Elöltesztelő ciklus
#include <iostream>

using namespace std;
int main()
{
cout <<"Ez egy elo:ltesztelo: ciklus!\n ";
int szam = 1;
int osszeg = 0;
while (szam<11)
{
osszeg = osszeg + szam; // növeljük az összeget a számmal
szam++; // A számot növeljük eggyel
}
cout <<"O:sszeg: " <<osszeg <<endl;
return 0;
}

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

Látható, hogy elöl (menet közben) deklaráltuk az összeg-változót (osszeg) és a ciklusváltozót (szam). Természetesen mindkettőt egészként (int).
A ciklusmagban mindössze annyi szerepel, hogy az összeget növeljük az aktuális számmal, majd a ciklusváltozót is növeljük 1-gyel.
Mivel ez még elég kevésnek tűnik, ezért próbáljuk meg egy kicsit kidíszíteni.

Feladat: Adjuk össze a számokat 1-től 20-ig, de ezúttal úgy, hogy írja ki az összeadást is, pl.: 1+2+3+... = eredmény. Ezt már kicsit összetettebben kell megoldanunk, mivel minden egyes összeadás után ki kell írni a számot és a "+" jelet is. Így a ciklusmag a következőképpen néz ki:

osszeg = osszeg + szam; // növeljük az összeget a számmal
cout <<szam <<"+";
szam++; // A számot növeljük eggyel

Ez rendben is lenne, de az utolsó szám után már ne jó, hogy kiírja a "+" jelet, így ott meg kell vizsgálnunk, hogy mit is írassunk ki.
Ezt természetesen egy feltétellel lehet legegyszerűbben megtennünk.
Tehát a ciklusmag ezen verziója a következőképpen néz ki:

osszeg = osszeg + szam; // növeljük az összeget a számmal
cout <<szam;
if (szam<10) cout <<"+"; else cout <<"=";
szam++; // A számot növeljük eggyel

Ez már majdnem jó lenne, de arról volt szó, hogy ne 10-ig, hanem 20-ig adja össze a számokat.
Ezt simán is ki lehet cserélni, de szeretnék mutatni egy lehetséges technikát. Az egész programban lehet egy új névvel helyettesíteni pár fontosabb értéket. Ezek lesznek az állandók, azaz konstansok. Itt például három állandót is definiálok: eddig, pluszjel, egyenlo.
Fontos, hogy ezeket lehetőség szerint még az int main() előtt kell definiálni. Érdekes, hogy egy-egy ilyen definíciós sor után nem kell pontosvessző!
Tehát immár a teljes program:

---------------------------------------------
//Elöltesztelő ciklus - újabb verzió
#include <iostream>
using namespace std;
#define eddig 20 // Itt definiálok egy állandót.
#define pluszjel "+" // Ez egy újabb
#define egyenlo "=" // Ez pedig az utolsó

int main()
{
cout <<"Ez egy elo:ltesztelo: ciklus!\n ";
int szam = 1;
int osszeg = 0;

while (szam<eddig+1)

{

osszeg = osszeg + szam; // növeljük az összeget a számmal
cout <<szam;
if (szam<eddig) cout <<pluszjel; else cout <<egyenlo;

szam++; // A számot növeljük eggyel

}
cout <<osszeg <<endl;
return 0;
}

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



 
Ulti Clocks content

Hirdetés