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.
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