Programozás I gyakorlat

Hasonló dokumentumok
Készítette: Nagy Tibor István

Kifejezések. A programozás alapjai előadás. Operátorok. Kifejezések. Operátorok precedenciája. Operátorok precedenciája

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

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

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)

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

A C programozási nyelv I. Bevezetés

Programozás I gyakorlat

A C programozási nyelv I. Bevezetés

M veletek és kifejezések

Programozás I gyakorlat

Szoftvertervezés és -fejlesztés I.

Programozás I gyakorlat

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

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

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

Operátorok, házi feladat adatszerkezetek

Bevezetés a programozásba I.

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

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

Webprogramozás szakkör

Vezérlési szerkezetek

Java II. I A Java programozási nyelv alapelemei

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

Komputeralgebra Rendszerek

Java II. I A Java programozási nyelv alapelemei

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

5. KOMBINÁCIÓS HÁLÓZATOK LEÍRÁSÁNAK SZABÁLYAI

1. Alapok. #!/bin/bash

Hardver leíró nyelvek (HDL)

Matematikai programok

Raszteres elemzés végrehajtása QGIS GRASS moduljával 1.7 dr. Siki Zoltán

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

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.

3 A C programozási nyelv szintaktikai egységei

Komplex számok algebrai alakja

Programozás I gyakorlat

A programozás alapjai

LEGO robotok. XII. rész

Pásztor Attila. Algoritmizálás és programozás tankönyv az emeltszintű érettségihez

A C# programozási nyelv alapjai

A C programozási nyelv III. Pointerek és tömbök.

Vezérlési szerkezetek. Szelekció Ciklusok

Programozási nyelvek (ADA)

Intermec EasyCoder PM4i nyomtató programozásának alapjai Intermec Fingerprint v8.00 nyelven

Objektumorientált Programozás II.

A C programozási nyelv III. Pointerek és tömbök.

Algoritmusok Tervezése. 4. Előadás Visual Basic 1. Dr. Bécsi Tamás

Programozási technológia I 1. gyakorlat. A Java nyelvi alapjai, a NetBeans környezet

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

Adatszerkezetek és algoritmusok

sallang avagy Fordítótervezés dióhéjban Sallai Gyula

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

Matematikai programok

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

Programozás módszertan

SZÁMÉRTÉKEK (ÁT)KÓDOLÁSA

Programozási segédlet

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

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

MATLAB alapismeretek I.

Komplex számok trigonometrikus alakja

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

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

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

Aritmetikai kifejezések lengyelformára hozása

Java programozási nyelv

Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Mutatók. Dr. Bécsi Tamás 7. Előadás

Határozott integrál és alkalmazásai

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

Tartalom Keresés és rendezés. Vektoralgoritmusok. 1. fejezet. Keresés adatvektorban. A programozás alapjai I.

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

Függvények július 13. f(x) = 1 x+x 2 f() = 1 ()+() 2 f(f(x)) = 1 (1 x+x 2 )+(1 x+x 2 ) 2 Rendezés után kapjuk, hogy:

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

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

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

Verilog HDL ismertető 2. hét : 1. hét dia

Szoftvertechnológia alapjai Java előadások

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

Adatbázis és szoftverfejlesztés elmélet

Keresés és rendezés. A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán

C programozás. 1 óra Bevezetés

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

Megoldott programozási feladatok standard C-ben

Programozás I. C# bevezető. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar szeptember 17.

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

Objektumorientált Programozás III.

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája

A TANTÁRGY ADATLAPJA

A programozás alapjai előadás. A C nyelv típusai. Egész típusok. C típusok. Előjeles egészek kettes komplemens kódú ábrázolása

Python bevezető foglalkozás Python bevezető foglalkozás

Programozási nyelvek Python

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

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

Programok értelmezése

Programozási nyelvek JAVA EA+GY 1. gyakolat

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

Bevezetés a programozásba I.

Aritmetikai utasítások I.

Átírás:

