Programzás I. - 1. gyakorlat



Hasonló dokumentumok
Programozás I. gyakorlat

Programozás I gyakorlat

C programozás. 1 óra Bevezetés

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

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

Adatbázis és szoftverfejlesztés elmélet

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

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

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

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

Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések. 1. Mi a programozás?

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés

C programozási nyelv

I. Bevezetés. 1. ábra A Java "logója"

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

Programozás I. 1. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Programozási nyelvek JAVA EA+GY 1. gyakolat

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

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

1. gyakorlat

1. Alapok. #!/bin/bash

Operációs rendszerek. 4. gyakorlat. BASH bevezetés, script írása, futtatása UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

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

Java I. A Java programozási nyelv

Bevezetés a programozásba

Funkcionális és logikai programozás. { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem }

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

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

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

Ha GNU C fordítót használunk, akkor ez az alábbi egyszerû parancs kiadásával történik: #include <stdio.h>

Programozás C++ -ban 2007/1

GENERIKUS PROGRAMOZÁS Osztálysablonok, Általános felépítésű függvények, Függvénynevek túlterhelése és. Függvénysablonok

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

A számítógépes feladatok a várt megoldáshoz egyértelmű utalásokat tartalmazzanak.

Operációs rendszerek. 10. gyakorlat. AWK - bevezetés UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

OPENCV TELEPÍTÉSE SZÁMÍTÓGÉPES LÁTÁS ÉS KÉPFELDOLGOZÁS. Tanács Attila Képfeldolgozás és Számítógépes Grafika Tanszék Szegedi Tudományegyetem

Pénzügyi algoritmusok

Törley Gábor PROGRAMOZÁSI NYELVEK, KÖRNYEZETEK KIFEJEZŐEREJÉNEK VIZSGÁLATA

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

Bevezetés a programozásba I.

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

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

Podoski Péter és Zabb László

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

Scratch bevezető foglalkozás Scratch bevezető foglalkozás

Adatbázis rendszerek Gy: Algoritmusok C-ben

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

Bevezetés az informatikába Tételsor és minta zárthelyi dolgozat 2014/2015 I. félév

C programnyelv 1. Kedves Kollegina, Kolléga!

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT

Digitális technika VIMIAA01 9. hét

1. Alapok. Programozás II

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

Labor gyakorlat Mikrovezérlők

4. Fejezet : Az egész számok (integer) ábrázolása

Programozási nyelvek (ADA)

Programtervezés. Dr. Iványi Péter

Bevezetés a programozásba I.

A programozás alapjai előadás. Amiről szólesz: A tárgy címe: A programozás alapjai

Operációs rendszerek gyak.

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

Bevezetés. Dr. Iványi Péter

Programozási nyelv Java

Objektum orientáltság alapjai A Java nyelv Fordítás - futtatás

Adatstruktúrák Algoritmusok Objektumok

Webprogramozás szakkö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.

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

file./script.sh > Bourne-Again shell script text executable << tartalmat néz >>

Bevezetés a Python programozási nyelvbe

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

Labor gyakorlat Mikrovezérlők

Labor 2 Mikrovezérlők

6. BASH programozás I.

Bevezetés az informatikába

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

2017/01/27 08:59 1/6 Gettext Rendszer

A NetBeans IDE Ubuntu Linux operációs rendszeren

Programozás C és C++ -ban

Irányítástechnika Elıadás. PLC-k programozása

kodolosuli.hu: Interaktív, programozást tanító portál BALLA TAMÁS, DR. KIRÁLY SÁNDOR NETWORKSHOP 2017, SZEGED

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

Bevezetés a programozásba. 6. Előadás: C++ bevezető

Delphi programozás IV.

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

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

A TANTÁRGY ADATLAPJA

Kifejezések. Kozsik Tamás. December 11, 2016

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

Cekla. Készítette Doxygen Tue Sep :13:44

Munkavegzes tavoli bejelentkezessel

Tájékoztató. Használható segédeszköz: számológép

SZÁMÍTÓGÉPEK BELSŐ FELÉPÍTÉSE - 1

Programozás alapjai (ANSI C)

