Gépészeti informatika (BMEGEMIBXGI)

Slides:



Advertisements
Hasonló előadás
Szerver oldali programozás
Advertisements

C# nyelvi áttekintő A „Programozás C# nyelven (Illés Zoltán)”
Átváltás decimális számrendszerből bináris számrendszerbe.
Definíciók: Algoritmus: bármely véges sok lépéssel leírható tevékenység. Olyan pontos előírás, amely megmondja, hogy egy adott típushoz tartozó feladat.
C++ programozási nyelv Gyakorlat hét
Jt Java Feltételek, logikai kifejezések. jt 2 Logikai operátorok Logikai kifejezésekre alkalmazhatók a következő műveletek: 1. nem! 2. és&ill.&& 3. kizáró.
ADATBÁZIS KEZELÉS – Adattípusok
Kifejezések, operandusok, operátorok
2009 Bevezetés a programozásba Krankovits Melinda.
Matematikai logika A diasorozat az Analízis 1. (Mozaik Kiadó 2005.) c. könyvhöz készült. Készítette: Dr. Ábrahám István.
© Kozsik Tamás Tömbök, kollekciók és egyéb alaposztályok.
Turbo Pascal Változók.
Csala Péter ANDN #4. 2 Tartalom  C# - ban előre definiált típusok  Változók  Változókkal műveletek  Elágazás  Ciklus.
Bevezetés a Java programozásba
Táblázatkezelés alapjai MS Excel, OpenOffice Calc
Java Típuskonverziók.
Jt Java Kifejezések,precedencia. jt 2 Egy kifejezés operandusokból és operátorokból (műveletekből) áll. A kifejezésben szerepelhet egy vagy több operandus,
Készítette: Rummel Szabolcs Elérhetőség:
1 Programozás alapjai GEIAL312B (ANSI C) BSc (Bachelor of Science) / Alap képzés 2005/2006. őszi félév Miskolci Egyetem Általános Informatikai Tanszék.
PHP Webprogramozás alapjai
C++ Alapok, első óra Elemi típusok Vezérlési szerkezetek
dr Póder Margit f. docens Rendszer- és Szoftvertechnológia Tanszék
Vizuális és web programozás II.
Függvények III Logikai függvények. Hamis A HAMIS logikai értéket adja eredményül. HAMIS( ) A függvény alkalmazása helyett egyszerűen beírhatjuk a HAMIS.
PHP I. Alapok. Mi a PHP? PHP Hypertext Preprocessor Szkriptnyelv –Egyszerű, gyors fejlesztés –Nincs fordítás (csak értelmező) Alkalmazási lehetőségek:
Programozás Operátorok C# -ban.
P ROGRAMOZÁS I/O műveletek. S YSTEM.C ONSOLE A programjainknak fontos része a felhasználóval való kommunikáció. Adatokat kell kérni tőle, vagy közölnünk.
Programozás Az adatokról C# -ban.
C nyelv utasításai.
Táblázatkezelés alapjai MS Excel, OpenOffice Calc
Táblázatkezelés alapjai MS Excel, OpenOffice Calc
A JavaScript bemutatása
Beolvasó utasítás Console.Read();  Int típusú adatot kapunk. Console.ReadLine();  String típusú adatot kapunk. Console.ReadKey();  Tetszőleges billentyű.
A Pascal programozási nyelv alapjai
Ismétlés A pascal program szerkezete: program programnev; Programfej
Ismétlés.
Kifejezések a Pascalban Páll Boglárka. Ismétlés: Ahogy algoritmikából láttuk, a kifejezések a Pascal nyelvben is operátorokból és operandusokból állnak.
Kifejezések. Algoritmus számol; Adott összeg; összeg:=0; Minden i:=1-től 5-ig végezd el Ha 2 | i akkor összeg:=összeg+2*i Ha vége Minden vége Algoritmus.
A Pascal programozási nyelv alapjai
Operátorok Értékadások
PHP nyelv. PHP Interpreteres nyelv → parancsértelmező szükséges hozzá Rasmus Lerdorf 1995 → személyes felhasználás (internetes önéletrajzának megtekintésének.
Készítette: Csíki Gyula
Visual Basic 2008 Express Edition
Objektum orientált programozás
Logikai műveletek és áramkörök
ACCESS Lekérdezések, űrlapok, jelentések
Operátorok Vezérlési szerkezetek Gyakorlás
Táblázatkezelés KÉPLETEK.
Fontos tudnivalók A MATLAB egy fajta objektummal dolgozik (Mátrix)
Free pascal feladatok
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás I. 3. gyakorlat.
C++2. Ciklusok elöltesztelő (for, while) A ciklusmag feldolgozása előtt történik a vizsgálat  lehet, hogy egyszer sem fut le. A soronkövetkező iteráció.
TÁMOP /1-2F JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam Típusosztályok. Számosztályok. Math és StrictMath matematikai.
TÁMOP /1-2F JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam Utasítás és blokk. Elágazás típusai, alkalmazása Kovács.
Lekérdezések Adott tulajdonságú adatok listázásának módja a lekérdezés. A lekérdezések segítségével az adatbázisból megjeleníthetjük, módosíthatjuk, törölhetjük.
Informatikai gyakorlatok 11. évfolyam
Kifejezések C#-ban.
Gépészeti informatika (BMEGEMIBXGI)
Alhálózat számítás Osztályok Kezdő Kezdete Vége Alapértelmezett CIDR bitek alhálózati maszk megfelelője A /8 B
137. óra - Ismétlés Számok és műveletek
Programozás C# -ban Elágazások.
A CLIPS keretrendszer
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Változók.
Nulladrendű formulák átalakításai
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Algoritmus készítés.
Előadás másolata:

Gépészeti informatika (BMEGEMIBXGI) 2. Laboratóriumi foglalkozás Fink Nándor

Ismétlés: Változó deklarálása: Átkonvertálás: változótípus név = érték; int szám = 25; Átkonvertálás: ToInt32() Metódusok használatával! ToString()

Ismétlés: Formázóutasítás használata: {0:e7} label1.Text = Convert.ToString(String.Format(”{0:e7}”,változó1, változó2)); {0:e7} Hányadik elem kerüljön beillesztésre. (0-val kezdődik a számolás: 0,1,2,3..) Táblázatból kiválasztható (köv. dián). Megjeleníteni kívánt helyiértékek száma.

Ismétlés: Karakter Magyarázat Példa C, c Currency = Pénznem 1000 Ft D, d Decimal = Decimális 10 -150 000123 E, e Exponential = Exponenciális 1,052033E+003 -1,05e+003 F, f Fixed-point = Fix pontos 1234,57 -12,56 G, g General = Általános (e vagy f közül az egyszerűbb) 11,234 -11,2354e-25 N, n Number = Szám 1 234 567,12 -123 12,12 P, p Percent = Százalék 37,3 % 2 % R, r Round-trip = ~(Visszaalakítható ?) * 123456789,17 X, x Hexadecimal = Hexadecimális 255 -> FF * Biztosítja, hogy egy szám értéke stringgé alakítás után visszaalakítható legyen ugyanazzá a számmá. Forrás: VisualStudió 2013 online súgója: https://msdn.microsoft.com/en-us/library/dwhawy9k(v=vs.110).aspx (Az, hogy melyik mikor alkalmazható és hogyan függ a nyelvi beállításoktól szintén a súgóban található.)

Értékadás operátorokkal Különféle operátorok használatával az értékadás lerövidíthető: int szam = 0; // Létrehozza a „szam” nevű, „egész” típusú változót „0” kezdőértékkel. szam = szam + 1; // A változó értékének megnövelése 1-el. szam += 1; // A változó értékének megnövelése 1-el. szam++; // A változó értékének megnövelése 1-el.

Operátorok – Definíciók Precedencia: A kifejezések az elsőbbségi (precedencia) szabályok szerint kerülnek kiértékelésre. Ezek a szabályok meghatározzák a kifejezésekben szereplő, különböző elsőbbséggel rendelkező műveletek végrehajtási sorrendjét. Asszociativitás: Az azonos elsőbbségi operátorok esetén a balról-jobbra, illetve a jobbról-balra asszociativitás ad útmutatást. 13 – 15. oldal C# könyv

Operátorok – Definíciók Olyan (speciális) karakter, amelyhez valamilyen funkció van hozzárendelve. (Pl: „+” operátorhoz az összeadás művelete.) Egy-, két- és három operandusú operátorok: Operátorok csoportosítása aszerint, hogy hány kifejezés szükséges alkalmazásukhoz. Jelöljük piros színnel az operátorokat kék színnel pedig az operandusokat: i++; // Ahány „kék” elem, annyi operandusú -> 1 operandusú i + 2; // 2 operandusú a ? b : c; // 3 operandusú 13 - 15 oldal C# könyv

Operátorok

Operátorok

Bitléptetés 512 256 128 64 32 16 8 4 2 1 Helyiérték 1 vagy 0 Helyiérték 1 vagy 0 11001 bináris szám átváltása decimális számmá: 1*16+1*8+1*1 = 25 Bitléptetés műveletének megadása: 25<<2; Az operátor baloldalán megadott szám bináris értékét, az operátor irányának megfelelően << : balra, vagy >> : jobbra, az operátor jobboldalán megadott számszor végezzük el a bitléptetést. 25<<1 512 256 128 64 32 16 8 4 2 1 1*32+1*16+1*2 = 50 25<<2 512 256 128 64 32 16 8 4 2 1 1*64+1*32+1*4 = 100

Bitléptetés 512 256 128 64 32 16 8 4 2 1 Helyiérték 1 vagy 0 Helyiérték 1 vagy 0 11001 bináris szám átváltása decimális számmá: 1*16+1*8+1*1 = 25 Bitléptetés műveletének megadása: 25<<2; Az operátor baloldalán megadott szám bináris értékét, az operátor irányának megfelelően << : balra, vagy >> : jobbra, az operátor jobboldalán megadott számszor végezzük el a bitléptetést. 25>>1 512 256 128 64 32 16 8 4 2 1 1*8+1*4 = 12 25>>2 512 256 128 64 32 16 8 4 2 1 1*4+1*2 = 6

Bitenkénti ÉS és VAGY műveletek ÉS operátor „&”: 1 Eredmény 1. Összehasonlítandó elem 2. Összehasonlítandó elem Ha a két összehasonlítandó bináris szám adott helyiértékén található szám egyaránt 1, akkor az eredmény 1, ha pedig különbözik ,vagy mindkettő 0, akkor 0. KIZÁRÓ VAGY operátor „^”: 1 Ha a két összehasonlítandó bináris szám adott helyiértékén található szám egyike 1 a másik pedig 0, akkor 1, ha pedig mindkettő 1, vagy mindkettő 0, akkor 0.

Bitenkénti ÉS és VAGY műveletek MEGENGEDŐ VAGY operátor „|”: 1 Ha a két összehasonlítandó bináris szám adott helyiértékén található szám egyike 1 a másik pedig 0, vagy mindkettő 1, akkor 1, ha pedig mindkettő 0, akkor 0. Felírás igazságtáblával: ÉS operátor „&”: KIZÁRÓ VAGY operátor „^”: MEGENGEDŐ VAGY operátor „|”: 1 1 1

A feltételes operátor Használat: FELTÉTEL ? HA_IGAZ : HA_HAMIS Pl: 1<2 ? 3 : 4; A művelet precedenciaszintje (elsőbbsége) igen alacsony, amennyiben fontos, hogy hamar kerüljön kiértékelésre, zárójelek alkalmazása javasolt! Hamis: Ha a feltétel hamis volt, ez lesz a kifejezés értéke Igaz: Ha a feltétel igaz volt, ez lesz a kifejezés értéke Feltétel: Vizsgáld meg, hogy 1 kisebb-e, mint 2 17. oldal c# könyv

Alapfüggvények: a Math osztály Használatuk: Math.PI; // Pi értékét adja Math.Exp(x); // ex értékét adja Math.Pow(x,y); // xy Math.Sign(x); // Pozitív szám esetén: +1 // Negatív szám esetén: -1 // Zérus esetén: 0

LÉPTETŐ OPERÁTOROK: i kezdőértéke: int i = Convert. ToInt32(textBox1 LÉPTETŐ OPERÁTOROK: i kezdőértéke: int i = Convert.ToInt32(textBox1.Text); Utótagos léptető operátor: label1.Text = String.Format("i++: {0}, i--: {1}, i: {2}", i++, i--, i); Vagy: label1.Text = "i++: " + i++ + " i--: " + i-- + " i: " + i; Előtagos léptető operátor: label1.Text = "++i: " + ++i + " --i: " + --i + " i: " + i; Léptető operátorok gyakorlása: label1.Text = "i: " + i + " i++: " + i++ + " i++: " + i++ + " i++: " + i++ + " i: " + i; label1.Text = "i: " + i + " i+i++: " + (i+i++) + " i: " + i + " i++ + i++: " + (i++ + i++) + " i: " + i + " ++i + i: " + (++i + i) + " i: " + i; 15. oldal c# könyv

Léptető operátor magyarázat 1. lépés: i kezdeti értéke legyen 0. 2. lépés: i értéke 0, amit hozzáadunk i++-hoz. Utótagos (postfix) növelés esetén a változó értékét az előtt olvassuk ki, minthogy megnövelnénk az értékét, tehát az összeadás pillanatában i értéke még mindig 0. Miután a változó értéke beolvasásra került, azonnal megtörténik a kiértékelése, tehát értéke 1 lesz. 3. lépés: i értéke a művelet elvégzése után 1. 4. lépés: i++-t hozzáadjuk önmagához. Itt az történik, hogy i++ értéke az előző művelet miatt 1, ezt beolvassuk, majd azonnal megnöveljük, így mire a második i++-hoz érünk, annak értéke már 2 lesz, amit a beolvasás után tovább növelünk. 5. lépés: i értéke most már 3. 6. lépés: ++i-t hozzáadjuk i-hez. Itt előtagos (prefix) növelést hajtunk végre, ami azt jelenti hogy i értékének növelése az érték beolvasása előtt történik meg. Tehát azonnal megnöveljük i értékét eggyel, az új értéke 4 lesz, ezt beolvassuk, majd hozzáadjuk módosítás nélkül az immáron 4 értékű i-t. 7. lépés: i értéke az utolsó művelet elvégzése után 4 lesz.

MATEMATIKAI FÜGGVÉNYEK HASZNÁLATA: // MATEMATIKAI FÜGGVÉNYEK HASZNÁLATA int neg = -150; label1.Text = "i: " + i + " Sin(i): " + Math.Sin(i) + "\nneg: " + neg + " Sin(neg): " + Math.Sin(neg) + "\n|neg|: " + Math.Abs(neg); ! OPERÁTOR HASZNÁLATA: // ! OPERÁTOR HASZNÁLATA (csak bool típusra) bool igennem = false; label1.Text = "igennem: " + igennem + " !igennem: " + !igennem;

BITLÉPTETÉS: // BITLÉPTETÉS int szam = 25; int lepes1 = 1;   int szam = 25; int lepes1 = 1; int lepes2 = 2; int lepes3 = 3; string labelre;  labelre = "Szám: " + szam + " Bináris alak: " + Convert.ToString(szam,2); labelre += "\nLéptetés 1-el balra:\nEredeti szám\nLéptetett szám\n" + Convert.ToString(szam, 2) + "\n" + Convert.ToString(szam << lepes1, 2); labelre += "\nLéptetés 2-vel balra:\nEredeti szám\nLéptetett szám\n" + Convert.ToString(szam, 2) + "\n" + Convert.ToString(szam << lepes2, 2); labelre += "\nLéptetés 3-al balra:\nEredeti szám\nLéptetett szám\n" + Convert.ToString(szam, 2) + "\n" + Convert.ToString(szam << lepes3, 2); labelre += "\nLéptetés 1-el jobbra:\nEredeti szám\nLéptetett szám\n" + Convert.ToString(szam, 2) + "\n" + Convert.ToString(szam >> lepes1, 2); labelre += "\nLéptetés 2-vel jobbra:\nEredeti szám\nLéptetett szám\n" + Convert.ToString(szam, 2) + "\n" + Convert.ToString(szam >> lepes2, 2); labelre += "\nLéptetés 3-al jobbra:\nEredeti szám\nLéptetett szám\n" + Convert.ToString(szam, 2) + "\n" + Convert.ToString(szam >> lepes3, 2); label1.Text = labelre;

OSZTÁS ÉS MARADÉKKÉPZÉS: // OSZTÁS ÉS MARADÉKKÉPZÉS   // OSZTÁS ÉS MARADÉKKÉPZÉS int a = Convert.ToInt32(textBox1.Text); int b = Convert.ToInt32(textBox2.Text); label1.Text = "Műveletek integerekkel:\na / b = " + a/b + " , a % b = " + a%b; double a = Convert.ToDouble(textBox1.Text); double b = Convert.ToDouble(textBox2.Text); label1.Text = "Műveletek doubleökkel:\na / b = " + a/b + " , a % b = " + a%b;

ELDÖNTENDŐ MŰVELETEK OPERÁTORAI: // LOGIKAI OPERÁTOR HASZNÁLATA (csak bool típusra) bool eldontendo; int szam = 1; eldontendo = szam == 1; eldontendo = szam != 1; eldontendo = szam < 2; eldontendo = szam > 2; label1.Text = "A logikai feltétel: " + eldontendo; DE! eldontendo = szam = 1; HIBA! Először értékadó operátor használatával 1-re állítjuk a szam nevű válzozó értékét, majd szintén értékadó operátorral egy numerikus értéket akarunk adni a bool típusú változónak.

FELTÉTELES OPERÁTOROK ÖSSZEFŰZÉSE: // FELTÉTELES OPERÁTOROK int a = Convert.ToInt32(textBox1.Text); int b = Convert.ToInt32(textBox2.Text); // VAGY operátor || label1.Text = a + " < 20 || " + a + " > 30 : " + (a < 20 || a > 30); // ÉS operátor && label1.Text = a + " < 20 && " + b + " < 20 : " + (a < 20 && b < 20); Megjegyzés: Nem összekeverendő a szimpla és a dupla változat. Általánosságban a szimpla | bitenkénti összehasonlító vagy-ot jelent, míg a szimpla & bitenkénti összehasonlító és-t. C#-ban a bitenkénti összehasonlító funkció mellett betölt logikai összefűző szerepet is, de másképpen viselkedik mint a dupla. Tehát && NEM EGYENLŐ &, valamint || NEM EGYENLŐ | !!!!

& és && közötti különbség a C#-ban logikai műveletek összefűzésekor: Csak akkor megyünk el szórakozni, ha: Nem esik az eső. Van rá pénzünk. Mindenki ráér. Ha így vizsgáljuk: (Esik? && Van pénzünk? && Ráérünk?) ((ez nem kód)) * Akkor kinézek az ablakon, és ha esik az eső, akkor már tudom, hogy úgy sem fogunk menni sehova, így nem nézek bele a pénztárcámba és nem hívogatok körbe mindenkit, hogy ráér-e. Ha így vizsgáljuk: (Esik? & Van pénzünk? & Ráérünk?) ((ez nem kód)) * Akkor kinézek az ablakon, és látom, hogy esik, de annak ellenére, hogy már úgysem megyünk sehová, még megnézem mennyi pénzem van, és felhívok mindenkit, hogy ráért volna-e. Tehát: ha szimpla &-t vagy |-t használunk, akkor mindenképpen lefut minden kondíció ellenőrzése. Ez felesleges erőforrás pazarlás, valamint nehezebben olvashatóvá teszi a kódot. Használata CSAK INDOKOLT esetben javasolt!

Emlékeztető: Pl: 1<2 ? 3 : 4; ? : operátor használata: double ho = Convert.ToDouble(textBox1.Text); label1.Text = "A víz halmazállapota: " + ho + " -fokon " + (ho > 100 ? "légnemű" : ho < 0 ? "szilárd" : "folyékony"); Emlékeztető: Pl: 1<2 ? 3 : 4; Hamis: Ha a feltétel hamis volt, ez lesz a kifejezés értéke Igaz: Ha a feltétel igaz volt, ez lesz a kifejezés értéke Feltétel: Vizsgáld meg, hogy 1 kisebb-e, mint 2

Felhasznált irodalom http://www.mogi.bme.hu/letoltes/ALKALMAZOTT%20INFORMATIKAI%20TÁRGYAK/INFORMATIKAI%20RENDSZEREK%202015/C%23.pdf http://www.mogi.bme.hu/letoltes/ALKALMAZOTT%20INFORMATIKAI%20TÁRGYAK/INFORMATIKAI%20RENDSZEREK%202015/C_%20programozás%20lépésről%20lépésre%20-%20Reiter%20István%20(frissitett%20tartalommal%202012.10.15).pdf Dr. Tamás Péter óravázlatai Microsoft Visual Studio 2013 súgója

Köszönöm a megtisztelő figyelmet!