Programozás alapjai gyakorlat. 2. gyakorlat C alapok

Hasonló dokumentumok
Programozás I. gyakorlat

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

Programozás alapjai 2.Gy: A C nyelv alapjai P R O

C változók. Feladat: Deklaralj egy valos, egy karakter es ket egesz tipusu valtozot! int main() {

A C programozási nyelv I. Bevezetés

8. gyakorlat Pointerek, dinamikus memóriakezelés

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

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

A C programozási nyelv I. Bevezetés

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

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

10. gyakorlat Struktúrák, uniók, típusdefiníciók

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra

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

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

A verem (stack) A verem egy olyan struktúra, aminek a tetejéről kivehetünk egy (vagy sorban több) elemet. A verem felhasználása

Programozás C++ -ban 2007/1

Programzás I gyakorlat

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

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

Programozás I gyakorlat. 10. Stringek, mutatók

Vezérlési szerkezetek

Vezérlési szerkezetek. Szelekció Ciklusok

1. Alapok. Programozás II

A C programozási nyelv V. Struktúra Dinamikus memóriakezelés

Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2)

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 I gyakorlat

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

INFORMATIKA javítókulcs 2016

Programozás alapjai 8.Gy: Program struktúra

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

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

Programozás C és C++ -ban

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

Programozás C és C++ -ban

5. gyakorlat. Konstansok Tömbök Stringek

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

Mérnöki programozás 7. Szerkesztette: dr. Vass Péter Tamás

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

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

A 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.

Készítette: Nagy Tibor István

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

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

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

Java II. I A Java programozási nyelv alapelemei

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

11. gyakorlat Sturktúrák használata. 1. Definiáljon dátum típust. Olvasson be két dátumot, és határozza meg melyik a régebbi.

Informatika terméktervezőknek

Bevezetés a programozásba I.

3. Osztályok II. Programozás II

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés. Szekvenciális fájlkezelés Fájlok használata

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 I gyakorlat

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

Programozás I gyakorlat

Függvények. Programozás I. Hatwágner F. Miklós november 16. Széchenyi István Egyetem, Gy r

4. Laborgyakorlat. A fájlokról ezeket az adatokat, a fájlrendszer tárolja. Számunkra az 1, 3, 4. oszlopok lesznek az érdekesek.

Programozás alapjai 3.Gy: C elágazások, ciklusok P R O

Pénzügyi algoritmusok

1. Alapok. #!/bin/bash

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

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

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

PPKE-ITK Bevezetés a programozásba 1.

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

Operációs rendszerek gyak.

C programozás. 1 óra Bevezetés

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

C programozási nyelv

7. gyakorlat. Fájlkezelés IO haladó Függvények haladó

Programozási nyelvek (ADA)

/* Az iter függvény meghívása és a visszatérő érték átadása a gyok változóba */ gyok = iter( n, a, e ) ;

Bevezetés a Programozásba II 2. előadás. Adattípusok megvalósítása egységbe zárással. Adattípusok megvalósítása egységbe zárással

Szoftvertervezés és -fejlesztés I.

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

Mirő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.

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés

Írjon olyan programot a standard könyvtár alkalmazásával, amely konzolról megadott valós adatokból meghatározza és kiírja a minimális értékűt!

Alapok. tisztán funkcionális nyelv, minden függvény (a konstansok is) nincsenek hagyományos változók, az első értékadás után nem módosíthatók

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

Láncolt lista. az itt adott nevet csak a struct deklaráción belül használjuk

Bevezetés a C++ programozási nyelvbe

1. Gyakorlat. Rövid elméleti összefoglaló. <tárolási osztály>típus <típus > változónév <= kezdőérték><, >;

A programozás alapjai 1 Rekurzió

Adatbázis Rendszerek II. 5. PLSQL Csomagok 16/1B IT MAN

Bevezetés a programozásba Előadás: A const

Bevezetés a programozásba I.

Bevezetés a programozásba. 9. Előadás: Rekordok

2018, Funkcionális programozás

Programozási Nyelvek: C++

3. ZH-ban a minimum pontszám 15

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

Operációs rendszerek. 9. gyakorlat. Reguláris kifejezések - alapok, BASH UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

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

Adatbázis és szoftverfejlesztés elmélet

Számítógépes Hálózatok. 7. gyakorlat

Programozási nyelvek Java

A C# programozási nyelv alapjai

Átírás:

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 Fordítjuk Futtatjuk az elkészült állományt Linuxon a beépített C fordító a gcc, használata gcc program.c A futtatható állományt a.out néven hozza létre.

2016-2017 Bordé Sándor 3 Feladat - f0001 Írjunk egy olyan C programot, ami lefordul, de nem csinál semmit! Fordítsuk le default módon -o kapcsolóval

2016-2017 Bordé Sándor 4 Feladat - f0002 Írjunk egy olyan programot, ami lefordul, és kiírja, hogy Hello Világ!! Figyeljünk a helyes tabulálásra!

2016-2017 Bordé Sándor 5 Feladat - f0003 Fordítsuk le a -Wall kapcsolóval! Mit látunk? Javítsuk ki a hibákat!

