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:10]
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 297: Sor 297:
 </​sxh>​ </​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;
 +}
 +</​sxh>​
 + 
  
tanszek/oktatas/szamitastechnika/gyakorlo_feladatok_1.1697562607.txt.gz · Utolsó módosítás: 2023/10/17 17:10 szerkesztette: knehez