Kezdőoldal » Számítástechnika » Programozás » Elakadtam az emelt informatika...

2105as kérdése:

Elakadtam az emelt informatika érettségi 2016. májusi feladat sorral, nem tudom elkezdeni? (c# 5. b feladatban)

Figyelt kérdés

5. Határozza meg, hogy a bekért árucikkből

a. melyik vásárláskor vettek először, és melyiknél utoljára!

b. összesen hány alkalommal vásároltak!


Az a részt azt sikerült kiszenvednem de a b nem jött össze.

(Youtubeon van egy megoldás csak azt nem értem)


5.a résznek a megoldását leírom hát ha segít a gondolat menetemre rá hangolódni :)

int eloszor = 0;

int masodszor = 0;

i = 0;



while (adat[i] != b)

{

if (adat[i] == "F")

{

eloszor++;

}



i++;

}


while (adat[i] != "F")

{

i++;

}


if (adat[i] == "F")

{

eloszor++;

}

Console.WriteLine("Az első vásárlás sorszáma: {0} ",eloszor);


// string[] adatvissza = adat.Reverse().ToArray();


int szamlalo = 0;


for ( i = 0; i < db; i++)

{

if (adat[i] == b)

{

szamlalo++;

}

}

i = 0;

int n = 0;


while (n != szamlalo)

{

if (adat[i] == b)

{

n++;

}


if (adat[i] == "F")

{

masodszor++;

}



i++;

}


while (adat[i] != "F")

{

i++;

}


if (adat[i] == "F")

{

masodszor++;

}


Console.WriteLine("Az utolsó vásárlás sorszáma: {0} ", masodszor);



A 5.b feladathoz szeretnék egy kis segítséget.


2017. ápr. 8. 16:30
 1/5 anonim ***** válasza:

Csak én nem értem mi akar ez lenni?

Ez a kód hogyan oldja meg az egyes feladatot?

2017. ápr. 8. 18:37
Hasznos számodra ez a válasz?
 2/5 anonim ***** válasza:
Bemásolhatnád az egész kódot, de ez eddig hatalmas gányolásnak tűnik.
2017. ápr. 8. 18:40
Hasznos számodra ez a válasz?
 3/5 anonim ***** válasza:

A nyilvántartó változókat ne nullával hanem -1-gyel inicializáld, mert a 0. index is lehet az első elfordulás.

Csak egy ciklus kell.

Ciklusmagban: ha az adott áru, akkor:

-Ha még nincs meg az első elem: ez az első elem és az utolsó is.

-Ha már megvan az első: ez az utolsó.

-Előfordulásszámláló növelése.


Ennyi lenne.

2017. ápr. 8. 19:34
Hasznos számodra ez a válasz?
 4/5 anonim ***** válasza:

Ha már OOP van a kezünkben, sokkal könnyebb dolgod lesz azt használni.


1) Először is meghatározod, hogy a feladat "világában" milyen tárgyaid, fogalmaid vannak. Jelen esetben van a Vásárlás, a Kosár, az Árucikk, a Vásárolt mennyiség és a Termék ára. Agyaljunk egy kicsit.


A Vásárolt mennyiség és a Termék ára egyszerűen csak egy egész szám.

Az Árucikk esetében ami fontos, az annak a neve, arra elég egy string.

A Kosárról azt kell tudnunk, hogy egy adott Árucikkből hány darabot vett a vásárló (azaz mennyi a Vásárolt mennyiség). Erre jó lesz egy Dictionary<string, int>. Természetesen azokat a termékeket nem tároljuk a kosárban, amiből a vásárló nem vett. Továbbá tudnunk kell berakni egy terméket.

A Vásárlás, mint fogalom számunkra azt jelenti, hogy mi van a Kosárban, illetve ki kell tudnunk számolni, hogy mennyi fizetendő összeg.


class Kosar {

.. private readonly Dictionary<string, int> kosar = new Dictionary<string, int>();


.. public ReadOnlyDictionary<string, int> Kosar {

.. .. get {

.. .. .. return new ReadOnlyDictionary(this.kosar);

.. .. }

.. }


.. public void KosarbaTesz(string Arucikk) {

.. .. if (!this.kosar.ContainsKey(Arucikk))

.. .. .. this.kosar.Add(Arucikk, 1);

.. .. else

.. .. .. this.kosar[Arucikk]++;

.. }

}


class Vasarlas {

.. public readonly Kosar Kosar = new Kosar();


.. public int Vegosszeg {

.. .. get {

.. .. .. //Itt kiszámolod a Kosar alapján, hogy mennyi a végösszeg.

.. .. }

.. }

}


A Main(string[]) pedig így fog kinézni:

public static void Main(string[] args) {

.. List<Vasarlas> Vasarlasok = new List<Vasarlas>();


.. //Felolvasod a fájlt

.. try {

.. .. using (StreamReader sr = new StreamReader(File.OpenRead(...)) {

.. .. .. Vasarlas v = new Vasarlas();

.. .. .. //Feldolgozod a fájlban lévő vásárlásokat.

.. .. .. Vasarlasok.Add(v);

.. .. }

.. }

.. catch (IOException ex) {

.. .. Console.Error.WriteLine($"Nem sikerült beolvasni a fájlt: {ex.Message}");

.. .. Environment.Exit(1);

.. }


.. //Tudod, hogy melyik Árucikkről van szó:

.. string KeresettArucikk = ...;


.. //Most jön a kérdésedre a válasz.

.. int VasarlasokSzama = Vasarlasok.Count(Vasarlas => Vasarlas.Kosar.ContainsKey(KeresettArucikk));

}

2017. ápr. 9. 00:58
Hasznos számodra ez a válasz?
 5/5 anonim ***** válasza:

Lustáknak itt a feladatsor:

[link]

2017. ápr. 9. 00:59
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!