Vissza

A while  utasítás, függvények

Házi feladatok:
1. Olvassunk be számokat a billentyűzetről, amíg nem olvasunk 0-t és határozzuk meg a legnagyobbat.
2.
Olvassunk be számokat a billentyűzetről, amíg nem olvasunk 0-t és határozzuk meg hány páros számot olvastunk be.
3. Határozzuk meg az x szám négyzetgyökét, a következő képletet alkalmazva (az iterálást addig kell végezni míg két egymásutáni érték egyforma nem lesz):
y0 = 1
yn = 1/2·(yn-1 + x/yn-1)

4. A szövegállományban különböző típusú telefonszámok vannak: rds, romtelecom, orange. Számoljuk meg, hogy hány rds, hány romtelecom és hány orange telefonszám van a szövegállományban. A romtelecom 265-tel, az rds 365-tel, az orange számok 74-gyel kezdődnek.
5. A szövegállományban különböző típusú telefonszámok vannak: rds, romtelecom, orange. Írjuk át különböző állományokba az rds, a romtelecom és az  orange telefonszámokat. A romtelecom 265-tel, az rds 365-tel, az orange számok 74-gyel kezdődnek.
6. Egy szövegállomány minden egyes sora egy dátumot tartalmaz: év, hónap, nap. Olvassuk ki ezeket a dátumokat éz határozzuk meg hogy hányadik napját jelentik az adott évnek.
    Pl:
    2004 3 16 -> 76
    2000 9 7 -> 251

Megjegyzés: Egy év akkor szökőév, ha
osztható 4-gyel és nem osztható 100-zal vagy osztható 400-zal.

Megoldott feladatok:
További megoldott feladatok

1. Olvassunk be számokat a billentyűzetről, amíg nem olvasunk 0-t és amikor negatív számot olvasunk be akkor sípoljon egyet a gép.
#include <iostream>
using namespace std;

int main()
{
    int x;
    while (1) {
        cout << "szam = ";
        cin >> x;
        if (x == 0) break;
        if (x < 0) cout << (char) 7;
    }
    return 0;
}


2. Olvassunk be számokat a billentyűzetről, amíg nem olvasunk 0-t és határozzuk meg az átlagukat.
#include <iostream>
#include <iomanip>
using namespace std;

int main()
{
    int i, x, sum;
    sum = i = 0;
    while (1) {
        cout << "szam = ";
        cin >> x;
        if (x == 0) break;
        sum += x;
        i++;
    }
    cout << setw(5) << setprecision(2);
    cout << "A szamok atlaga: " << (float)sum/i << endl;
    return 0;
}


3.
Olvassunk be számokat a billentyűzetről, amíg nem olvasunk 0-t és határozzuk meg az átlagukat, használjuk a do-while ciklus szerkezetet.
#include <iostream>
#include <iomanip>
using namespace std;

int main()
{
    int i, x, sum;
    sum = i = 0;
    do {
        cout << "szam = ";
        cin >> x;
        sum += x;
        i++;
   
} while (x != 0);
    cout << setw(5) << setprecision(2);
    cout << "A szamok atlaga: " << (float)sum/(i-1) << endl;
    return 0;
}


4. Egy szövegállományban levő számok mindegyikére határozzuk meg a számjegyek számát, függvényt írva egy szám számjegyeinek a meghatározására.
#include <iostream>
#include <fstream>
using namespace std;
int szamj (int);

int main()
{
    int fdb, x;
    ifstream fin;
    fin.open("szamok.txt");
    while (1) {
        fin >> x;
        if (fin.eof() ) break;
        fdb = szamj (x);
        cout << x << "\t" << fdb << endl;
    }
    fin.close();
    return 0;
}

int szamj (int x){
    int db = 0;
    while (x > 0){
        x /= 10;
        db ++;
    }
    return db;
}

A fenti feladatok standard C író/olvasó függvényekkel
1. Olvassunk be számokat a billentyűzetről, amíg nem olvasunk 0-t és amikor negatív számot olvasunk be akkor sípoljon egyet a gép.
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int x;
   
while (1) {
        printf("szam = ");
        scanf("%i", &x);
       
if (x == 0) break;
        if (x < 0) printf("%c", 7);
    }
    system("pause");
    return 0;
}

2. Olvassunk be számokat a billentyűzetről, amíg nem olvasunk 0-t és határozzuk meg az átlagukat.

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int i, x, sum;
   
sum = i = 0;
    while (1) {
        printf("szam = ");
        scanf("%i", &x);
        if (x == 0) break;
       
sum += x;
        i++;

    }
    printf("A szamok atlaga: %.2f\n", (float)sum/i);
    system("pause");
    return 0;
}


3.
Olvassunk be számokat a billentyűzetről, amíg nem olvasunk 0-t és határozzuk meg az átlagukat, használjuk a do-while ciklus szerkezetet.

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int i, x, sum;
    sum = 0;
    i = 0;
    do {
        printf("szam = ");
        scanf("%i", &x);
        sum += x;
        i++;
    } while (x != 0);
    printf("A szamok atlaga: %.2f\n", (float)sum/(i-1));
    system("pause");
    return 0;
}


4. Egy szövegállományban levő számok mindegyikére határozzuk meg a számjegyek számát, függvényt írva egy szám számjegyeinek a meghatározására.

#include <stdio.h>
#include <stdlib.h>
int szamj (int);

int main(){
    int
fdb, x;
    FILE *be;
    be = fopen("szamok.txt", "r");
    while (1) {
        fscanf (be, "%i", &x);
        if (feof(be)) break;
       
fdb = szamj (x);
        printf("%i\t%i\n", x,
fdb);
    }
    fclose(be);
 
   system("pause");
    return 0;
}

int szamj (int x){
   
int db = 0;
    while (x > 0){
        x /= 10;
       
db ++;
    }
    return db;
}