C# emelt informatika érettségi feladat

C# emelt informatika érettségi feladat
2019-03-25T15:44:34+01:00
2019-03-25T19:29:33+01:00
2022-10-18T10:00:35+02:00
  • Köszi! 
    Mutasd a teljes hozzászólást!
  • Igen, így most már látom, hogy a break az, ami a másikból hiányzik! Köszönöm szépen! 
    Mutasd a teljes hozzászólást!
  • apropó, ha megoldások érdekelnek, akkor 1-1 "kiemelt nyelven" (a tied cpp-ban):
    Emelt szintű informatika érettségi
    Mutasd a teljes hozzászólást!
  • for (int i = orak.First(); i < orak.Last()+1; i++)
     {
     for (int j = 0; j < orak.Count; j++)
     {
     if (orak[j] == i) autoindex.Add(j);
     }
     i++; ???
     }


    Nem néztem teljesen végig, de gyors különbségnek feltűnt: miért növeled a ciklusváltozót a for cikluson belül még egyszer? A fejlécben már ezt megtetted..:) A tagolásokra/bekezdésekre ügyelj, sokkal átláthatóbb lenne a dolog!

    Üdv:B.
    Mutasd a teljes hozzászólást!
  • nem értek a C#-hoz sem, de szerintem
    a "while-for-for"-osban van egy break az első for-ban, azaz csak ez elsőt fogja megtalálni, 
    a "for-for-for"-osban viszont a 2. for végigmegy az orak listán függetlenül az első találattól, azaz ott a feladatkiírástól eltérően az összes adat "benne lesz", vagyis nem, mivel az i ciklusváltozót 2 helyen is növeled, szerintem,
    de lehet, hogy rosszul látom, mert a beillesztés elrontotta a tördelést...

    szerintem átláthatóbb megoldás (feltesszük legalább egy adat van):

    az első elemet beteszed az új listába végigmész a listán a 2. elemtől kezdve, ha az aktuális óra nem egyezik meg az előbbivel felveszed az új listába
    az ellenőrzést végezheted az új lista legutolsó elemét felhasználva, vagy úgy is, hogy egy skalárban tárolod a legutolsó "órát" (kezdetben ez az első elem "órája" lesz),
    ha lehet üres is a "bemenet", akkor az előző óra értékének felvehetsz egy olyan értéket, ami biztosan nincs a listában (nálad az int miatt a -1 "jó lesz"), és a ciklust a teljes listán futtatod,
    Mutasd a teljes hozzászólást!
  • Sziasztok!
    Emelt informatika 2013. októberi érettségi feladatát kezdtem el megoldani. Valószínűleg apró félreértés vagy figyelmetlenség miatt, de a harmadik feladatban nem értem, hogy a kommentárként megjelölt, három for ciklust tartalmazó megoldás miért ad más eredményt, mint az, amit while-el kiviteleztem. (Minden gondolatot, más elképzelést/megoldást, többi feladatrészhez segítséget is szívesen fogadok.)

    namespace jaror { class Program { static List<int> orak = new List<int>(); static List<int> percek = new List<int>(); static List<int> masodpercek = new List<int>(); static List<string> rendszamok = new List<string>(); static void Feladat1() { Console.WriteLine("1. feladat: Adatok beolvasása."); StreamReader olvaso = new StreamReader(@"C:\Users\Lenovo Y700-17ISK\Desktop\EMELT INFORMATIKA\2013 OKTÓBER\Forrasok\4_Kozuti_ellenorzes\jarmu.txt"); while (!olvaso.EndOfStream) { string[] seged = olvaso.ReadLine().Split(' '); orak.Add(int.Parse(seged[0])); percek.Add(int.Parse(seged[1])); masodpercek.Add(int.Parse(seged[2])); rendszamok.Add(seged[3]); } olvaso.Close(); } static void Feladat2() { Console.WriteLine("2. feladat: "); int kezdo_ora = orak.First(); int utolso_ora = orak.Last(); int munkaido = utolso_ora - kezdo_ora; Console.WriteLine("A munkaidő {0} óra volt.", munkaido + 1); } static void Feladat3() { /*Műszaki ellenőrzésre minden órában egy járművet választanak ki. Azt, amelyik abban az órában először halad arra. Az ellenőrzés óráját és az ellenőrzött jármű rendszámát jelenítse meg a képernyőn a következő formában: 9 óra: AB-1234! Minden óra adata külön sorba kerüljön! Csak azon órák adatai jelenjenek meg, amikor volt ellenőrizhető jármű!*/ Console.WriteLine("3. feladat:"); List<int> autoindex = new List<int>(); int i = orak.First(); // 8 while (i != orak.Last()+1) // 14 { for (int j = 0; j < orak.Count; j++) //menj végig az összes órán { if (orak[j] == i) //ha az óra egyenlő i-vel { autoindex.Add(j); //rakd bele egy listába break; } } i++; } for (int j = 0; j < autoindex.Count; j++) { Console.WriteLine("{0} óra {1}", orak[autoindex[j]], rendszamok[autoindex[j]]); } /*List<int> autoindex = new List<int>(); for (int i = orak.First(); i < orak.Last()+1; i++) { for (int j = 0; j < orak.Count; j++) { if (orak[j] == i) autoindex.Add(j); } i++; } for (int i = 0; i < autoindex.Count; i++) { Console.WriteLine("{0} óra {1}", orak[autoindex[i]], rendszamok[autoindex[i]]); }*/ } static void Main(string[] args) { Feladat1(); Feladat2(); Feladat3(); } } }

    Mutasd a teljes hozzászólást!
    Csatolt állomány
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd