Programozás BMEKOKAA146 Dr. Bécsi Tamás 1. Előadás
Bemutatkozás • Előadó: Dr. Bécsi Tamás • St.106, (1)463-1044,
[email protected]
• Közlekedés-, és Járműirányítási Tanszék • www.kjit.bme.hu
2016. 09. 26.
Programozás 1. Előadás
2
A tantárgyi követelmények • Szorgalmi időszakban • Laborgyakorlatok látogatása • max. 4 hiányzás lehet (Járműmérnök)
• Beszámolók megírása (2 eredményes ZH) • Féléves házi feladat beadása (egyéni, működő) • Kredit pontok megszerzése (7 kredit !!!) • Félév végi jegy (követelmények teljesítése esetén) • Jegy = (zh1+zh2)/4 + HF/2 2016. 09. 26.
Programozás 1. Előadás
3
Mi a programozás? Általánosan • Egy átfogó folyamat, amely egy probléma megfogalmazásától egy (számítógépen) futtatható program készítéséig tart. • Magában foglalja a probléma analízisét, megértését, megoldását, (amelynek eredménye egy algoritmus) egy adott környezetben (programnyelv) való implementálását. • Pontosság, sebesség, erőforrás felhasználás, tesztelés.
• A programozás (kódolás) során az utasítások egy olyan szekvenciáját állítjuk elő, amely az adott probléma megoldását szolgáltatja.
2016. 09. 26.
Programozás 1. Előadás
4
Mi a programozás? Egyszerű Példa • Menj le fiam a boltba, hozz tejet, és ha van tojás, hozz tizenkettőt. • Kétértelmű specifikáció
Start Lemegy a boltba Vesz tejet Van tojás? Van
Nincs
Vesz tizenkettőt Visszamegy Stop 2016. 09. 26.
Programozás 1. Előadás
5
Mi a programozás? Egyszerű Példa • Menj le fiam a boltba, hozz tejet, és ha van tojás, hozz tizenkettőt. • Úgy érted tojást? • Mert mit gondoltál?!
Start Lemegy a boltba Vesz tejet Van tojás? Van
Nincs
Vesz tizenkét tojást Visszamegy Stop 2016. 09. 26.
Programozás 1. Előadás
6
De hogy vesz tizenkét tojást? Start
Start
Start
Tojas=0; Addig pakolja a tojásokat, amíg nem lesz tizenkettő
Stop 2016. 09. 26.
12 a tojás? Igen
Nem
Tojas>=12 Nem
Berak egy tojást
Tojas=Tojas+1; (Berak egy tojást)
Stop
Stop Programozás 1. Előadás
Igen
7
Mit fogunk tanulni? A C# nyelv
• A nyelv alapjául a C++ és a Java szolgált, amelyek C alapú programnyelvek • A C# objektumorientált programnyelv • Jelen előadás a gyakorlati órákon való elindulás elősegítését tűzi ki célul. • Reiter István: C# Programozás lépésről lépésre • Microsoft Visual Studio 2015 Community
2016. 09. 26.
Programozás 1. Előadás
8
A C# nyelv szintaktikája • A C# úgynevezett C-stílusú szintaxissal rendelkezik (azaz a C programozási nyelv szintaxisát veszi alapul), ez három fontos szabályt von maga után: • Az egyes utasítások végén pontosvessző - ; - áll. • A kis- és nagybetűk különböző jelentőséggel bírnak, azaz a “program” és “Program” azonosítók különböznek. Case Sensitive • A program egységeit (osztályok, metódusok stb.) ún. blokkokkal jelöljük ki, kapcsos zárójelek ({ és }) segítségével.
2016. 09. 26.
Programozás 1. Előadás
9
A C# nyelv kulcsszavai abstract as base bool break byte case catch char checked class const continue decimal 2016. 09. 26.
default delegate do double else enum event explicit extern false finally fixed float for
foreach goto If implicit In int interface internal Is lock long namespace new null
object operator out override params private protected public readonly ref return sbyte sealed short Programozás 1. Előadás
Sizeof stackalloc Static String Struct Switch This Throw True Try Typeof Uint Ulong unchecked
unsafe ushort using virtual volatile void while
10
Megjegyzések namespace Hello_World { class Program { static void Main(string[] args) { Console.WriteLine("Helló Világ");//Egysoros komment Console.WriteLine("Helló Világ még egyszer"); /* Több soros komment még mindig ide igazából bármit írhatok, a "program" nem veszi figyelembe még azt is, hogy a francos krumpliba Eddig egészen pontosan*/ Console.ReadLine(); } } }
2016. 09. 26.
Programozás 1. Előadás
11
Szintaktikai alapok Alapvető típusok C# típus byte char bool sbyte short ushort int uint float double decimal long ulong string object
.NET típus System.Byte System.Char System.Boolean System.SByte System.Int16 System.UInt16 System.Int32 System.UInt32 System.Single System.Double System.Decimal System.Int64 System.UInt64 System.String System.Object 2016. 09. 26.
Méret Leírás (byte) 1Előjel nélküli 8 bites egész szám (0..255) 2Egy Unicode karakter 1Logikai típus, értéke igaz(1) vagy hamis(0) 1Előjeles 8 bites egész szám (-128..127) 2Előjeles 16 bites egész szám (-32768..32767) 2Előjel nélküli 16 bites egész szám (0..65535) 4Előjeles 32 bites egész szám (–2147483647.. 2147483647). 4Előjel nélküli 32 bites egész szám (0..4294967295) 4Egyszeres pontosságú lebegőpontos szám 8Kétszeres pontosság lebegőpontos szám 8Fix pontosságú 28+1 jegyű szám 8Előjeles 64 bites egész szám 8Előjel nélküli 64 bites egész szám N/A Unicode karakterek szekvenciája N/A Minden más típus őse Programozás 1. Előadás
12
Állandók (Literals) Állandók
Escape Szekvenciák
1234
int állandó
\a
figyelmeztető jelzés (bell, csengő)
1234L
long állandó
\b
visszalépés (backspace)
1234UL unsigned long állandó
\f
lapdobás (formfeed)
0x1f2
\n
új sor (new line)
0x1f2UL hexa unsigned long
\r
kocsi vissza (carriage return)
1234.5
\t
vízszintes tabulátor (horizontal tab, HTAB)
1234.5f float állandó
\v
függőleges tabulátor (vertical tab, VTAB)
’c’
char állandó
\\
fordított törtvonal (backlash)
”szoveg”char[] (string) állandó
\'
aposztróf
null
\"
idézőjel
hexa állandó double állandó
\xhh hexadecimális szám
2016. 09. 26.
Programozás 1. Előadás
13
Változók Deklaráció, Definíció
• • • •
Típus változónév; int x; // deklaráció x = 10; // definíció int y = 11; // deklaráció és definíció
2016. 09. 26.
Programozás 1. Előadás
14