2016-2017 Bordé Sándor 6 Feladat - f0003 int kell a main() elé return 0; kell a végére (utolsó } elé) #include <stdio.h> kell a legelejére (később bővebben)

2016-2017 Bordé Sándor 7 Utasítás, kifejezés, szekvencia Kifejezés egy adat értékének reprezentációja, önmagában nem végrehajtható. Lehet egy érték (szám, konstans) értékeken végrehajtott műveletek pl. main() { 3+5 } Utasítás végrehajtható művelet, sor végén ; Szekvencia utasítások egymásutánja

2016-2017 Bordé Sándor 8 Típusok int egész szám, egy szó hosszú (32 bit) char egy bájtos egész szám float lebegőpontos szám (egy szó hosszú, valós) double dupla hosszúságú lebegőpontos szám void nem tárol semmit, pl. függvénynél jelöli, hogy nincs visszatérési érték Logikai és szöveges nincs

2016-2017 Bordé Sándor 9 Feladat egyszerű kiíratás - f0004 Írasd ki a képernyőre a 'X' betűt! Írasd ki a képernyőre a 2015 egész számot! Írasd ki a képernyőre a 3.1415 valós számot! Írd ki a képernyőre a Szoveg kiiratasa szöveget! Mindegyik adat egy-egy új sorban jelenjen meg, de egy printf-et használjunk!

2016-2017 Bordé Sándor 10 Változók létrehozása Deklaráció megmondjuk a programnak, hogy egy adott programkomponensre milyen néven hivatkozunk. Ez szükséges, mielőtt hivatkoznánk rá Definíció egy azonosítóhoz értéket rendelünk Változó esetén deklaráláskor csak létrehozzuk, definíció esetén pedig egyből értéket is adunk neki

2016-2017 Bordé Sándor 11 Értékadás Mikor egy változónak megmondjuk, milyen értéket tároljon Többszörös értékadás is lehetséges Többféle számrendszer Tízes: int i = 25; Nyolcas: int i = 031; Tizenhatos: int i = 0x19; Karakter esetén ' ' kell használni Nem az mást jelent

2016-2017 Bordé Sándor 12 Fontos megjegyzés C-ben a blokk elején vannak a deklarációk, minden más utána Inicializálás kezdeti értékadás Az értékadás is egy művelet, kifejezés, tehát van értéke (később látunk erre még példát)

2016-2017 Bordé Sándor 13 Műveletek Alapvető matematikai műveletek + - * / Valós számoknál (float, double) szokott módon működik Egész számoknál az osztás maradékos osztás / egészrész % maradék Műveleteknél a char is számként működik (ld. későbbi órán)

2016-2017 Bordé Sándor 14 Feladat - f0005 Hozz létre egy valós változót és inicializáld a π -re (2 tizedesjegy pontossággal)! Hozz létre egy karakter tároló változót és inicializáld az 'A' betűre! Deklarálj két egész számot és értékadással adj nekik értéket! Írasd ki a képernyőre ezt a három adatot, illetve ezen kívül a két egész szám összegét és szorzatát is!

2016-2017 Bordé Sándor 15 IO (bemenet, kimenet) Vannak bizonyos funkciók, amiket nagyon gyakran használni kell, ezért már előre megírták őket és mi használhatjuk. Ezeket a függvényeket külön fájlokban érhetjük el, ha használni akarjuk őket, akkor be kell illeszteni Bemeneti-kimeneti funkciókra szolgáló függvények #include <stdio.h>

2016-2017 Bordé Sándor 16 Egyszerű típusok kiíratása, beolvasása Kiíratás printf() függvény legalább egy paramétert vár, a kiírandó szöveget Ebben a szövegben elhelyezhetünk formátum karaktereket, ezek % [betű] alakúak Alap formátum karakterek (összes lásd később vagy itt) %d decimális egész számok %f decimális valós számok %c karakter %s szöveg

2016-2017 Bordé Sándor 17 Egyszerű típusok kiíratása, beolvasása Beolvasás scanf() függvény legalább két paramétert vár Első helyen a formátum karaktert/karaktereket Második helyen a memóriaterületet, ahova eltároljuk a beolvasott értéket Egy változó memóriaterületét a & operátorral kaphatjuk meg

2016-2017 Bordé Sándor 18 Feladat - f0006 Olvass be két egész számot egy-egy változóba! Cseréld meg az értéküket! Írd ki csere után az egyes változók értékeit!

2016-2017 Bordé Sándor 19 Egyszerű típusok kiíratása, beolvasása Lehet egyszerre több értéket is beolvasni scanf( %c %d %c, &k1, &e, &k2);

2016-2017 Bordé Sándor 20 Feladat - f0007 Olvass be egy egész és egy valós számot, illetve egy karaktert, ezután írasd ki őket a képernyőre! Mi történik, ha nem helyes típusú bemenetet írunk?

2016-2017 Bordé Sándor 21 Feladat - f0009 Írj programot, ami beolvas három valós számot! Ezeket kiírja külön sorba Mindegyik 15 karakteren jelenik meg Ebből 8 tizedesjegy legyen

