Új hozzászólás Aktív témák
-
scream
veterán
Sziasztok!
Adott ez a feladat :
Egy iskolában tantárgyankénti és összetett tanulmányi versenyt tartottak. A versenyekben összesen N (>0) tanuló vett részt. A versenyek száma M (>0). Rendelkezésre áll versenyenként a tanulók neve és elért pontszáma. Összetett versenyben csak azon tanulók eredményét értékelik, akik az összes tantárgyankénti versenyen indultak, és elérték a versenyenként adott minimális pontszámot (MIN(1..M)>0). Ha a tanuló az adott versenyen nem indult, akkor -1 a pontszáma. Készíts programot, amely megadja azon tanulók névsorát, akik legalább 1 versenyen elindultak!
Nagyjából értem és tudom mit kéne csinálnom azután,hogy bekértem az adatokat (ez egy kiválasztás adott feltétel alapján, jelen esetben ugye azokat kell kiválogatni, majd kilistázni, akiknek nem -1 a pontja). Viszont az adatokat nem tudom hogyan kéne bekérnem.
Nincsen kész vagy megadott adat, szóval nekem kell bevinni az adatokat, csak a módszert nem tudom,hogyan kéne.
Első körben ugye bekérem hány tanuló van, aztán azt, hogy mi a nevük, majd hogy hány tantárgy van, azoknak mik a neveik, majd hogy az adott tanuló az adott tantárgyból indult-e vagy sem.
Ti hogy állnátok neki?
Többek struktúrával oldották meg (még egyetemen nem tanultuk), de elvileg mátrixosan is meg lehet oldani, melyikkel egyszerűbb ?
-
scream
veterán
válasz proci985 #1893 üzenetére
Na, végül struct-tal csináltam ...
Idáig jutottam : KATT
Viszont elkezdtem tesztelgetni és ha valakinek 100 pontot írok elért pontnak mondjuk 2 vagy 3 tantárynál, akkor nem listázza ki! Illetve, ha Mondjuk az 1-es számú tanuló 1. tantárgyának adok 100-at majd a 2. tantárgynak -1-et akkor nem listázza ki a nevet pedig elvileg ki kéne írni (csak nem tudom hogyan) mivel hiába van az 1-es számú tanulónak a 2. tantárgyból -1 az 1. tantárgy 100 pont tehát abból indult a versenyen, ezért mivel van egy -1 től különb elért pontszáma listázandó.
Hogyan kéne megcsinálni ezt ?
Próbálkoztam ezzel, hogy átírtam ebből :
for(int i=0;i<N;i++)
{
mehet=true; (->false)
int j=0;
while(tanulok[I].jegyek[j])
{
if(tanulok(i).jegyek[j]==-1) (->!=-1 vagy >-1)
{
mehet=false; (->true)
}Tehát megcseréltem a true/false-t meg a relációt átírtam az if-ben de nem megy csak azért sem
[ Szerkesztve ]
-
scream
veterán
Na, most rámentem a Debug/Continue gombra és azzal kezdtem el tesztelni.
Itt ha 100-as értéket írok elfogadja és kiírja, szóval az már nem gond, viszont ha -1, -1 az adott tanuló pontjai akkor is kilistázza és a mehet=true vagy mehet=false felcserélése esetén semmi különbség nincs! Legalábbis nem látszik.
A végére teljesen belefogok zavarodni.
Más :
Hogyan kell a Release-t létrehozni Code:: Blocks-ban? Mert állandóan csak a ./Debug/valami.exe-t futtatja és hozza létre, de nekem a ./Release/valami.exe kéne és azt is hozza létre a Debug mellé.
Illetve hogyan tudok tesztadatokokat csinálni és azokkal tesztelni a programot?
Tehát mondjuk 1versenyzo.be, 2versenyzo.be, 100versenyzo.be fileokat megcsinálom (sima notepadban megírom) majd az exe mellérakom és hogyan indítom el vele? Vagy mit kell csinálni hozzá?[ Szerkesztve ]
-
scream
veterán
válasz proci985 #1896 üzenetére
Mi nem i ?
Szerk. : De, a kódban is sima tanulok-van csak a PH! motorja teledobálta a kódot italic stíluselemekkel (mint ahogyan a tiedet is, ha jól látom)
(I)Nem, az nem kódrészlet csak szemléltetés képpen írtam oda, hogy azt változtattam azokra.(/I)
(I)Tehát a True-ból False lett, az == -ből először !=, majd mivel azzal sem ment >. Csak próbálgattam, hátha valahogy menni fog rendesen.(/I)
[ Szerkesztve ]
-
scream
veterán
válasz proci985 #1900 üzenetére
Nem értem,mi az hogy érdemes a valós kódot leírni?
Belinkeltem az egész kódomat még a mostani legelső hszemben, (egy link ami a pastebin.com-ra mutat) majd csak megemlítettem egy kódrészletnél hogy az adott hibát hogyan próbáltam megoldani.
Most hogy már megvan a bekérés meg nagyjából maga a kiválogatás, nem kezdenék bele egy teljesen új programkódba, hanem a meglévőt korrigálnám, hogy a csak -1-el rendelkező tanulókat ne listázza ki...
@dabadab :
Használtam én csak nagyon nem tetszett neki a tanulok i-edik eleme...
-
scream
veterán
Valaki tudna abban segíteni, hogy EBBEN a kódban miket kéne még beírni a voidokhoz, hogy rendesen menjen?
Már ezzel szenvedek és nem tudom miért nem akar menni.
-
scream
veterán
válasz mgoogyi #1918 üzenetére
Sajnos még kezdő "programozó" vagyok, most tapasztalom ki mit hogyan kéne.
Mellesleg "csak" ( ) félreértelmeztem, hogy mit is csinál a void paraméterlistája és nem voltak deklarálva az int mainben a dolgok, illetve a K-t &K-ként kell átadni és megy is.
"Most itt összehánytál egy csomó mindent, aztán halvány fingod sincs, hogy mi nem jó."
Köszönöm a biztató szavakat
[ Szerkesztve ]
-
scream
veterán
-
scream
veterán
válasz proci985 #1929 üzenetére
Igazából a feladat szövege miatt választottam ezeket a változóneveket, mert osztályzatot kapok rá és nehogy belekössenek, hogy : "Ejj kisfiam, nem megmondtam, hogy csak azt alkalmazd, amit előadáson elmondott az előadó?! "
De köszönöm, és a későbbiekben megfogadom.
[ Szerkesztve ]
-
scream
veterán
Egy olyan kérdésem volna, hogy magasabb szinteken mennyire használatosak a nevezetes/egyéni felsorolók ?
Mert most a 2. progbeadandóban nevezetes felsorolókat kell használni (szekvenciális input file) és nem nagyon értem, pontosan mi előnyöm van belőle,ha felsorolóval írom meg?
Miért jobb felsorolókat használni, mint mondjuk sima intervallumos tételeket alkalmazni?
Nekem sokkal bonyolultabbnak és sok felesleges dolognak tűnik, bár valószínű én nem értem
[ Szerkesztve ]
-
scream
veterán
válasz mgoogyi #2067 üzenetére
Van egy konkrét feladatom :
"Egy szöveges állományban tároljuk egy magasugró verseny eredményét. Az állomány minden sorában egy-egy versenyző adatait találjuk: a versenyző nevét (szóközök nélküli szöveg) és mellette azt, hogy az egyes próbáknál mekkorát ugrott. A versenyen egy versenyző 6-szor próbálkozhatott. Ha leverte a lécet, X a próba eredménye, ha kihagyta az adott magasságot, akkor O. Feltehetjük, hogy az állomány helyesen van kitöltve.
Listázza ki azoknak a nevét a konzolra, akiknek csak egy sikeres próbálkozása (150 cm-nél magasabb ugrása) volt, valamint adja meg a legjobb ugrást teljesítő sportoló nevét és összes eredményét! "Például az input fájl adatai:
Nagy_Bela 120 X O 125 130 X
Kiss_Agoston 140 145 X 150 155 X
Toth_Pal 135 O 140 145 X 155Namármost kell használnom szekvenciális inputfile-t, majd a két feladatra kell egy keresést meg egy max.kiv-t csinálnom, nem ?
Én úgy indultam neki, hogy egy struktúrában (7 string) vannak az adatok, a beolvasás is megvolt, az adatok a megfelelő helyen szerepelnek. Viszont innen most nem tudom hogyan induljak tovább, mert csak 1-szer lehet bejárni a meghívott file-t.
Intervallumos progtételek : ITT.
Nevezetes felsorolós progtéltelek : ITT[ Szerkesztve ]
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- ESR Rebound 360 Magnetic Keyboard Case (ENG) - iPad Pro / Air
- Új Gamer PC i5 12400F/13400F/24Gb DDR5/RX 6600 vagy RX 6600 XT 8Gb/500Gb M2 SSD/700W 2-3 Év gari
- ÁRZUHANÁS !! Szép Tervező Vágó Dell Precision 3541 Laptop -65% 15,6" i7-9850H 32/512 QUADRO P620 4GB
- Új Gamer PC i5 12400F/13400F/24Gb DDR5 5600Mhz/RTX 3060 12Gb/500Gb M2 SSD 2-3 Év gar
- ESR Rebound Magnetic iPad Pro 11" / Air 4-5
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Alpha Laptopszerviz Kft.
Város: Pécs