C# programozás
Tartalomjegyzék
- A C# programozási nyelvről
- A Visual Studio
- Mi az az IDE?
- A Visual Studio telepítése
- Új projekt létrehozása
- A változók
- Mik azok a változók?
- A változók deklarálása
- Értékadás a változóknak
-
A kifejezések és az operátorok
- Matematikai operátorok
- Relációs operátorok
- Logikai operátorok
- Értékadó operátor és a programozók lustasága
1. A C# programozási nyelvről
A C# egy 2001-ben megjelent, elegáns, objektumorientált nyelv, amivel a fejlesztők biztonságos és gyors alkalmazásokat tudnak írni a .NET keretrendszer alá (ejtsd: dotnet). A C#-ot használhatjuk Windows applikációk, webszolgáltatások, mobil applikációk, kliens-szerver applikációk, adatbáziskezelő applikációk, játékok és még sok minden készítésére.
A nevében a C a C programozási nyelvre utal, a # pedig a zenében a fél hanggal való felemelést szimbolizálja (a C++ nyelvben a ++ jelenti egy változó megnövelését 1-gyel).
2. A Visual Studio
2.1 Mi az az IDE?
A programozóknak szükségük van egy fejlesztőkörnyezetre, ami segíti a programozást. Ezt nevezzük IDE-nek. Ez segít megtalálni a programban az esetleges hibákat és segít a kijavításukban is. Valamint kiszínezi a forráskódot az adott elemek nyelvi helyzete alapján, ezáltal a forráskódok is sokkal átláthatóbbak lesznek. A forráskódot ez fordítja le futtatható .exe fájlba.
2.2 Visual Studio telepítése
-
Töltsd le a Visual Studio Community 2017 telepítőfájlját a https://www.visualstudio.com/downloads/ oldalról a
Free download gombra kattintva! - Futtasd a letöltött fájlt (rendszergazdai jogosultság szükséges)!
- Várjunk, amíg lemegy a kék csík.
-
A listából válasszuk ki a
.NET desktop development elemet, majd klikkeljünk azInstall gombra! - Várjuk meg, míg letöltődik a Visual Studio. Ez lassabb internetkapcsolat esetén több órát is igénybe vehet.
- Indítsuk el a programot a Launch gombbal.
2.3 Új projekt létrehozása
- Nyissuk meg a Visual Studio-t a Start menüben, vagy az asztalról!
- Fönt, a menüsorban válasszuk ki a
File -> New -> Project elemet, vagy aCTRL + SHIFT + N billentyűkombinációt használva nyissuk meg aNew Project ablakot! - Itt választhatjuk ki a programunk típusát. Mi a tanfolyam elején a
Console Apllication -t fogjuk használni. -
A programunkat a Main-be írjuk. Ez fog lefutni, amikor elindítjuk a programot.

