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

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

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós február 18. Széchenyi István Egyetem, Gy r

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

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

Mintavételes szabályozás mikrovezérlő segítségével

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

Algoritmizálás + kódolás C++ nyelven és Pascalban

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem

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

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

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

Szoftvertechnológia alapjai Java előadások

A C# programozási nyelv alapjai

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

Informatika terméktervezőknek

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

Szerző. Varga Péter ETR azonosító: VAPQAAI.ELTE cím: Név: Kurzuskód:

Internet programozása. 3. előadás

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

Algoritmizálás + kódolás C++ nyelven és Pascalban

Bevezetés a C++ programozásba

INFORMATIKA tétel 2019

Bevezetés a programozásba I.

Pénzügyi algoritmusok

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

Programozás BMEKOKAA146. Dr. Bécsi Tamás 3. előadás

INFORMATIKA tétel 2018

S z á m í t ó g é p e s a l a p i s m e r e t e k

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

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

Vezérlési szerkezetek

A C# PROGRAMOZÁSI NYELV

Szoftvertervezés és -fejlesztés I.

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

Stack Vezérlés szerkezet Adat 2.

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

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

Java programozási nyelv

A C programozási nyelv I. Bevezetés

Maximum kiválasztás tömbben

Programozás BMEKOKAA146. Dr. Bécsi Tamás 1. Előadás

Bevezetés a C programozási nyelvbe. Az Általános Informatikai Tanszék C nyelvi kódolási szabványa

117. AA Megoldó Alfréd AA 117.

Bevezetés a programozásba. 6. Előadás: C++ bevezető

Java II. I A Java programozási nyelv alapelemei

2.3. A C nyelv utasításai

Tartalomjegyzék. Általános Információ! 2. Felhasználói dokumentáció! 3. Feladat! 3. Környezet! 3. Használat! 3. Bemenet! 3. Példa!

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

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

Programozási alapismeretek 2009/2010

BASH script programozás II. Vezérlési szerkezetek

A C programozási nyelv I. Bevezetés

Szelekció. Döntéshozatal

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

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

Programozás I. gyakorlat

Bevezetés a programozásba I.

A C programozási nyelv II. Utasítások. A függvény.

Webprogramozás szakkör

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

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

Programozási nyelvek JAVA EA+GY 1. gyakolat

Java II. I A Java programozási nyelv alapelemei

Objektum elvű alkalmazások fejlesztése Kifejezés lengyel formára hozása és kiértékelése

Programozás alapjai II. (2. ea) C++

Programozás alapjai II. (2. ea) C++

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás

1. Alapok. Programozás II

6. fejezet: Ciklusok

Vezérlési szerkezetek. Szelekció Ciklusok

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

Bevezetés a programozásba I.

Bevezetés a programozásba Előadás: Objektumszintű és osztályszintű elemek, hibakezelés

Programozás alapjai. 5. előadás

Imperatív programozás

Összetett programozási tételek Rendezések Keresések PT egymásra építése. 10. előadás. Programozás-elmélet. Programozás-elmélet 10.

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

OOP I. Egyszerő algoritmusok és leírásuk. Készítette: Dr. Kotsis Domokos

3. Határozza meg és írja ki a minta szerint, hogy a forrásállományban hány kémiai elem felfedezési adatai

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós május 6. Széchenyi István Egyetem, Gy r

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

infix kifejezés a+b ab+ +ab postfix kifejezés prefix kifejezés a+b ab+ +ab a+b ab+ +ab Készítette: Szabóné Nacsa Rozália

Bevezetés a programozásba. 11. Előadás: Esettanulmány

Alkalmazott modul: Programozás 2. fejezet. C++ alapismeretek. Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar

Programozási alapismeretek 1. előadás

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

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

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás 3. előadás

PHP alapjai, bevezetés. Vincze Dávid Miskolci Egyetem, IIT

Adattípusok, vezérlési szerkezetek. Informatika Szabó Adrienn szeptember 14.

Óbudai Egyetem. C programozási nyelv

