Vissza az előzőleg látogatott oldalra (nem elérhető funkció)Vissza a modul kezdőlapjáraUgrás a tananyag előző oldalára (13)Ugrás a tananyag következő oldalára (teszt)Fogalom megjelenítés (nem elérhető funckió)Fogalmak listája (nem elérhető funkció)Oldal nyomtatása (nem elérhető funkció)Oldaltérkép megtekintéseSúgó megtekintése

Tanulási útmutató

Összefoglalás

Összegzés, eldöntés, kiválasztás, keresés, megszámolás, maximumkiválasztás algoritmusmintákkal tervezett programok implementálása

Követelmény

Önállóan megoldható feladatok

A sorozatszámítás, eldöntés, kiválasztás, keresés, megszámolás, maximumkiválasztás algoritmusmintákkal tervezett programok implementálása

Feladat: „Tömbök és ciklusok” feladatsor/5.

Feladat

Egy T fős baráti társaság egy nyaralás minden napján feljegyezte, hogy aznap mennyit költöttek. Készítsünk programot, amely meghatározza, hogy hány olyan nap volt, amikor fejenként 100 eurónál is többet költöttek!

Vissza a tartalomjegyzékhez

Megoldás

Alkalmazott tétel

Megszámolás

Specifikáció

Bemenet

T: Egész

NapDb: Egész

Költés: Tömb[1..NapDb:Valós]

Kimenet

DrágaDb: Egész

Előfeltétel

T≥1 és NapDb≥0 és ∀i∈[1..NapDb]: Költés[i]≥0

Utófeltétel

DrágaDb=SZUM(i=1..NapDb, Költés[i]/T>100) 1

Algoritmus

Az 5. feladat algoritmusa, struktogrammal.

Kód

#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
    int T;
    int NapDb;
    const int MaxNapDb=10;
    double Koltes[MaxNapDb];
    int DragaDb;
    //ellenőrzött beolvasás
    do
    {
        cout<<"Hanyan voltak?";
        cin>>T;
        if (T<1)
        {
            cout<<"Rossz adat!\n";
        }
    }
    while (T<1);
    do
    {
        cout<<"Hany napos volt a nyaralas?";
        cin>>NapDb;
        if ((NapDb<0) || (NapDb>MaxNapDb))
        {
            cout<<"Rossz adat!\n";
        }
    }
    while ((NapDb<0) || (NapDb>MaxNapDb));
    for (int i=0; i<NapDb; ++i)
    {
        do
        {
            cout<<"Mennyit koltottek a(z) "<<i+1<<". napon?";
            cin>>Koltes[i];
            if (Koltes[i]<0)
            {
                cout<<"Rossz adat!\n";
            }
        }
        while (Koltes[i]<0);
    }
    //megoldás
    DragaDb=0;
    for (int i=0; i<NapDb; ++i)
    {
        if (Koltes[i]/T>100)
        {
            DragaDb++;
        }
    }
    //kiírás
    cout<<endl<<DragaDb
        <<"db napon koltottek fejenkent tobb mint 100eurot."<<endl;
    system("pause");
    return 0;
}

Vissza a tartalomjegyzékhez

Feladat: „Tömbök és ciklusok” feladatsor/6.

Feladat

Egy fesztivál minden napján feljegyezték, hogy hány belépőt adtak el aznap. Készítsünk programot, amely meghatározza, hogy melyik napon voltak a legtöbben a fesztiválon!

Vissza a tartalomjegyzékhez

Megoldás

Alkalmazott tétel

Maximumkiválasztás

Specifikáció

Bemenet

NapDb: Egész

Eladás: Tömb[1..NapDb:Egész]

Kimenet

MaxNap: Egész

Előfeltétel

NapDb≥1 és ∀i∈[1..NapDb]: Eladás[i]≥0

Utófeltétel

MaxNap∈[1..NapDb] és ∀i∈[1..NapDb]: Eladás[i]≤Eladás[MaxNap]

Algoritmus

Az 6. feladat algoritmusa, struktogrammal.

Kód