2016-2017 Bordé Sándor 22 Túlcsordulás Minden adattípus fix méretű területen tárolódik a memóriában Emiatt az értékkészlet is véges (felfele és lefele is) Ha egy művelet értékkészleten túli eredményt adna, túlcsordul Kimegy az egyik végén és visszajön a másikon Undefined behavior

2016-2017 Bordé Sándor 23 Feladat - f0010 Írj egy olyan programot, ami két egész számmal végez olyan műveletet, aminek az eredménye alul/túl fog csordulni. Írasd ki az eredményt!

2016-2017 Bordé Sándor 24 Függvények A program egy részfunkcióját (részalgoritmusát) hajtja végre Deklaráció Mit kér a függvény, hogy hívják és mit ad vissza? Definíció Mit csinál a függvény? Függvényhívás Hajtsd végre ezekkel az értékekkel! Deklaráció és definíció szerepelhet külön helyen a kódban Függvény első hívásakor már kell lenni deklarációnak!

2016-2017 Bordé Sándor 25 Függvények <típus> név( [paraméter], [ ] ); int negyzet(int x); <típus> név([paraméter], [ ]) { törzs (utasítások sorozata) } int negyzet(int x) { return x*x; } név([paraméterek]); negyzet(2);

2016-2017 Bordé Sándor 26 Függvények Bármennyi paramétert megadhatunk a függvénynek deklarációkor Híváskor viszont pontosan annyi paramétert kell adni, amennyit az vár

2016-2017 Bordé Sándor 27 Feladat - f0011 Írj egy e nevű függvényt, aminek nincs paramétere, visszatérési értéke valós típusú. A függvény csak annyit csinál, hogy visszaadja az e szám értékét négy tizedesjegy pontossággal (2.7182). A főprogramod hívja meg ezt a függvényt és írasd ki a képernyőre!

2016-2017 Bordé Sándor 28 Feladat - f0012 Írj egy add nevű függvényt, ami paraméterben két egész számot vár Visszatérési értéke egész Összeadja a két paraméterben kapott számot és visszatér ezzel az értékkel A főprogramod kérjen be két egész számot, hívja meg ezekkel a add függvényt és írja ki az eredményt!

2016-2017 Bordé Sándor 29 Feladat - f0013 Írd meg az előző (f0012) programot úgy, hogy a main() előbb legyen a kódban, mint a sum függvény deklarációja (törzse)! Hogy tudod ezt megoldani?

2016-2017 Bordé Sándor 30 Blokkok C-ben a blokkokat { } jelekkel adjuk meg Hol láttunk ilyet eddig? Kód tagolására, illetve bizonyos struktúrák megadására használjuk Hatókör egy blokkban létrehozott változó csak abban a blokkban érvényes és blokkon belül egyedinek kell lenni

2016-2017 Bordé Sándor 31 Lokális, globális változók Globális blokkon kívül deklarált, bárhonnan látható Lokális blokkon belül deklarált, csak ott látszik Egy blokkban a névnek egyedinek kell lenni Felsőbb szintű blokkban deklarált változót elfedhetünk az aktuális blokkban deklarált, ugyan olyan nevű változóval Pl. gyak03/1-anyag/globals.c

2016-2017 Bordé Sándor 32 Feladat - f0014 Próbáld ki, fordul-e a globals.c program, ha a main függvényben megpróbálod felhasználni a lokalis változót! Mi történik, ha a globalist csak a függvény után deklaráljuk?

2016-2017 Bordé Sándor 33 Header és forrás fájlok Gyakran előfordul, hogy mások által megírt függvényeket szeretnénk felhasználni a programunkban Ehhez nekünk nincs szükségünk a függvények forráskódjára, elegendő A függvény lefordított gépi kódja A függvény fejléce, hogy az én programom ismerje A függvény fejléceket teszik a header fájlokba (.h kiterjesztés)

2016-2017 Bordé Sándor 34 Header és forrás fájlok Használatkor meg kell mondani a programomnak, hogy milyen függvényeket ismerjen A header fájl beillesztésével tehetem meg #include, majd utána a header fájl neve A C saját header fájljait <> közé tesszük Egyéb headerfájlokat közé Később bővebben előkerül

2016-2017 Bordé Sándor 35 Feladat - f0017 A huto.c és a huto.h kódok segítségével írj egy olyan programot, ami befejezi az alábbi viccet: Hogyan teszel be egy elefántot a hűtőbe???? Kinyitod a hűtőajtót, beteszed az elefántot, majd becsukod a hűtőajtót. És hogyan teszel be egy zsiráfot a hűtőbe?...

2016-2017 Bordé Sándor 36 Feladat - f0017 A kész kódokhoz ne nyúlj, csak a megjelölt függvényeket fejezd be! Hogy megtudd, jól dolgoztál-e, fordítsd és futtasd a programodat!

2016-2017 Bordé Sándor 37 Házi feladat Kötelező: /pub/programozasalapjai/gyakorlat/gyak02/hazi-feladatok Gyakorlás: /pub/programozasalapjai/gyakorlat/gyak02/gyakorlo-feladatok Órai feladatokat újra átnézni