C programozás. 1 óra Bevezetés



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

C programozási nyelv

Programzás I gyakorlat

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

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

A C programozási nyelv I. Bevezetés

A TANTÁRGY ADATLAPJA

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

A C programozási nyelv I. Bevezetés

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

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

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

1. Bevezetés szeptember 9. BME Fizika Intézet. Szám. szim. labor ea. Tőke Csaba. Tudnivalók. feladat. Tematika. Moodle Házi feladatok

Mit 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 II. 2. Dr. Iványi Péter

Java programozási nyelv

Programozási nyelvek JAVA EA+GY 1. gyakolat

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

Programozási nyelvek (ADA)

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

A C# programozási nyelv alapjai

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

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

Adatbázis rendszerek Gy: Algoritmusok C-ben

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

A programozás alapjai

Java II. I A Java programozási nyelv alapelemei

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

Bevezetés a C++ programozási nyelvbe

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

C programozás. 6 óra Függvények, függvényszerű makrók, globális és

Információs Technológia

Miről lesz ma szó? A PROGAMOZÁS ALAPJAI 1. Bemutatkozás. Bemutatkozás. Bemutatkozás. Bemutatkozás. 1. előadás. A tárgy címe: A programozás alapjai 1

Programozás C és C++ -ban

Java II. I A Java programozási nyelv alapelemei

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

Függvény pointer. Feladat: Egy tömbben soroljunk fel függvényeket, és hívjuk meg valahányszor.

Komputeralgebra Rendszerek

Vezérlési szerkezetek

Programozás. Programozás villamosmérnököknek

Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Előfeldolgozó rendszer Tömbök. Dr. Bécsi Tamás 4. Előadás

C programozási nyelv. Dr. Schuster György szeptember 18.

Szkriptnyelvek. 1. UNIX shell

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

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

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

Algoritmizálás és adatmodellezés tanítása 1. előadás

Óbudai Egyetem. C programozási nyelv

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

Elôszó a magyar kiadáshoz A Kiadó Elôszó

Webprogramozás szakkör

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

Informatika terméktervezőknek

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

Karakterkészlet. A kis- és nagybetűk nem különböznek, a sztringliterálok belsejét leszámítva!

C++ programok fordítása

Az alkalmazásfejlesztés, fordítás Actionscript elemei, a Macromedia Flash rendszer. 1. Az alkalmazásfejlesztés lépései

Vezérlési szerkezetek. Szelekció Ciklusok

Programozás C++ -ban 2007/1

AWK programozás, minták, vezérlési szerkezetek

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)

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

Programozás I. 5. Előadás: Függvények

B I T M A N B I v: T M A N

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

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

Labor gyakorlat Mikrovezérlők

12. gyakorlat Enum; Tárolási osztályok Preprocesszor utasítások; Moduláris programozás

AWK programozás, minták, vezérlési szerkezetek

Occam 1. Készítette: Szabó Éva

Szoftvertechnológia alapjai Java előadások

C programozási nyelv Pointerek, tömbök, pointer aritmetika

INFORMATIKA tétel 2019

C programnyelv 1. Kedves Kollegina, Kolléga!

A C nyelv eredete, fő tulajdonságai

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

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós augusztus 29. Széchenyi István Egyetem, Gy r

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

1. Egyszerű (primitív) típusok. 2. Referencia típusok

1. Alapok. #!/bin/bash

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

Programozás I. gyakorlat

Forráskód formázási szabályok

Imperatív és procedurális programozás a Javában

Labor gyakorlat Mikrovezérlők

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

Operációs rendszerek gyak.

Pénzügyi algoritmusok

Objektumorientált Programozás III.

Programozási nyelvek II. JAVA EA+GY 1. gyakolat

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós szeptember 6. Széchenyi István Egyetem, Gy r

Programozás I. gyakorlat

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

Alprogramok, paraméterátadás

PROGRAMOZÁS ALAPJAI (ANSI C NYELVEN)

Szoftvertervezés és -fejlesztés I.

GPU Lab. 5. fejezet. A C++ fordítási modellje. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc

Fordítóprogramok. Aszalós László szeptember 7.

Dr. Schuster György október 14.

Átírá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} AT&T Bell Laboratóriumok cégnél (első UNIX OP rendszer) Dennis Ritchie {1971} a B nyelv új változata C nyelv Amerikai Szabványügzi Hivatal (ANSI) 1983 bizottság a C nyelv szabványos változatának a kidolgozása ANSI C, 1989

2. Kitekintés 1954 UNIVAC I, az első komputereladás az amerikai védelmi minisztérium részére (készült a Harvardon), FORTRAN programozási nyelv, IBM-fejlesztés, IBM 650, az első tömeggyártású számítógép 1958 ALGOL 58 programozási nyelv (ALGOrithmic Language -- algoritmikus nyelv) 1959 COBOL programozási nyelv (COmmon Business Oriented Language), DEC PDP-1 -- az első minikomputer 1960 ALGOL 60 programozási nyelv 1965 BASIC programozási nyelv

1969 lézerprinter, UNIX operációs rendszer (Thompson és Ritchie, AT&T) 1970 Pascal programozási nyelv 1971 C programozási nyelv 1985 C++ programozási nyelv

3. Ajánlott irodalmak A C programozási nyelv - Az ANSI szerinti változat B. W. Kernighan - D. M. Ritchie; Műszaki Könyvkiadó, 1995 The C Programming Language Second Edition Brian W. Kernighan, Dennis M. Rithie; Prentice Hall, 1988 Programozzunk C nyelven! Benkő Tiborné, Benkő László, Tóth Bertalan; Computer Book, Bp., 1995 The C Programming Language Brian W. Kernighan, Dennis M. Rithie; Prentice Hall, 1978 A C programozási nyelv B. W. Kernighan - D. M. Ritchie; Műszaki Könyvkiadó, 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 megadása (a) Szóban (b) Folyamatábra