Programozás I gyakorlat

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

Programozás BMEKOKAA146. Dr. Bécsi Tamás 1. Előadás

INFORMATIKAI ALAPISMERETEK

Átírás:

Programzás I. - 1. gyakorlat Alapok Tar Péter 1 Pannon Egyetem Műszaki Informatikai Kar Számítástudomány Alkalmazása Tanszék Utolsó frissítés: September 15, 2007 1 tar@dcs.vein.hu Tar Péter (PE-MIK-DCS) Programzás I. - 1. gyakorlat September 15, 2007 1 / 23

1 Bevezetés 2 Alapfogalmak 3 C programok fordítása 4 Az első programunk 5 A printf parancs 6 Feladat Tar Péter (PE-MIK-DCS) Programzás I. - 1. gyakorlat September 15, 2007 2 / 23

Ajánlott irodalom Brian W. Kernighan & Dennis M. Ritchie: A C programozási nyelv. 2. kiadás, Műszaki Könyvkiadó, 2003 Benkő Tiborné, Benkő László, Tóth Bertalan: Programozzunk C nyelven, Computer Books, Budapest, 1996 Tar Péter (PE-MIK-DCS) Programzás I. - 1. gyakorlat September 15, 2007 3 / 23

Mi a programozó feladata? Programozás során a programozónak egy előre meghatározott feladatot kell előre meghatározott szempontok szerint megoldania. Ez több mindenben megjelenhet, pl.: Futási idő Kód mérete Elkészülés ideje Programozás és a kódolás között lényeges különbség van, a kódolási ismeretek szükségesek, de nem elégségesek egy programozási feladat hatékony megoldásához! Tar Péter (PE-MIK-DCS) Programzás I. - 1. gyakorlat September 15, 2007 4 / 23

Állásinterjú Kérdés állásinterjún Milyen nyelven tud Ön programozni? Coder válasza Három: C, Java, PHP Programozó válasza Adjon két hetet, egy könyvet, és bármiben. Tar Péter (PE-MIK-DCS) Programzás I. - 1. gyakorlat September 15, 2007 5 / 23

A tárgy célja Alapvető programozási tudás kialakítása. 2 A C programozási nyelv alapjainak elsajátítása. 2 Erre nagyobb hangsúlyt a Programozás Alapjai című tantárgy fektet Tar Péter (PE-MIK-DCS) Programzás I. - 1. gyakorlat September 15, 2007 6 / 23

Algoritmus (Algorithm) I. Az algoritmus egyértelmű utasítások előre meghatározott sorozata egy probléma megoldására Példa Menj el a buszmegállóig. Várd meg a buszt. Szállj fel a buszra. Példa Oldd meg az x 2 + 2x + 1 = 4 egyenletet. Példa Határozd meg az x 2 + 2x 3 = 0 diszkriminánsát. Vizsgáld meg a diszkriminánst. Ha nem negatív, Számítsd ki a gyököket. Tar Péter (PE-MIK-DCS) Programzás I. - 1. gyakorlat September 15, 2007 7 / 23

Algoritmus (Algorithm) II. Algoritmus tervezés A valós élet problémáinál ez nagyon nehéz feladat Számos tervezési technika létezik ennek megoldására a a Ezzel a témakörrel részletesebben a Programozás Alapjai és a Szoftvertechnológia című tárgyak foglalkoznak. Algoritmus kódolás Az algoritmusok implementálásához szükséges valamilyen programozási nyelv ismerete. Egyes feladatok bizonyos nyelveken könnyebben oldhatók meg. Tar Péter (PE-MIK-DCS) Programzás I. - 1. gyakorlat September 15, 2007 8 / 23

Programozási nyelvek (Programming Languages) I. A programozási nyelv egy szabályrendszer algoritmusok leírására, melyek segítségével a programozó a számítógép által értelmezhető algoritmusokat készít. Egy nyelvnek is több változata lehet, ügyelni kell, hogy mindig a megfelelő verziót használjuk: Elavult eljárások használatának elkerülése. Korszerű technikák által biztosított lehetőségek kihasználása. 3 A tárgy keretein belül a C programnyelv ANSI C változatával fogunk megismerkedni. 3 Ezek ismertetésével részletesbben a Programozás II. és a Korszerű Programozási Technikák című tárgyak foglalkoznak Tar Péter (PE-MIK-DCS) Programzás I. - 1. gyakorlat September 15, 2007 9 / 23