Programozás I. - 3. gyakorlat Operátorok, típuskonverziók, matematikai függvények Tar Péter 1 Pannon Egyetem M szaki Informatikai Kar Számítástudomány Alkalmazása Tanszék Utolsó frissítés: September 24, 2007 1 tar@dcs.vein.hu Tar Péter (PE-MIK-DCS) Programozás I. - 3. gyakorlat September 24, 2007 1 / 24

1 Operátorok 2 Típuskonverziók 3 Matematikai függvények 4 Vezérlési szerkezetek alapjai 5 Feladatok Tar Péter (PE-MIK-DCS) Programozás I. - 3. gyakorlat September 24, 2007 2 / 24

Fogalmak Programozás során a feladat megoldása érdekében a program változói és konstansai között m veleteket kell végeznünk. operátor A m veleti jel, vagy a m veletet meghatározó jelek összessége. operendus Az a változó, vagy konstans, amellyel az operátor(ok) által meghatározott m veletet végrehajtjuk. precendencia Az operátorok közötti reláció, amely meghatározza, hogy egy kifejezés m veleteit milyen sorrendben hajtsuk végre. (Pl. A szorzásokat el bb el kell végezni az összeadásoknál) asszociativitás A kiértékelés irányát határozza meg. Két féle lehet: balról jobbra, vagy jobbról balra. Tar Péter (PE-MIK-DCS) Programozás I. - 3. gyakorlat September 24, 2007 3 / 24

Operátor típusok Operandusok száma szerint Egyoperandusú (Unáris) operátorok Pl.: - el jel Kétoperandusú (Bináris) operátorok Pl.: +,-,*,/ matematikai alapm veletek Háromoperandusú (Trináris) operátorok Egyetlen ilyen van a C nyelvben, a feltételes operátor Elhelyezkedés szerint prex Az operátor az operandus el tt helyezkedik el. postx/sux Az operátor az operandus után helyezkedik el. inx Az operátor az operandusok között helyezkedik el. Tar Péter (PE-MIK-DCS) Programozás I. - 3. gyakorlat September 24, 2007 4 / 24

Indexel és hivatkozó operátorok majd. [ ] A tömb indexelésének operátora Pl.: tombnev[elemszam] ( ) A függvényhívás operátora Pl.: fuggvenynev(elsoparameter,masodikparameter);. és -> Struktúra adattagjára való hivatkozás; * Indirekció operátor, az adott memóriacímen lev adatot adja vissza. & Címképz operátor, az adott változó memóriacímét adja vissza. a a Az indirekcióval és a címképzéssel részletesebben a mutatók fejezetben foglalkozunk Tar Péter (PE-MIK-DCS) Programozás I. - 3. gyakorlat September 24, 2007 5 / 24

Inkrementáló és dekrementáló operátorok valtozonev++ Az adott változó értékét a m velet végrehajtása után megnöveli egyel. ++valtozonev Az adott változó értékét egyel megnöveli a m velet végrehajtása el tt. valtozonev-- Az adott változó értékét a m velet végrehajtása után csökkenti egyel. --valtozonev Az adott változó értékét egyel csökkenti a m velet végrehajtása el tt. Tar Péter (PE-MIK-DCS) Programozás I. - 3. gyakorlat September 24, 2007 6 / 24

Aritmetikai operátorok + Egyszer összeadás - Egyszer kivonás * Egyszer szorzás / Egyszer osztás, pozitív számok esetén lefelé, negatív esetben felfelé kell kerekíteni % Osztási maradékképzés Tar Péter (PE-MIK-DCS) Programozás I. - 3. gyakorlat September 24, 2007 7 / 24

Relációs operátorok <= Kisebb egyenl < Kisebb >= Nagyobb egyenl > Nagyobb == Egyenl ség FONTOS, hogy == jelet írjunk egyenl ség vizsgálatakor, mert a = az értékadás operátora!!= Nem egyenl ség Tar Péter (PE-MIK-DCS) Programozás I. - 3. gyakorlat September 24, 2007 8 / 24

