Felhasználói eszközök

Eszközök a webhelyen


tanszek:oktatas:szamitastechnika:gyakorlo_feladatok_1

Különbségek

A kiválasztott változat és az aktuális verzió közötti különbségek a következők.

Összehasonlító nézet linkje

Előző változat mindkét oldalon Előző változat
Következő változat
Előző változat
tanszek:oktatas:szamitastechnika:gyakorlo_feladatok_1 [2023/10/17 17:02]
knehez
tanszek:oktatas:szamitastechnika:gyakorlo_feladatok_1 [2023/11/22 06:48] (aktuális)
knehez
Sor 1: Sor 1:
-====== Egyszerű gyakorló feladatok ======+====== Egyszerű ​általános ​gyakorló feladatok ======
  
  
Sor 228: Sor 228:
  
 int main() { int main() {
 +    printf("​Kerem a karaktereket (amig entert nem nyomunk): ");
 +
     char karakter;     char karakter;
     int kisbetuSzamlalo = 0;     int kisbetuSzamlalo = 0;
-    ​ +    // Olvassuk be a karaktereket, ​amíg az angol ábécé betűit kapjuk 
-    printf("​Kerem a karaktereket (amig entert nem nyomunk): "); +    while ((karakter = getch()) != '​\r'​ && 
-     +           ((karakter >= '​A'​ && karakter <= '​Z'​) || (karakter >= '​a'​ && karakter <= '​z'​))) {
-    ​// Olvassuk be a karaktereket, ​amig entert nem nyomunk +
-    while ((karakter = getch()) != '​\r'​ && ((karakter >= '​A'​ && karakter <= '​Z'​) || (karakter >= '​a'​ && karakter <= '​z'​))) {+
         // Ellenőrizzük,​ hogy a karakter kisbetű-e         // Ellenőrizzük,​ hogy a karakter kisbetű-e
         if (karakter >= '​a'​ && karakter <= '​z'​) {         if (karakter >= '​a'​ && karakter <= '​z'​) {
Sor 241: Sor 241:
         printf("​%c",​ karakter);         printf("​%c",​ karakter);
     }     }
-    ​+
     // Kiírjuk, hány kisbetű volt     // Kiírjuk, hány kisbetű volt
     printf("​\nA bevitt szovegben %d kisbetű volt.\n",​ kisbetuSzamlalo);​     printf("​\nA bevitt szovegben %d kisbetű volt.\n",​ kisbetuSzamlalo);​
-    ​+ 
 +    return 0; 
 +
 +</​sxh>​ 
 + 
 +**8. Írjon C programot, amely az ötöslottó számsorsolását modellezi. A program véletlenszerűen generál öt különböző számot 1 és 90 között, majd kiírja ezeket a számokat: (figyelve, hogy különböző számokat húzzon** 
 + 
 +<sxh c> 
 +#include <​stdio.h>​ 
 +#include <​stdlib.h>​ 
 +#include <​time.h>​ 
 + 
 +#define SZAMOK 5 
 +#define LEGKISEBB_SZAM 1 
 +#define LEGNAGYOBB_SZAM 90 
 + 
 +int main() { 
 +    int lottoSzamok[SZAMOK];​ 
 +    int i, j; 
 + 
 +    // Inicializáljuk a random generátort a jelenlegi idő alapján 
 +    srand(time(NULL));​ 
 + 
 +    // Generálunk öt különböző számot 1 és 90 között 
 +    for (i = 0; i < SZAMOK_SZAMA;​ ++i) { 
 +        int ujSzam; 
 +        do { 
 +            ujSzam = rand() % LEGNAGYOBB_SZAM + LEGKISEBB_SZAM;​ 
 + 
 +            // Ellenőrizzük,​ hogy az újonnan generált szám már nem szerepel-e a listában 
 +            for (j = 0; j < i; ++j) { 
 +                if (ujSzam == lottoSzamok[j]) { 
 +                    ujSzam = 0; // Az ellenőrzés nem sikerült, generáljunk új számot 
 +                    break; 
 +                } 
 +            } 
 +        } while (ujSzam == 0); 
 + 
 +        // Hozzáadjuk az újonnan generált számot a listához 
 +        lottoSzamok[i] = ujSzam; 
 +    } 
 + 
 +    // Kiírjuk a generált számokat 
 +    printf("​Az otoslotto szamok: "); 
 +    for (i = 0; i < SZAMOK; ++i) { 
 +        printf("​%d ", lottoSzamok[i]);​ 
 +    } 
 +    printf("​\n"​);​ 
 + 
 +    return 0; 
 +
 +</​sxh>​ 
 + 
 +** 9. Írjon programot ami a felhasználótól bekért szövegben a betűk gyakoriságát megállapítja,​ és egy hisztogrammot készít a konzolon.** 
 + 
 +A programban a betűk gyakoriságát egy 26 elemű tömbben (gyakorisag) érdemes tárolni, ahol minden elem egy betű gyakoriságát jelenti. A program kérje be a felhasználótól a szöveget, majd a betűk gyakoriságát számolja ki és egy hisztogrammal írja ki a konzolra. A toupper() függvény segítségével minden betűt nagybetűvé alakíthat, hogy az ábrázolás ne függjön a betűk nagy- vagy kisbetűs formájától. 
 + 
 +<sxh c> 
 +#include <​stdio.h>​ 
 +#include <​ctype.h>​ 
 + 
 +#define MAX_HISZTOGRAM_MERET 26 
 + 
 +void hisztogramKiirasa(int gyakorisag[]) { 
 +    printf("​\nBetuk gyakorisaga hisztogrammal:​\n"​);​ 
 + 
 +    for (int i = 0; i < MAX_HISZTOGRAM_MERET;​ ++i) { 
 +        char karakter = '​A'​ + i; 
 +        printf("​%c | ", karakter);​ 
 + 
 +        for (int j = 0; j < gyakorisag[i];​ ++j) { 
 +            printf("​*"​);​ 
 +        } 
 + 
 +        printf("​\n"​);​ 
 +    } 
 +
 + 
 +int main() { 
 +    char szoveg[1000];​ 
 +    int gyakorisag[MAX_HISZTOGRAM_MERET] = {0}; // minden elemet nulláz 
 + 
 +    printf("​Kerem a szoveget (legfeljebb 1000 karakter): "); 
 +    fgets(szoveg,​ sizeof(szoveg),​ stdin); 
 + 
 +    for (int i = 0; szoveg[i] != '​\0';​ ++i) { 
 +        char karakter = toupper(szoveg[i]);​ 
 + 
 +        if (isalpha(karakter)) { 
 +            int index = karakter - '​A';​ 
 +            gyakorisag[index]++;​ 
 +        } 
 +    } 
 + 
 +    hisztogramKiirasa(gyakorisag);​ 
 + 
 +    return 0; 
 +
 +</​sxh>​ 
 + 
 +**10. Rajzoljunk egy kört a konzolra csillag karakterekből. ** 
 + 
 +Ebben a játékos feladatban, legyen egy circle() függvény ami kiszámolja egy adott pont távolságát a kör középpontjától,​ majd összehasonlítja a sugárral. Ha a távolság közel van a sugárhoz, a függvény közelítőleg 0-t ad vissza. 
 + 
 +<sxh c> 
 +#include <​stdio.h>​ 
 +#include <​math.h>​ 
 +const float centerX = 0.5; 
 +const float centerY = 0.5; 
 + 
 +const int screenSizeX = 50; 
 +const int screenSizeY = 30; 
 + 
 +float circle(float x, float y, float r) 
 +
 +    return (x - centerX) * (x - centerX) + (y - centerY) * (y - centerY) - r * r; 
 +
 + 
 +int main() { 
 +    for(int j = 0; j <= screenSizeY;​ j++) 
 +    { 
 +        for(int i = 0; i <= screenSizeX;​ i++) 
 +        { 
 +            float x = (float)i / screenSizeX;​ 
 +            float y = (float)j / screenSizeY;​ 
 +            if(fabs(circle(x,​ y, 0.3f)) < 0.01f) 
 +            { 
 +                printf("​*"​);​ 
 +            } 
 +            else 
 +            { 
 +                printf("​ "); 
 +            } 
 +        } 
 +        printf("​\n"​);​ 
 +    }
     return 0;     return 0;
 } }
 </​sxh>​ </​sxh>​
 + 
  
tanszek/oktatas/szamitastechnika/gyakorlo_feladatok_1.1697562131.txt.gz · Utolsó módosítás: 2023/10/17 17:02 szerkesztette: knehez