C Nyelv 1 Óra

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 19

C programozs

1 ra Bevezets

A C nyelv eredete, f tulajdonsgai


1. Bevezet
C nyelv alapelemei tbbsge a BCPL (Basic Combined Programming Language {1963}) Martin Richards B nyelv Ken Thompson {1970} AT&T Bell Laboratriumok cgnl (els UNIX OP rendszer) Dennis Ritchie {1971} a B nyelv j vltozata C nyelv

Amerikai Szabvnygzi Hivatal (ANSI) 1983 bizottsg a C nyelv szabvnyos vltozatnak a kidolgozsa ANSI C, 1989

2. Kitekints
1954 UNIVAC I, az els komputerelads az amerikai vdelmi minisztrium rszre (kszlt a Harvardon), FORTRAN programozsi nyelv, IBM-fejleszts, IBM 650, az els tmeggyrts szmtgp 1958 ALGOL 58 programozsi nyelv (ALGOrithmic Language -- algoritmikus nyelv) 1959 COBOL programozsi nyelv (COmmon Business Oriented Language), DEC PDP-1 -- az els minikomputer 1960 ALGOL 60 programozsi nyelv 1965 BASIC programozsi nyelv

1969 lzerprinter, UNIX opercis rendszer (Thompson s Ritchie, AT&T) 1970 Pascal programozsi nyelv 1971 C programozsi nyelv 1985 C++ programozsi nyelv

3. Ajnlott irodalmak
A C programozsi nyelv - Az ANSI szerinti vltozat B. W. Kernighan - D. M. Ritchie; Mszaki Knyvkiad, 1995 The C Programming Language Second Edition Brian W. Kernighan, Dennis M. Rithie; Prentice Hall, 1988 Programozzunk C nyelven! Benk Tiborn, Benk Lszl, Tth Bertalan; Computer Book, Bp., 1995 The C Programming Language Brian W. Kernighan, Dennis M. Rithie; Prentice Hall, 1978 A C programozsi nyelv B. W. Kernighan - D. M. Ritchie; Mszaki Knyvkiad, 1985 ANSI C: American National Standard X3.159-1989 C - A Reference Manual Samuel P. Harbison:, Guy L. Steele Jr.; Prentice Hall, 1991

4. Algoritmusok megadsa
(a) Szban (b) Folyamatbra

(c) Struktogram

(d) Mondatszer lers

5. C nyelv tulajdonsgai
Magasszint nyelvekre jellemz adatszerkezetek s vezrlsi struktrk Rendszerprogramozsi nyelv Standard fggvnykszlet, ami nem rsze a nyelvnek, de elengedhetetlen A C nyelv tbb adattpussal is rendelkezik alap karakteres-, egsz-, lebegpontos tpusok (tbbfle mretben) szrmaztatott mutatk (pointerek), tmbk, struktrk, unik

A nyelv kifejezsi: opertorokkal sszekapcsolt operandusokbl llnak (+ rtkads s a fggvnyhvs)

Kifejezs: pl. a+b

a=b

v1=v2=z-5

szam=1

fuggveny (a, b)

Kifejezs-utasts: pl. a+b; a=b;

kifejezs ; v1=v2=z-5;

utasts szam=1; fuggveny(a, b);

Programvezrl konstrukcik 1. Utasts csoportok kialaktsa (Blokk): { defincik s deklarcik utastsok } 2. Ktirny elgaztats
IF if ( felttel ) vagy: if ( felttel ) else utasts1 utasts1 utasts2

3. Valamely eset kivlasztsa az esetek lehetsges halmazbl

SWITCH switch ( egsz kifejezs ) { case konstans1 : utasts1_1; utasts1_2 ... case konstans2 : utasts2_1; ... ... default: utasts_d_1; ... } Megjegyzs:
A kilpshez break utastst kell hasznlni. Ha egyik konstanssal sem egyezik ha van default g, azt hajtja vgre, ha nincs default g, egyiket sem.

4. A tevkenysg folytatsa belpsi felttellel