Logikai és bitenkénti operátorok! Negáció, Logikai NEM Logikai VAGY && Logikai ÉS Bitenkénti negáció, minden bitet az ellentettjére változtat Bitenkénti VAGY & Bitenkénti ÉS bitekénti XOR, azaz kizáró vagy << Balra eltolás, pl: 1<<2=4 >> Jobbra eltolás, pl: 23>>3=2 Tar Péter (PE-MIK-DCS) Programozás I. - 3. gyakorlat September 24, 2007 9 / 24

Egyéb operátorok =, +=,*=,... Értékadó operátorok (op1 op= op2) == (op1 = op1 op op2), Vessz operátor, m veletek, vagy paraméterek elválasztására használjuk. sizeof() A megadott változó méretét adja vissza byteban.? : Feltételes operátor, az egyetlen három operandusú C operátor. Az if-then-else szerkezet operátora. Tar Péter (PE-MIK-DCS) Programozás I. - 3. gyakorlat September 24, 2007 10 / 24

Tanulságok Minden összetett m velet esetén gondoljuk át, hogy melyik hajtódik végre el bb! Sokszor segíthet, ha elgondolkodunk miért áll fenn az adott precedencia! Ha nem tudjuk az adott operátorcsoport asszociativitását, keressünk példát! Ha valamir l nem tudjuk mire való, próbáljuk meg kitalálni az operátor jelei alapján, vagy nézzünk utána. Kerüljük a kétértelm kifejezéseket, mellékhatásokat okozhatnak. A m veleteink mindig legyenek egyértelm en vérehajthatóak! Ha valami nem m ködik, próbáljuk részm veletekre bontani. Tar Péter (PE-MIK-DCS) Programozás I. - 3. gyakorlat September 24, 2007 11 / 24

Implicit típuskonverzió Az operátorok azonos típusok közt vannak deniálva, amikor két eltér típusba tartozó változó közt szeretnénk m veletet végezni, típuskonverzióra van szükség. Amennyiben nem azonos típusok közt végzünk m veletet, a fordító el ször mindkét operandust azonos típusúvá konvertálja a m velet elvégzése el tt, ez az implicit típuskonverzió. Mindig a kisebb típusok konvertálódnak nagyobb típusúvá. A sorrend: char<short<int<long<oat<double<long double Tar Péter (PE-MIK-DCS) Programozás I. - 3. gyakorlat September 24, 2007 12 / 24

Explicit típuskonverzió Explicit konverzió esetén el re megmondjuk a fordítónak a konverzió típusát. Pl.: double pi=3.14;int x=(int)pi; Tanulságok Mindig nézzük meg, hogy a típusok azonosak-e egy m velet elvégzése el tt! Kerüljük az implicit típuskonverziót, ezáltal átláthatóbb lesz a programunk! Tar Péter (PE-MIK-DCS) Programozás I. - 3. gyakorlat September 24, 2007 13 / 24

Matematikai függvények használata A matematikai függvények használatához a math.h header-t kell betölteni. Ha valamilyen matematikai függvényre van szükségünk érdemes Google-ben utánanézni, hogy miket tartalmaz a math.h, hátha találunk nekünk megfelel t. Tar Péter (PE-MIK-DCS) Programozás I. - 3. gyakorlat September 24, 2007 14 / 24

Fontosabb függvények int abs(int) Abszolút érték függvény double ceil(double) Fels egész rész double oor(double) Alsó egész rész double sqrt(double) Négyzetgyökvonás double pow(double, double) Hatványozás double sin(double) Szinusz függvény double exp(double) e alapú hatványozás double log(double) e alapú logaritmus double modf(double, double*) Egész és törtrészt visszaadó függvény Tar Péter (PE-MIK-DCS) Programozás I. - 3. gyakorlat September 24, 2007 15 / 24