(c) Struktogram (d) Mondatszerű leírás

5. C nyelv tulajdonságai Magasszintű nyelvekre jellemző adatszerkezetek és vezérlési struktúrák Rendszerprogramozási nyelv Standard függvénykészlet, ami nem része a nyelvnek, de elengedhetetlen A C nyelv több adattípussal is rendelkezik alap karakteres-, egész-, lebegőpontos típusok (többféle méretben) származtatott mutatók (pointerek), tömbök, struktúrák, uniók

A nyelv kifejezési: operátorokkal összekapcsolt operandusokból állnak (+ értékadás és a függvényhívás) Kifejezés: pl. a+b a=b v1=v2=z-5 szam=1 fuggveny (a, b) Kifejezés-utasítás: kifejezés ; utasítás pl. a+b; a=b; v1=v2=z-5; szam=1; fuggveny(a, b);

Programvezérlő konstrukciók 1. Utasítás csoportok kialakítása (Blokk): { definíciók és deklarációk utasítások } 2. Kétirányú elágaztatás IF if ( feltétel ) utasítás1 vagy: if ( feltétel ) utasítás1 else utasítás2 3. Valamely eset kiválasztása az esetek lehetséges halmazából

switch ( egész kifejezés ) { } SWITCH case konstans1 : utasítás1_1; utasítás1_2... case konstans2 : utasítás2_1;...... default: Megjegyzés: A kilépéshez break utasítást kell használni. Ha egyik konstanssal sem egyezik ha van default ág, azt hajtja végre, ha nincs default ág, egyiket sem. utasítás_d_1;...

4. A tevékenység folytatása belépési feltétellel while ( feltétel ) utasítás WHILE Végrehajtás: amíg a feltétel igaz, végrehajtja az utasítást FOR for ( inicializáló kifejezés ; feltétel kif. ; léptető kif. ) utasítás vagy for ( inicializáló kifejezés ; feltétel kif. ; léptető kif. ) {utasítások} Végrehajtás: inicializáló kifejezés kiértékelése (és értékének eldobása), ciklusban: feltétel kiértékelése ha nem igaz, vége a ciklusnak utasítás végrehajtása léptető kifejezés kiértékelése

5. A tevékenység folytatása kilépési feltétellel DO-WHILE do utasítás while ( feltétel ) Végrehajtás: utasítás, majd ha a feltétel igaz, újra, mígnem a feltétel hamis lesz. 6. A ciklusok működésének szabályozása break; BREAK Végrehajtás: kilép az őt közvetlenül tartalmazó ciklusból (while, do, for) ill. switch utasításból

CONTINUE continue; Végrehajtás: az őt közvetlenül tartalmazó ciklus magjának további részét átlépi, azaz a feltételvizsgálattal (while, do) illetve a léptetéssel (for) folytatja A forrásprogram felépítését az előfordító (preprocesszor) segíti (ami egy szövegbehelyettesítő program, amely feldolgozza a neki szóló parancsokat és szöveget állít elő, melyet a C fordító fordít le): szövegbeépítéssel (include) szöveghelyettesítéssel (makró) feltételes fordítással Az előfeldologozó parancsok alakja: #parancs argumnetum1 argumentum2 ahol a # előtt, valamint a # a és a parancs között csak szóközök és tabulátor jelek lehetnek.

Fontosabb preprocesszor parancsok: #include: file belevétele #include <file_nev> #include "file_nev" #include preprocesszor_tokenek teljes file behelyettesítése az #include -ot tartalmazó sor helyére; <file_nev> :a fordítóhoz tartozó szabványos include könyvtárban keres először a preproceszor; a könyvtári un. header file-okhoz (dekralációs állományokhoz) használjuk "file_nev" :a saját, pl. aktuális könyvtárban keres először; a saját header file-okhoz szoktuk használni #include -ok tetszőleges mélységben egymásba ágyazhatóak, ha a megvalósítás ezt nem korlátozza. Pl.: afile.c: bfile.c: cfile.h -------- -------- ------- a1a1 b1b1b1 cccccccc #include "bfile.c" #include <cfile.h> a2a2 b2b2b2

Az előfeldolgozás eredménye, a C compiler ezt kapja: #define: makró definiálása a1a1 b1b1b1 cccccccc b2b2b2 a2a2 #define makronév #define makronév makrotörzs #define makronév(paraméter1,paraméter2...) makrotörzs a makronév helyére behelyettesíti a makrotörzset, a makrotörzsben a paraméterek helyére az aktuális paraméterek kerülnek

A C nyelvű programok feldolgozása forráskód (forrásprogram) C file (code.c) C előfeldolgozó (preprocesszor) + C fordító (compiler) tárgymodul (object modul/file) obj file (code.o) összefűző-szerkesztő (linkage editor; linker) végrehajtható program; futtatható állomány (code)

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

6. Egy C forráskód (első programom) #include <stdio.h> A printf függvény deklarációját (prototípusát tartalmazza) main() ' Adatfolyam-kezelő függvények' { printf("az elso C programom\n"); } main függvény; ennek mindig kell szerepelnie a kódban! A printf parancs: kapcsolók: \n soremelés \r kocsivissza \t vízszintes tabulátor \v függőleges tabulátor \f lapdobás \b cursor visszaléptetése (backspace) \' egyes idézőjel \" kettős idézőjel \Onn az nn oktális kódú karakter kiírása \Xnn az nn hexa kódú \\ \ jel kiírása karakter kiírása