Ha valakinek át szeretnénk küldeni programunkat, akkor egy mappát kell átküldeni, amit zip-pé tömörítve (Például 7-zip-pel, vagy WinRAR-ral) lehet elküldeni. A Visual Studio mentési helyét a projekt létrehozásánál az alsó szövegmezőknél lehet megadni.
3. A változók
3.1 Mik azok a változók?
A programok változókat használnak feladatuk elvégzése közben. A változók egy bizonyos típusú adatot tudnak tárolni és ezt a program a futása közben meg tudja változtatni, illetve ki tudja olvasni. Úgy képzeljük el, mint egy dobozt, amibe lehet rakni valamit, majd később meg lehet nézni, mit raktunk bele.
3.2 A változók deklarálása
Az egyes változók rendelkeznek egy azonosítóval, amivel utalhatunk rá, valamint egy értékkel, amit behelyettesít. Minden változónak a létrehozásakor, azaz a deklarálásakor meg kell adni a típusát. Ez a funkciótól függően lehet egész szám, tizedes tört, egy karakter, egy szöveg (sztring), vagy akár egy igaz/hamis érték.
C#-ban ezt így tehetjük meg:
| Típus | Deklarálás |
|---|---|
| Egész szám | int valtozo_neve; |
| Tizedestört | double valtozo_neve; |
| Egy karakter | char valtozo_neve; |
| Szöveg (sztring) | string valtozo_neve; |
| Igaz/hamis érték | bool valtozo_neve; |
A változó neve csak alfanumerikus karaktereket (betűk, számok és _) tartalmazhat és csak betűvel, vagy _-sal kezdődhet. A C# elvileg kezeli a magyar ékezetes karaktereket a változók neveiben, de ajánlott angol kifejezéseket írni.
3.3 Értékadás a változóknak
A változóknak az értékadó operátor, az egyenlőség jel segítségével adhatjuk meg a tárolni kívánt értéket. Az alábbi program ezt szemlélteti:
int a;
a = 21; //int típusú érték adása az a nevű változónak.
bool b; //A b nevű változó típusa bool.
b = true; //A b nevű változó értékét true-ra állítjuk.
string c;
c = "Helló világ!";
Ahogy megfigyelhettük, az utasítások után pontosvesszőt kell tenni. Éppen ezért a kódot akár egy sorba is írhatjuk, mert a fordító érzékeli a parancsok határait.
int a; a = 21; bool b; b = true; string c; c = "Helló világ!";
Értéket a deklarálásakor is tudunk adni a változónak:
int a = 21;
char b = 'h';
4. A kifejezések és az operátorok
Ha valaminek szeretnénk értéket adni, akkor nem csak egy előre megadott értéket adhatunk meg, hanem változók, konstansok és operátorok kombinációjával bármilyen kifejezést. Ezeket matematikai, relációs és logikai operátorokkal adhatjuk meg.
4.1 Matematikai operátorok
| Név | Operátor | Példa | Eredmény |
|---|---|---|---|
| Összeadás | + | int a = 10 + 30; | 40 |
| Kivonás | - | int b = 10 - 3; | 7 |
| Szorzás | * | int c = 20 * 3; | 60 |
| Osztás | / | double d = 5 / 2; int egész = 5 / 2; |
2.5 2 |
| Osztás maradéka | % | int maradék = osztandó % osztó int e = 8 % 3 |
2 |
Ha az osztásnak tizedestört a kimenete és egész típusú változóba próbáljuk belerakni, a változó az eredmény lefelé kerekített értékét kapja.
Sztringek konkatenálása
Ha van két sztringünk és össze szeretnénk őket fűzni egy sztringgé, akkor a + operátort kell használnunk:
string a = "Helló ";
string b = "világ!";
string c = a + b;
//A c értéke: Helló világ!
Nem csak szöveget konkatenálhatunk szöveggel. Számot így lehet összefűzni:
double pi = 3.14159265;
string szöveg = "A pi értéke 8 tizedesjegyig: " + pi + ".";
//A szöveg változó értéke: A pi értéke 8 tizedesjegyig: 3.14159265.
Nem csak változókkal konkatenálhatjuk össze a szövegünket, hanem bármilyen kifejezéssel. Ez esetben ajánott zárójelekbe tenni a kifejezéseket.
double pi = 3.14159565;
int r = 10;
string szöveg = "Egy 10 méter sugarú körnek " + (2 * r * pi) + " méter a kerülete.";
//A szöveg nevű változó értéke: Egy 10 méter sugarú kötnek 62.8318531 méter a kerülete.
4.2 Relációs operátorok
A relációs operátorok összehasonlítanak két értéket. Bármilyen típusú lehet a bemeneti két érték, de a kimenet mindig igaz/hamis (boolean) títpusú lesz. Az alábbi táblázat szemlélteti ezeknek a működését:
| Név | Opeátor | Példa | Eredmény |
|---|---|---|---|
| X kisebb-e, mint y? | < | 10 < 20 | true (igaz) |
| X kisebb, vagy egyenlő-e y-nal? | <= | 20 <= 20 | true (igaz) |
| X nagyobb-e, mint y? | > | 10 > 20 | false (hamis) |
| X nagyobb, vagy egyenlő-e y-nal? | >= | 21 >= 20 | true (igaz) |
| X egyenlő-e y-nal? | == | 10 == 10.00 | true (igaz) |
| X értéke és típusa is egyenlő y-nal? | === | 10 === 10.00 | false (hamis) |
| X nem egyenlő-e y-nal? | != | 10 != 10 | false (hamis) |
4.3 Logikai operátorok
Igaz/hamis értékekkel dolgoznak.
| 1. érték | 2. érték | Eredmény |
|---|---|---|
| true | true | true |
| true | false | false |
| false | true | false |
| false | false | false |
- Operátor:
&& - Példa:
0 < 10 && 10 > 2 - Eredmény: Igaz, mert mindkét állítás igaz volt.
- Több feltételt is megadhatunk && elválasztással.
| 1. érték | 2. érték | Eredmény |
|---|---|---|
| true | true | true |
| true | false | true |
| false | true | true |
| false | false | false |
- Operátor:
|| (AltGR+W) - Példa:
a == 10 || a == 5 - Eredmény: Ha
a értéke 10, vagy 5, akkor true, egyébként false. - Több lehetőséget is megadhatunk || elválasztással.
| Bemeneti érték | Eredmény |
|---|---|
| true | false |
| false | true |
- Operátor:
! - Példa: !(1==2)
- Eredmény: Igaz, mert az 1==2 hamis és ezt fordítja meg.
4.4 Az értékadó operátorok és a programozók lustasága
Az értékadó operátorokról már esett szó. Egy változónak adnak értéket. A bal oldalon a változó neve (azonosítója) szerepel, jobb oldalon pedig egy kifejezés, aminek a típusának ugyanolyannak kell lenni, mint a változóé. Int változónak adhatunk double értéket, ekkor a double érték int-té konvertálódik, lefele kerekítődik. Double változónak adatvesztés nélkül adthatunk int értéket.
Értékadáskor az adott változó régi értékét is felhasználhatjuk, például, hogy az értékét megnöveljük 10-zel:
int a = 3;
a = a + 10;
//Az a változó értéke 13 lett.
Ilyenkor a program kiolvassa a változó értékét, hozzáad 10-et, majd ezt az értéket adja az a változónak.
Rövidítő értékadó operátorok
A programozók lusták leírni a változó nevét kétszer ahhoz, hogy megnöveljék a változót egy számmal, vagy bármilyen másik műveletet végezzenek saját magával, ezért kitalálták a rövidítő operátorokat:
| Operátor | Példa | Mit helyetesít? |
|---|---|---|
| += | ||
| -= | ||
| *= | ||
| /= | ||
| %= |
Sokszor arra is szükség van, hogy egy szám típusú változó értékét csökkentsük, vagy növeljük eggyel. A programozók lusták leírni az
| Feladat | Példa | Mit helyettesít? |
|---|---|---|
| Növelés 1-gyel | ||
| Csökkentés 1-gyel |
int x = 0;
int y = 2;
y *= 3;
x += y;
x++;
- X értékét 0-ra állítjuk.
- Y értékét 2-re állítjuk.
- Y értékét megszorozzuk 3-mal, így y értéke 6 lesz.
- X értékéhez hozzáadunk y-t, azaz 6-ot. 0 + 6 = 6
- X értékét megnöveljük 1-gyel. X értéke 7.
5. A konzol használata
Eddig csak változóknak adtunk értéket és kifejezáseket írtunk, most viszont megnézzük, hogyan lehet ezeket a felhasználó számára láthatóvá tenni.
5.1 Kiíratás a konzolra
A konzolra való kiíratást egy ún. metódussal, vagy függvénnyel tehetjük meg. A WriteLine nevű metódus a Console osztálynak egy metódusa. Az alábbi módon tudunk kiíratni egy szöveget a konzolra:
Console.WriteLine("Helló világ!");
Amint gondolom észrevettétek, a képernyőn megjelenik egy pillanatra a konzol, ki is írja a
Console.WriteLine("Helló világ!");
Console.WriteLine("A folytatáshoz nyomja meg az ENTER billenytűt!");
Console.ReadLine();
A konzolra változókat is ki tudunk íratni:
int a = 10;
a *= 3;
Console.WriteLine("Az a értéke: " + a + "."); //Az a értéke: 30.
Console.WriteLine("A folytatáshoz nyomjon ENTERT...");
Console.ReadLine();
int x = 10;
Console.WriteLine("Az x változó kétszerese: " + (x * 2));
Console.WriteLine("A folytatáshoz nyomja meg az ENTER-t...");
Console.ReadLine();
5.2 Adatbekérés konzolról
Sztringek bekérése
C#-ban konzolról szöveget beolvasni a
string input = Console.ReadLine();
Console.WriteLine("A bevitt szöveg: " + input);
Console.WriteLine("Nyomj ENTER-t a kilépéshez!");
Console.ReadLine();
Console.WriteLine("Szia! Mi a neved?");
string név = Console.ReadLine();
Console.WriteLine(név + ", ez egy igazán szép név! (Bár mindenkinek ezt mondom.)");
Számok bekérése
Számok bekérésére nincsen előre létrehozott parancs C#-ban, és a Console.ReadLine() egy sztring típusú értéket ad vissza akkor is, ha számot írtunk be. Szerencsére van egy metódus a számot tartalmazó sztringek számmá konvertálására:
string x = "112"; //Számot tartalmazó, sztring típusú kifejezés
Console.WriteLine(x + 25); //Kijelzi a 11225-öt, mert sztringként adta őket össze.
int y = Int.Parse(x); //Szám típusuvá alakítjuk az x értékét és belerakjuk az y változóba.
Console.WriteLine(y + 25); //Kijelzi a 137-et, mert két számot adott össze.
Ahogy létezik
(kerület = 2 * sugár * pi, pi = 3.14159265)
Console.WriteLine("Add meg a kör sugarát: ");
double r = Double.Parse(Console.ReadLine()); //Bekérjük a sugarat, double típusúvá konvertáljuk, majd az új, double típpusú r névvel ellátott változónak adjuk az értéket.
Console.WriteLine(2 * r * 3.14159265); //A kerület kiszámítása és kiírása
Console.WriteLine("Adj meg egy hőmérsékletet °C-ban!");
double celsius = Double.Parse(Console.ReadLine()); //Azért nem int, mert nem csak egész fokok vannak.
double fahrenheit = celsius * 1.8 + 32;
Console.WriteLine("A hőmérséklet fahrenheitben: " + fahrenheit);
Ugyanezt meg lehet csinálni felesleges változók létrehozása nélkül is (továbbiakban erre figyeljünk!):
Console.WriteLine("Adj meg egy hőmérsékletet °C-ban!");
Console.WriteLine("A hőmérséklet fahrenheitben: " + ( Double.Parse( Console.ReadLine() )*1.8 + 32 );
6. Elágazások
Az if elágazás
Utasítások lefutását feltételekhez tudjuk kötni. A feltételek boolean (igaz/hamis) kifejezések. Ha az értéke igaz, akkkor lefut a kijelölt kódrészlet, ha pedig hamis, akkor nem. Az alábbi program bekér egy számot, majd kiírja az
int szam = Int.Parse(Console.ReadLine()); //Bekérünk egy egész számot a szam nevű változóba.
if(szam > 10) //A boolean kifejezést zárójelek között adjuk meg.
{
Console.WriteLine("A megadott szám nagyobb, mint 10.");
// { és } jel (harcsabajusz :D) közé írjuk azt a kódrészletet, aminek le kell futnia, ha igaz a megadott feltétel.
}
Nem csak egy parancsot futtathatunk le egy elágazáson belül:
int x = 10;
if(x == 3){ //Ha az x értéke 3:
Console.WriteLine("Az x változó értéke három.");
Console.WriteLine("Ez egy másik parancs, ami lefut.");
Console.WriteLine("Ez meg a harmadik.");
}
Mint már említettem, kifejezés az, ami értéket ad vissza, lehet ez változó, egy matematikai kifejezés (pl. 10+5) és logikai kifejezés (pl.: true && false) is. Az alábbi kódban egy boolean változó értéke dönti el, hogy lefusson-e a program:
bool feltetel;
feltetel = 10 < 30;
if(feltetel){
Console.WriteLine("A feltétel igaz volt...");
}
int x = Int.Parse(Console.ReadLine());
int eredmeny = x / 5; //Ha int változónak adunk esetleges double értéket, akkor az érték lefele kerekítődik.
Console.WriteLine(x + " / 5 = " + eredmeny);
if(x % 5 != 0){
Console.WriteLine("A maradék: " + (x % 5));
}
Console.ReadLine();
Else - egyébként
Hogyan valósítanánk meg azt, hogy ha egy bekért szám nagyobb mint 10, akkor lefusson valami, egyébként meg egy másik valami? Két if-et raknánk egymás után és az első megnézné, hogy nagyobb-e 10-nél, a második meg azt, hogy kisebb/egyenlő-e 10-zel:
int x = Int.Parse(Console.ReadLine());
if(x > 10){
Console.WriteLine("Nagyobb, mint 10.");
}
if(x <= 10){
Console.WriteLine("Nem nagyobb, mint 10.");
}
Ennél létezik egy hatékonyabb és egyszerűbb megoldás, mégpedig az
int x = Int.Parse(Console.ReadLine());
if(x > 10){
//Ez fut le, ha feltétel igaz.
Console.WriteLine(x + " nagyobb 10-nél.");
}
else{
//Ez fut le egyébként (ha a feltétel nem igaz).
Console.WriteLine(x + " nem nagyobb 10-nél.");
}
Elágazásokat egymásba is ágyazhatunk:
int x = Int.Parse(Console.ReadLine());
if(x % 10 == 0){//Ha tízzel osztva a maradék 0:
if(x % 3 == 0){ //Ha 3-mal osztva a maradék 0:
Console.WriteLine(x + " osztható 10-zel, sőt 3-mal is.");
}
else{ //Egyébként:
Console.WriteLine(x + " osztható 10-zel, de 3-mal nem.");
}
}
else{ //Egyébként:
if(x % 3 == 0){ //Ha 3-mal osztva a maradék 0:
Console.WriteLine(x + " osztható 3-mal, de 10-zel nem.");
}
else{ //Egyébként:
Console.WriteLine(x + " nem osztható 3-mal és 10-zel sem.");
}
}
Ha egész a szám, akkor az 1-gyel való osztás maradéka 0.
double x = Double.Parse(Console.ReadLine());
if(x % 1 === 0 && x >= 0){
Console.WriteLine(x + " egy természetes szám.");
}
else{
Console.WriteLine(x + " nem természetes szám.");
}
Ha elakadtál, vagy kérdésed van, keress meg emailen, vagy facebookon!
Folytatásért érdemes visszanézni minden nap!