Programozási nyelvek (Programming Languages) II. Alacsony szintű nyelvek - Assembly Nehézkes a kódolás. Gyors működés (gépközeli utasítások). Magas szintű nyelvek Emberközeli, az utasítások értelmes szavak. Osztályai: Egyszerű magas szintű nyelvek (Pl.: Basic) Strukturált nyelvek (Pl.: Pascal, C) Objektum-orientált nyelvek (Pl.: C++, Java) Tar Péter (PE-MIK-DCS) Programzás I. - 1. gyakorlat September 15, 2007 10 / 23

Állománytípusok Forráskód (Source code) Szöveges állomány, amelyet a programozó az adott programozási nyelv szabályai szerint ír. Emberek számára értelmezhető formátummal rendelkezik. Bájtkód (Byte code) Már nem szöveges állomány, sem az emberek sem a számítógép nem képes közvetlenül, interpreter nélkül megérteni. Gépi kód (Object code) A számítógép nyelvén írt program, bináris állomány. Fontos jellemzője, hogy nem platformfüggetlen. Tar Péter (PE-MIK-DCS) Programzás I. - 1. gyakorlat September 15, 2007 11 / 23

Fordító és Értelmező Fordító (Compiler) Olyan program, amely a programozó által megírt forráskódból, az adott programozási nyelv szabályai alapján gépi kódot. Ennek használatával készíthetünk futtatható programokat. A fordító minden esetben az egész forrásfájlt egyben forítja le, ezért ügyelni kell arra, hogy futtatás előtt minden módosítás után újrafordítsuk a programjainkat. Ételmező (Interpreter) A program sorait egyesével értelmezi, és hajtja végre. A bájtkódok futtatásához is értelmezőre van szükségünk. Tar Péter (PE-MIK-DCS) Programzás I. - 1. gyakorlat September 15, 2007 12 / 23

Hibák Szintaktikai hiba Olyan hibák, amelyek hatására a fordító nem tudja értelmezni a forráskódot. (Pl.: elgépelés, hiányzó pontosvessző, rossz zárójelezés, stb.) Szemantikai hiba Olyan hibák, amelyek hatására a program helytelen működést eredményez. (Pl.: Hibás számítás, helytelen algoritmus használata, stb.) Ezek javítása sokkal nehezebb, mint a szintaktikai hibáké. Tar Péter (PE-MIK-DCS) Programzás I. - 1. gyakorlat September 15, 2007 13 / 23

A szoftverfejlesztés elemei 4 Programozás (Programming) Az algoritmusok, struktúrák és a program tervének megalkotása. Kódolás, Implementálás (Implementation) Az algoritmus leírása valamely programnyelv szabályai szerint. a a A tárgy keretében, és főleg a gyakorlatokon ezzel fogunk elsősorban foglalkozni. Hibaelhárítás (Debugging) Az előzőek során ejtett hibák keresése, megtalálása, majd javítása. Hibajavítás során először a szintaktikai, majd a szemantikai hibákat szüntetjük meg. Célszerű minden hiba javítása után újrafordítani a programot, és ellenőrizni, hogy elértük- a kívánt eredményt. 4 Ezek csak az alapvető motívumok, komolyabb szoftverfejlesztési technikákkal, módszertanokkal a Szoftvertechnológia és a Rendszerfejlesztés Korszerű Módszerei című tárgyak foglalkoznak Tar Péter (PE-MIK-DCS) Programzás I. - 1. gyakorlat September 15, 2007 14 / 23

C fordítók Számos C fordító létezik. gcc Visual C compiler Intel C compiler... Mi ezek közül a gcc-t fogjuk használni a forrásfájlok lefordítására. Tar Péter (PE-MIK-DCS) Programzás I. - 1. gyakorlat September 15, 2007 15 / 23

