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

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

INFORMATIKA tétel 2019

INFORMATIKA javítókulcs 2016

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

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

INFORMATIKA tétel 2017

0.1. Mi az a standard be- és kimenet? A két mintafeladat leírása

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

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

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

INFORMATIKA tétel 2018

7. gyakorlat Sorozatok, Fájlkezelés

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

Példák tematikus csoportosításban

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

1. Alapok. Programozás II

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

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

Programozás II. 2. Dr. Iványi Péter

Programozás I. gyakorlat

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

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

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

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

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

Megoldott programozási feladatok standard C-ben

Programozás II. Fájlkezelés

Bevezetés a programozásba I.

Felvételi tematika INFORMATIKA

Bevezetés Kiíratás Beolvasás Formázás Fájlkezelés Gyakorló feladatok C++ I/O. Bevezetés. Izsó Tamás február 20. Izsó Tamás C++ I/O / 1

Megoldott programozási feladatok standard C-ben

Programozás I gyakorlat. 10. Stringek, mutatók

117. AA Megoldó Alfréd AA 117.

Mérnöki programozás 7. Szerkesztette: dr. Vass Péter Tamás

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

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

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

Programozás C++ -ban 2007/1

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés

A C programozási nyelv VI. Parancssori argumentumok File kezelés

Programozási alapismeretek beadandó feladat: ProgAlap beadandó feladatok téma 99. feladat 1

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

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés. Szekvenciális fájlkezelés Fájlok használata

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

Maximum kiválasztás tömbben

Bevezetés a C++ programozásba

malloc free malloc free int sum(int a[4]) { return a[0] + a[1] + a[2] + a[3]; }

Szerző Lővei Péter LOPSAAI.ELTE IP-08PAEG/25 Daiki Tennó

1.1. A forrásprogramok felépítése Nevek és kulcsszavak Alapvető típusok. C programozás 3

Programozás C és C++ -ban

Országzászlók (2015. május 27., Sz14)

Programozás II gyakorlat. 4. Öröklődés

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés

