Megoldott programozási feladatok standard C-ben

Hasonló dokumentumok
Megoldott programozási feladatok standard C-ben

C programozás. { Márton Gyöngyvér, 2009 } { Sapientia, Erdélyi Magyar Tudományegyetem }

int tokeletes(int szam) { int i,oszto=0; for(i=1; i<szam; i++) { if(szam %i == 0) { oszto+=i; }

Programozás alapjai 8.Gy: Program struktúra

6. gyakorlat Egydimenziós numerikus tömbök kezelése, tömbi algoritmusok

Programozás alapjai 5. gyakorlat Vezérlési szerkezetek egymásba ágyazása

INFORMATIKA tétel 2019

Programozás alapjai 3.Gy: C elágazások, ciklusok P R O

11. gyakorlat Sturktúrák használata. 1. Definiáljon dátum típust. Olvasson be két dátumot, és határozza meg melyik a régebbi.

Programozás I. 5. Előadás: Függvények

Programozás I. gyakorlat

1. Feladat: beolvas két számot úgy, hogy a-ba kerüljön a nagyobb

10. gyakorlat Tömb, mint függvény argumentum

Algoritmusok pszeudókód... 1

Programozás alapjai 9.Gy: Struktúra 2.

Programozás C nyelven (13. ELŐADÁS) Sapientia EMTE

Programozás 6. Dr. Iványi Péter

INFORMATIKA tétel 2017

I. ALAPALGORITMUSOK. I. Pszeudokódban beolvas n prim igaz minden i 2,gyök(n) végezd el ha n % i = 0 akkor prim hamis

INFORMATIKA javítókulcs 2016

Algoritmusok pszeudókód... 1

Tartalomjegyzék Algoritmusok - pszeudókód

main int main(int argc, char* argv[]) { return 0; } main return 0; (int argc, char* argv[]) main int int int main main main

INFORMATIKA tétel 2018

Vezérlési szerkezetek. Szelekció Ciklusok

Programozás alapjai 2.Gy: A C nyelv alapjai P R O

1. Írjunk programot mely beolvas két számot és ellenőrzi hogy mindkét szám zérus-e:

Programozás C nyelven 5. ELŐADÁS. Sapientia EMTE

/* Az iter függvény meghívása és a visszatérő érték átadása a gyok változóba */ gyok = iter( n, a, e ) ;

1. Egészítsük ki az alábbi Python függvényt úgy, hogy a függvény meghatározza, egy listába, az első n szám faktoriális értékét:

Vezérlési szerkezetek

Függvény pointer. Feladat: Egy tömbben soroljunk fel függvényeket, és hívjuk meg valahányszor.

Függvények. Programozás alapjai C nyelv 7. gyakorlat. LNKO függvény. Függvények(2) LNKO függvény (2) LNKO függvény (3)

Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2)

C változók. Feladat: Deklaralj egy valos, egy karakter es ket egesz tipusu valtozot! int main() {

7/8. gyakorlat Karaktertömbök és sztringkezelés

2018, Funkcionális programozás

Programozás alapjai. 6. gyakorlat Futásidő, rekurzió, feladatmegoldás

Tartalom Keresés és rendezés. Vektoralgoritmusok. 1. fejezet. Keresés adatvektorban. A programozás alapjai I.

Objektumorientált Programozás III.

2018, Diszkrét matematika

Keresés és rendezés. A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán

Felvételi tematika INFORMATIKA

2016, Diszkrét matematika

Adatbázis rendszerek Gy: Algoritmusok C-ben

C programozás. { Márton Gyöngyvér, 2009 } { Sapientia, Erdélyi Magyar Tudományegyetem }

// keressük meg a legnagyobb faktoriális értéket, ami kisebb, // mint százmillió

7. gyakorlat. Fájlkezelés IO haladó Függvények haladó

3 A C programozási nyelv szintaktikai egységei

Bevezetés a programozásba I 10. gyakorlat. C++: alprogramok deklarációja és paraméterátadása

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

Programozás alapjai C nyelv 10. gyakorlat. Standard függvények. Union

A félév során előkerülő témakörök

2017, Diszkrét matematika

2018, Diszkre t matematika. 10. elo ada s

Programozás C nyelven (9. ELŐADÁS) Sapientia EMTE

Gyakorló feladatok az 1. nagy zárthelyire

2016, Diszkrét matematika

értékel függvény: rátermettségi függvény (tness function)

2019, Funkcionális programozás. 2. el adás. MÁRTON Gyöngyvér

PROGRAMOZÁS ALAPFELADATOK

BME MOGI Gépészeti informatika 5.

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)

RSA algoritmus. P(M) = M e mod n. S(C) = C d mod n. A helyesség igazoláshoz szükséges számelméleti háttér. a φ(n) = 1 mod n, a (a 1,a 2,...

Programozás alapjai C nyelv 5. gyakorlat. Írjunk ki fordítva! Írjunk ki fordítva! (3)

Adatszerkezetek és algoritmusok

Karakter- és sztringkezelő függvények, matematikai függvények

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Számelmélet I.

Bevezetés a programozásba I.

1. numere.txt n (1 n 10000) n növekvő kilenc a) Pascal/C++ Például: NUMERE.TXT

2018, Diszkrét matematika

Programozási alapismeretek :: beadandó feladat. Felhasználói dokumentáció. Molnár Tamás MOTIABT.ELTE

tétel: különböző típusú adatokat csoportosít, ezeket egyetlen adatként kezeli, de hozzáférhetünk az elemeihez is

Minimum feladat: Teljes feladat: Minimum feladat: Teljes feladat: Minimum feladat:

Programozás I. Matematikai lehetőségek Műveletek tömbökkel Egyszerű programozási tételek & gyakorlás V 1.0 OE-NIK,

Programozás alapjai C nyelv 9. gyakorlat. Rekurzió. Rekurzív algoritmus

Körkörös listák. fej. utolsó. utolsó. fej

2016, Diszkrét matematika

Adminisztrációs feladatok Strukturált programok A C programnyelv elemei

Bevezetés az informatikába

2015, Diszkrét matematika

Programozás C nyelven (10a. ELŐADÁS) Sapientia EMTE

Bevezetés az informatikába

Írjon olyan programot a standard könyvtár alkalmazásával, amely konzolról megadott valós adatokból meghatározza és kiírja a minimális értékűt!

2016, Diszkrét matematika

Programozás alapjai C nyelv 8. gyakorlat. Mutatók és címek (ism.) Indirekció (ism)

Mutatók és címek (ism.) Programozás alapjai C nyelv 8. gyakorlat. Indirekció (ism) Néhány dolog érthetőbb (ism.) Változók a memóriában

117. AA Megoldó Alfréd AA 117.

Felvételi vizsga mintatételsor Informatika írásbeli vizsga

Járműfedélzeti rendszerek II. 3. előadás Dr. Bécsi Tamás

Programozás I. gyakorlat

Rekurzió. Programozás alapjai C nyelv 9. gyakorlat. Rekurzív algoritmus. Rekurzív algoritmus fajtái. Példa: n! (2) Példa: n!

Megjegyzés: A programnak tartalmaznia kell legalább egy felhasználói alprogramot. Példa:

Programozás C nyelven FELÜLNÉZETBŐL elhullatott MORZSÁK. Sapientia EMTE

Programozás I. házi feladat

C_Programozas 2008/6/2 17:13 page 5 #1. Előszó Bevezetés 13

1. Beolvasunk két egész számot. A CSEREL eljárás (függvény) segítségével felcseréljük a két változó tartalmát, majd kiírjuk őket.

Gyakorló feladatok. Az alaputasítások olyanok, mint C-ben. (Részleteket ld. segedletek/02.pdf vagy bármelyik Java tutorial.)

Programozás I gyakorlat

1. Alapok. Programozás II

Átírás:

Megoldott programozási feladatok standard C-ben Márton Gyöngyvér Műszaki és Humántudományok Kar EMTE-Sapientia, Marosvásárhely 2008. december 14.

1. fejezet Megoldott feladatok 1.1. Alap algoritmusok 1.1. feladat. Határozzuk meg a billentyűzetről beolvasott számok közül a pozitív számok számát, n szám esetében int main() int i, n, db, szam; printf("n="); scanf("%d",&n); db = 0; for(i = 0; i < n; i++) printf("kerek egy szamot:"); scanf("%d",&szam); if (szam>0) db++; printf("a pozitiv szamok szama: %i\n",db); 1.2. feladat. Határozzuk meg a billentyűzetről beolvasott számok átlagértékét, n szám esetében 1

2 FEJEZET 1. MEGOLDOTT FELADATOK int main() int i, n, ossz, szam; printf("n="); scanf("%d",&n); ossz = 0; for(i = 0; i < n; i++) printf("kerek egy szamot:"); scanf("%d",&szam); ossz += szam; printf("a szamok atlaga::%.2f\n",(float)ossz/n); 1.3. feladat. Határozzuk meg a billentyűzetről beolvasott számok szorzatát, n szám esetében int main() int i, n, szorzat, szam; printf("n="); scanf("%d",&n); szorzat = 0; for(i = 0; i < n; i++) printf("kerek egy szamot:"); scanf("%d",&szam); szorzat *= szam; printf("a szamok szorzata: %i\n",szorzat); 1.4. feladat. Határozzuk meg a billentyüzetről beolvasott számok közül a legnagyobbat, n szám esetében int main()

1.1. ALAP ALGORITMUSOK 3 int i, n, max, szam; printf("n="); scanf("%d",&n); max = szam; printf("kerek egy szamot:"); scanf("%d",&szam); max = szam; //inicializalas for(i = 1; i < n; i++) printf("kerek egy szamot:"); scanf("%d",&szam); if (max < szam) max = szam; printf("a legnagyobb szam::%d\n",max); 1.5. feladat. Határozzuk meg két szám legnagyobb közös osztóját, Euklideszi algoritmussal int main() unsigned int a, b, r; printf("kerek egy egesz szamot:"); scanf("%d",&a); printf("kerek meg egy egesz szamot"); scanf("%d",&b); while ( b!= 0 ) r = a % b; a = b; b = r; printf("az lnko:%d\n",a); 1.6. feladat. Határozzuk meg egy adott állományban levő számokra a számok négyzetgyökét.

4 FEJEZET 1. MEGOLDOTT FELADATOK double negyzetgy(int x); int main() FILE *f; double y = 1; int x; f = fopen("szamok.txt", "r"); while(1) fscanf(f,"%i", &x); if(feof(f)) break; y = negyzetgy(1, x); printf("%10i%10.2lf\n", x, y); fclose(f); double negyzetgy(int x) double y = 1; while (y*y - x > 0.00001 x-y*y > 0.00001) y = (y + x/y) /2; return y; 1.7. feladat. Határozzuk meg egy adott állományban levő x és y számpárokra az x y értékét, felhasználva a pow könyvtárfüggvényt. #include <math.h> int main() FILE *f; double e; int x, y; f = fopen("szamok.txt", "r"); while(1) fscanf(f,"%i%i", &x, &y);

1.1. ALAP ALGORITMUSOK 5 if(feof(f)) break; e = pow(x, y); printf("%10i%10i%10.0lf\n", x, y, e); fclose(f); Írjunk egy függvényt mely megvizsgálja hogy egy szám prímszám- 1.8. feladat. e vagy sem. int prim(int szam); main() int p, sz = 91; p = prim(sz); if(p == 1) printf("prim szam\n"); else printf("nem prim szam\n"); int prim(int szam) int i; if(szam == 2) return 1; if(szam%2 == 0) for(i=3; i*i<=szam; i++) if(szam%i == 0) return 1; 1.9. feladat. Írjunk egy függvényt mely megvizsgálja hogy egy szám teljes négyzet-e vagy sem. int negyzetszam(int szam); main() int p, sz = 141; p = negyzetszam(sz); if(p == 1) printf("teljes negyzet\n");

6 FEJEZET 1. MEGOLDOTT FELADATOK else printf("nem teljes negyzet\n"); int negyzetszam(int szam) int i; for (i=1; i*i<=szam; i++) if (i*i == szam) return 1; 1.2. Tömbös feladatok 1.10. feladat. Határozzuk meg egy tömb elemei közül a pozitív elemek számát, n szám esetében main() int t[]= 10,-21,0,32,4,52; int n, db, i; n = sizeof(t)/sizeof(t[0]); db = 0; for (i=0; i<n; i++) if (t[i]>0==1) db++; printf("a pozitiv elemek szama: %i\n", db); 1.11. feladat. Határozzuk meg egy tömb elemeinek az átlagértékét. int main() int n, tomb[] = 10, 8, 7, 6, 3; int i, osszeg; n = sizeof(tomb)/sizeof(tomb[0]); osszeg = 0; for(i=0; i<n; i++)

1.2. TÖMBÖS FELADATOK 7 osszeg += tomb[i]; printf("az atlag: %.2f\n",(float)osszeg/n); 1.12. feladat. Határozzuk meg egy tömb elemeinek a szorzatát. int main() int n, tomb[] = 10, 8, 7, 6, 3; int i, szorzat; n = sizeof(tomb)/sizeof(tomb[0]); szorzat = 1; for(i=1; i<n; i++) szorzat *= tomb[i]; printf("a szorzat: %i", szorzat); 1.13. feladat. Határozzuk meg egy tömb elemének a maximum elemét. int main() int n, tomb[] = 10, 8, 7, 6, 3; int i, max; n = sizeof(tomb)/sizeof(tomb[0]); max = tomb[0]; for(i=0; i<n; i++) if(tomb[i]>max) max =tomb[i]; printf("maximum: %d\n",max); 1.14. feladat. Határozzuk meg egy tömb elemei közül a páros elemek pozícióját, ahol a tömb elemei véletlenszerűen generált számok. #include <stdlib.h> #include <time.h>

8 FEJEZET 1. MEGOLDOTT FELADATOK int main() int n, tomb[50]; int i; srand(time(null)); printf("n:"); scanf("%d",&n); for(i = 0; i < n; i++) printf("%3d\t",i); printf("\n"); for(i = 0; i < n; i++) tomb[i] = rand() % 100; printf("%3d\t",tomb[i]); printf("\n\n"); printf("a paros elemek pozicioi:"); for( i = 0; i < n; i++) if(tomb[i]%2 == 0) printf("%d\t", i); printf("\n\n"); 1.15. feladat. Vizsgáljuk meg, hogy egy tömb csak páros számokat tartalmaze vagy sem. int csak_paros(int t [], int i); main() int t[]= 10,21,0,32,4,52; int n, v; n = sizeof(t)/sizeof(t[0]); v = csak_paros(t, n-1); if (v==1) printf("csak paros elemeket tartalmaz\n"); else printf("nem csak paros elemeket tartalmaz\n");

1.2. TÖMBÖS FELADATOK 9 int csak_paros(int t[], int n) int i; for(i=0; i<n; i++) if (t[i]%2 == 1) return 1; 1.16. feladat. Határozzuk meg egy szám valódi osztóit, előállítva őket egy tömbbe. main() int szam, k, i, tomb[100]; printf("szam:"); scanf("%i", &szam); k = 0; for(i = 2; i<=szam/2; i++) if(szam%i == 0) tomb[k++] = i; for(i=0; i<k; i++) printf("%4i", tomb[i]); printf("\n"); 1.17. feladat. Határozzuk meg egy szám kettes számrendszerbeli alakját, egy tömbbe. main() int i, k, tomb[100]; int szam = 18; k = 0; while(szam>0) tomb[k++] = szam%2; szam /=2; for(i=k-1; i>=0; i--) printf("%3i", tomb[i]);

10 FEJEZET 1. MEGOLDOTT FELADATOK printf("\n"); 1.18. feladat. Határozzuk meg egy szám kettes számrendszerbeli alakjában az 1-ek számát. main() int db, i, k, tomb[100]; int szam = 18; k = 0; db =0; while(szam>0) if(szam%2 == 1) db++; tomb[k++] = szam%2; szam /= 2; for(i=k-1; i>=0; i--) printf("%3i", tomb[i]); printf("\n") printf("az 1-ek szama: %i\n", db); 1.19. feladat. Állítsuk elő a következő számsorozatot egy tömbbe, n = 5 esetén: 1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5 int main() int i, n, j, k, tomb[100]; printf("n:"); scanf("%i", &n); k = 0; for(i=1; i<=n; i++) for(j=1; j<=i; j++) tomb[k++] = i; for (i=0; i<k; i++)

1.3. REKURZIÓ 11 printf("%4i", tomb[i]); printf("\n"); 1.3. Rekurzió 1.20. feladat. Határozzuk meg egy adott n szám faktoriálisát #include <stdlib.h> int fakt(int szam); main() int szam = 5; int m; m = fakt(szam); printf("faktorialis: %i\n", m); int fakt(int n) int t; if (n == 0) return 1; t = fakt(n-1); return n * t; 1.21. feladat. Határozzuk meg egy adott szám számjegyeinek az összegét #include <stdlib.h> int szamj(int szam); main() int szam = 12345; int m;

12 FEJEZET 1. MEGOLDOTT FELADATOK m = szamj(szam); printf("osszeg: %i\n", m); int szamj(int szam) int t; if (szam <= 0) t = szamj1(szam/10); return (szam%10) + t; 1.22. feladat. Határozzuk meg egy tömb elemének a maximum elemét #include <stdlib.h> int mmax(int t[], int n); main() int t [] = 1034, 6, 912, 356, 11, 8, 99; int n = sizeof(t)/sizeof(t[0]); int m; m = mmax (t,n-1); printf("maximum: %i\n", m); int mmax(int t[], int n) int m; if (n == 0) return t[0]; m = mmax(t, n-1); if (m < t[n]) return t[n]; else return m; 1.23. feladat. Vizsgáljuk meg, hogy egy tömb elemei csak párosak-e vagy sem.

1.3. REKURZIÓ 13 int csak_paros(int t [], int i); main() int t[]= 10,2,0,32,4,52; int n, v; n = sizeof(t)/sizeof(t[0]); v = csak_paros(t, n-1); if (v == 1) printf("csak paros elemeket tartalmaz\n"); else printf("nem csak paros elemeket tartalmaz\n"); int csak_paros (int t[], int n) if (n < 0) return 1; if (t[n]%2 == 1) csak_paros(t, n-1); 1.24. feladat. Határozzuk meg két szám legnagyobb közös osztóját, Euklideszi algoritmussal. int lnko(int a, int b) if (b == 0) return a; return lnko(b, a%b); main() printf("%i", lnko(48,102)); 1.25. feladat. Írjuk ki 2 hatványait egy megadott n számig int rec(int sz, int n); int main() int n = 10; rec(1, n);

14 FEJEZET 1. MEGOLDOTT FELADATOK int rec(int sz, int n) if(n<0) printf("%i\n", sz); rec(sz*2, n-1); 1.26. feladat. Határozzuk meg egy szám kettes számrendszerbeli alakját. int kettes(int szam); int main() int sz = 18; kettes(sz); printf("\n"); int kettes(int szam) if(szam<=0) kettes(szam/2); printf("%3i",szam%2); 1.27. feladat. Határozzuk meg egy szám négyzetgyökét. double negyzetgy(double y, int x); int main() int x = 16; y = negyzetgy(x); printf("%10i%10.2lf\n", x, y); double negyzetgy(double y, int x)

1.3. REKURZIÓ 15 y = (y+ x/y)/2; if(y*y-x < 0.00001 && x-y*y < 0.00001) return y; return negyzetgy2(y,x);