7. gyakorlat

Függvények készítése - alapok

Függvények használatának megtanulásához nagyon jó segédanyag található az előadás honlapján:

http://progalap.elte.hu

a "Segédanyagok" menüpontban: Nagy Tibor: Függvények, eljárások címmel

Az anyag megnyitásához kattintson ide.

Az órai programhoz használt, előre elkészített beolvasó függvények:

Egész számot beolvasó függvény:

int beolvas_int(const string &sz){
    string s;
    bool hiba;
    int e;
    do{
        cout<<sz;
        cin>>e;
        hiba=cin.fail();
        if (hiba){
            cout<<"Ez nem egesz szam, add meg ujra!\n";
            cin.clear();  //hiba flag-ek tölése
        }
        getline(cin,s); //Enter-ig a puffer kitisztítása
    }while (hiba);
    return e;
}

Valós számot beolvasó függvény:

float beolvas_float(const string &sz){
    string s;
    bool hiba;
    float e;
    do{
        cout<<sz;
        cin>>e;
        hiba=cin.fail();
        if (hiba){
            cout<<"Ez nem valos szam, add meg ujra!\n";
            cin.clear(); //hiba flag-ek tölése
        }
        getline(cin,s); //Enter-ig a puffer kitisztítása
    }while (hiba);
    return e;
}

A feladatok:

  1. feladat: Készítsünk egy függvényt, mely kiválasztja a maximumot két egész érték közül. Készítsünk hasonló függvényt valós értékekre is.

  2. feladat: Készítsünk egy függvényt, mely felcseréli a paraméterben kapott egész változók értékeit. Készítsünk hasonló függvényt valós változók felcserélésre is.

  3. feladat: Készítsünk egy függvényt, mely a paraméterben kapott egész számról eldönti, hogy prímszám-e. A függvény segítségével írassuk ki n-ig a prímszámokat.

  4. feladat: Függvények készítsével oldjuk meg a következő feladatot: adott egy egész számokat tartalmazó tömb, a tanult szétválogatás algoritmus felhasználásával válogassuk őket szét: prim számokra és nem prim számokra. Készítsük el külön függvényként az adatok beolvasását, a szétválogatást, és az eredmény kiírását.

Szétválogatás programozási tétel:

szétválogatás specifikáció szétválogatás rövid utófeltétel

szétválogatás algoritmus

Keretprogram (projektbe ágyazva): fgvek.zip keretprogram esti tagozat: fgvek2.zip

A megoldásokat tartalmazó fájl: main.cpp

Önálló feladatok (Nagy Tibor anyagából):

  1. feladat: Készítsünk egy függvényt, amely eldönti egy számról, hogy tökéletes szám-e! Tökéletes számnak nevezzük azokat a természetes számokat, amelyek megegyeznek osztóik összegével (az 1-et beleértve, önmagukat kivéve).

  2. feladat: Készítsünk egy függvényt, amely eldönti egy számról, hogy hiányos szám-e! Hiányos számnak nevezzük azokat a természetes számokat, amelyek nagyobbak az osztóik összegénél (az 1-et beleértve, önmagukat kivéve).

  3. feladat: Készítsünk egy függvényt, amely eldönti egy számról, hogy bővelkedő szám-e! Bővelkedő számnak nevezzük azokat a természetes számokat, amelyek kisebbek az osztóik összegénél (az 1-et beleértve, önmagukat kivéve).

  4. feladat: Készítsünk programot, mely n-ig kiírja a tökéletes/hiányos/bővelkedő számokat.

  5. feladat: Készítsünk egy függvényt, amely eldönti két számról, hogy barátságos számok-e! Azokat a számpárokat, amelyekre igaz, hogy az egyik szám önmagánál kisebb (az 1-et is beleértve) osztóinak összege a másik számmal egyenlő (és fordítva), barátságos számoknak hívjuk.

  6. feladat: Készítsünk programot, mely kiírja az n-nél kisebb barátságos számpárokat.

Tipp: vegyük észre, hogy mindegyik feladatban szükség van egy természtes szám osztóinak összegére (1-et beleértve, önmagukat kivéve). Célszerű ezt a részletet egy külön függvénybe kiemelve elkészíteni!

Keretprogram (projektbe ágyazva): szamok.zip

A megoldásokat tartalmazó fájl: main.cpp