#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
    int NapDb;
    const int MaxNapDb=10;
    int Eladas[MaxNapDb];
    int MaxNap;
    //ellenőrzött beolvasás
    do
    {
        cout<<"Hany napos volt a fesztival (1-"<<MaxNapDb<<")?";
        cin>>NapDb;
        if ((NapDb<1) || (NapDb>MaxNapDb))
        {
            cout<<"Rossz adat!"<<endl;
        }
    }
    while ((NapDb<1) || (NapDb>MaxNapDb));
    for (int i=0; i<NapDb; ++i)
    {
        do
        {
            cout<<endl<<"Hany belepot vettek a(z) "<<i+1<<". napon?";
            cin>>Eladas[i];
            if (Eladas[i]<0)
            {
                cout<<"Rossz adat!"<<endl;
            }
        }
        while (Eladas[i]<0);
    }
    //megoldás
    MaxNap=0;
    for (int i=1; i<NapDb; ++i)
    {
        if (Eladas[i]>Eladas[MaxNap])
        {
            MaxNap=i;
        }
    }
    //kiírás
    cout<<endl<<"A beolvasott adatok:";
    for (int i=0; i<NapDb; ++i)
    {
        cout<<Eladas[i]<<" ";
    }
    cout<<endl<<MaxNap+1<<". napon volt a legtobb latogato."<<endl;
    system("pause");
    return 0;
}

Vissza a tartalomjegyzékhez

Feladat: „Tömbök és ciklusok” feladatsor/1.

Feladat

Egy papírgyűjtési akcióban mindenkiről feljegyezték, hogy ki hány kiló papírt hozott. Írjunk programot, amely megadja, hogy összesen mennyi papírt gyűjtöttek a résztvevők!

Vissza a tartalomjegyzékhez

Megoldás

Alkalmazott tétel

Sorozatszámítás

Specifikáció

Bemenet

Db: Egész

Papír: Tömb[1..Db:Valós]

Kimenet

Össz: Valós

Előfeltétel

Db≥0 és ∀i∈[1..NapDb]: Papír[i]≥0

Utófeltétel

Össz=SZUM(i=1..Db) Papír[i]

Algoritmus

Az 1. feladat algoritmusa, struktogrammal.

Kód

#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
    int Db;
    const int MaxDb=100;
    double Papir[MaxDb];
    double Ossz;
    //ellenőrzött beolvasás
    do
    {
        cout<<"Hanyan voltak?";
        cin>>Db;
        if  ((Db<0) || (Db>MaxDb))
        {
            cout<<"Ennyien nem lehettek!"<<endl;
        }
    }
    while ((Db<0) || (Db>MaxDb));
    for (int i=0; i<Db; ++i)
    {
        do
        {
            cout<<"Mennyit hozott az "<<i+1<<". ember?";
            cin>>Papir[i];
            if  (Papir[i]<0)
            {
                cout<<"Ennyit nem hozhatott!"<<endl;
            }
        }
        while (Papir[i]<0);
    }
    //megoldás
    Ossz=0;
    for (int i=0; i<Db; ++i)
    {
        Ossz=Ossz+Papir[i];
    }
    //kiírás
    cout<<Ossz<<" kilot gyujtottek osszesen."<<endl;
    system("pause");
    return 0;
}

Vissza a tartalomjegyzékhez

Feladat

Feladat

A „Tömbök és ciklusok” feladatsor melyik feladatát melyik programozási tétel segítségével lehet megoldani?

Vissza a tartalomjegyzékhez

Megoldás

1.⇐Összegzés

2.⇐Eldöntés

3.⇐Kiválasztás

4.⇐Keresés

5.⇐Megszámolás

6.⇐Maximumkiválasztás

7.⇐Összegzés, megszámolás

8.⇐Minimumkiválasztás

Vissza a tartalomjegyzékhez

Házi feladat

Az „Összetett programozási tételek 1.” feladatsor 8. feladata

Feladat

Egy utazási irodában minden nap feljegyezték, hogy hány érdeklődő volt aznap. Készítsünk programot, amely meghatározza, hogy melyik napon érdeklődtek legtöbben az irodában!

Tanulási tipp

Megoldási javaslat:

  • Először tippelje meg, melyik programozási tétel illik a feladathoz.
  • Majd készítse el a specifikációját! Itt könnyebb a dolga, ha a tétel specifikációjából indul ki.
  • Ezután az algoritmizálás jön. Ennél a lépésnél különösen sokat tud segíteni, ha helyesen állapította meg az alkalmazandó programozási tételt.
  • Végül készítse el a C++ kódját!

Vissza a tartalomjegyzékhez

Fel a lap tetejére
Új Széchenyi terv
A projekt az Európai Unió támogatásával, az Európai Szociális Alap társfinanszirozásával valósul meg.