Alapismeretek. Programozás I. Hatwágner F. Miklós szeptember 29. Széchenyi István Egyetem, Gy r
|
|
- Endre Barta
- 6 évvel ezelőtt
- Látták:
Átírás
1 Programozás I. Széchenyi István Egyetem, Gy r szeptember 29.
2 Forrásfájltól a programfuttatásig 1 Forrásszöveg megszerkesztése (.c kiterjesztés, ASCII szövegfájl) elso.c /* elso.c */ #include <stdio.h> void main(void) { printf("ez egy C program!\n"); } Kimenet Ez egy C program! _
3 Forrásfájltól a programfuttatásig 2 Fordítás ( compiler) elso.c fordító elso.obj Üzenetek típusai: hibaüzenetek (error) gyelmeztet üzenetek (warning) Megjegyzések: elso.c, 1. sor: /* elso.c */ /* nyitja és */ zárja több soron át tarthat nem ágyazhatók egymásba
4 Forrásfájltól a programfuttatásig El feldolgozó (preprocessor): egybeépítve a fordítóval közvetlenül a fordítás el tt lép m ködésbe elhagyja a megjegyzéseket végrehajtja, majd elhagyja a direktívákat elso.c előfeldolgozó fordító elso.obj elso.c, 2. sor #include <stdio.h>
5 Forrásfájltól a programfuttatásig El feldolgozó direktíva: egy sorban, melynek els nem fehér karaktere a # Fehér karakter (white space): pl. szóköz, soremelés, lapdobás, tabulátor, de még a megjegyzés is #include: betölti a paraméter szövegfájlt stdio.h fejfájl (header): adattípusok, konstansok deníciói, függvények jellemz i standard input/output < és > jelek: csak egy bizonyos helyen keresi a fájlt (include les)
6 Forrásfájltól a programfuttatásig Függvénydeníció elso.c, 3. sor void main(void) { típus függvénynév(formális-paraméterlista) { függvény-test } visszatérési érték típusa void ( nincs [másutt: eljárás]) fv. neve main indító program formális-paraméterlista mindig ( és ) között, most nincsenek (void) függvény-test helye: mindig { és } között
7 Forrásfájltól a programfuttatásig Függvényhívás elso.c, 4. sor printf("ez egy C program!\n"); függvénynév(aktuális-paraméterlista) printf megjelenteti paraméterét a szabvány kimeneten karakterlánc konstans: id z jelek között escape szekvencia (vagy jelsorozat, escape sequence): vezérl jelek, nem nyomtatható jelek, programnyelvi jelentéssel bíró jelek megjelenítésére ; utasításvég jelzés
8 Forrásfájltól a programfuttatásig Esc. szekv. Jelentés \a gyelmeztet jelzés (bell, cseng ) \b visszalépés (backspace) \f lapdobás (form feed) \n új sor (new line) \r kocsi vissza (carriage return) \t vízszintes tabulátor (horizontal tab, HTAB) \v függ leges tabulátor (vertical tab, VTAB) \\ fordított törtvonal (backslash) \? kérd jel \' aposztróf \" idéz jel \ooo oktális szám \xhh hexadecimális szám \0 zérus ASCII kódú karakter
9 Forrásfájltól a programfuttatásig 3 Kapcsoló-szerkesztés (link) fv.-ek tárgykódja: statikus könyvtárakban (.lib) (run-time libraries, standard libraries) keretrendszerben beállítható ezek és a kimeneti fájlok elérési útja elso.obj indító program (obj) könyvtárak (lib) kapcsolószerkesztő elso.exe 4 Futtatás
10 Fahrenheit - Celsius átváltás Feladat: Számítsuk ki az összetartozó F értékeket 0 és 300 F között, F értékét rendre 20-asával növelve! = 5 ( F 32) 9 Adatstruktúra: az értékeket konstansként adjuk meg Algoritmus: minden értékpárt egyesével meghatározunk, majd értéküket megjelentetjük
11 Fahrenheit - Celsius átváltás pelda1.c /* PELDA1.C -- Fahrenheit - Celsius átszámítás */ #include <stdio.h> void main(void){ printf("\nfahrenheit - Celsius átszámítás\n\n"); printf("%f Fahrenheit - %f Celsius\n", 0., (5.0/9.0)*( )); printf("%f Fahrenheit - %f Celsius\n", 20., (5.0/9.0)*( )); printf("%f Fahrenheit - %f Celsius\n", 40., (5.0/9.0)*( )); printf("%f Fahrenheit - %f Celsius\n", 60., (5.0/9.0)*( )); printf("%f Fahrenheit - %f Celsius\n", 80., (5.0/9.0)*( )); printf("%f Fahrenheit - %f Celsius\n", 100., (5.0/9.0)*( )); printf("%f Fahrenheit - %f Celsius\n", 120., (5.0/9.0)*( )); printf("%f Fahrenheit - %f Celsius\n", 140., (5.0/9.0)*( )); printf("%f Fahrenheit - %f Celsius\n", 160., (5.0/9.0)*( )); printf("%f Fahrenheit - %f Celsius\n", 180., (5.0/9.0)*( )); printf("%f Fahrenheit - %f Celsius\n", 200., (5.0/9.0)*( )); printf("%f Fahrenheit - %f Celsius\n", 220., (5.0/9.0)*( )); printf("%f Fahrenheit - %f Celsius\n", 240., (5.0/9.0)*( )); printf("%f Fahrenheit - %f Celsius\n", 260., (5.0/9.0)*( )); printf("%f Fahrenheit - %f Celsius\n", 280., (5.0/9.0)*( )); printf("%f Fahrenheit - %f Celsius\n", 300., (5.0/9.0)*( )); }
12 Fahrenheit - Celsius átváltás pelda1.c, 5. sor printf("%f Fahrenheit - %f Celsius\n", 0., (5.0/9.0)*( )); printf els, karakterlánc paraméterét karakterek és formátumspecikációk alkotják. Utóbbi % karakterrel indul, és típuskarakterrel zárul. A formátumspecikációk és printf további akt. paraméterei összetartoznak (sorrend, mennyiség). %<szélesség><.pontosság>típuskarakter Típuskarakter Paraméter típusa Megjelenítés d egész típus decimális egészként f lebeg pontos tizedes tört alak c egy karakter karakterként s karakterlánc karakterláncként
13 Fahrenheit - Celsius átváltás pelda1.c, kimenet Fahrenheit - Celsius átszámítás Fahrenheit Celsius Fahrenheit Celsius Fahrenheit Celsius Fahrenheit Celsius Fahrenheit Celsius Fahrenheit Celsius Fahrenheit Celsius Fahrenheit Celsius Fahrenheit Celsius Fahrenheit Celsius Fahrenheit Celsius Fahrenheit Celsius Fahrenheit Celsius Fahrenheit Celsius Fahrenheit Celsius Fahrenheit Celsius _
14 Fahrenheit - Celsius átváltás Problémák: rengeteg feleslegesen ismétl d kódrészlet sok hibalehet ség nehézkes karbantarthatóság, stb. módosítunk! Adatszerkezet: Funkció Azonosító Típus Jelleg tartomány alsó határa also egész munka tartomány fels határa felso egész munka lépésköz lepes egész munka aktuális Fahrenheit érték fahr valós munka, output aktuális Celsius érték celsius valós munka, output
15 Fahrenheit - Celsius átváltás Algoritmus: pelda2.c változók deklarálása, kezd értékadások fejlécsor megjelentetése ciklusmag ismétlése, amíg fahr <= felso ciklusmagban: számolás, értékpár kijelzése, fahr léptetése /* PELDA2.C -- Fahrenheit - Celsius átszámítás */ #include <stdio.h> void main(void) { int also, felso, lepes; float fahr, celsius; printf("\nfahrenheit - Celsius átszámítás\n\n"); printf("fahrenheit - Celsius\n"); printf(" \n"); also = 0; felso = 300; lepes = 20; fahr =also; while(fahr<=felso) { celsius = (5.0/9.0)*(fahr-32.0); printf("%10.0f%10.1f\n", fahr, celsius); fahr = fahr+lepes; } }
16 Fahrenheit - Celsius átváltás Blokkszerkezet el ször deklarációs utasítások, majd végrehajtható utasítások (nem keveredhetnek) minden változót deklarálni kell Deklarációs utasítás Típusok típus azonosítólista; azonosítólista: vessz vel elválasztott azonosítók int el jeles, xpontos bels ábrázolású egész float 4 bájtos, lebeg pontos bels ábrázolású valós (mantissza el jelével 3 bájt + karakterisztika el jelével 1 bájt, ábrázolási határok: ±3, ±3, , 6-7 decimális jegy pontosság)
17 Fahrenheit - Celsius átváltás Hozzárendelés pelda2.c, 12. sor celsius=(5.0/9.0)*(fahr-32.0); objektum = kifejezés módosítható balérték: értéket felvenni képes objektum jobbérték: meghatározható érték kifejezés esetleges implicit típusmódosítás Elöltesztel ciklus pelda2.c, 11. sor while(fahr<=felso) { while(kifejezés) utasítás kifejezés aritmetikai: igaz (1) esetén ismétli az utasítást, hamis (0) esetén a ciklust követ utasításra lép utasítás több utasításból is állhat { és } kifejezés-nek változnia kell végtelen ciklus
18 Fahrenheit - Celsius átváltás Explicit típusmódosítás (típus)kifejezés pelda2.c, kimenet Fahrenheit - Celsius átszámítás Fahrenheit - Celsius _
19 Fahrenheit - Celsius átváltás Probléma túl sok változó (nem is változik az értékük!) módosítunk! pelda3.c /* PELDA3.C -- Fahrenheit - Celsius átszámítás */ #include <stdio.h> void main(void) { int fahr; printf("\nfahrenheit - Celsius átszámítás\n\n"); printf("fahrenheit - Celsius\n"); printf(" \n"); for(fahr=0; fahr<=300; fahr=fahr+20) printf("%10d%10.1f\n", fahr, (5.0/9.0)*(fahr-32)); }
20 Fahrenheit - Celsius átváltás Elöltesztel, iteratív ciklusutasítás for(<init-kifejezés>; <kifejezés>; <léptet -kifejezés>) utasítás 1 init-kifejezés végrehajtása, ha megadták 2 utasítás végrehajtása, ha kifejezés igaz; lehet összetett 3 léptet -kifejezés végrehajtása, ha megadták, majd ugrás a 2. pontra while átalakítható for ciklusra: <init-kifejezés>; while(kifejezés) {utasítás; <léptet -kifejezés;>} printf paramétere kifejezés is lehet Probléma: konstansok szétszórva a programban nehézkes, lassú módosítások, rengeteg hibalehet ség módosítunk!
21 Fahrenheit - Celsius átváltás Szimbolikus állandók (egyszer makrók) egyszer kell deniálni, majd a megfelel helyeken használni ket könny a változásokat átvezetni #dene azonosító helyettesít -szöveg pelda4.c /* PELDA4.C -- Fahrenheit - Celsius átszámítás */ #define ALSO 0 #define FELSO 300 #define LEPES 20 #include <stdio.h> void main(void) { int fahr; printf("\nfahrenheit - Celsius átszámítás\n\n"); printf("fahrenheit - Celsius\n"); printf(" \n"); for(fahr=also; fahr<=felso; fahr=fahr+lepes) printf("%10d%10.1f\n", fahr, (5.0/9.0)*(fahr-32)); }
22 Fahrenheit - Celsius átváltás Szokás a #define direktívákat külön fejfájlba helyezni, majd arra hivatkozni A fájlnév most idéz jelek között áll! beginend.h /* BEGINEND.H -- saját fejfájl */ #define ALSO 0 /* Alsó hatar. */ #define FELSO 300 /* Fels határ. */ #define LEPES 20 /* Lépésköz. */ #define begin { #define end } #define LACI for #include <stdio.h> pelda4m.c /* PELDA4M.C -- Fahrenheit - Celsius átszámítás */ #include "beginend.h" int main(void) begin int fahr; printf("\nfahrenheit - Celsius átszámítás\n\n"); printf("fahrenheit - Celsius\n"); printf(" \n"); LACI(fahr=ALSO; fahr<=felso; fahr=fahr+lepes) begin printf("%10d%10.1f\n",fahr,(5.0/9.0)*(fahr-32)); end end
23 Be- és kimenet Szabványos be- és kimenet legtöbb operációs rendszer támogatja stdin (standard input): alapértelmezetten a billenty zet stdout (standard output) alapértelmezetten a képerny felhasználó átirányíthatja ezeket (pl. nyomtatóra, fájlba,... ) Egy karakter olvasása szabvány bemenetr l int getchar(void); balról nulla érték bitekkel feltölti, int-re alakítva adja vissza hiba esetén, vagy a fájl végén EOF értéket szolgáltat. fájl vége billenty zeten? Pl. Ctrl+Z stdio.h részlet #dene EOF (-1) Függvény prototípusa megadja a visszatérési érték típusát a függvény nevét paramétereinek számát, sorrendjét, típusát azaz teljes formai információval szolgál a függvényr l
24 Be- és kimenet Egy karakter írása a szabvány kimenetre int putchar(int k); visszatérési érték sikeres esetben k, hiba esetén ett l eltér érték Készítsünk programot, ami a fájl végéig átmásolja a szabvány bemenetr l érkez jeleket a kimenetre! pelda5.c /* PELDA5.C -- Bemenet átmásolása a kimenetre */ #include <stdio.h> void main(void) { int c; printf("\nbemenet másolása a kimenetre:\n\n"); printf("gépeljen Ctrl+Z -ig sorokat!\n\n"); c=getchar(); while(c!=eof) { putchar(c); c=getchar(); } }
25 Be- és kimenet A getchar az OS billenty zet pueréb l olvas; ENTER leütéséig nem fér hozzá a begépelt karakterekhez! Készítsünk programot, ami megszámolja a szabvány bemenetr l érkez jeleket! pelda6.c /* PELDA6.C -- Karakterszámlálás */ #include <stdio.h> void main(void) { long nc; nc = 0l; printf("a bemenet karaktereinek leszámlálása:\n\n"); printf("gépeljen Ctrl+Z-ig!\n\n"); while(getchar()!=eof) ++nc; printf("a bemenet karaktereinek száma %ld volt.\n", nc); }
26 Be- és kimenet Adattípus deklaráció, pontosítva pelda6.c, 4. sor long nc; <típusmódosítók> <alaptípus> azonosítólista; el jel kezelése: signed (aé.) / unsigned hosszmódosítók: short / long még az alaptípus is elhagyható (aé. int), de az alaptípus és a típusmódosítók egyszerre nem hagyhatók el! short int long pelda6.c, 5. sor nc = 0l; az l a long, az u pedig az unsigned utótag
27 Be- és kimenet Növelés, csökkentés pelda6.c, 8. sor while(getchar()!=eof) ++nc; növelés, inkrementálás (increment): ++ csökkentés, dekrementálás (decrement): unáris nagyon magas prioritású el tag (prex) / utótag (postx) operátor változatok Az el tag/utótag operátorok hatása az eredményre int a, b; b = 6; a = ++b; /* a==7 és b==7 */ a = b++; /* a==7 és b==8 */ pelda6.c, 9. sor printf("a bemenet karaktereinek száma %ld volt.\n", nc); Hosszmódosítók: h short, l long
28 Be- és kimenet Feladat: sorok összeszámolása a bemeneten pelda7.c /* PELDA7.C -- Sorszámlálás */ #include <stdio.h> void main(void) { int c, nl; nl = 0; printf("a bemenet sorainak leszámlálása:\n\n"); printf("gépeljen Ctrl+Z -ig!\n\n"); while((c=getchar())!= EOF) if(c == '\n') ++nl; printf("\na bemeneten %d sor volt.\n", nl); } Vö. pelda5.c pelda7.c megoldását! c = getchar(); while(c!= EOF) { if(c == '\n') ++nl; c = getchar(); }
29 Be- és kimenet Ciklusszervezés összetett kifejezés felhasználásával gyelni kell a m veletek prioritására! mi történne zárójelezés nélkül? Operátor Asszociativitás () [] ->. balról jobbra! ~ * & (típus) sizeof jobbról balra * / % balról jobbra + - balról jobbra << >> balról jobbra < <= > >= balról jobbra ==!= balról jobbra & balról jobbra ^ balról jobbra balról jobbra && balról jobbra balról jobbra?: jobbról balra = += -= *= /= %= &= ^= = <<= >>= jobbról balra, balról jobbra
30 Be- és kimenet Kétirányú szelekció pelda7.c, 9. sor if(c == '\n') ++nl; if(kifejezés) utasítás1 <else utasítás2> az utasítások lehetnek összetettek, vagy akár újabb szelekciós utasítások többágú szelekció
31 Be- és kimenet Feladat: bemenetr l érkez karakterek, szavak és sorok összeszámolása Adatszerkezet vegyünk fel egészeket a karakterek (nc), szavak (nw) és sorok (nl) számlálásához szükség lesz egy egészre a következ jel olvasásához (c) és egy állapotjelz re (szó belsejében járunk-e, inword) Algoritmus számlálókat nullázzuk le, szón kívül állunk tájékoztató üzenetek megjelenítése karakterek olvasása ciklussal EOF-ig, közben nc növelése, nl növelése, ha az utolsó karakter újsor volt, szóhatár észlelése fehér karakterek gyelésével; szó belsejébe lépve nw növelése végül az eredmények kijelzése
32 Be- és kimenet pelda8.c /* PELDA8.C -- A bemenet sorainak,szavainak,karaktereinek számlálása */ #include <stdio.h> #define YES 1 #define NO 0 void main(void) { int c, nl, nw, nc, inword; inword = NO; printf("a bemenet karaktereinek,\n"); printf(" sorainak és\n"); printf(" szavainak leszámlálása:\n"); printf("a bemenet vége: Ctrl+Z vagy EOF.\n\n"); nl = nc = nw = 0; while((c=getchar())!= EOF) { ++nc; if(c == '\n') ++nl; if(c==' ' c=='\n' c=='\t') inword=no; else if(inword == NO) { inword=yes; ++nw; }} printf("sor=%d szo=%d karakter=%d\n", nl, nw, nc); }
33 Be- és kimenet Többszörös hozzárendelés pelda8.c, 12. sor nl = nc = nw = 0; fontos, hogy nl, nc és nw mind balértékek asszociativitás gyorsabb m ködés, tömörebb forrásszöveg
34 Tömbök Feladat: készítsünk programot, mely a szabvány bemenetr l olvas karaktereket EOF-ig, s közben megszámolja, hogy az egyes számjegy karakterekb l, fehér karakterekb l és minden más karakterb l hány darab érkezett! Algoritmus Deklaráljuk az egyszer változókat és a tömböt! A számlálók (beleértve a tömböt is) nullázandók! Jelenítsünk meg tájékoztató üzenetet! M ködtessünk ciklust, amíg EOF nem érkezik a bemenetr l! Ciklusmagban: Háromágú szelekcióval ki kell választani a megfelel kategóriát, majd a neki megfelel számlálót meg kell növelni! Megjelenítend k a számlálók értékei!
35 Tömbök pelda9.c /* PELDA9.C -- Számjegyek, üres és egyéb karakterek leszámlálása */ #include <stdio.h> void main(void) { int c; /* bemeneti karakter */ int i; /* számláló */ int nwhite; /* üres karakterek */ int nother; /* egyéb karakterek */ int ndigit[10]; /* szám karakterek */ printf("számjegyek, üres- és egyeb karakterek leszámlálása\n"); printf("a bemeneten EOF-ig vagy Ctrl+Z-ig.\n\n"); nwhite = nother = 0; for(i=0; i<10; ++i) ndigit[i] = 0; while((c=getchar())!= EOF) if(c>='0' && c<='9') ++ndigit[c-'0']; else if(c==' ' c=='\n' c=='\t') ++nwhite; else ++nother; printf("számjegyek\n\n"); for(i=0; i<10; ++i) printf("%d = %d\n", i, ndigit[i]); printf("\n\nüres karakterek = %d\negyéb karakterek= %d\n", nwhite, nother); }
36 Tömbök Tömb deníció pelda9.c, 8. sor int ndigit[10]; /* szám karakterek */ típus tömbazonosító[méret]; méret pozitív, egész érték állandó kifejezés állandó kifejezés értéke fordítási id ben kiszámítható Tömb helyfoglalása sizeof(tömbazonosító) méret*sizeof(típus) sizeof megadja a típus vagy objektum bájtokban mért méretét Tömbelemek (indexes változó) elérése tömbazonosító[index] 0 index meret 1
37 Tömbök pelda9.c, 12. sor for(i=0; i<10; ++i) ndigit[i] = 0; Az i számjegyek számát ndigit[i] tárolja! (Azaz pl. 0-ból ndigit[0], 1-b l ndigit[1], sít. érkezett.) pelda9.c, 14. sor if(c>='0' && c<='9') ++ndigit[c-'0']; A számjegy karakterek kódjai folytonosan követik egymást a kódtáblában c-'0' a két kód különbségét a megfelel indexet adja!
38 Függvények El re megírtak könyvtárakban (.lib) vagy tárgymodulokban (.obj), pl. printf, getchar,... Mi készítjük el! Feladat: jelezzük ki 2 els 10 hatványát! pelda10.c /* PELDA10.C -- Hatványozó függvény tesztelése */ #include <stdio.h> #define MEDDIG 10 int power(int x, int n); void main(void) { int i; printf("kett hatványai:\n\n"); for(i=0; i<meddig; ++i) printf("2**%d = %d\n", i, power(2, i)); } int power(int x, int n) { /* x n-edik hatványa, ha n>0, különben 1 */ int i, p; p = 1; for(i=1; i<=n; ++i) p=p*x; return(p); }
39 Függvények Denícióból csak egy létezhet, összhangban a deklarációkkal, prototípusokkal Prototípus el zze meg a hívást! Hogyan konvertáljuk a paraméterek típusát? Paraméterátadás érték szerint A fv. nem int-et ad vissza? Legalább deklarálni kell! Függvény deklaráció / prototípus / deníció elhelyezése Fv. deníciók nem ágyazhatók egymásba Visszatérési érték: return <kifejezés>; Vt. érték típusa: tömb és függvény nem lehet, aé. int Implicit típuskonverzió, ha szükséges return el fordulásai Kilépés függvényb l: return vagy } elérésekor
40 Prodzsekt Forrásfájlok témánkénti, funkciónkénti csoportosítása main egy és pontosan egy forrásban szerepelhet! Prodzsektfájl készítés fuggv.c /* FUGGV.C - A power függvény. */ int power(int x, int n) { /* x n-edik hatványa, ha n>0, különben 1 */ int i, p; p = 1; for(i=1; i<=n; ++i) p=p*x; return(p); } foprog.c /* FOPROG.C -- Hatványozó függvény tesztelése */ #include <stdio.h> #define MEDDIG 10 int power(int x, int n); void main(void) { int i; printf("kett hatványai:\n\n"); for(i=0; i<meddig; ++i) printf("2**%d = %d\n", i, power(2,i)); }
41 Prodzsekt foprog.c fuggv.c foprog.obj fuggv.obj indító program (obj) könyvtárak (lib) fordítás kapcsolószerkesztés foprog.obj fuggv.obj prodzsekt.exe Fájlok közötti implicit függ ség újrafordítás szükség esetén Kezelése: automatikusan vagy explicit megadással stdio.h foprog.c foprog.obj fuggv.c fuggv.obj indító prg. könyvtárak prodzsekt.exe
42 Karakterláncok Deníció: char tömbazonosító[méret]; Mérete: méret*sizeof(char) méret Indexelés: [0; méret-1] Karakter konstans bels ábrázolása: int Van értelme? nev1 == nev2, nev1<nev2,... nev 'G' 'i' 'z' 'i' 'k' 'e' '\0' Feladat: Készítsen programot, amely neveket olvas a szabvány bemenetr l EOF-ig vagy üres sorig! Megállapítandó és kijelezend a leghosszabb név! Probléma: Szöveg beolvasása Szöveg tárolása
43 Karakterláncok getline() int getline(char s[], int lim) { /* Max. lim méret karakterlánc beolvasása s-be. A függvény a karakterlánc hosszát adja vissza. s tömbnek lim+1 méret nek kell lennie. */ int c, i; for(i=0; i<lim && (c=getchar())!=eof && c!='\n'; ++i) s[i]=c; s[i] = '\0'; return(i); } Formális paraméter tömb méret nélküli! Billenty zet puer problémákat okoz: karakterek (EOF is!) csak Enter leütés után olvasható ki mi történik, ha lim-nél több karaktert gépeltek be?
44 Karakterláncok getline() int getline(char s[], int lim) { /* Max. lim méret karakterlánc beolvasása s-be. A függvény a karakterlánc hosszát adja vissza. s tömbnek lim+1 méret nek kell lennie. */ int c, i; for(i=0; i<lim && (c=getchar())!=eof && c!='\n'; ++i) s[i]=c; s[i] = '\0'; return(i); } Formális paraméter tömb méret nélküli! Billenty zet puer problémákat okoz: karakterek (EOF is!) csak Enter leütés után olvasható ki mi történik, ha lim-nél több karaktert gépeltek be? getline() puer ürítés while(c!=eof && c!='\n') c=getchar();
45 Karakterláncok copy() void copy(char s1[], char s2[]) { /* s1 masolása s2-be. s2-t elég nagynak tételezi fel. */ int i; i = 0; while((s2[i]=s1[i])!= '\0') ++i; } string.h strcpy() stdio.h getline() POSIX
46 Karakterláncok pelda11.c /* PELDA11.C -- A leghosszabb szövegsor kiválasztása */ #include <stdio.h> #define MAXLINE 1000 int getline(char s[],int lim); void copy(char s1[], char s2[]); void main(void) { int len; /* Az aktuális sor hossza */ int max; /* Az aktuális max. sor hossza */ char line[maxline+1]; /* Az aktuális sor */ char save[maxline+1]; /* Az aktuális max. sor */ printf("a leghosszabb szövegsor kiválasztása\n"); printf("a sorokat zárja le Enter-rel!\n"); printf("utoljára adjon meg egy üres sort vagy Ctrl+Z-t!\n\n"); max = 0; while((len=getline(line, MAXLINE)) > 0) if (len>max) { max=len; copy(line, save); } printf("a leghosszabb sor:\n"); if(max > 0) printf("\n%s\n", save); } /* Volt sor */ int getline(char s[],int lim) {... } void copy(char s1[], char s2[]) {... }
47 Változók tulajdonságai Alapfogalmak Hatáskör/érvényességi tartomány Az a programterület, ahol hivatkozható, elérhet. Élettartam Az az id szak, amíg memóriát foglal. Változó deníciója Olyan deklaráció, melynek során memóriafoglalás is történik. Tárolási osztály Meghatározza, hogy az objektum 1 hol jön létre a memóriában (regiszter / statikus / dinamikus terület) 2 deniálja az objektum élettartamát
48 Változók tulajdonságai Lokális (bels ) változók Pl. i a copy(), getline() fv.-ekben Hatásköre: a blokk, amiben deniálták (és annak blokkjai; lokális hatáskör) Élettartama: amíg saját blokkjában van a vezérlés (lokális élettartam) Memóriaterület: futásid ben foglalt, rendszerint a veremben Alapértelmezett (implicit) kezd érték: nincs Alapértelmezett tárolási osztály: auto Függvények formális paraméterei lokális változók.
49 Változók tulajdonságai Változó deklarációja, pontosítva <tárolási-osztály><típusmódosítók><alaptípus> azonosítólista; Tárolási osztályok: auto register static extern Pl. auto i; auto signed int i;
50 Változók tulajdonságai További alapfogalmak Fordítási egység El feldolgozott forrásmodul. Részei: függvénydeníciók küls deklarációk Küls deklaráció Minden fv. testén kívüli deklaráció küls /globális változó
51 Változók tulajdonságai Globális (küls ) változók Hatásköre: fordítási egységben a deklarációtól a modul végéig (fájl/globális hatáskör) Élettartam: teljes futásid (statikus élettartam) Memóriaterület: fordítási id ben, els dleges adatterületen Alapértelmezett kezd érték: minden bit zérus Alapértelmezett tárolási osztály: extern extern explicit használata nincs memóriafoglalás! Azonos nev lokális változó elfedi modul1.c extern int i; extern char s[]; /*... */ modul2.c int i; char s[64]; /*... */
52 Változók tulajdonságai pelda12.c, els rész /* PELDA12.C -- A leghosszabb szövegsor kiválasztása */ #include <stdio.h> #define MAXLINE 1000 /* A beolvasott sor max. hossza */ char line[maxline+1]; /* Az aktuális sor */ char save[maxline+1]; /* Az aktuális max. sor */ int max; /* Az aktuális max. sor hossza */ int getline(void); void copy(void); void main(void) { int len; /* Az aktuális sor hossza */ printf("a leghosszabb szövegsor kiválasztása\n"); printf("a sorokat zárja le Enter-rel!\n"); printf("utoljára adjon meg egy üres sort vagy Ctrl+Z-t!\n\n"); max = 0; while((len=getline()) > 0) if (len>max) { max=len; copy(); } printf("a leghosszabb sor:\n"); if(max > 0) printf("\n%s\n",save); } /* Volt sor */
53 Változók tulajdonságai pelda12.c, második rész int getline(void) { /* MAXLINE méret karakterlánc beolvasása line-be. A függvény a karakterlánc hosszát adja vissza. line tömbnek MAXLINE+1 méret nek kell lennie. */ int c, i; for(i=0; i<maxline && (c=getchar())!=eof && c!='\n'; ++i) line[i]=c; line[i] = '\0'; return(i); } void copy(void) { /* line másolása save-be. save-t elég nagynak tételezi fel */ int i; i = 0; while((save[i]=line[i])!= '\0') ++i; }
54 Változók tulajdonságai Globális változók használata + fv. paraméter átadása megtakarítható nehezen újrahasznosítható fv.-ek: küls változókat is vinni kell lehetséges névegyezések csak lokális változók és fv. paraméterek esetén nincs ilyen gond nehezebben áttekinthet, karbantartható program
55 Inicializálás Kezd értékadás deklarációban. Statikus élettartam: program indulásakor, konstans kifejezéssel Lokális élettartam: minden létrejövetelkor, bármilyen legális kifejezéssel típus azonosító<=inicializátor>; típus tömbazonosító[<méret>]<=inicializátorlista>;, ahol típus <tárolási-osztály><típusmódosító><alaptípus> Az inicializátor egy hozzárendelés-kifejezés ( típusok, konverziók) Tömböknél: inicializátorlista elemszáma tömb elemszáma Ha inicializátorlista elemszáma < tömb elemszáma további elemek nullázódnak Ha <méret>-et nem specikálták, megállapítják inicializátorlista elemszámából
56 Inicializálás Deníció, hozzárendelés char k, j; k = 'b'; int i; i = 42; float ftomb[3]; ftomb[0] = 1.; ftomb[1] = 2.; ftomb[2] = 3.; int itomb[3]; itomb[0] = itomb[1] = itomb[2] = 0; char ctomb[4]; ctomb[0] = 'Z'; ctomb[1] = 's'; ctomb[2] = 'u'; ctomb[3] = '\0'; Inicializálás char k='b', j; int i = 42; float ftomb[3] = {1., 2., 3.}; int itomb[3] = {0}; char ctomb[4] = {'Z', 's', 'u', '\0'} char ctomb2[] = "Zsu";
Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós augusztus 29. Széchenyi István Egyetem, Gy r
Programozás alapjai (GKxB_INTM023) Széchenyi István Egyetem, Gy r 2019. augusztus 29. Feladat: írjuk ki az els 10 természetes szám négyzetét! #i n c l u d e i n t main ( v o i d ) { p r
RészletesebbenProgramozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós október 11. Széchenyi István Egyetem, Gy r
Programozás alapjai (GKxB_INTM023) Széchenyi István Egyetem, Gy r 2018. október 11. Függvények Mi az a függvény (function)? Programkód egy konkrét, azonosítható, paraméterezhet, újrahasznosítható blokkja
RészletesebbenFüggvények. Programozás I. Hatwágner F. Miklós november 16. Széchenyi István Egyetem, Gy r
Programozás I. Széchenyi István Egyetem, Gy r 2014. november 16. Áttekintés kel kapcsolatos fogalmak deklaráció Több, kompatibilis változat is elképzelhet. Meg kell el znie a fv. hívását. Mindenképp rögzíti
RészletesebbenProgramozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós február 18. Széchenyi István Egyetem, Gy r
Programozás (GKxB_INTM021) Széchenyi István Egyetem, Gy r 2018. február 18. Informatikai rendszerek fejlesztése Rendszertervezés (System Engineering) Üzleti folyamat tervezés (Business Process Engineering)
RészletesebbenProgramozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós március 3. Széchenyi István Egyetem, Gy r
Programozás (GKxB_INTM021) Széchenyi István Egyetem, Gy r 2018. március 3. Függvények Mi az a függvény (function)? Programkód egy konkrét, azonosítható, paraméterezhet, újrahasznosítható blokkja Miért
RészletesebbenA C programozási nyelv I. Bevezetés
A C programozási nyelv I. Bevezetés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv I. (bevezetés) CBEV1 / 1 A C nyelv története Dennis M. Ritchie AT&T Lab., 1972 rendszerprogramozás,
RészletesebbenA C programozási nyelv I. Bevezetés
A C programozási nyelv I. Bevezetés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv I. (bevezetés) CBEV1 / 1 A C nyelv története Dennis M. Ritchie AT&T Lab., 1972 rendszerprogramozás,
RészletesebbenTípusok és konstansok
Programozás I. Széchenyi István Egyetem, Gy r 2013. október 3. Szimbólumok Forráskód részei: szimbólumok (szintaktikai egységek, tokenek) fehér karakterek (összevonás, gyelmen kívül hagyás) Szimbólumok:
RészletesebbenProgramozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós szeptember 27. Széchenyi István Egyetem, Gy r
Programozás alapjai (GKxB_INTM023) Széchenyi István Egyetem, Gy r 2018. szeptember 27. Háromszög szerkeszthet ségének ellen rzése ANSI C (C89) megvalósítás #i n c l u d e i n t main ( v
Részletesebben1.1. A forrásprogramok felépítése Nevek és kulcsszavak Alapvető típusok. C programozás 3
Darvay Zsolt Típusok és nevek a forráskódban Állandók és változók Hatókörök és az előfeldolgozó Bevitel és kivitel Kifejezések Utasítások Mutatók Függvények Struktúrák és típusok Állománykezelés C programozás
RészletesebbenJárműfedélzeti rendszerek II. 1. előadás Dr. Bécsi Tamás
Járműfedélzeti rendszerek II. 1. előadás Dr. Bécsi Tamás A tárgy órái Előadás hetente (St101) csüt. 8:15 Bécsi Tamás C elmélet Ajánlott irodalom Dennis Ritchie: A C programozási nyelv Gyakorlat hetente
RészletesebbenM veletek és kifejezések
Programozás I. Széchenyi István Egyetem, Gy r 2013. szeptember 29. M veletek & kifejezések M veletek az operandusok száma szerint: Egyoperandusos, operátor operandus, pl. 6, sizeof(long) Kétoperandusos,
RészletesebbenProgramozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós szeptember 6. Széchenyi István Egyetem, Gy r
Programozás alapjai (GKxB_INTM023) Széchenyi István Egyetem, Gy r 2018. szeptember 6. Számítógép lehet ségei Tisztázandó kérdések: Mit tud a számítógép? (programnyelvek, programok,... ) A feladat melyik
RészletesebbenObjektumok tulajdonságai
Programozás I. Széchenyi István Egyetem, Gy r 2013. november 4. Objektumok attribútumai objektum Konstans vagy változó érték(ek)et tartalmazó, azonosítható memóriaterület. deklaráció Kapcsolatot teremt
RészletesebbenC programnyelv 1. Kedves Kollegina, Kolléga!
C programnyelv 1 Kedves Kollegina, Kolléga! A jegyzetet Önnek készítettem azért, hogy referencia anyaga legyen a Programnyelv és a Programfejlesztés tárgyakhoz. Szeretném a segítségét igénybe venni abból
RészletesebbenProgramozá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 4. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.10.10.. -1- Mit tudunk már? Típus fogalma char, int, float,
RészletesebbenProgramozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós február 18. Széchenyi István Egyetem, Gy r
Programozás (GKxB_INTM021) Széchenyi István Egyetem, Gy r 2018. február 18. Minimum és maximumkeresés u s i n g n a m e s p a c e s t d ; i n t main ( ) { c o u t
RészletesebbenMit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)
Programozás alapjai C nyelv 4. gyakorlat Szeberényi Imre BME IIT Mit tudunk már? Típus fogalma char, int, float, double változók deklarációja operátorok (aritmetikai, relációs, logikai,
RészletesebbenC programozás. 6 óra Függvények, függvényszerű makrók, globális és
C programozás 6 óra Függvények, függvényszerű makrók, globális és lokális változók 1.Azonosítók A program bizonyos összetevőire névvel (azonosító) hivatkozunk Első karakter: _ vagy betű (csak ez lehet,
RészletesebbenProgramozás I gyakorlat
Programozás I. - 2. gyakorlat Változók, kiiratás, bekérés Tar Péter 1 Pannon Egyetem M szaki Informatikai Kar Számítástudomány Alkalmazása Tanszék Utolsó frissítés: September 24, 2007 1 tar@dcs.vein.hu
RészletesebbenProgramozás I gyakorlat
Programozás I. - 2. gyakorlat Változók, típusok, bekérés Tar Péter 1 Pannon Egyetem M szaki Informatikai Kar Rendszer - És Számítástudományi Tanszék Utolsó frissítés: September 21, 2009 1 tar@dcs.vein.hu
RészletesebbenProgramozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek
Programozás alapjai gyakorlat 4. gyakorlat Konstansok, tömbök, stringek Házi ellenőrzés (f0069) Valósítsd meg a linuxos seq parancs egy egyszerűbb változatát, ami beolvas két egész számot, majd a kettő
Részletesebben2 TARTALOMJEGYZÉK ÉS ELŐSZÓ
C programnyelv 1 1BEVEZETÉS...5 2JELÖLÉSEK...7 3ALAPISMERETEK...8 3.1Forrásprogram...8 3.2Fordítás... 8 3.3Kapcsoló szerkesztés (link)... 12 3.4Futtatás...12 3.5Táblázat készítése... 13 3.6Bemenet, kimenet...
RészletesebbenBevezetés a C programozási nyelvbe. Az Általános Informatikai Tanszék C nyelvi kódolási szabványa
Miskolci Egyetem Általános Informatikai Tanszék Bevezetés a C programozási nyelvbe Az Általános Informatikai Tanszék C nyelvi kódolási szabványa Oktatási segédletek a levelező műszaki informatikus hallgatók
RészletesebbenC programozási nyelv Pointerek, tömbök, pointer aritmetika
C programozási nyelv Pointerek, tömbök, pointer aritmetika Dr. Schuster György 2011. június 16. C programozási nyelv Pointerek, tömbök, pointer aritmetika 2011. június 16. 1 / 15 Pointerek (mutatók) Pointerek
RészletesebbenJava II. I A Java programozási nyelv alapelemei
Java2 / 1 Java II. I A Java programozási nyelv alapelemei Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2009. 02. 09. Java II.: Alapelemek JAVA2 / 1 A Java formalizmusa A C, illetve
RészletesebbenProgramozás 1. Dr. Iványi Péter
Programozás 1. Dr. Iványi Péter 1 C nyelv B.W. Kernighan és D.M. Ritchie, 1978 The C Programming language 2 C nyelv Amerikai Szabványügy Hivatal (ANSI), 1983 X3J11 bizottság a C nyelv szabványosítására
RészletesebbenProgramozás II. 2. Dr. Iványi Péter
Programozás II. 2. Dr. Iványi Péter 1 C++ Bjarne Stroustrup, Bell Laboratórium Első implementáció, 1983 Kezdetben csak precompiler volt C++ konstrukciót C-re fordította A kiterjesztés alapján ismerte fel:.cpp.cc.c
RészletesebbenC programozás. 1 óra Bevezetés
C programozás 1 óra Bevezetés A C nyelv eredete, fő tulajdonságai 1. Bevezető C nyelv alapelemei többsége a BCPL (Basic Combined Programming Language {1963}) Martin Richards B nyelv Ken Thompson {1970}
RészletesebbenFü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 Szeberényi Imre BME IIT Függvények C program egymás mellé rendelt függvényekből áll. A függvény (alprogram) jó absztrakciós eszköz a programok
RészletesebbenProgramozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2)
Programozás alapjai C nyelv 7. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.11.05. -1- Függvények C program egymás mellé rendelt függvényekből
RészletesebbenJava II. I A Java programozási nyelv alapelemei
Java II. I A Java programozási nyelv alapelemei Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2008. 02. 19. Java II.: Alapelemek JAVA2 / 1 A Java formalizmusa A C, illetve az annak
RészletesebbenA C programozási nyelv V. Struktúra Dinamikus memóriakezelés
A C programozási nyelv V. Struktúra Dinamikus memóriakezelés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv V. (Struktúra, memóriakezelés) CBEV5 / 1 A struktúra deklarációja 1.
RészletesebbenProgramozás C nyelven FELÜLNÉZETBŐL elhullatott MORZSÁK. Sapientia EMTE
Programozás C nyelven FELÜLNÉZETBŐL elhullatott MORZSÁK Sapientia EMTE 2015-16 1 Felülnézet 1 Feltételes fordítás #if, #else, #elif, #endif, #ifdef, #ifndef stb. Felülnézet 2 #include: hatására a preprocesszor
RészletesebbenProgramozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós október 15. Széchenyi István Egyetem, Gy r
Programozás alapjai (GKxB_INTM023) Széchenyi István Egyetem, Gy r 2018. október 15. Leghosszabb 3D vektorok kikeresése 1 #i n c l u d e 2 #i n c l u d e 3 #d e f i n e MAX 1000
RészletesebbenBevezetés a C++ programozási nyelvbe
Bevezetés a C++ programozási nyelvbe Miskolci Egyetem Általános Informatikai Tanszék CPP0 / 1 Története A C++ programozási nyelv a C programozási nyelv objektum orientált kiterjesztése. Az ANSI-C nyelvet
RészletesebbenKészítette: Nagy Tibor István
Készítette: Nagy Tibor István A változó Egy memóriában elhelyezkedő rekesz Egy értéket tárol Van azonosítója (vagyis neve) Van típusa (milyen értéket tárolhat) Az értéke értékadással módosítható Az értéke
RészletesebbenProgramozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós április 4. Széchenyi István Egyetem, Gy r
Programozás (GKxB_INTM021) Széchenyi István Egyetem, Gy r 2018. április 4. Számok rendezése Feladat: Fejlesszük tovább úgy a buborék rendez algoritmust bemutató példát, hogy a felhasználó adhassa meg a
RészletesebbenMiről lesz ma szó? A PROGAMOZÁS ALAPJAI 1. Programtervezési stratégiák. Top-down tervezés. Top-down tervezés. Bottom-up tervezés. 4.
212. február 28. A PROGAMOZÁS ALAPJAI 1 Vitéz András egyetemi adjunktus BME Híradástechnikai Tanszék vitez@hit.bme.hu Miről lesz ma szó? Programtervezési stratégiák Top-down Bottom-up Függvények Szintaxis
RészletesebbenProgramozás alapjai gyakorlat. 2. gyakorlat C alapok
Programozás alapjai gyakorlat 2. gyakorlat C alapok 2016-2017 Bordé Sándor 2 Forráskód, fordító, futtatható állomány Először megírjuk a programunk kódját (forráskód) Egyszerű szövegszerkesztőben vagy fejlesztőkörnyezettel
RészletesebbenProgramozás alapjai 9.Gy: Struktúra 2.
Programozás alapjai 9.Gy: Struktúra 2. Ördögi részletek P R O A L A G 35/1 B ITv: MAN 2018.11.10 Euró árfolyam statisztika Az EURO árfolyamát egy negyedéven keresztül hetente nyilvántartjuk (HUF / EUR).
RészletesebbenA 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.
Függvények 1.Függvények...1 1.1.A függvény deníció szintaxisa... 1..Függvények érték visszatérítése...3 1.3.Környezettel kapcsolatos kérdések...4 1.4.Lokális változók használata...4 1.5.Rekurzív hívások...5.kód
RészletesebbenProgramozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós március 31. Széchenyi István Egyetem, Gy r
Programozás (GKxB_INTM021) Széchenyi István Egyetem, Gy r 2018. március 31. Városok közötti távolság Feladat: két város nevének beolvasása, városok közötti távolság megjelenítése. Kilépés azonos városok
RészletesebbenMintavételes szabályozás mikrovezérlő segítségével
Automatizálási Tanszék Mintavételes szabályozás mikrovezérlő segítségével Budai Tamás budai.tamas@sze.hu http://maxwell.sze.hu/~budait Tartalom Mikrovezérlőkről röviden Programozási alapismeretek ismétlés
RészletesebbenJárműfedélzeti rendszerek II. 3. előadás Dr. Bécsi Tamás
Járműfedélzeti rendszerek II. 3. előadás Dr. Bécsi Tamás 5.3. Mutatók,tömbök A mutató vagy pointer olyan változó, amely egy másik változó címét tartalmazza. A C nyelvű programokban gyakran használják a
RészletesebbenOperációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED
UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED AWK - szintaxis, vezérlési szerkezetek Operációs rendszerek 11. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Csuvik
Részletesebben1. Gyakorlat. Rövid elméleti összefoglaló. <tárolási osztály>típus <típus > változónév <= kezdőérték><, >;
Rövid elméleti összefoglaló 1. Gyakorlat A C++ nyelv hatékony, általános célú programozási nyelv, amely hagyományos fejlesztőeszközként és objektum-orientált programozási nyelvként egyaránt használható.
RészletesebbenProgramozás alapjai C nyelv 5. gyakorlat. Írjunk ki fordítva! Írjunk ki fordítva! (3)
Programozás alapjai C nyelv 5. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.10.17. -1- Tömbök Azonos típusú adatok tárolására. Index
RészletesebbenA programozás alapjai előadás. A C nyelv típusai. Egész típusok. C típusok. Előjeles egészek kettes komplemens kódú ábrázolása
A programozás alapjai 1 A C nyelv típusai 4. előadás Híradástechnikai Tanszék C típusok -void - skalár: - aritmetikai: - egész: - eger - karakter - felsorolás - lebegőpontos - mutató - függvény - union
RészletesebbenBevezetés a programozásba I.
Bevezetés a programozásba I. 6. gyakorlat C++ alapok, szövegkezelés Surányi Márton PPKE-ITK 2010.10.12. Forrásfájlok: *.cpp fájlok Fordítás: a folyamat, amikor a forrásfájlból futtatható állományt állítunk
RészletesebbenA C programozási nyelv II. Utasítások. A függvény.
A C programozási nyelv II. Utasítások. A függvény. Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv II (Utasítások, fuggvények) CBEV2 / 1 Kifejezés utasítás Kifejezés utasítás, blokk
RészletesebbenB I T M A N B I v: T M A N
Műszaki informatika Tesztek+Megoldások B I v: T 2015.04.19 M A N 1/42 Tesztek + Megoldások Alapfogalmi kitérő kérdéssor IPA kérdéssor CPA kérdéssor 2/42 Ellenőrző kérdések 1. 1. Melyik Neumann elv következménye
RészletesebbenAdatszerkezetek és algoritmusok
2009. november 13. Ismétlés El z órai anyagok áttekintése Ismétlés Specikáció Típusok, kifejezések, m veletek, adatok ábrázolása, típusabsztakció Vezérlési szerkezetek Függvények, paraméterátadás, rekurziók
RészletesebbenProgramozás alapjai 2.Gy: A C nyelv alapjai P R O
Programozás alapjai 2.Gy: A C nyelv alapjai. P R O A L A G 1/32 B ITv: MAN 2018.10.02 Code::Blocks Indítsa el mindenki! 2/32 1 Code::Blocks Új projekt 2 3 4 5 3/32 Code::Blocks Forráskód Kód fordítása:
RészletesebbenMechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe
Mechatronika és mikroszámítógépek 2017/2018 I. félév Bevezetés a C nyelvbe A C programozási nyelv A C egy általános célú programozási nyelv, melyet Dennis Ritchie fejlesztett ki Ken Thompson segítségével
RészletesebbenAWK programozás, minták, vezérlési szerkezetek
10 AWK programozás, minták, vezérlési szerkezetek AWK adatvezérelt szkriptnyelv text processing, adat kiterjesztés, tagolt adatok automatizált soronkénti feldolgozása a forrásállományt soronként beolvassa
RészletesebbenBevezetés a programozásba I.
Bevezetés a programozásba I. 3. gyakorlat Tömbök, programozási tételek Surányi Márton PPKE-ITK 2010.09.21. ZH! PlanG-ból papír alapú zárthelyit írunk el reláthatólag október 5-én! Tömbök Tömbök Eddig egy-egy
RészletesebbenBevezetés a programozásba I.
Bevezetés a programozásba I. 8. gyakorlat Fájlkezelés Surányi Márton PPKE-ITK 2010.11.02. Fájlkezelés C++-ban C++-ban van lehet ségünk fájlok kezelésére. Itt már tényleges fájlokkal dolgozunk, nem pedig
RészletesebbenMutató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 8. gyakorlat Szeberényi mre BME T Programozás alapjai. (C nyelv, gyakorlat) BME-T Sz.. 2005.11.07. -1- Mutatók és címek (ism.) Minden változó és függvény
Részletesebben1. fejezet: Alapismeretek
1. fejezet: Alapismeretek A C nyelv tanulását kezdjük az alapismeretek gyors elsajátításával. Célunk az, hogy működőképes programokon, de a részletekbe, formális szabályokba és kivételekbe való belebonyolódás
Részletesebben5. gyakorlat. Konstansok Tömbök Stringek
5. gyakorlat Konstansok Tömbök Stringek Konstansok A C nyelvben a konstansok preprocesszor makrókkal vannak megvalósítva. Konstansdefiniálás alakja: #define NÉV érték Az érték bármi lehet, később a fordítás
RészletesebbenC programozási nyelv
C programozási nyelv Előfeldolgozó utasítások Dr Schuster György 2011 május 3 Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 1 / 15 A fordítás menete Dr Schuster György
RészletesebbenProgramozás I. gyakorlat
Programozás I. gyakorlat 1. gyakorlat Alapok Eszközök Szövegszerkesztő: Szintaktikai kiemelés Egyszerre több fájl szerkesztése pl.: gedit, mcedit, joe, vi, Notepad++ stb. Fordító: Szöveges file-ban tárolt
Részletesebben7/8. gyakorlat Karaktertömbök és sztringkezelés
7/8. gyakorlat Karaktertömbök és sztringkezelés 1. feladat: Karaktertömb kezelése Egy beolvasott karaktert lineáris kereső eljárással keressen meg az angol ábécében (az ábécé betűit tárolja inicializált
RészletesebbenProgramozás C és C++ -ban
Programozás C és C++ -ban 2. További különbségek a C és C++ között 2.1 Igaz és hamis A C++ programozási nyelv a C-hez hasonlóan definiál néhány alap adattípust: char int float double Ugyanakkor egy új
RészletesebbenA C programozási nyelv IV. Deklaráció és definíció
A C programozási nyelv IV. Deklaráció és definíció Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv IV. (Deklaráció és definíció) CBEV4 / 1 Definíció és deklaráció Definíció: meghatározza
RészletesebbenProgramozás alapjai C nyelv 8. gyakorlat. Mutatók és címek (ism.) Indirekció (ism)
Programozás alapjai C nyelv 8. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.11.07. -1- Mutatók és címek (ism.) Minden változó és függvény
Részletesebben10. gyakorlat Tömb, mint függvény argumentum
10. gyakorlat Tömb, mint függvény argumentum 1. feladat: A 6. gyakorlat 1. feladatát oldja meg a strukturált programtervezési alapelv betartásával, azaz minden végrehajtandó funkciót külön függvényben
RészletesebbenEl feldolgozó. Programozás I. Hatwágner F. Miklós október 16. Széchenyi István Egyetem, Gy r
Programozás I. Széchenyi István Egyetem, Gy r 2013. október 16. feladatai Emlékeztet : forrásfájl (el feldolgozó fordító) kapcsoló-szerkeszt futtatható állomány tevékenységei: kifejti a makrókat (dene)
RészletesebbenAWK programozás, minták, vezérlési szerkezetek
10 AWK programozás, minták, vezérlési szerkezetek AWK futtatási módok AWK parancs, közvetlen programkódmegadás: awk 'PROGRAMKÓD' FILE példa: ls -l awk '{print $1, $5}' a programkód helyére minden indentálás
RészletesebbenProgramozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar
Programozás I. 3. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Antal Gábor 1 Primitív típusok Típus neve Érték Alap érték Foglalt tár Intervallum byte Előjeles egész 0 8 bit
Részletesebben8. gyakorlat Pointerek, dinamikus memóriakezelés
8. gyakorlat Pointerek, dinamikus memóriakezelés Házi ellenőrzés Egy számtani sorozat első két tagja A1 és A2. Számítsa ki a sorozat N- dik tagját! (f0051) Egy mértani sorozat első két tagja A1 és A2.
RészletesebbenProgramozás I gyakorlat
Programozás I. - 9. gyakorlat Sztringkezelés, mutatók Tar Péter 1 Pannon Egyetem M szaki Informatikai Kar Rendszer- és Számítástudományi Tanszék Utolsó frissítés: November 2, 2009 1 tar@dcs.vein.hu Tar
Részletesebben0.1. Mi az a standard be- és kimenet?... 1. 0.2. A két mintafeladat leírása
KöMaL Technikai tanácsok az I- és S-jelű pontversenyhez A standard be- és kimenet kezelése Tartalomjegyzék 0.1. Mi az a standard be- és kimenet?............................. 1 0.2. A két mintafeladat leírása.................................
Részletesebben1. Egyszerű (primitív) típusok. 2. Referencia típusok
II. A Java nyelv eszközei 1. Milyen eszközöket nyújt a Java a programozóknak Korábban már említettük, hogy a Java a C nyelvből alakult ki, ezért a C, C++ nyelvben járatos programozóknak nem fog nehézséget
RészletesebbenFlex tutorial. Dévai Gergely
Flex tutorial Dévai Gergely A Flex (Fast Lexical Analyser) egy lexikáliselemz -generátor: reguláris kifejezések sorozatából egy C/C++ programot generál, ami szövegfájlokat képes lexikai elemek sorozatára
Részletesebben10. gyakorlat. Pointerek Tárolási osztályok
10. gyakorlat Pointerek Tárolási osztályok Pointer A pointer egy mutató egy memóriacellára, egyfajta "parancsikon", csak nem fájlokra, hanem változókra. Létrehozás: tipus * név;, ahol a típus a hivatkozott
RészletesebbenJárműfedélzeti rendszerek II. 2. előadás Dr. Bécsi Tamás
Járműfedélzeti rendszerek II. 2. előadás Dr. Bécsi Tamás 4.11. A C előfeldolgozó rendszer A fordítás első lépése a C esetében a különböző nyelvi kiterjesztések feldolgozása: másik állomány tartalmának
RészletesebbenA C programozási nyelv III. Pointerek és tömbök.
A C programozási nyelv III. Pointerek és tömbök. Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv III. (Pointerek, tömbök) CBEV3 / 1 Mutató (pointer) fogalma A mutató olyan változó,
RészletesebbenAlprogramok, paraméterátadás
ELTE Informatikai Kar, Programozási Nyelvek és Fordítóprogramok Tanszék October 24, 2016 Programozási nyelvek Alprogramok Függvények, eljárások Metódusok Korutinok stb. Alprogramok Alprogram: olyan nyelvi
RészletesebbenProgramozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Függvények. Dr. Bécsi Tamás 6. Előadás
Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Függvények Dr. Bécsi Tamás 6. Előadás Bevezetés Egy idő után az egyetlen main(){ függvénnyel megírt programunk túl nagy méretű lesz. Vannak
RészletesebbenProgramozás C++ -ban 2007/1
Programozás C++ -ban 2007/1 1. Különbségek a C nyelvhez képest Több alapvető különbség van a C és a C++ programozási nyelvek szintaxisában. A programozó szempontjából ezek a különbségek könnyítik a programozó
RészletesebbenAdatszerkezetek és algoritmusok
2012. október 18. Ismétlés El z órai anyagok áttekintése Ismétlés Specikáció Típusok, kifejezések, m veletek Adatok ábrázolása a memóriában Vezérlési szerkezetek Függvények Osztályok, objektumok Paraméterátadás
RészletesebbenVezérlési szerkezetek. Szelekció Ciklusok
Vezérlési szerkezetek Szelekció Ciklusok Szelekciós vezérlés A program egy feltétel teljesülése alapján választja ki, hogy mely műveleteket hajtsa végre. Alakja: if ( feltétel ) { műveletek, ha feltétel
RészletesebbenA C programozási nyelv III. Pointerek és tömbök.
A C programozási nyelv III. Pointerek és tömbök. Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv III. (Pointerek, tömbök) CBEV3 / 1 Mutató (pointer) fogalma A mutató olyan változó,
RészletesebbenProgramozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Mutatók. Dr. Bécsi Tamás 7. Előadás
Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Mutatók Dr. Bécsi Tamás 7. Előadás 5.3. Mutatók,tömbök A mutató vagy pointer olyan változó, amely egy másik változó címét tartalmazza.
Részletesebben3 A C programozási nyelv szintaktikai egységei
3 A C programozási nyelv szintaktikai egységei 3.1 Azonosítók Betűk és számjegyek sorozata, betűvel vagy _ (aláhúzás) karakterrel kell kezdődnie. A nagy- és kisbetűk különbözőek. Az azonosítók tetszőleges
RészletesebbenVezérlési szerkezetek
Vezérlési szerkezetek Szelekciós ok: if, else, switch If Segítségével valamely ok végrehajtását valamely feltétel teljesülése esetén végezzük el. Az if segítségével valamely tevékenység () végrehajtását
RészletesebbenC változók. Feladat: Deklaralj egy valos, egy karakter es ket egesz tipusu valtozot! int main() {
C változók Feladat: Deklaralj egy valos, egy karakter es ket egesz tipusu valtozot! float valos; char karakter; int egesz1, egesz2; /* Tobb valtozo ugyan olyan tipusu lehet, ezek deklaraciojat csoportosthatjuk.
RészletesebbenSzövegek C++ -ban, a string osztály
Szövegek C++ -ban, a string osztály A string osztály a Szabványos C++ könyvtár (Standard Template Library) része és bár az objektum-orientált programozásról, az osztályokról, csak később esik szó, a string
RészletesebbenProgramozás I. 5. Előadás: Függvények
Programozás I 5. Előadás: Függvények Függvény Egy alprogram Egy C program általában több kisméretű, könnyen értelmezhető függvényből áll Egy függvény megtalálható minden C programban: ez a main függvény
RészletesebbenProgramozás I gyakorlat. 10. Stringek, mutatók
Programozás I gyakorlat 10. Stringek, mutatók Karakter típus A char típusú változókat karakerként is kiírhatjuk: #include char c = 'A'; printf("%c\n", c); c = 80; printf("%c\n", c); printf("%c\n",
RészletesebbenProgramozás BMEKOKAA146. Dr. Bécsi Tamás 1. Előadás
Programozás BMEKOKAA146 Dr. Bécsi Tamás 1. Előadás Bemutatkozás Előadó: Dr. Bécsi Tamás St.106, (1)463-1044, becsi.tamas@mail.bme.hu Közlekedés-, és Járműirányítási Tanszék www.kjit.bme.hu Programozás
RészletesebbenAWK programozás Bevezetés
09 AWK programozás Bevezetés AWK adatvezérelt szkriptnyelv text processing, adat kiterjesztés, tagolt adatok automatizált soronkénti feldolgozása a forrásállományt soronként beolvassa és feldolgozhatóvá
Részletesebben1. Template (sablon) 1.1. Függvénysablon Függvénysablon példányosítás Osztálysablon
1. Template (sablon) 1.1. Függvénysablon Maximum függvény megvalósítása függvénynév túlterheléssel. i n l i n e f l o a t Max ( f l o a t a, f l o a t b ) { return a>b? a : b ; i n l i n e double Max (
RészletesebbenInformációs Technológia
Információs Technológia A C programozási nyelv (Típusok és operátorok) Fodor Attila Pannon Egyetem Műszaki Informatika Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010 szeptember
RészletesebbenProgramozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós május 6. Széchenyi István Egyetem, Gy r
Programozás (GKxB_INTM021) Széchenyi István Egyetem, Gy r 2018. május 6. Parancssori paraméterek Parancssorban történ programindításkor a program nevét követ en szóközökkel elválasztva paraméterek (command
RészletesebbenMérnöki programozás 7. Szerkesztette: dr. Vass Péter Tamás
Mérnöki programozás 7 Szerkesztette: dr. Vass Péter Tamás Függvények Függvény (function) egyedi azonosítónévvel ellátott számítási egység. A függvények formájában kidolgozott programkódok viszonylag egyszerűbb
RészletesebbenMegoldott programozási feladatok standard C-ben
Megoldott programozási feladatok standard C-ben MÁRTON Gyöngyvér Sapientia Erdélyi Magyar Tudományegyetem, Matematika-Informatika Tanszék Marosvásárhely, Románia mgyongyi@ms.sapientia.ro Tartalomjegyzék
RészletesebbenBevezetés a programozásba Előadás: A const
Bevezetés a programozásba 2 6. Előadás: A const ISMÉTLÉS Interface - Implementation struct Particle { int x,y; unsigned char r,g,b; void rajzol(); }; }; void Particle::rajzol() { gout
Részletesebben