SZERVER OLDALI JAVASCRIPT. 3. hét Javascript nyelvi elemek

Objektumorientált Programozás III.

Programozás alapjai II. (1. ea) C++

Programozás alapjai II. (1. ea) C++

Kifejezések. Kozsik Tamás. December 11, 2016

Bánsághi Anna 2014 Bánsághi Anna 1 of 68

Információs Technológia

Labor gyakorlat Mikrovezérlők

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

Átírás:

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

Classic Empire - A turn Based Wargame Classic Empire is a real time, multiplayer, Internet-based game, featuring military, diplomatic, and economic goals. Empire is a game that is played against human opponents over a computer network, usually the Internet. It is possible for a game to last from a few hours to many months.

void pf_check(void) { int i, uid, c; for (i = 0; i < pf_nheap; i++) { uid = pf_heap[i].uid; assert(0 <= uid && uid < WORLD_SZ()); assert(pf_map[uid].heapi == i); assert(pf_map[uid].visit == pf_visit); assert(pf_map[uid].cost <= pf_heap[i].cost); c = 2 * i + 1; assert(c >= pf_nheap pf_heap[i].cost <= pf_heap[c].cost); c++; assert(c >= pf_nheap pf_heap[i].cost <= pf_heap[c].cost); for (uid = 0; uid < WORLD_SZ(); uid++) { assert(pf_map[uid].visit <= pf_visit + 1); if (pf_map[uid].visit == pf_visit) { i = pf_map[uid].heapi; assert(0 <= i && i < pf_nheap && pf_heap[i].uid == uid); while ((opt = getopt(argc, argv, "2:krs:uhv"))!= EOF) { switch (opt) { case '2': auxfname = optarg; break; case 'k': send_kill = 1; break; case 'r': restricted = 1; break; case 's': port = strdup(optarg); colon = strrchr(port, ':'); if (colon) { *colon = 0; host = port; port = colon + 1; break; case 'u': utf8 = eight_bit_clean = 1; break; case 'h': print_usage(argv[0]); exit(0); case 'v': printf("%s\n\n%s", version, legal); exit(0); default: fprintf(stderr, "Try -h for help.\n"); exit(1);

EMLÉKEZTETŐ / KIEGÉSZÍTŐ VÁLTOZÓK: <típus> <azonosító>; char, int, float, double bool IN/OUT cin >> / fin >> cout << / fout << SZEKVENCIA ELÁGAZÁS if-else < >? < > : < > switch Aritmetikai operátorok +, -, *, /, % Összetett operátorok +=, -=, *=, /=, %= x = x + 3; x += 3; i = i - 1; --i; ++i vs. i++ Összehasonlítási operátorok ==,!=, <, <=, >, >= Logikai operátorok!, &&,

Biztonságos állománykezelés #include <iostream> #include <fstream> using namespace std; int main() { ifstream fin; fin.open( bemenet.txt ); if (!fin.is_open()) { cout << Sikertelen input-file megnyitas! ; return 0; ofstream fout; fout.open( kimenet.txt ); if (!fout.is_open()) { cout << Sikertelen output-file megnyitas! ; return 0;... fin >>... fout <<...... fin.close(); fout.close(); return 0;

Négy (n) szám összege! x WATCH s? 0 75 75 10 85-50 35-5 30 int i,x,s=0; int x1,x2,x3,x4,s; cin >> x1 >> x2 >> x3 >> x4; s = x1 + x2 + x3 + x4; cout << s= << s; int x,s=0; cin >> x; s += x; cin >> x; s += x; cin >> x; s += x; cin >> x; s += x; cout << s= << s; for ( i=1 ; i<=4 ; ++i ){ cin >> x; s += x; cout << s= << s;? int i,n,x,s=0; cin >> n; for ( i=1 ; i<=n ; ++i ){ 75 10-50 -5 s = 30_ cin >> x; s += x; cout << s= << s; Összeg-számítás

for ciklus i,,, n for ( i=1 ; i<=n ; ++i ){ <utasítások> i,,, n-1 for ( i=0 ; i<n ; ++i ){ <utasítások> utasítások for ( <kif1> ; <kif2> ; <kif3> ){ <ciklus mag>

Számjegy-szorzat! [100.. 999] WATCH x p? 1 275 1 27 5 2 35 0 70? int x,p; cin >> x; p = x/100 * x/10%10 * x%10; cout << p= << p; int x,p=1; cin >> x; 275 275 p *= x%10; x /= 10; p *= x%10; x /= 10; p *= x%10; x /= 10; cout << p= << p; int x,p=1; d n d n-1 d 1 d 0 d n d n-1 d 1 d 0 275 275 p = 70_ cin >> x; while ( x>0 ){ Szorzat-számítás p *= x%10; x /= 10; cout << p= << p;?

while / do-while ciklusok while ( <feltétel> ){ <utasítások> do { <utasítások> while (<feltétel> )

break / continue / goto Természetes számokat olvastassunk be nulla végjelig, majd íratassuk ki az átlagukat. Végtelen ciklus unsigned i; double szam, osszeg = 0; Kiugortat a kurrens ciklusból for ( i=0 ; ; ++i ){ cin >> szam; if (!szam ) { break; osszeg += szam; if (i){ cout << Atlag = << osszeg / i; else { cout << Nem volt szam ; Átlag-számítás

break / continue / goto Egész számokat olvastassunk be nulla végjelig, majd íratassuk ki a pozitívak átlagát. Végtelen ciklus int i=0; double szam, osszeg = 0; while ( 1 ){ cin >> szam; if (!szam ) { break; if ( szam < 0 ) { continue; osszeg += szam; ++i; if (i){ cout << Atlag = << osszeg / i; else { cout << Nem volt szam ; Befejezi a kurrens ciklusmag-átjárást Átlag-számítás

break / continue / goto Íratassuk ki a legkisebb kétszámjegyű, legfentebb 100 kerületű, pitágorászi számhármast. #include <iostream> #define K 100 int main(){ unsigned short a, aa, b, bb, c, cc; for ( a = 10 ; a <= K/3; ++a ){ aa = a * a; for ( b = a+1 ; b < K/2; ++b ){ bb = b * b; for ( c = b+1 ; c < K/2; ++c ){ cc = c * c; if (cc > aa + bb){ break; if (a + b + c > K){ break; if (cc == aa + bb){ goto cimke; Ugorj a címkézett utasításhoz cimke: cout << a << << b << << c << \n ; return 0;

Van-e nulla érték n szám között? #include <iostream> #include <fstream> #include <stdbool.h> int main(){ ifstream fin; fin.open( szamsor.txt ); if (!fin.is_open()) { cout << Sikertelen input-file megnyitas! ; return 0; int x, n, i; fin >> n; bool b = false; for ( i = 1 ; i <= n ; ++i){ fin >> x; if (!x) {b = true; break; if (b) {cout << "VAN" else {cout << NINCS" fin.close(); return 0; else szamsor.txt 10 22 3-5 0 6 0 123 77-2 512! Létezésellenőrzés VAN_

N szám minimuma WATCH n i?? 4? 4 2 4 3 4 4 4 5 x?? 3 6 5 5 min? 13 3 3 3 3 #include <iostream> #include <stdbool.h> int main(){ { int x, min, n, i; cin >> n; cin >> min; for ( i = 2 ; i <= n ; ++i){ { cin >> x; if (x < min) {min = x; cout << MIN = << min; return 0; Minimumkeresés { 4 13 3 6 5 MIN = 3_

ISMÉTLÉS SZEKVENCIA ELÁGAZÁS CIKLUSOK for while do while break / continue Összeg / szorzat / átlag számítás technikája Számlálás technikája Létezés-ellenőrzés technikája Min-keresés technikája Számsorozat elemenkénti feldolgozása adott elemszámú sorozat végjelig olvasott sorozat Természetes szám számjegyenkénti feldolgozása