programoz s i.heckenas/okt/cgyak1.pdfprogramoz s i. a c pr ogramoz s ala pjai 1. gyak orlat j....

13
Programozás I. A C programozás alapjai 1. Gyakorlat J. Carelman: Leegyszer!sített számológép 2 Gyakorlatok Hely, id"pont: D104, hétf" 10:55-12:35 Gyakorlatvezet"k: Heckenast Tamás, B603, [email protected] Tormási Alex, tormasia@configuration.hu

Upload: others

Post on 24-Oct-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

  • Programozás I.A C programozás alapjai

    1. Gyakorlat

    J. Carelman: Leegyszer!sített számológép

    2

    Gyakorlatok

    • Hely, id"pont:• D104, hétf" 10:55-12:35

    • Gyakorlatvezet"k:• Heckenast Tamás, B603,

    [email protected]

    • Tormási Alex, [email protected]

  • 3

    Gyakorlatok tematikája

    • Bevezetés• min. HW és op. rendszer ismeretek• strukt. progr. alapok: algoritmusok, néhány

    adattípus, vezérlési szerkezetek

    • fejleszt" környezetek• Értékadás, elágazások, ciklusok• Standard I/O, stringek• Számábrázolás, portabilitás, printf• String konverziók• Bitm!veletek• Keresés, string parzolás• Rekurzív függvények• Pointerek kezelése

    4

    Ajánlott irodalom• B. W. Kernighan, D. M. Ritchie: A C

    programozási nyelv, M!szaki Könyvkiadó, 1985

    • Bauer Péter: Programozás I-II. C programnyelv, Universitas-Gy"r Kht., 2005

    • Németh János: Turbo C 2.0 fejleszt"rendszer, LSI Oktatóközpont, 1991

    • Peth" Ádám: abC C programozási nyelvkönyv, Számalk, 1990

    • B. W. Kernighan, R. Pike: A UNIX operációs rendszer, M!szaki Könyvkiadó, 1987

    • Pere László: UNIX - GNU/Linux programozás C nyelven, Kiskapu Kiadó, 2003

    • A. Koenig: C csapdák és buktatók, Kiskapu Kiadó, 2005

  • 5

    Oktatási anyagok

    • https://ivi.sze.hu/main.php?fajl=tantargyak&szervegys=in&SID

    • http://www.sze.hu/~bauer/Prog1fel.htm

    • http://www.sze.hu/~heckenas/okt/

    6

    Fejleszt" környezetek

    • Bármely ANSI C környezet, compiler, (csak standard I/O, karakteres felület)

    • Borland Turbo C (DOS, “Windows”, DOSBox)• http://bdn.borland.com/museum/antiquesoftware

    • gcc (Windows, Linux, Mac OS X)• stb. ...

  • 7

    Bevezetés

    • Miért éppen C?• El"nyök

    • népszer! és elterjedt - “hordozható”• alacsonyszint! magasszint! programozási nyelv• kevés szemantikai kényszer - elegáns szintaxis• sok ráépül" további nyelv

    • (C++, Objective-C, Java, C#, stb.)• Hátrányok

    • alacsonyszint! magasszint! programozási nyelv• kevés szemantikai kényszer - elegáns szintaxis• lapos tanulási görbe

    8

    Alapfogalmak

    • Hardver (HW)• Szoftver (SW)• Operációs rendszer (OR)• Algoritmus• Program• Programozási nyelv

  • 9

    HW és SW

    • HW• az információs rendszer fizikai

    elektronikus és mechanikus részei

    • SW• a rendszer m!ködését megadó

    programok kódolt utasítások formájában

    • Neumann elv• memóriában tárolt program• bináris rendszer

    10

    HW és SW (folyt.)• HW architektúra

    • SW rendszer

    CPU

    Memória

    I/O

    vezérl!kPerifériák

    Sin

    OR mag

    HW

    OR szolg.

    Alkalmazások

  • 11

    Operációs rendszerek

    • OR• a számítógépet funkcionálisan

    használhatóvá tév" irányító szoftver

    • programok futtatása• er"források lefoglalása• ütemezés• I/O kezelés• felhasználói felület (parancs

    értelmez")

    12

    Algoritmusok

    • Algoritmus• lépésr"l lépésre definiált eljárás

    valamilyen probléma megoldására

    • véges számú definiált szabály, utasítás

    • véges lépésszám• ismétl"d" utasítások

  • 13

    Magasszint! programozási nyelvek

    • Prog. nyelv generációk• 1GL• 2GL• 3GL

    • Formális nyelvek• véges szókészlet, rögzített szintaktika és

    szemantika

    • Fordító programok• forráskód -> végrehajtható (natív) kód

    • Interpreterek• forrás nyelv értelmezése

    Forráskód

    int main(){...}

    Fordító program

    Futtatható program

    001110101010101010101111

    2GL

    void main(void) {

    int x,y;

    for (y=0;y

  • 15

    Programok

    • Program: utasítások rendezett halmaza

    • végrehajtás - folyamat• Programozási szerkezetek• szekvencia• feltételes elágazások• ciklusok• eljárás absztrakció

    16

    Programok (folyt.)

    • Program elemek• Adatok• M!veletek

    • Leírásuk• Nevek (referenciák, literálok)• változók

    • Típusok

  • 17

    Adatábrázolás

    • Bináris reprezentációk• Numerikus értékek• egészek (el"jel?)• lebeg"pontos számok

    • Szöveg (karakterek)• Egyszer! adattípusok• Összetett adattípusok

    18

    M!veletek

    • Operátorok• Aritmetikai m!veletek• Bit m!veletek• Logikai m!veletek• Vezérlési utasítások

  • 19

    Blokk diagramok

    • Algoritmusok leírásaStart

    Input/

    Output

    Döntés

    Stop

    Tevékenység Tevékenység

    Feltétel

    Tevékenységek

    Feltétel

    Tevékenységek

    Elöltesztel" Hátultesztel"

    ciklus

    20

    Struktúrált programozás

    • Top-down megközelítés• Olvashatóbb, könnyebben

    karbantartható kód

    • Hierarchikus vezérlési szerkezetek• szekvencia• szelekció• ciklusok• csak egy belépési és kilépési

    pont

  • 21

    Példák

    !"#$%&'(')*#+,-./)0'#12#'#134#1%45&%)6)#60#)%45&%)6)7

    !"#$%%&'()*($(%&+,-(.-/(0-10'012(3$45(0-10'*"46'('7($(3*+8*"*"9('78*4*:0%*'*1;!"#$%#%"'()*+,-&".-%%/&0"1"2"3$45$16,7-8.9-,"8#%-:;&"-$$-"1"&@';

    C"E-81@1%"6-548@?=?D4:".-:-==/&"9-"1"D?%F8%-=:%-8G"?:71=#(*+0%:(%:,32(,I(J:,3=1%&'('7($:(,H(.8$'1?-7,"7%/(0-10'*12($:$:($:(*+0%:(%:,3?'(%:?-:$1,1()K19"(,K7+;

    I99-,"1:"-=-%9-,"%-&;,%=/,&"-8","-88-,G$:J%%-,"%J$%#,G"9-48.1=?=?%A8B"C"%:,3$2($(%?-?:$1(&1?"%E(*"*30@*'(7@5*R*

    @ S+0%:

    %-%% "?881,@AB"C",#57:-%$-"-6-8#=%"=:4$:?==18"D-87-%%-=>%-%%/&B

    8"#$%&'(')*#9:60,/)0%#12#',#%&;,;#$%&'(')?)%&&%=;4,600%&7

    -?+-$3&@'$1(A+B2(C?+B($(%&+,-(.-/(0-10'0@*'(D%$'(>?:71=#(#$"E%(0-10'*1(8?+$54?@(*";(F$($()*?"#$%?11($5$1(@*3(8*"*"(3*+($('G#*1*"30@B*'@*'2($''?-(7%301*"46'($:($5$1)*?"#$%,%1(37@5$557+2($3=+(C*"B*%(0-10'*1(@*3('$>&@';

    C"E-81@1%"6-548@?=?D4:".-:-==/&"9-"1"D?%F8%-=:%-8G"?:71=#(*+0%:(%:,32(,I(J:,3=1%&'('7($:(,H(.8$'1?-7,"7%/(0-10'*12($:$:($:(*+0%:(%:,3?'(%:?-:$1,1()K19"(,K7+;

    I99-,"1:"-=-%9-,"%-&;,%=/,&"-8","-88-,G$:J%%-,"%J$%#,G"9-48.1=?=?%A8B"C"%:,3$2($(%?-?:$1(&1?"%E(*"*30@*'(7@5*R*

    @ S+0%:

  • 23

    Házi feladat

    • Oldjuk meg az el"z" feladatot az i segédváltozó használata nélkül (n értékét nem kell meg"rizni)!

    24

    Példák

    !"#$%&'(')*#+&',-).'#/)#'0#%&101#$%&'(')#2%34&(/./)#5367#8436#'0#9:;%,2,&?.)#)'@)'&2'0049A

    !"#$%&'&('&)*'+*",-,&".+&",/*0.*'*1-2"3$014".*563,%.73*"3262',"15689':*!62",*6 *0;&03"*"#4".02",*1/%&*",,"1/;+0.0;":*B*(8;7$*.+8$*"#4*(8;7$.+-#*(8;7$*7,=',81'3*(7..+8&*@7#9'*&8;7,16C*30./AA*'*@",'='&7&*&728AA*@7#9%3*@"9,".+&"16:*D"#4E3*0.+;"

  • 25

    Példák

    !"#$%&'(')*#+,)'--'#,.#'/#%&0/0#$%&'(')#1%23&(4-45'6#)'&4&7')8#.-19)&0(0#:;32;'1;9-/&%)%,%)<

    !"#$%&'()*+"#$%&'"&,-.,$/.0"#&(()$1"1$%&,230"4+5()4%6"7$,1&)80"#4,5411"1*'994/:";//40".)",4()".)"4,(4"'?/-?+"GH7.,"04)-&&':?)-'#1%2@#732A#'#74;31-/B2#(%;9,-/B2EC%<

    !":8.#1+&%1();.5.,3"(,+