Fejlesztői környezetek (Developement Environment) Olyan szoftverek, amelyek különféle eszközök széles skálájával támogatják a programok tervezését, az implementálást és a hibakeresést egyaránt. Ilyenek például: gcc + bash + szövegszerkesztő Netbeans Eclipse Microsoft Visual Studio... Mi ezek közül a parancssori programozást, illetve az Eclipse-t fogjuk használni a gyakorlatok során. Tar Péter (PE-MIK-DCS) Programzás I. - 1. gyakorlat September 15, 2007 16 / 23

Fordítás gcc-vel Fordítás user@host:~$ gcc forras.c -o futtathato Ahol: forras.c A forráskódot tartalmazó fájl neve futtathato A futtatható fájl neve Futtatás user@host:~$./futtathato A gcc fordító részletes paraméterezési lehetőségeit a gcc help paranccsal kérdezhetjük le. Tar Péter (PE-MIK-DCS) Programzás I. - 1. gyakorlat September 15, 2007 17 / 23

Az első program Minden programozási nyelv tanulása esetén az első program, amelyet el szokás készíteni, egy Hello World! program. Ez C nyelven a következőképp néz ki: Forrás (helloworld.c) #include <s t d i o. h> int main (){ p r i n t f (" Hello World!\ n" ) ; return 0;} A kimenet user@host:~$ gcc helloworld.c -o helloworld user@host:~$./helloworld Hello world! user@host:~$ Tar Péter (PE-MIK-DCS) Programzás I. - 1. gyakorlat September 15, 2007 18 / 23

A Hello World program felépítése # include <stdio.h> Előre megírt függvények betöltése az include paranccsal történik. Ennek hatására az előfeldolgozó bemásolja a betöltött header fájlokat a forráskódba, a fordító ez után kezdi meg a működését. int main(... ) {... } Minden program elengedhetetlen része a main függvény. Futtatás során ez kezdi meg a működést, majd végeztével a program kilép. Részei: int Visszatérési érték main A függvény neve () Paraméterek helye {...} A végrehajtandó blokk Tar Péter (PE-MIK-DCS) Programzás I. - 1. gyakorlat September 15, 2007 19 / 23

A printf használata printf("hello World! \ n"); A printf függvény a standard outputra való kiiratásra alkalmas. printf("kiiratando szoveg: %s", sztring1);... A képernyőn megjelenítendő szöveg, amely speciális karaktereket és kifejezéseket tartalmazhat. sztring1 A behelyettesítendő változó neve. Példa speciális karakterekre: \n új sor \t tabulátor Tar Péter (PE-MIK-DCS) Programzás I. - 1. gyakorlat September 15, 2007 20 / 23

A printf speciális kifejezései A változók beillesztésére szolgáló kifejezés mindig % jellel kezdődik. Néhány példa, hogy melyik típus esetén melyik kifejezésre van szükség: %i,%d Előjeles decimális %u Előjel nélküli decimális %o Előjel nélküli oktális %x Előjel nélküli hexadecimális %f Lebegőpontos %c Karakter %s Karaktersorozat Teljes leírás user@host:~$ man 3 printf Tar Péter (PE-MIK-DCS) Programzás I. - 1. gyakorlat September 15, 2007 21 / 23

printf példa Forrás (printf.c) # include <s t d i o. h> int main (){ int a=0, b=5; p r i n t f ("A ket szam:%d, %d\n",a, b ) ; return 0; } Kimenet user@host:~$./printf A ket szam: 0, 5 user@host:~$ Tar Péter (PE-MIK-DCS) Programzás I. - 1. gyakorlat September 15, 2007 22 / 23

Feladat 1 Írjon programot, mely létrehoz két egész változót, majd a kimenetre kiírja az összeadásukat. (Példa a kimenetre: 5+3=8) 2 Fordítsa le. 3 Futtassa. 4 Módosítsa a műveletet kivonásra. 5 Fordítsa le. 6 Futtassa. Tar Péter (PE-MIK-DCS) Programzás I. - 1. gyakorlat September 15, 2007 23 / 23