/* 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 ) ;

2.3. A C nyelv utasításai

Adatbázis rendszerek Gy: Algoritmusok C-ben

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

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

Programozás I. gyakorlat

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

Szövegek C++ -ban, a string osztály

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)

Munka állományokkal. mv: áthelyezés (átnevezés) rm: törlés. rmdir: üres könyvtár törlése. -r, -R: rekurzív (könyvtár) -r, -R: rekurzív (könyvtár)

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

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

Operációs rendszerek 1.

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

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

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

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

Dinamikus memóriakezelés Fájlkezelés

Miről lesz ma szó? A PROGAMOZÁS ALAPJAI 1. Dinamikus változók. Dinamikus változók. Dinamikus változók. Dinamikus változók. 7.

INFORMATIKAI ALAPISMERETEK

Függvények int, long 1. Adott a mellékelt f alprogram.

Programozás II. 4. Dr. Iványi Péter

Bevezetés a programozásba. 9. Előadás: Rekordok

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

Bevezetés a programozásba I 8. gyakorlat. C++: szövegfolyamok, intelligens tömbök

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

Í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!

Kalapácsvetés 2016 szöveges

Programozási alapismeretek 2009/2010

A függvény kód szekvenciáját kapcsos zárójelek közt definiáljuk, a { } -ek közti részt a Bash héj kód blokknak (code block) nevezi.

Bevezetés a programozásba II 1. gyakorlat. A grafikus könyvtár használata, alakzatok rajzolása

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

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

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 6.ELŐADÁS. Fájlkezelés PHP-ben

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

Bevezetés a programozásba. 8. Előadás: Függvények 2.

Struktúrák (struct) A struktúra szerkezetét meghatározó deklaráció általános formája:

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

Programozási nyelvek I. 5. előadás (Gregorics Tibor anyagának felhasználásával)

Programozás I gyakorlat

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

Fejlett programozási nyelvek C++ Sablonok és adatfolyamok

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

Socket programozás Példák

Átírás:

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

Olvasás/írás (ANSI C) ille tyűzetről/képer yőre (scanf/printf) scanf: olvasás a standard inputról (stdin) A sta dard i put i pli ite a ille tyűzet printf: írás a standard outputra (stdout) A sta dard output i pli ite a képer yő

#include <iostream> using namespace std; C++ C int x; cin >> x; #include <stdio.h> int x; scanf( %i, &x); Olvasás/ Írás scanf/ printf int x,y; cin >> x >> y; int x; float y; cin >> x >> y; char c; cin >> c; char szo[10]; cin >> szo; int x,y; scanf( %i%i, &x, &y); int x; float y; scanf( %i%f, &x, &y); char c; scanf( %c, &c); char szo[10]; scanf( %s, szo); char mondat[100]; cin.getline(mondat, 100); char mondat[100]; scanf( %[^\n]\n, mondat); scanf( <formázósor>, <változócímlista>); <formázósor>: %-al bevezetett formázó karakterek Átugorja a \ -t Mindent olvas, kivéve a \ -t

Formázó-karakterek

Olvasás/ Írás scanf/ printf printf( <formázósor>, <kifejezéslista>); <formázósor>: Nor ál karakterek %-al bevezetett formázó karakterek \-el bevezetett escape szekvenciák int x = 7; cout << x+1; C++ C int x = 7; printf( %i, x+1); cout << sapi ; printf( sapi ); cout << sapi\ninfo\n ; int x = 3; float y = 3.14; cout << x= << x << \n ; cout << y= << y << \n ; char szo[10] = Neumann ; cout << szo; char mondat[100] = en te ; cout << mondat; printf( sapi\ninfo\n ); int x = 3; float y 3.14; printf( x= %i\n, x); printf( y= %f\n, y); char szo[10] = Neumann ; printf( %s, szo); char mondat[100] = en te ; printf( %s, mondat);

PÉLDA (scanf/printf)?

PÉLDA (scanf/printf)

Olvassunk be a billentyűzetről egy n<100 elemű számsorozatot, majd írassuk ki a képernyőre fordított sorrendben. int n,a[100],i; scanf( %i, &n); for( i = 0 ; i < n ; ++i){ scanf( %i, &a[i]); // scanf( %i, a+i); printf( A forditott sorozat:\n ); for( i = n-1 ; i >= 0 ; --i){ printf( %i, a[i]); 5 13 7-5 6 11 A forditott sorozat: 11 6-5 7 13_

PÉLDA (printf) printf( %5.2f, x);? x 13.47 1352.4712 3.4777.5 1 3. 4 7 1 3 5 2. 4 7 3. 4 8 0. 5 0 13.47 1352.47 3.48 0.50 0. 0. 0 0 0.00 printf( %5li, y);? y 12947 1352947 77 1 2 9 4 7 1 3 5 2 9 4 7 7 7 12947 1352947 77

Mit térítenek vissza a scanf/printf függvények? Beolvasott értékek száma Kiírt karakterek száma

Olvasás/írás szöveges állományból/ba (freopen) freopen: lehetővé teszi, hogy sta dard inputtá/outputtá tegyük a bementi/kimeneti állományunkat freopen( be.txt, r, stdin); freopen( ki.txt, w, stdout); A fenti freopen-ek nyomán, a scanf/printf függvény a be.txt/ki.txt állományból/ba olvas/ír A ille tyűzet/ o itor visszaállítása sta dard inputtá/outputá freopen( CON, r, stdin); freopen( CON, w, stdout);

Olvassunk be állományból egy nxm méretű legfentebb kétszámjegyű számokat tartalmazó mátrixot, majd írassuk ki állományba, táblázatosan. int n,m,b[100][100],i,j; freopen( be.txt, rt, stdin); freopen( ki.txt, wt, stdout); scanf( %i%i, &n, &m); for( i = 0 ; i < n ; ++i){ for( j = 0 ; j < m ; ++j){ scanf( %i, &b[i][j]); for( i = 0 ; i < n ; ++i){ for( j = 0 ; j < m ; ++j){ printf( %3i, b[i][j]); printf( \n ); be.txt 3 4 7 12 5 3 55 22 45 77 9 6 4 7 ki.txt 7 12 5 3 55 22 45 77 9 6 4 7 freopen( CON, rt, stdin); freopen( CON, wt, stdout);

Olvasás/írás szöveges állományból/ba (fscanf/fprintf) FILE *fin; //állománypointer (választhatsz más nevet is) fin = fopen( <állománynév>, rt );... fscanf(fin, <formázósor>, <változócímlista>);... fclose(fin); FILE *fout; //állománypointer (választhatsz más nevet is) fout = fopen( <állománynév>, wt );... fprintf(fout, <formázósor>, <kifejezéslista>);... fclose(fout);

Olvassunk be állományból egy nxm méretű, legfentebb kétszámjegyű számokat tartalmazó mátrixot, majd írassuk ki állományba, táblázatosan. int n,m,b[100][100],i,j; FILE *fin, *fout; fin = fopen( be.txt, rt ); if(!fin){ fout = fopen( ki.txt, wt ); if(!fout){ fscanf(fin, %i%i, &n, &m); for( i = 0 ; i < n ; ++i){ for( j = 0 ; j < m ; ++j){ fscanf(fin, %i, &b[i][j]); for( i = 0 ; i < n ; ++i){ for( j = 0 ; j < m ; ++j){ fprintf(fout, %3i, b[i][j]); fprintf(fout, \n ); fclose(fin); fclose(fout); be.txt 3 4 7 12 5 3 55 22 45 77 9 6 4 7 ki.txt 7 12 5 3 55 22 45 77 9 6 4 7

Szöveget tartalmazó állomány feldolgozása karakterenként Hány karaktert tartalmaz a szoveg.txt állomány? #include <stdio.h> int main(){ int i; char c; FILE *fin; fin = fopen( szoveg.txt, rt ); if(!fin){ printf( Sikertelen allomanymegnyitas ); return 0; i = 0; while( fscanf(fin, %c, &c)!= EOF ){ ++i; printf( Karakterek szama: %i, i); fclose(fin); return 0; szoveg.txt Kiss Elemer Szakkollegium _ Karakterek szama: 26 Sikertelen olvasás esetén az fscanf az EOF konstant téríti vissza

Szöveget tartalmazó állomány feldolgozása szavanként Hány szót tartalmaz a szoveg.txt állomány? #include <stdio.h> int main(){ int i; char szo[30]; FILE *fin; fin = fopen( szoveg.txt, rt ); if(!fin){ printf( Sikertelen allomanymegnyitas ); return 0; for( i = 0 ; fscanf(fin, %s, szo)!= EOF ; ++i ){ ; printf( Szavak szama: %i, i); fclose(fin); return 0; szoveg.txt Kiss Elemer Szakkollegium _ Szavak szama: 3

Szöveget tartalmazó állomány feldolgozása soronként Hány sort tartalmaz a szoveg.txt állomány? #include <stdio.h> int main(){ int i; char sor[100]; FILE *fin; fin = fopen( szoveg.txt, rt ); if(!fin){ printf( Sikertelen allomanymegnyitas ); return 0; for( i = 0 ; fscanf(fin, %[^\n]\n, sor)!= EOF ; ++i ){ ; printf( Sorok szama: %i, i); fclose(fin); return 0; szoveg.txt Kiss Elemer Szakkollegium _ Sorok szama: 2

Összefoglalás Billentyűzetről/Képernyőre scanf( <formázósor>, <változócímlista>); printf( <formázósor>, <kifejezéslista>); Formázó-karakterek: d/i,o,x,x; u; hd/hi,hu; ld/li,lu; f; lf; Lf; c; s; p Állományból/ba freopen( <állománynév>, r, stdin); scanf freopen( <állománynév>, w, stdout); printf FILE *fin, *fout; fin = fopen( <állománynév>, rt ); fscanf(fin, ); fclose(fin); fout = fopen( <állománynév>, wt ); fprintf(fout, ); fclose(fout); További részletek végett lásd a jegyzet 11.2 alfejezetét