tanszek:oktatas:szamitastechnika:gyakorlo_feladatok_1
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
tanszek:oktatas:szamitastechnika:gyakorlo_feladatok_1 [2023/10/17 16:51] – knehez | tanszek:oktatas:szamitastechnika:gyakorlo_feladatok_1 [2023/11/22 06:48] (current) – knehez | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Egyszerű gyakorló feladatok ====== | + | ====== Egyszerű |
Line 220: | Line 220: | ||
} | } | ||
</ | </ | ||
+ | |||
+ | **7. Kérjük be karaktereket az ' | ||
+ | |||
+ | <sxh c> | ||
+ | #include < | ||
+ | #include < | ||
+ | |||
+ | int main() { | ||
+ | printf(" | ||
+ | |||
+ | char karakter; | ||
+ | int kisbetuSzamlalo = 0; | ||
+ | // Olvassuk be a karaktereket, | ||
+ | while ((karakter = getch()) != ' | ||
+ | | ||
+ | // Ellenőrizzük, | ||
+ | if (karakter >= ' | ||
+ | kisbetuSzamlalo++; | ||
+ | } | ||
+ | printf(" | ||
+ | } | ||
+ | |||
+ | // Kiírjuk, hány kisbetű volt | ||
+ | printf(" | ||
+ | |||
+ | return 0; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | **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 < | ||
+ | #include < | ||
+ | #include < | ||
+ | |||
+ | #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; | ||
+ | int ujSzam; | ||
+ | do { | ||
+ | ujSzam = rand() % LEGNAGYOBB_SZAM + LEGKISEBB_SZAM; | ||
+ | |||
+ | // Ellenőrizzük, | ||
+ | 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(" | ||
+ | for (i = 0; i < SZAMOK; ++i) { | ||
+ | printf(" | ||
+ | } | ||
+ | printf(" | ||
+ | |||
+ | return 0; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ** 9. Írjon programot ami a felhasználótól bekért szövegben a betűk gyakoriságát megállapítja, | ||
+ | |||
+ | 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 < | ||
+ | #include < | ||
+ | |||
+ | #define MAX_HISZTOGRAM_MERET 26 | ||
+ | |||
+ | void hisztogramKiirasa(int gyakorisag[]) { | ||
+ | printf(" | ||
+ | |||
+ | for (int i = 0; i < MAX_HISZTOGRAM_MERET; | ||
+ | char karakter = ' | ||
+ | printf(" | ||
+ | |||
+ | for (int j = 0; j < gyakorisag[i]; | ||
+ | printf(" | ||
+ | } | ||
+ | |||
+ | printf(" | ||
+ | } | ||
+ | } | ||
+ | |||
+ | int main() { | ||
+ | char szoveg[1000]; | ||
+ | int gyakorisag[MAX_HISZTOGRAM_MERET] = {0}; // minden elemet nulláz | ||
+ | |||
+ | printf(" | ||
+ | fgets(szoveg, | ||
+ | |||
+ | for (int i = 0; szoveg[i] != ' | ||
+ | char karakter = toupper(szoveg[i]); | ||
+ | |||
+ | if (isalpha(karakter)) { | ||
+ | int index = karakter - ' | ||
+ | gyakorisag[index]++; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | hisztogramKiirasa(gyakorisag); | ||
+ | |||
+ | return 0; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | **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, | ||
+ | |||
+ | <sxh c> | ||
+ | #include < | ||
+ | #include < | ||
+ | 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; | ||
+ | { | ||
+ | for(int i = 0; i <= screenSizeX; | ||
+ | { | ||
+ | float x = (float)i / screenSizeX; | ||
+ | float y = (float)j / screenSizeY; | ||
+ | if(fabs(circle(x, | ||
+ | { | ||
+ | printf(" | ||
+ | } | ||
+ | else | ||
+ | { | ||
+ | printf(" | ||
+ | } | ||
+ | } | ||
+ | printf(" | ||
+ | } | ||
+ | return 0; | ||
+ | } | ||
+ | </ | ||
+ | |||
tanszek/oktatas/szamitastechnika/gyakorlo_feladatok_1.1697561498.txt.gz · Last modified: 2023/10/17 16:51 by knehez