Eszköztár
300 Kezdőlap - Vizsgafeladatok - Hiányzások
ujdomainek.hu

Hiányzások

Programozás vizsgafeladat

Feladat

Valósítsa meg az alábbi feladatot a tanult programozási nyelven:


Forrásfájl:


A feladat megoldására ajánlott időkeret:

40 perc
Ahhoz, hogy Ön ellenőrizni tudja munkaidejét, használhatja az itt található stoppert. Az órát Önnek kell elindítania, az idő számolását pedig szükség esetén bármikor szüneteltetheti. Az óra 40 perc után sem fog megállni - addig számol, amíg Ön le nem állítja. Viszont az idő 3/4 részének elteltekor diszkrét figyelmeztető hangjelzést fog adni, majd pedig az időkeret lejártával csipogni fog. A hangokat az alábbi hangszóró ikonokra kattintva előzetesen ki is próbálhatja.
  •   Figyelmeztető hang 30 perc után
  •   Csipogó hang az időkeret végén
Amennyiben nem szeretne hangjelzéseket hallani, akkor ezt kikapcsolhatja a stopperen.

előző oldal random oldal következő oldal


Eddig 10 hozzászólás van a témához:

2019-07-31 00:27 Bxr Bcaoo Üdv!
Jól látom, hogy az oldalon lévő forrásfájl nem egyezik meg azzal, amit a feladatban eredetileg használtak? Vagy én rontok el valamit (nem azokat az eredményeket kapom, mint amik a mintában szerepelnek)?
Köszönöm a segítséget!

2019-07-31 06:12 Admin Kedves Bxr Bcaoo!

A feladathoz a vizsga alkalmával - tudomásom szerint - ez volt az eredeti forrásfájl. Ennek ellenére előfordulhat, hogy a PDF állományban a feladat kitűzője nem a forrásfájlnak megfelelő eredményeket tett közé, bár nem szokott ilyen hiba előfordulni.

Ha megmondja, hogy konkrétan hányadik feladatnál tapasztalt eltérést, egyértelműbb választ tudok írni.

2019-07-31 12:50 Bxr Bcaoo Kedves Admin!

Köszönöm szépen a gyors választ!

Én az alábbi eredményeket kaptam:

2. feladat: Összes mulasztott órák száma: 549 óra.

6. feladat: osszesites.csv
1a - 15
1b - 10
2a - 12
2b - 33
3a - 54
3b - 38
4a - 52
4b - 36
5a - 36
5b - 28
6a - 38
6b - 34
7a - 23
7b - 28
8a - 42
8b - 70

Biztosan van eltérés a forrás és a pdf-ben lévő adatok között, mert pl. a képen az szerepel, hogy "Lengyel Krisztina;6b;1;1;11", a forrásban pedig az, hogy "Lengyel Krisztina;6b;1;1;6".

2019-07-31 13:04 Admin Ez valóban meggyőző: tényleg nincsenek összhangban a forrásfájl adatai, és a megoldásban közölt eredmények. Hogy hol keletkezett a hiba, azt nem tudom megmondani, de van. Ezek szerint kellő óvatossággal szükséges tekinteni a megoldás eredményeire! Eltérés esetén is jó lehet az elkészített programkód.
Ennek ellenőrzésére az az ötletem, hogy nyissuk meg a forrás .csv fájlt Excelben, és állítsuk elő ott (is) az eredményeket. Így kontrollálhatóvá válik a munkánk helyessége.

2022-02-02 20:11 KozmaRóbert Megoldások: Python, C# Python:
adatok = open("szeptember.csv", "r", encoding = 'utf-8')
sorok=adatok.readlines()
adatok.close()

nevek=[]
osztaly=[]
Enap=[]
Unap=[]
Logas=[]
hianyzas=[]
részL={}
for sor in sorok:
        részL=(sor.split(";"))
        nevek.append(részL[0])
        osztaly.append(részL[1])
        Enap.append(részL[2])
        Unap.append(részL[3])
        Logas.append(részL[4])
print("Osztály névsor: ",nevek)

összL=0
for i in range(1,len(Logas)):
         összL=(int(Logas[i])+összL)
