csharp.pdf | Reiter István ELTE-s hallgató könyyve a Devportalról | |
csharp_jegyzet.doc | Egyetemi jegyzet: | |
Visual Studio letöltés: innét, a Visual Studio IDE 2017 Community változatára lesz szükség |
Szofttech első előadás.pptx | Rövid összefoglaló a fordítókról, értelmezőkről és a köztes nyelvekről. |
Típus | Memóriaigény | Leírás |
byte | 1 byte | Előjel nélküli 8 bites egész szám(0..255) |
char | 2 | Egy Unicode karakter |
bool | 1 | Logikai típus, értéke igaz(1 vagy True)vagy hamis(0 vagy False) |
sbyte | 1 | Előjeles, 8 bites egész szám (-128..127) |
short | 2 | Előjeles, 16 bites egész szám (-32768..32767) |
ushort | 2 | Előjel nélküli, 16 bites egész szám(0..65535) |
int | 4 | Előjeles, 32 bites egész szám (–2147483648.. 2147483647). |
uint | 4 | Előjel nélküli, 32 bites egész szám(0..4294967295) |
float | 4 | Egyszeres pontosságú lebegőpontos szám (kb. 7 decimális számjegy pontosság) |
double | 8 | Kétszeres pontosságú lebegőpontos szám (kb. 15-16 decimális számjegy pontosság) |
decimal | 16 | Fix pontosságú 28+1 jegyű szám |
long | 8 | Előjeles, 64 bites egész szám |
ulong | 8 | Előjel nélküli, 64 bites egész szám |
string | N/A | Unicode karakterek szekvenciája |
[1] [2] [3] [4] [5] [6] | |
(összesen 30 perc) |
Másodfokú egyenlet megoldása (típuskonverzióra és feltételes elágazásra példa) |
||
Űrlaptervezés | 3:48 | |
Típuskonverzió | 2:02 | |
Gyökök számítása | 4:24 | |
Egyforma gyökök elrejtése | 2:37 | |
(Össesen 13 perc) |
Kör kerületésnek és területének kiszámolása | ||
[első lépések] | 6:25 | |
[értékek kerekítése]* | 3:24 | |
[kivételkezelés]* | 3:02 | |
(Össesen 13 perc) |
Sprint kérdések:
Sprtint kérdések:
Alábbi, illetve hasonló kódrészletek futási eredménye:
1.
byte
a=0;
Console.WriteLine(a);
2.
byte
b = 0; b++;
Console.WriteLine(b);
3.
byte
c = 255; c++;
Console.WriteLine(c);
4.
byte
d = 255; d+=5;
Console.WriteLine(d);
5.
short
f = 32767; f++;
Console.WriteLine(f);
6.
double
g1 = 1;
double
g2 = 0;
double
g3 = g1 / g2;
Console.WriteLine(g3);
7.
double
h1 = -13;
double
h2 = 0;
double
h3 = h1 / h2;
Console.WriteLine(h3);
8.
float
i1 = -13;
float
i2 = 0;
float
i3 = i1 / i2;
Console.WriteLine(i3);
9.
(X) decimal j1 = -13; decimal j2 = 0; decimal j3 = j1 / j2;
Console.WriteLine(i3);
10.
Console.WriteLine(byte.MaxValue);
11.
Console.WriteLine(int.MaxValue);
12.
Console.WriteLine(double.MaxValue);
13.
double
k =
double.PositiveInfinity;
Console.WriteLine(k
/ k);
14.
if
(k==double.PositiveInfinity)
Console.WriteLine("Tényleg
végtelen");
15.
double
l1 = 5.6;
int
l2 = (int)l1;
Console.WriteLine(l2);
16.
double
l3 = 5.6;
int
l4 = (int)Math.Round(l3);
Console.WriteLine(l4);
17.
string
s = i1.ToString();
18.
(X) byte m = null;
19.
byte?
m =
null;
Console.WriteLine(m);
valamint
Tippek:
Kiegészítő videók:
2a Speech-2.m4v | |
3a Timer Bemutatasa-3.m4v | |
3b Sajat Osztaly-4.m4v | |
3c Egyszeru Orokles-5.m4v | |
3d Szarmaztatas-6.m4v | |
3e Konstruktor-7.m4v | |
3f Projekt Felépítése-8.m4v | |
3g Cs Fájl-9.m4v |
Sprint kérések:
1. feladat gyakorlatra - tanári segítséggel:
Gyakorló feladat: színeződő gomb - önálló munka
Gyakorló feladat: számoló gomb - önálló munka
Gyakorló feladat: gombok kirakása véletlenszerűen
Gyakorló feladat: gombok kirakása háromszögben (ismétlés)
Gyakorló feladat: gombok kirakása "karácsonyfában" (ismétlés)
A ZH gépteremben történő önálló feladatmegoldás Visual Studió környezetben. Az elkészült solution-t Moodle rendszeren keresztül kell leadni ZIP állományba tömörítve. (RAR, 7z és egyéb formátumokat nem fogadunk el.) Fontos, hogy a teljes solution mappát betömörítsétek, különben a leadott munka nem értélhető. A ZH-k ideje alatt a géptermek Internet elérése korlátozva lesz. Ha a leadott projekt nem fordítható le, a részfeladatokra adott pontok összegéből 10% levonásra kerül. A megjegyzésben szereplő kódrészleteket nem értékeljük.
Képkirakós játék:
lo.zip | Kiinduló képek | ||
1 Vonszolható gomb kíserlet | Előadás anyaga | ||
2 mozgatható képkocka származtatása | |||
3 5x5 keépkocka kirakasa | |||
4 kód csinosítása | |||
kepkirakos megoldas.zip | Megoldás |
void b_MouseDown(object sender, MouseEventArgs e)
{
...
}
A feladatmegoldás lépései gyakorlatra:
Első fázis – új osztály származtatása
Második fázis – mozgatható gomb
Harmadik fázis – lovas kirakós
Negyedik fázis – képkockák összekeverése
Handout: Pascel_es_lo.docx fibo_handout.docx
Feletválasztós játék
jatek.csv | Kérdések - pontosvesszővel tagolt sorokban | |||
jatek2.txt | Kérdések - külön sorokba fejtve | |||
Handout.docx | Előadás handout | |||
Jatek.zip | Megoldás | |||
feleletválasztós 1 | 5:31 | |||
feleletválasztós 2 | 5:41 | |||
feleletválasztós 3 | 2:44 | |||
feleletválasztós 4 | 5:01 | |||
feleletválasztós 5 | 4:32 | |||
feleletválasztós 6 | 2:28 |
Sprint kérdések:
Videók - a feladatmegoldás pár lépésben eltér az előadáson elhangzottaktól
Kígyó 1. | 9:00 | |
Kígyó 2 | 9:55 | |
Kígyó 3. | 4:36 | |
Kígyó 4. | 5:29 | |
Kígyó 5. | 3:18 | |
Kígyó 6. | 2:12 | |
Kígyó 7. | 1:58 | |
Kígyó 8. | 2:10 | |
Kígyó 9. | 5:43 |
kígyó handout.docx (néhány lépésben egyszerűbb, mint a videón szereplő megoldás.)
Aki nem tudott bemenni az előadásra, kérem nézze meg a videókat! Gyakorlaton egyénileg építsétek fel a játékot az alábbi útmutató alapján!
Lépések a kígyós játék felépítéséhez:
Sprint kérdések
Az előadás konzutéció jelleggel történik, hallgatói kérdésekre alapozva. Készüljetek kérdésekkel!
Rávezető feladat a fájlkezeléshez - billentyűzet a képernyőn gombokból
A fájl billentyűk elhelyezkedését, méretét, és a rajtuk lévő feliratot tartalmazza. Olvasd fel a fájlt, és rakd ki gombokból a billentyűzetet!
kbd_hun.txt | Gombok koordinátái |
Memóriajáték
MemoriaJatek.doc | Feladatlap a megoldás menetével | |
kepek_es_tabla.zip | Kinduló fáljok | |
0_Bevezető | 1:29 | |
1_a | 1:46 | |
1_b | 3:23 | |
1_b2 | 1:33 | |
1_c | 0:45 | |
1_d | 1:16 | |
1_ef | 1:37 | |
2_a | 3:42 | |
2_bc | 2:53 | |
2_de | 2:06 | |
3_a | 1:42 | |
3_b | 0:41 | |
3_c | 1:55 | |
3_de | 2:18 | |
4_abcd | 3:00 | |
4_ef | 3:37 |
Sprint kérdések:
ZH a gyakorlatokon. A ZH időtartama alatt a gépterem Internet kapcsolata nem él. Ennek megfelelően, a kígyós feladathoz hasonlóan megfogalmazott lépéslistát követve kell megoldani a feladatsort. Minden olyan nyelvi elemre és osztályra szükség lehet, amely az előadásokon szereplő példafeladatokban előfordult. A felkészüléshez azt javaslom, hogy próbáljátok egyénileg felépíteni az eddig vett feladatokat a mellékelt útmutatók alapján. Ha elakadtok, a videók segítenek. (Az útmutatókat folyamatosan töltöm fel a korábbi feladatok mellé.)
A gyakorlást érdemes idejében elkezdeni, mert nem lehet az utolsó pillanatban pánikszerűen bemagolni. Fontos hogy azokkal a hibákkal, amiket az elején mindenki elkövet találkozzatok, és élesben ne kövessétek el. A ZH-n egy kézzel írott A4-es oldalnyi emlékeztető használható.
Tippek a gyakorlatokon tapasztalt tipikus hibák alapján:
Jó felkészülést!
A tárgy oktatói
Az előadás az alábbi videók önálló feldolgozására épül, nem kontaktóra formájában kerül megtartásra.
EmoryGame | ||
EMORY 1 bevezető | 0:55 | |
EMORY 2 settings | 3:08 | |
EMORY 3 kép osztály 1 | 4:43 | |
EMORY 4 kép osztály 2 | 3:11 | |
EMORY 5 felfordítás | 2:12 | |
EMORY 6 timer | 2:08 | |
EMORY 7 4x4 | 1:35 | |
EMORY 8 keverés | 6:25 | |
EMORY 9 keverés 2 | 2:38 | |
EMORY 10 epilógus | 1:03 | |
Kepek.zip | ||
EMOry.zip |
Sprint kérsések az epilógusban + két témakör:
Step-by-step:
Add a honlapon található képeket a projekthez egy almappába.
Származtass osztályt a Kártya néven a PictureBox osztályból, mely a konstruktorában átvesz három egész típusú paramétert: a kártya sor és oszlop pozícióját, valamint a kártyán szereplő kép sorszámát. A konstruktorban oldd meg, hogy a kártya el is helyezze magát!
Bővítsd az osztályt egy egész típusú képSzám nevű változóval, mely a konstruktorban átvett kép sorszám értékét tárolja. A konstruktort bővítsd úgy, hogy tárolja is a képSzám változóban a megfelelő átvett paramétert.
Bővítsd a kártya osztályt Felfordít() metódussal, mely a PictureBox-tó örökölt Load() metóduson keresztül betölti a megfelelő képet.
Bővítsd a kártya osztályt Lelfordít() metódussal, mely a PictureBox-tó örökölt Load() metóduson keresztül betölti a megfelelő „card_back” képet!
Tesztelési célból a konstruktor a Felfordít() metódust hívja!
A Form1 konstrutktorában rakj ki 4x4 Kártyát, most minden kártyára kerülhet más kép.
A kártya osztályban Timer segítségével oldd meg, hogy a felfordított kártya pár másodperc múlva leforduljon!
A kártya osztályban oldd meg, hogy a kártya kattintásra leforduljon!
A Form1 osztályban hozz létre egy 16 elemű egészekből álló tömböt!
A Form1 osztályban hozz létre egy Keverés() nevű függvényt! A függvény helyezze el 1 és 8 között a számokat a tömb elemeiben úgy, hogy minden szám kétszer szereplejen.
A kártyákat kirakó ciklus most már a tömb alapján adja át a kártyához tartozó kép sorszámát!
Oldd meg, hogy a Keverés() metódus a tömb elemeinek cserélgetésével bekeverje a tömböt!
A Fomr1 kártyákat kipakoló ciklusának törzsében rendelj közös eseménykiszolgálót a kártyák kattintás eseményéhez.
A From1 osztályt bővítsd utolsóKártya nevű kártya típusú referenciával. Ebben fogjuk tárolni, hogy melyik kártyát kattintottuk meg utoljára!
A közös eseménykiszolgálóban oldd meg, hogy ha az utoljára megkattintott két kártya sorszáma megegyezik, mindkét kártya tűnjön el!
Grafika.doc | Rövid összefoglaló a GDI grafikáról | ||
IFS fraktl.doc | Előadás handout: IFS fraktál algoritmus |
1 | 2 |
3 | 4 |
Bantumi | ||
BANTUMI 1 játékszabály | 1:22 | |
BANTUMI 2 | 5:45 | |
BANTUMI 3 getter setter | 5:30 | |
BANTUMI 4 miert kell build | 0:48 | |
BANTUMI 5 tovabbadás 1 | 4:09 | |
BANTUMI 6 tovabbadás 2 | 1:49 | |
BANTUMI 7 event | 5:29 | |
BANTUMI 8 nyerés | 3:11 | |
BANTUMI 10 búcsú | 3:34 | |
Teki_es_Bantumi_handout.docx | ||
Segédanyagok a delegáltak és
eseménkiszolgálók megértéséhez |
||
delegaltak.doc | ||
szines_rajzolos.zip | Az előző dokumentumban szereplő feladat megoldása |
Sprint
Az előadás konzultáció jelleggel törénik, hallgatói kérdések alapján. Az anyag videó formájában kerül fel. Azokat várom, akiknek kérdésük van az anyaggal kapcsolatban.
Hozz létre egy Kérdés nevű osztályt KérdésSzöveg, Válasz1..4 és Jóválasz tulajdonságokkal!
Az osztályt bővítsd konstruktorral, mely átveszi a fenti tulajdonságoknak megfelelő paramétereket, majd beállítja a tulajdonságokat.
A Form1-ben hozz létre egy osztály szintű listát Kérdések néven, mely Kérdés típusú elemekből áll.
Csinálj egy megnyitás gombot, mely OpenFileDialog segítségével engedi kiválasztani a megnyitandó fájlt, majd a file alapján feltölti a listát. A mintafájl a honlapon a jatek.csv.
Rakj ki a From1-re 4 gombot és egy címkét!
Az Form1 szintjén hozz létre egy példányt a Random osztályból.
Rakj ki a Form1-re egy „Következő” feliratú gombot is, melyhez rendelj eseménykiszolgálót!
Az eseménykiszolgálóben generálj egy véletlen számot 0 és Kérdések.Count() – 1 között!
A Gombokon és címkén jelenítsd meg a kérdés szövegét és a lehetséges válaszokat. (Kérdések[n].KérdésSzöveg)
A Sprint az utolsó három hét kérdései közül lesz.
Gyakorló feladatok | ||
Amoba.docx | Amőbás gyakorlófeladat | |
aknakereso_handout.docx | Előadás handout | |
AknaKereso.zip | Előadáson készített projekt | |
mezo_osztaly.html | Kértétek a videókae ea-n, ennyire bonyolult nem lesz ZH-n :) | |
palyagenerator.html | ||
aknasitas.html | ||
felfed.html | ||
felfed2.html |
Kedves Kollégák!
A tárgy gyakorlati jeggyel zárul. Azok a kollégák, akik kettő közül valamelyik gépes zárthelyit nem írták meg, december 16-án délelőtt 9 órától pótolhatják. (Ezt az időpontot az első előadáson kihirdettem, változatására nincs mód.) Akik javítani szeretnének, egy alkalommal, szintén december 16-án írhatnak javítót a teljes félév anyagából. A beugró ZH-k javítására nincs lehetőség, hiszen ezek a teljes félév munkáját tükrözik. A jelentkezés módjáról és a pontos helyszínről később töltök fel tájékoztatást.
Azok a kollégák, akik kettő közül valamelyik gépes zárthelyit nem írták meg, december 16-án délelőtt 9 órakor pótolhatják.
L.