Navigation


RSS: tutorialok Jelenleg 6 vendég és 0 tag van az oldalon.

C#-Alapozás 2.rész

szerző: elodani
dátum: 2009-07-28
Kategóriák:
  .NET/C#

Nos folytassuk, amit az előző részben abbahagytunk.
Még mindig alapozunk, de már nem sokáig ;)

Ebben a részben a változókról lesz szó.

Hát kezdjünk is neki:

Emlékek:
Amikor programot írunk, akkor szükség lehet tárolókra, ahová az adatainkat ideiglenesen eltároljuk. Ezeket változóknak nevezzük. A változók tulajdonképpen a memória egy bizonyos méretű, részei (ez a típustól függ) amikre a változó nevével hivatkozhatunk, és így az ott tárolt értéket kiolvashatjuk, vagy megváltoztathatjuk.

Nos ezt már mindenki tudta (reméljük...)
Most nézzük azt, hogy hogyan tudunk a C#-ban változókat létrehozni (deklarálni):

Típus változónév;

A változónév első karaktere csak betű vagy alulvonás jel (_) lehet, a többi karakter már akár szám is.
Ha egy mód van rá lehetőleg kerüljük az ékezetes és egyéb egzotikus karaktereket a változónevekben.
(Bár a C# az UNICODE karakterkódolást használja, ezért elvileg egzotikus változónevekkel is simán lefordul)

Vannak numerikus típusok amik számok tárolására alkalmasak.
2 fajtája van: egész és lebegőpontos.
Értelemszerűen ha csak egész számokkal akarunk számolni, akkor elég az egész típus (és ilyenkor ajánlott is), de ha már olyan műveleteket is végre akarunk hajtani, ami már kivezet az egész számok halmazából akkor bizony olyan típus kell ami törtrészt is tud tárolni.
pl.:
9/2=4.5 már valós.
viszont ha ezt csak egész típusokkal követjük el akkor nem biztos, hogy azt kapjuk amit szeretnénk (elveszik a tizedesvessző utáni érték).

Persze csak egész típusokkal tudjuk elvégezni a maradékos osztást. Példa:
9 osztva 2-vel(=4 maradék az 1)
9/2=4 egész osztás
9%2=1 maradékképzés

persze ezeken kívül még sok más féle értéket is tudunk tárolni pl.: karaktert, szöveget, logikai értéket....de ezeket gondolom már úgyis tudod, ezért most nézük meg, hogy milyen fontosabb típusok vannak a C#-ban:

Karaktert/karaktersorozatot tárolni képes típusok:
char: egy unicode karakter
string: unicode karakterek sorozata

Egész számokat tároló típusok:
byte: előjel nélküli 8 bites egész (0..255)
sbyte: előjeles 8 bites egész (-128..127)
short: előjeles 16 bites egész (-32768..32767)
ushort: előjel nélküli 16 bites egész (0..65535)
int: előjeles 32 bites egész (-2147483648.. 2147483647)
uint: előjel nélküli 32 bites egész (0.. 4294967295)
long: előjeles 64 bites egész (-2^63..2^63-1)
ulong: előjel nélküli 64 bites egész (0..2^64-1)

legebgőpontos számokat tároló típusok:
float: egyszeres pontosságú lebegőpontos szám (32 biten)
double: kétszeres pontosságú lebegőpontos szám (64 biten)

+ a logikai típus:
bool: logikai. (Értéke lehet true/false vagy 1/0)

Értékadás:

A C#-ban az értékadás operátora a = (egyenlő jel).
PL.:
int egesz;
egesz = 10;

Most az egesz változó értéke 10.

Az előző két utasítást (deklaráció+értékadás) egybe is vonhatjuk így:
int egesz=10;

Így már a létrehozásakor adtunk neki egy kezdőértéket.

Nézzük a Kiírást/Beolvasást:

A billentyűzetről való beolvasást a már jól ismert beolvasó metódusokkal (Console.Read(), Console.ReadKey() és Console.ReadLine()) követhetjük el.

Ám itt egy kis problémába ütközünk. Mégpedig abba, hogy ezekkel az utasításokkal csak stringeket (karaktersorozatokat) tudunk beolvasni. (kivétel a ReadKey() mert az karaktert)

Tehát, ha egy számot akarunk kiszedni a felhasználóból (pl.: hány éves) akkor a beolvasott adatot először konvertálnunk kell.

Szerencsénkre erre igen egyszerű megoldás kínálkozik:

Pl.: ha egy int- re akarjuk konvertálni, akkor int.Parse(), ha float-ra akkor float.Parse()....és így tovább...

Nézzünk erre egy példaprogramot:
  1. using System;
  2.     class Valtozok
  3.     {
  4.         static void Main()
  5.         {
  6.             Console.WriteLine("téglalap kerülete és területe:");
  7.             Console.Write("a=");
  8.             uint a = uint.Parse(Console.ReadLine());
  9.             Console.Write("b=");
  10.             uint b = uint.Parse(Console.ReadLine());
  11.  
  12.             ulong T = a * b;
  13.             ulong K = 2*(a+b);
  14.  
  15.             Console.WriteLine("T={0,4} K={1,4}", T, K);
  16.             Console.ReadLine();
  17.         }
  18. }

Mint láthatjuk a változóinkat egyszerre hoztuk létre és adtunk nekik értéket (a felhasználó által).Ráadásul nem a program elején, hanem a közepén, ugyanis nincs megkötve, hogy hol és mikor deklaráljuk a változóinkat.
(tehát akkor hozzuk létre amikor nekünk jólesik ;)

A fenti programban van van kiíratás is (erről még nem beszéltünk) tehát essen pár szó erről is:

A jól ismert Console.WriteLine() függvénynek úgy mondjuk meg, hogy most egy változó értékét akarjuk kiíratni, hogy {} jelek közé tesszük és megmondjuk, hogy a kiírandó string után hányadik paraméterben adtuk meg a változót. (0-tól kezdődően).
Még mindig a {} jeleken belül, de vesszővel elválasztva azt is megmondhatjuk, hogy hány karakter széles helyre szeretnénk kiíratni.

Ezekkel már egész jó kis szekvenciákat tudunk írni ugye ;)

Ezt gondoltam az alapozás befejezésének. A következő részekben már egy kicsit bonyolultabb programokat fogunk írni. Addig is türelem, és addig is lehet írni a C#-os progikat ;)

Aki nem hiszi, járjon utána...