If - else szerkezet Ezzel a szerkezettel készíthetünk elágazást a programban. Ennek segítségével egy feltétel teljesülésének vizsgálatának függvényében hajtunk végre bizonyos kódrészeket. Szintaxis if(feltetel){ utasitas1; //Ha a feltetel igaz... } else{ //Az else ág opcionális egyebkentutasitas1; //Ha a feltetel hamis... } Tar Péter (PE-MIK-DCS) Programozás I. - 3. gyakorlat September 24, 2007 16 / 24

While szerkezet Ezzel a szerkezettel ciklusokat készíthetünk. Ennek hatására a program egy utasításköteget addig fog végrehajtani, míg a ciklus feltétele igaz. Szintaxis while(feltetel){ utasitas1; //Amig a feltetel igaz... } Tar Péter (PE-MIK-DCS) Programozás I. - 3. gyakorlat September 24, 2007 17 / 24

For szerkezet Hasonló a while ciklushoz, annyi különbséggel, hogy megadhatunk egy inicializáló utasítást és egy minden ciklus végén végrehajtandót. Szintaxis for(init,feltetel,ciklusvegenvegrehajtandoutasitas){ utasitas1; //Amig a feltetel igaz... } Tar Péter (PE-MIK-DCS) Programozás I. - 3. gyakorlat September 24, 2007 18 / 24

Tanulságok Mindig ellen rizzük, hogy a megadott feltételek logikai kifejezések legyenek! Ha egy utasítást többször kell vérehajtani, használjunk ciklust, így átláthatóbb lesz a program! A for ciklus egy utasítás n-szeri végrehajtására a legalkalmasabb. Ne zárkózzunk el feltételek és ciklusok egymásba ágyazásától, ha szükséges. Tar Péter (PE-MIK-DCS) Programozás I. - 3. gyakorlat September 24, 2007 19 / 24

1. feladat Készíts programot Kérjünk be két lebeg pontos számot. Írassuk ki a nagyobb abszolút érték szám szinuszát. Írassuk ki a két szám szorzatának kerekített értékét úgy, hogy a kerekítést magunk végezzük. Írassuk ki a két szám által használt memória méretét bitekben! Próbáljuk kiíratni az el z pontban lév értéket a * (szorzás) operátor használata nélkül! Minden feladatot próbáljunk meg egy paranccsal végrehajtani! Tar Péter (PE-MIK-DCS) Programozás I. - 3. gyakorlat September 24, 2007 20 / 24

2. feladat Készíts programot Kérjünk be három lebeg pontos számot Írassuk ki a számokat, a köztük lév relációk (kisebb, nagyobb, egyenl ) ábrázolásával. Rendezzük növekv sorrendbe a számokat. Írassuk ki ismét az eredményt, az el z forma szerint. Írassuk ki, hogy a három számból, mint hosszúságértékb l szerkeszthet -e háromszög? Tar Péter (PE-MIK-DCS) Programozás I. - 3. gyakorlat September 24, 2007 21 / 24

3. feladat Készíts programot Kérjünk be egy számot 0-255 között. Tároljuk a számot a neki legmegfelel bb típusban. Kérjünk be egy sorszámot 1-8 között. Maszkoljuk ki az els szám bekért sorszámú bitjét 0-ra. Írassuk ki az eredményt. Tar Péter (PE-MIK-DCS) Programozás I. - 3. gyakorlat September 24, 2007 22 / 24

4. feladat Módosítsuk az el z programot A program lefutása után kérjük be, hogy akarunk-e még egy bitet maszkolni. (i/n) Ha igen, futtassuk újra a programot. Ha nem, köszönjünk el, majd lépjünk ki. Ha nem "i", vagy "n" bet t ír be a felhasználó tegyük fel újra a kérdést. Tar Péter (PE-MIK-DCS) Programozás I. - 3. gyakorlat September 24, 2007 23 / 24

5. feladat Készíts programot Kérj be három számot. Tekintsd ket egy másodfokú egyenlet együtthatóinak. Oldd meg az egyenletet! Ha van valós gyök, írjuk ki a megoldást. Ha nincs, írjuk ki, hogy az egyenlet a valós számok halmazán nem megoldható. Tar Péter (PE-MIK-DCS) Programozás I. - 3. gyakorlat September 24, 2007 24 / 24