2017. november 24., péntek
2017.11.24. A feladatsor ellenőrzése
Az instrukciók után már mindenki meg tudja oldani a feladatsort, házi feladat a következő órára.
2017. november 20., hétfő
2017.11.21. Önálló gyakorlás - helyettesítés
A feladatsor megoldásához használhatsz segítséget a
blogból, a digifüzetedből, az msdn.com-ról, lehetőleg máshonnan ne. A
megoldásodat a 3. óra végén másold a digifüzetbe. Ha kész vagy, és unatkozol,
próbálkozz a szorgalmi feladattal.
Feladat: Monitor vásár
Egy hardver cég többféle monitort is árul. Készíts egy
szöveges állományt, amelynek egy sorában egy konkrét monitor típus adatait
tárolod a következőképpen:
monitor gyártója;típusa;mérete;ára
A méretet colban, az árat forintban add meg, és nettó ár
legyen.
Pl.:
Samsung;S24D330H;24;33000
A fájlban minimum 5 monitor adatai szerepeljenek.
Utánanézhetsz konkrét adatoknak az interneten (5 perc elég lesz).
Olvasd be a fájlból az összes sort, és tárold le 4 tömbben.
(Egyelőre a faktosoknak se kell struktúrával megoldani.)
1. Írd ki a monitorok összes adatát, soronként egy monitort
a képernyőre. A kiírás így nézzen ki:
Gyártó: Samsung; Típus: S24D330H; Méret: 24 col; Nettó ár:
33000 Ft
2. Hozz létre egy új tömböt, amelyben a bruttó árakat
tárolod. A számításhoz tudnod kell, hogy az ÁFA mértéke 27%.
3. Tételezzük fel, hogy mindegyik monitorból 15 db van
készleten. Ennek tárolásához hozz létre egy új tömböt. Mekkora a raktárkészlet
bruttó értéke?
4. Írd ki egy új fájlba az 50000 Ft feletti nettó értékű
monitorok összes adatát (a darabszámmal együtt) úgy, hogy a szöveges adatok
nagybetűsek legyenek, illetve az árak ezer forintba legyenek átszámítva.
5. Egy vevő keresi a HP EliteDisplay E242 monitort. Írd ki
neki a képernyőre, hogy hány darab ilyen van a készleten. (A válasz lehet 0 db
is.)
6. Egy újabb vevőt csak az ár érdekli. Írd ki neki a
legolcsóbb monitor méretét, és árát.
7. A cég akciót hirdet. A 70000 Ft fölötti árú Samsung
monitorok bruttó árából 5%-ot elenged. Írd ki egy újabb tömbbe ezeknek az
akciós monitoroknak az árát sorfolytonosan. A feldolgozás közben folyamatosan
összesítsd a készleten lévő akciós monitorok értékét, és a feldolgozás végén
írd ki, hogy mennyit veszítene a cég az akcióval, ha az összes akciós monitort
eladná. (Legalább el kell kezdeni a feladat megoldását…:)
8. Írd ki a képernyőre minden monitor esetén, hogy az adott
monitor nettó ára a nettó átlag ár alatt van-e, vagy fölötte, esetleg pontosan
egyenlő az átlag árral.
9. Modellezzük, hogy megrohamozták a vevők a boltot. 5 és
15 közötti random számú vásárló 1-1 random módon kiválasztott monitort vásárol,
ezzel csökkentve az eredeti készletet. Írd ki, hogy melyik monitorból mennyi
maradt a boltban.
10. Írd ki a képernyőre, hogy a vásárlások után van-e olyan
monitor, amelyikből mindegyik elfogyott.
11. Az Array.Sort() használatával rakd sorba a monitorok
gyártóit, és írd ki őket a képernyőre.
12. Csökkentsd a legdrágább monitor bruttó árát 10%-kal,
írd ki ezt az értéket a képernyőre.
Szorgalmi, főleg faktosoknak: Tanultuk a struktúraalkalmazását tavaly. Nézz utána, hogyan lehet olyan tömböt létrehozni, ami
struktúrákból áll. Alakítsd át a fenti feladatsor megoldását ennek megfelelően.
2017. november 15., szerda
2017.11.15. Gyakorlás - Hegyek
Egy szöveges fájlba írd ki 5 hegy nevét és magasságát.
- Olvasd be a fájl tartalmát, majd írd ki a képernyőre.
- Írd ki a legmagasabb hegy nevét.
- Rendezd sorba az adatokat név szerint, majd írd ki a neveket.
- Rendezd sorba az adatokat magasság szerint, majd írd ki a magasságokat.
- Faktosoknak: oldjuk meg, hogy a sorbarendezéskor mindkét adatot egymás mellé ki tudjuk írni.
- Írjuk ki a képernyőre a legrövidebb nevű hegy nevét és magasságát.
- Írjuk ki a képernyőre a következőt: mekkora lenne az a hegy, amibe "beleépítjük" egymás tetejére az összes hegyet?
- Egy földrengés szétrombolta a legalacsonyabb hegyet, és 10%-kal csökkent a magassága. Mekkora lett?
- Tároljuk egy új tömbben, majd írjuk ki a képernyőre és egy új fájlba a hegyek magasságát lábban. Láb: angol mértékegység, nézz utána, hogyan kell átváltani.
Házi feladat befejezni a feladatsort a jövő hétre. A faktosok a külön feladathoz használjanak struktúrát.
Ádám megoldása, csak a feladatsor eleje, ez alapján mindenki tudja folytatni:
- Olvasd be a fájl tartalmát, majd írd ki a képernyőre.
- Írd ki a legmagasabb hegy nevét.
- Rendezd sorba az adatokat név szerint, majd írd ki a neveket.
- Rendezd sorba az adatokat magasság szerint, majd írd ki a magasságokat.
- Faktosoknak: oldjuk meg, hogy a sorbarendezéskor mindkét adatot egymás mellé ki tudjuk írni.
- Írjuk ki a képernyőre a legrövidebb nevű hegy nevét és magasságát.
- Írjuk ki a képernyőre a következőt: mekkora lenne az a hegy, amibe "beleépítjük" egymás tetejére az összes hegyet?
- Egy földrengés szétrombolta a legalacsonyabb hegyet, és 10%-kal csökkent a magassága. Mekkora lett?
- Tároljuk egy új tömbben, majd írjuk ki a képernyőre és egy új fájlba a hegyek magasságát lábban. Láb: angol mértékegység, nézz utána, hogyan kell átváltani.
Házi feladat befejezni a feladatsort a jövő hétre. A faktosok a külön feladathoz használjanak struktúrát.
Ádám megoldása, csak a feladatsor eleje, ez alapján mindenki tudja folytatni:
namespace
ConsoleApplication1
{
class Program
{
static string[] hegynev = new
string[5];
static int[] magassag = new int[5];
static int max = 0;
static int tombelem = 0;
static void HegyConsolba()
{
StreamReader
sr = new StreamReader("hegyek.txt");
string[]
atmeneti;
int
i = 0;
while
(!sr.EndOfStream)
{
atmeneti = sr.ReadLine().Split(';');
hegynev[i] = atmeneti[0];
magassag[i] = Convert.ToInt32(atmeneti[1]);
Console.WriteLine("A hegy neve: {0}\nMagassága: {1}",
hegynev[i], magassag[i]);
i++;
}
sr.Close();
}
static void LegmagasabbHegy()
{
int
i = 0;
while
(i < hegynev.Length)
{
if
(magassag[i] > max)
{
max = magassag[i];
tombelem = i;
}
i++;
}
}
static void NevszerintiSorbarendezes()
{
Array.Sort(hegynev);
for
(int i = 0; i < 5; i++)
{
Console.WriteLine();
Console.WriteLine(hegynev[i]);
}
}
static void MagassagszerintiSorbarendezes()
{
Array.Sort(magassag);
for
(int i = 0; i < 5; i++)
{
Console.WriteLine();
Console.WriteLine(magassag[i]);
}
Console.WriteLine();
}
static void Main(string[] args)
{
//kiírja
a legmagasabb hegy nevét
// Egy
szöveges fájlba írd ki 5 hegy nevét és magasságát.
//-
Olvasd be a fájl tartalmát, majd írd ki a képernyőre.
//- Írd
ki a legmagasabb hegy nevét.
//-
Rendezd sorba az adatokat név szerint, majd írd ki a neveket.
//-
Rendezd sorba az adatokat magasság szerint, majd írd ki a magasságokat.
//-
Faktosoknak: oldjuk meg, hogy a sorbarendezéskor mindkét adatot egymás mellé ki
tudjuk írni.
//- Írjuk
ki a képernyőre a legrövidebb nevű hegy nevét és magasságát.
//- Írjuk
ki a képernyőre a következőt: mekkora lenne az a hegy, amibe "beleépítjük"
egymás tetejére az összes hegyet?
//- Egy földrengés
szétrombolta a legalacsonyabb hegyet, és 10%-kal csökkent a magassága. Mekkora
lett?
//- Tároljuk
egy új tömbben, majd írjuk ki a képernyőre és egy új fájlba a hegyek magasságát
lábban. Láb: angol mértékegység, nézz utána, hogyan kell átváltani.
HegyConsolba();
LegmagasabbHegy();
Console.WriteLine("\nA legmagasabb hegy neve: {0}\nA(z) {1}. elem a tömbben\nMagassága:
{2}", hegynev[tombelem], tombelem, magassag[tombelem]);
NevszerintiSorbarendezes();
MagassagszerintiSorbarendezes();
Console.ReadLine();
}
}
}
2017. november 14., kedd
2017. november 13., hétfő
2017.11.13. Gyakorlás, új anyag: fájlkezelés
Átismételjük a nyári gyakorlaton tanult fájlkezelési részt.
Továbbfejlesztés
Ha több érték van egy sorban a szövegfájlban:
string[] veznev = new string[15];
string[]
keresztnev = new string[15];
StreamReader sr = new StreamReader("nev.txt");
string[]
atmeneti;
i = 0;
while
(!sr.EndOfStream)
{
atmeneti =
sr.ReadLine().Split(' ');
veznev[i] = atmeneti[0];
keresztnev[i] = atmeneti[1];
i++;
}
sr2.Close();
2017. november 11., szombat
2017. november 10., péntek
2017.11.10. Gyakorlás
További hátul tesztelő ciklussal megoldandó feladatok
3. Addig írjunk ki 100-tól kezdve páros számokat a képernyőre, amíg el nem érjük a 100 tízszeresét.
4. Addig írjuk ki a SPACE karaktertől kezdve az ASCII karaktereket a képernyőre egymás mellé, amíg el nem jutunk az utolsó lehetséges karakterig.
5. Addig növeljünk egy véletlen, 100 és 1000 közötti számot egy véletlen, 1 és 10 közötti számmal, amíg el nem érjük a 10000-et. Írjuk is ki az összes számot egymás mellé, szóközzel elválasztva.
További egymásba ágyazott ciklusos feladat
4. Mátrix feladat
- a képernyő első sorában jelenjenek meg zöld színű véletlen karakterek fekete háttéren minden második pozíción;
- töröljük le a képernyőt;
- az első sorban egy újabb, olyan módszerrel képzett sor jelenjen meg, mint az első; az előzőleg megjelenített sor (ugyanaz a karaktersorozat!) pedig jelenjen meg most a 2. sorban;
- ismételjük a fentieket addig, amíg tele nem lesz a képernyő;
- ismételjük tetszőleges számban, esetleg végtelenszer a teljes képernyőt;
Továbbfejlesztési lehetőség: minden sor véletlenedik karaktere majd legyen fényesebb a többinél.
Feliratkozás:
Bejegyzések (Atom)