Vissza

A for utasítás, állománykezelés

Házi feladatok:
1. Olvassunk be 10 számot a billentyűzetről és amikor páros számot olvasunk be, akkor sípoljon egyet a gép.
2. Olvassunk be 10 számot a billentyűzetről és sípoljon egyet a gép ha az összes szám negatív volt.
3. Olvassunk ki egy állományból 10 számot és amikor páros számot olvasunk ki, akkor sípoljon egyet a gép.
4. Olvassunk ki egy állományból 10 számot és sípoljon egyet a gép ha az összes szám negatív volt.
5. Olvassunk ki egy állományból 10 számot és adjuk össze őket.
6. Olvassunk ki egy állományból 10 számot és határozzuk meg az átlagukat.
7. Olvassunk ki egy állományból 10 számot és határozzuk meg, hogy hány közülük páratlan.
8. Olvassunk ki egy állományból 10 számot és határozzuk meg, hogy hány közülük pozitív.
9. Írjuk ki az ASCII kódtáblázatot egy állományba.
10. Állapítsuk meg, hogy a billentyűzetről beolvasott szám négyzetszám-e, ne használjuk az sqrt könyvtárfüggvényt.

Megjegyzés: Az megoldott feladatok után, az oldal alján további házifeladatok találhatóak!!

Megoldott feladatok: 
További megoldott feladatok
További kitűzött feladatok

1. Olvassunk be 10 számot a billentyűzetről és amikor negatív számot olvasunk be, akkor sípoljon egyet a gép.
#include <iostream>
using namespace std;
int main()
{
    int i, x;
    for (i = 0; i < 10; i++){
        cout << "szam = ";
        cin >> x;
        if( x < 0 ) cout << "sip" << (char)7;
    }
    return 0;
}


2. Olvassunk be 10 számot a billentyűzetről és sípoljon egyet a gép ha az összes szám páros volt.
#include <iostream>
using namespace std;
int main()
{
    int i, x, k;
    k = 0;
    for (i = 0; i < 10; i++){
        cout << "szam " << i + 1 << " = ";
        cin >> x;
        if( x%2 == 0 ) k++;
    }
    if( k == 10 ) cout << "sip" << (char)7;
    return 0;
}

3. Olvassunk be 10 számot a billentyűzetről és adjuk össze őket.
#include <iostream>
using namespace std;
int main()
{
    int i, x, ossz;
    ossz = 0;
    for (i = 0; i < 10; i++){
        cout << "szam " << i + 1 << " = ";
        cin >> x;
        ossz += x;
    }
    cout << "A szamok osszege:: " << ossz << endl;
    return 0;
}


4. Olvassunk ki egy állományból 10 számot és szorozzuk össze őket.
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
    int i, x, szor;
    ifstream fin;
    fin.open ("szamok.txt");
    szor = 1;
    for (i = 0; i < 10; i++){
        fin >> x;
        szor *= x;
    }
    fin.close();
    cout << "A szamok szorzata:: " << szor << endl;
    return 0;
}


5. Olvassunk ki egy állományból 10 számot és határozzuk meg a legnagyobbat.
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
    int i, maxi, x;
    ifstream fin;
    fin.open ("szamok.txt");
    for (i = 0; i < 10; i++){
        fin >> x;
        if (i == 0) maxi = x;
        if (maxi < x) maxi = x;
    }
    fin.close();
    cout << "A legnagyobb szam:: " << maxi << endl;
    return 0;
}


6. Írjuk ki az ASCII kódtáblázatot.
#include <iostream>
using namespace std;

int main()
{
    int i;
    for (i = 0; i < 256; i++)
        cout << (char)i << ":  " << i << "\t";
    cout << endl << endl;
    return 0;
}

7. Olvassunk be egy számot a billentyűzetről és állapítsuk meg hogy hány számjegye van.
#include <iostream>
using namespace std;

int main()
{
    int szam, i;
    cout << "Kerek egy szamot: ";
    cin >> szam;
    for (i = 1; ; ++i){
        szam /= 10;
        if(szam == 0) break;
    }
    cout << "A szamjegyek szama: " << i << endl;
    return 0;
}

8. Olvassunk be egy számot a billentyűzetről és adjuk össze a számjegyeit.
#include <iostream>
using namespace std;

int main()
{
    int szam, i, sum;
    cout << "Kerek egy szamot: ";
    cin >> szam;
    sum = 0;
    for (i = 1; ; ++i){
        sum += szam % 10;
        szam /= 10;
        if(szam == 0 ) break;
    }
    cout << "A szamjegyek osszege: " << sum << endl;
    return 0;
}

9. Írjuk ki az első n páros számot egy állományba.
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
    int i, p, n;
    ofstream fout;
    fout.open("paros.txt");
    cout << "n = ";
    cin >> n;
    p = 0;
    for (i = 0; i < n; ++i){
        fout << p << endl;
        p += 2;
    }
    fout.close();
    return 0;
}


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

2. Olvassunk be 10 számot a billentyűzetről és sípoljon egyet a gép ha az összes szám páros volt.
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int i, x, k;
    k = 0;
    for (i = 0; i < 10; i++){
        printf("szam = ");
        scanf("%i", &x);
        if( x%2 == 0 ) k++;
    }
    if( k == 10 ) printf("sip %c", 7);
   