WHILE while ( felttel ) utasts Vgrehajts: amg a felttel igaz, vgrehajtja az utastst FOR for ( inicializl kifejezs ; felttel kif. ; lptet kif. ) utasts vagy for ( inicializl kifejezs ; felttel kif. ; lptet kif. ) {utastsok} Vgrehajts: inicializl kifejezs kirtkelse (s rtknek eldobsa), ciklusban: felttel kirtkelse ha nem igaz, vge a ciklusnak utasts vgrehajtsa lptet kifejezs kirtkelse

5. A tevkenysg folytatsa kilpsi felttellel


DO-WHILE do utasts while ( felttel ) Vgrehajts: utasts, majd ha a felttel igaz, jra, mgnem a felttel hamis lesz.

6. A ciklusok mkdsnek szablyozsa


BREAK break; Vgrehajts: kilp az t kzvetlenl tartalmaz ciklusbl (while, do, for) ill. switch utastsbl

CONTINUE continue; Vgrehajts: az t kzvetlenl tartalmaz ciklus magjnak tovbbi rszt tlpi, azaz a felttelvizsglattal (while, do) illetve a lptetssel (for) folytatja

A forrsprogram felptst az elfordt (preprocesszor) segti (ami egy szvegbehelyettest program, amely feldolgozza a neki szl parancsokat s szveget llt el, melyet a C fordt fordt le): szvegbeptssel (include) szveghelyettestssel (makr) feltteles fordtssal
Az elfeldologoz parancsok alakja: #parancs argumnetum1 argumentum2 ahol a # eltt, valamint a # a s a parancs kztt csak szkzk s tabultor jelek lehetnek.

Fontosabb preprocesszor parancsok:


#include: file belevtele #include <file_nev> #include "file_nev" #include preprocesszor_tokenek

teljes file behelyettestse az #include -ot tartalmaz sor helyre; <file_nev> :a fordthoz tartoz szabvnyos include knyvtrban keres elszr a preproceszor; a knyvtri un. header file-okhoz (dekralcis llomnyokhoz) hasznljuk "file_nev" :a sajt, pl. aktulis knyvtrban keres elszr; a sajt header file-okhoz szoktuk hasznlni #include -ok tetszleges mlysgben egymsba gyazhatak, ha a megvalsts ezt nem korltozza. afile.c: bfile.c: cfile.h Pl.:
-------a1a1 #include "bfile.c" a2a2 -------b1b1b1 #include <cfile.h> b2b2b2 ------cccccccc

Az elfeldolgozs eredmnye, a C compiler ezt kapja:


a1a1 b1b1b1 cccccccc b2b2b2 a2a2

#define: makr definilsa

#define makronv #define makronv makrotrzs #define makronv(paramter1,paramter2...) makrotrzs

a makronv helyre behelyettesti a makrotrzset, a makrotrzsben a paramterek helyre az aktulis paramterek kerlnek

A C nyelv programok feldolgozsa forrskd (forrsprogram) C file (code.c) C elfeldolgoz (preprocesszor) + C fordt (compiler) trgymodul (object modul/file) obj file (code.o) sszefz-szerkeszt (linkage editor; linker) vgrehajthat program; futtathat llomny (code)

parancsok:
gcc code.c -o code gcc -E code.c -o code.pp gcc -c code.c

6. Egy C forrskd (els programom)


#include <stdio.h> main() { } printf("Az elso C programom\n"); A printf fggvny deklarcijt (prototpust tartalmazza) ' Adatfolyam-kezel fggvnyek'

main fggvny; ennek mindig kell szerepelnie a kdban!

A printf parancs:
kapcsolk:

\n soremels \v fggleges tabultor \' egyes idzjel \Xnn az nn hexa kd karakter kirsa

\r kocsivissza \f lapdobs \" ketts idzjel \\ \ jel kirsa

\t vzszintes tabultor \b cursor visszalptetse (backspace) \Onn az nn oktlis kd karakter kirsa

You might also like