print("
Az összes lógás száma: ",összL," óra")

névbe=input('
Adjon meg egy nevet: ')
nap=int(input("Adja meg a napot: ")) 
lógás=False
for h in range(1,len(nevek)):
    if((int(Enap[h])==nap) and (nevek[h]==névbe)):
            lógás=True
    if((int(Enap[h])==nap) and (nevek[h]!=névbe)):
            hianyzas.append((nevek[h]+" "+osztaly[h]))
if (lógás==True):                       
        print(névbe," lógott",nap,".napon") 
else:
        print(névbe,"
NEM lógott a ",nap,".napon")

if (len(hianyzas))==0:
        print("
Az adott napon más nem lógott.")  
else:
        print("
Az adott napon lógott még: ",hianyzas)  
                
print("
Hiányzások osztályonkénti bontásban: ")
oSzam=set(osztaly)
db=[]
X=0
for g in oSzam:             # osztályok rendezése
        db.append(g)
db.sort(reverse = False)   
db.pop()  #utolsó listaelem "osztaly" eltávolitása ? hogy ne legyen benne

gyujt=[0]  # 0 val indított lista hogy az első elemből lehessen kivonni
for z in range (len(db)):
        for m in range(1,len(Logas)):
                if(osztaly[m]==db[z]):
                        X=(int(Logas[m])+X)
        gyujt.append(X)
N=0# szamlaló deklarál
ki=[]
osztL=[]
Logok=0
txt=[]
f = open("logas.csv", "w")
for w in range(len(gyujt)-1):
        N=N+1
        C=N-1 #szamlaló "-1"deklarál
        Logok=gyujt[N]-gyujt[C]
        osztL.append(Logok)
        print(db[w],Logok)

for LO in range(len(osztL)):
         txt.append(str(db[LO])+" "+str(osztL[LO])+"
")
txt.append("
")   # ? miért kell hozzáadni? 65 sor miatt?
ig=(len(txt))       
for ki in range(0,ig):                             
          f = open("logas.csv", "a")
          f.write(txt[ki])
          f.close
#.............................................................


C#:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Timers;
using System.Threading.Tasks;

namespace hiányzások
{
    class Program
    {
        struct tanulok
        {
            public string nev;
            public string osztály;
            public int nap1;
            public int napU;
            public int Lóg;
        }
        static void Main(string[] args)
        {
            List< tanulok> LISTAtan = new List< tanulok>();
            string[] txt = File.ReadAllLines(@"szeptember.csv", Encoding.UTF8);   //ansi =UTF7

            for (int s = 1; s <  txt.Count(); s++)
            {
                if (txt[s].Length > 0)
                {
                   string[] so = txt[s].Split(';');
                   tanulok adat = new tanulok();

                    adat.nev = so[0];
                    adat.osztály = so[1];
                    adat.nap1 = Convert.ToInt32(so[2]);
                    adat.napU = Convert.ToInt32(so[3]);
                    adat.Lóg = Convert.ToInt32(so[4]);

                    LISTAtan.Add(adat);
                }
            }
            bool találat = false;
            int t;
            string nevek;
            int cÖsszz = 0;
            string[] nevsor = new string[LISTAtan.Count];
            Console.WriteLine("1.Feladat :A beolvasott OSZTÁLY NÉVSOR :
");
            for (t = 0; t <  LISTAtan.Count; t++)            //névsor tagolása 20 név ig-után
            {

                cÖsszz += LISTAtan[t].Lóg;

                if (t == 20) { Console.WriteLine("	"); }
                Console.Write(LISTAtan[t].nev + ("	"));
            }

            Console.ForegroundColor = ConsoleColor.White;
            Console.WriteLine("

2.Feladat: A Lógások száma  szeptemberben: " + cÖsszz + " óra");
            Console.ForegroundColor = ConsoleColor.Green;
            Console.Write("
3.Feladat: Kerestett nap 1 és 30 között ?:");
        
            int nap = Convert.ToInt32(Console.ReadLine());
            Console.Write("Tanulo Neve ?:"); Console.ForegroundColor = ConsoleColor.Black; Console.BackgroundColor = ConsoleColor.Green; string TANNEVE = Console.ReadLine();
            
            Console.ForegroundColor = ConsoleColor.White; Console.BackgroundColor = ConsoleColor.Black;
            string oszt = "";//osztály azonosító változó kiíráshoz
            bool szeptH = false; bool masikN = false;//szeptemberi és másik nap eldöntő változója
            List< string> MásokL = new List< string>();
            for (int x = 0; x <  LISTAtan.Count(); x++)
            {

                if ((LISTAtan[x].nap1 == nap) && (LISTAtan[x].nev == TANNEVE)) { találat = true; }
                if (LISTAtan[x].nev == TANNEVE) { oszt = LISTAtan[x].osztály; }  //osztály azonosító megjelölése
                if ((LISTAtan[x].nap1 != nap) && (LISTAtan[x].nev == TANNEVE) && (LISTAtan[x].nap1 > 0)) { masikN = true; }
                if ((LISTAtan[x].nap1 == nap) && (LISTAtan[x].nev != TANNEVE)) { MásokL.Add("Szeptember "+nap+".nap "+LISTAtan[x].nev+" ("+LISTAtan[x].osztály+")")  ;szeptH = true; }
               
            }
            if (találat == true) { Console.WriteLine("
4.Feladat: "+ TANNEVE + " a  " + nap + ".napon, a " + oszt + ".-osztályból lógott!"); }
            else { Console.WriteLine("
4.Feladat: "+TANNEVE + " a  " + nap + ".napon, " + " NEM lógott a " + oszt + ".-osztályból. "); }

            if (masikN== true){ Console.WriteLine("
"+TANNEVE + " Szeptemberben ,amúgy lógott egy másik napon."); }
            else { Console.WriteLine("
"+TANNEVE + " Másik Szeptemberi napon, nem lógott. "); }

            if (szeptH == false) { Console.WriteLine("
5.Feladat: A " + nap + ". nap szeptemberben nem lógott senki."); }
            else { Console.WriteLine("
5.Feladat: Más lógók az adott napon:
"); foreach (string m in MásokL) Console.WriteLine(m); }

            Console.ForegroundColor = ConsoleColor.Gray; Console.WriteLine("
6:Feladat: Az osztályonkénti hiányzások összesítve osztályonként :
");
            List< string> osztalyokSzam = new List< string>();// Osztályok legenerlása listába
            int c = 0;
            for (int sz = 1; sz <  17; sz++)
            {
                if (sz <  9)
                { osztalyokSzam.Add(sz + "a"); }   //1a tól 8b .ig (0-15)bekerülnek a "osztályokszám" Listába
                else
                { c++; osztalyokSzam.Add(c + "b"); } 
            }
            int g; int[] osztperlógas = new int[LISTAtan.Count];string[] osztLóg = new string[osztalyokSzam.Count];
            for (g = 0; g <  osztalyokSzam.Count(); g++)
            {
                foreach(tanulok e in LISTAtan)
              
                { if (e.osztály == osztalyokSzam[g]) {osztperlógas[g] += e.Lóg; }           }
               // Console.WriteLine(osztalyokSzam[g] + ". osztályból " + " lógások  " + " " + osztperlógas[g]+" óra");
                osztLóg[g] = osztalyokSzam[g] + ".osztályból " + " lógások  " + " " + osztperlógas[g] + " óra";
            }
            File.WriteAllLines("logas.csv", osztLóg,Encoding.UTF8);
            Console.WriteLine("
Összesítés kiírva : logas.csv File.ba és beolvasva:
 ");
            string[] beolvas = File.ReadAllLines(@"logas.csv", Encoding.UTF8);   //ansi =UTF7
            foreach (string be in beolvas) Console.WriteLine(be);
            Console.ReadKey();
         }
       }
    }


2022-02-22 19:55 Gávrás Dávid Patrik C# megoldás:

https://github.com/Dewyd/Feladatok/tree/main/C%23/Hi%C3%A1nyz%C3%A1sok

2022-03-15 13:50 lacithelaci01 Python megoldás:
https://github.com/lacithelaci/okj-szoftverfejleszto-rendszeruzemeltetp-feladatok/blob/main/Hianyzasok.py

2022-04-21 20:00 Leskó Árpád megoldás pythonban Pandas használatával:

https://github.com/leskoarpi/infojegyzet_hieanyzasok_Pandas/blob/main/main.py

2022-06-17 21:48 ztibor Megoldás Pythonban - (list comprehension)

https://github.com/ztibor/ztibor/blob/main/Hianyzasok.py





Új hozzászólás:
E-mail cím:


Erre a címre küldjük ki a hozzászólás jóvá- hagyásához szükséges linket. Az e-mail címet sehol nem tesszük közzé.

Név:


Ez a név fog megjelenni az Ön hozzászólásai mellett.

Mennyi tizenhárom + három?
Számjegyekkel írja be!



Ez a robotok beírása elleni védelem miatt szükséges ellenőrzés.


© infojegyzet.hu, 2019. április