system("pause");
    return 0;
}


3. Olvassunk be 10 számot a billentyűzetről és adjuk össze őket.
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int i, x, ossz;
    ossz = 0;
    for (i = 0; i < 10; i++)
    {
        printf("szam = ");
        scanf("%i", &x);
        ossz += x;
    }
    printf("A szamok osszege::%d\n",ossz);
    system("pause");
    return 0;
}

4. Olvassunk ki egy állományból 10 számot és szorozzuk össze őket.
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int i, x, szor;
    FILE *be;
    be = fopen("szamok.txt", "r");
    szor = 1;
    for (i = 0; i < 10; i++){
        fscanf(be, "%i", &x);
        szor *= x;
    }
    fclose(be);
    printf("A szamok szorzata: %i\n", szor);
   
system("pause");
    return 0;
}

5. Olvassunk ki egy állományból 10 számot és határozzuk meg a legnagyobbat.
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int i, maxi, x;
    FILE *be;
    be = fopen("szamok.txt", "r");
    for (i = 0; i < 10; i++)
    {
        fscanf(be, "%i", &x);
        if (i == 0) maxi = x;
        if (maxi < x) maxi = x;
    }
    fclose(be);
    printf("A legnagyobb szam:: %d\n", maxi);
   
system("pause");
    return 0;
}

6. Írjuk ki az ASCII kódtáblázatot.
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int i;
    for (i = 0; i < 256; i++)
    printf("  %c:   %i\t", i, i);
    printf("\n\n");
   
system("pause");
    return 0;
}
7. Olvassunk be egy számot a billentyűzetről és állapítsuk meg hogy hány számjegye van.
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int szam, i;
    printf("Kerek egy szamot: ");
    scanf("%i", &szam);
    for (i = 1; ; ++i){
        szam /= 10;
        if(szam == 0 ) break;
    }
    printf("A szamjegyek szama: %i\n", i);
    system("pause");
    return 0;
}

8. Olvassunk be egy számot a billentyűzetről és adjuk össze a számjegyeit.
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int szam, i, sum;
    printf("Kerek egy szamot: ");
    scanf("%i", &szam);
    sum = 0;
    for (i = 1; ; ++i){
        sum += szam % 10;
        szam /= 10;
        if(szam == 0 ) break;
    }
    printf("A szamjegyek osszege: %i\n", sum);
    system("pause");
    return 0;
}

9. Írjuk ki az első n páros számot egy állományba.
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int i, p, n;
    FILE *a;
    a = fopen("paros.txt", "w");
    printf("n = ");
    scanf("%i", &n);
    p = 0;
    for (i=0; i<n; i++){
        fprintf(a, "%i\n", p);
        p = p + 2;
    }
    fclose(a);
    system("pause");
    return 0;
}


Házi feladatok:
11. Írjuk ki az első n Fibonacci számot számot a képernyőre.
12. Olvassunk ki egy állományból n számot és határozzuk meg az átlagukat.
13. Olvassunk be egy számot a billentyűzetről és írjuk ki az első számjegyét a képernyőre.
14. Olvassunk be egy számot a billentyűzetről és szorozzuk össze a számjegyeit.
15. Olvassunk be egy számot a billentyűzetről és határozzuk meg a legkisebb számjegyét.
16. Olvassunk be egy számot a billentyűzetről és határozzuk meg a legnagyobb számjegyét.

17. Egy szövegállományban ellenállás értékeket tárolunk el. Olvassuk ki ezeket az ellenállásokat és határozzuk meg az eredő ellenállás értékét
    a. feltételezve, hogy ezen ellenállások sorba kötött alkatrészek értékeinek felelnek meg,
    b. feltételezve, hogy ezen ellenállások párhuzamosan kötött alkatrészek értékeinek felelnek meg.

18. Egy szövegállományban kondenzátorok kapacitás értékeit tároltuk el. Olvassuk ki ezeket az értékeket  és határozzuk meg az eredő kapacitást
    a. feltételezve, hogy ezen kapacitások sorosan vannak kapcsolva,
    b. feltételezve, hogy ezen kapacitások párhuzamosan vannak kapcsolva.

A fenti két példához szükséges elméletet lásd itt.

19. Egy szövegállományban n darab tranzisztor valós (mért) értékei találhatóak. Adva van továbbá egy P elvárt érték. Írjunk programot, mely megállapítja, hogy mely tranzisztorok selejtesek. Egy tranzisztor selejtes, ha 5%-kal tér el a valós értéke az elvárt P értéktől.
 
20. Írjunk programot, mely másodpercenkénti lebontásban megadja, a v0 kezdősebességgel, a gyorsulással, egyenes vonalú, egyenletesen gyorsuló mozgást végző test sebességértékeit. Az eredményt írjuk ki egy szövegállományba.
v = v0 + a·t

21. Írjunk programot, mely másodpercenkénti lebontásban megadja, a v0 kezdősebességgel, a gyorsulással, egyenes vonalú, egyenletesen gyorsuló mozgást végző test által, a t idő alatt megtett útszakaszok értékeit. Az eredményt írjuk ki egy szövegállományba.
s = v0·t + a/2·t2

22. Feltételezve, hogy egy szövegállományban elvannak tárolva a februári napi hőmérséklet értékek, írjunk programot, mely meghatározza az átlag februári hőmérsékletet.