Pereiti prie turinio

C++ Uždavinys Grybai (konteinerinės klasės... )


Rekomenduojami pranešimai

Užduotis. Petriuko parneštus grybus įvertino ekspertas ir surašė į failą Petras.txt, o Rasos – į failą Rasa.txt. Faile duomenų skaičius nenurodytas. Apie grybą pateikiama:

 

pavadinimas (gali būti ne vienas žodis), požymis (valgomas, nevalgomas, nuodingas, nežinomas), svoris gramais.

 

Suformuokite be pasikartojimų Petriuko ir Rasos rastų valgomų grybų bendrą sąrašą, kuriame to paties pavadinimo grybų svoriai sudedami ir sąraše tas pavadinimas turi būti tik vieną kartą.

 

Visus duomenų ir rezultatų sąrašus, surikiuotus abėcėliškai, spausdinkite lentelėmis faile. Jeigu rezultatų sąrašas tuščias, tuomet spausdinkite pranešimą.

 

Kiek kilogramų valgomų grybų parnešė Petriukas ir kiek kilogramų nevalgomų grybų parnešė Rasa?

 

Taigi dabartinis klausimas kaip padaryti: "Suformuokite be pasikartojimų Petriuko ir Rasos rastų valgomų grybų bendrą sąrašą, kuriame to paties pavadinimo grybų svoriai sudedami ir sąraše tas pavadinimas turi būti tik vieną kartą."

 

Nes kiek bandžiau tai niekaip neišmastau pilnai veikiančio metodo...

Nuoroda į pranešimą
Dalintis kituose puslapiuose

void Vienas(Grybai G, Grybai GG, Grybai & G3)

{

for(int i = 0; i < G.Imti(); i++)

{

if(G.Imti(i).ImtiPav() == GG.Imti(i).ImtiPav())

{

G3.Imti(i).DetiSvor(G.Imti(i).ImtiSvor() + GG.Imti(i).ImtiSvor());

G3.Imti(i).DetiPav(G.Imti(i).ImtiPav());

G3.Imti(i).DetiPoz(G.Imti(i).ImtiPoz());

}

}

}

 

Tačiau nieko nesudaro...

 

void Vienas(Grybai G, Grybai GG, Grybai & G3)

{

for(int i = 0; i < G.Imti(); i++)

{

if(G.Imti(i).ImtiPav() == GG.Imti(i).ImtiPav())

{

G3.Imti(i).DetiSvor(G.Imti(i).ImtiSvor() + GG.Imti(i).ImtiSvor());

G3.Imti(i).DetiPav(G.Imti(i).ImtiPav());

G3.Imti(i).DetiPoz(G.Imti(i).ImtiPoz());

}

}

}

 

Tačiau nieko nesudaro...

 

gal .txt failus gali įkelti?

Pirmas grybas, valgomas, 120.5

Antras grybas, nevalgomas, 90

Trečias grybas, nežinomas, 50

Ketvirtas grybas, nuodingas, 30

 

Antras analogiškas tik skiriasi tvarka ir skaičiai

Nuoroda į pranešimą
Dalintis kituose puslapiuose

void Vienas(Grybai G, Grybai GG, Grybai & G3)

{

for(int i = 0; i < G.Imti(); i++)

{

if(G.Imti(i).ImtiPav() == GG.Imti(i).ImtiPav())

{

G3.Imti(i).DetiSvor(G.Imti(i).ImtiSvor() + GG.Imti(i).ImtiSvor());

G3.Imti(i).DetiPav(G.Imti(i).ImtiPav());

G3.Imti(i).DetiPoz(G.Imti(i).ImtiPoz());

}

}

}

 

Tačiau nieko nesudaro...

 

void Vienas(Grybai G, Grybai GG, Grybai & G3)

{

for(int i = 0; i < G.Imti(); i++)

{

if(G.Imti(i).ImtiPav() == GG.Imti(i).ImtiPav())

{

G3.Imti(i).DetiSvor(G.Imti(i).ImtiSvor() + GG.Imti(i).ImtiSvor());

G3.Imti(i).DetiPav(G.Imti(i).ImtiPav());

G3.Imti(i).DetiPoz(G.Imti(i).ImtiPoz());

}

}

}

 

Tačiau nieko nesudaro...

 

 

Pirmas grybas, valgomas, 120.5

Antras grybas, nevalgomas, 90

Trečias grybas, nežinomas, 50

Ketvirtas grybas, nuodingas, 30

 

Antras analogiškas tik skiriasi tvarka ir skaičiai

 

Nieko nesurado, nes tu lygini pirmą Petro su pirmu Rasos sąrašo elementu, antrą su antru ir t. t.

if(G.Imti(i).ImtiPav() == GG.Imti(i).ImtiPav())

 

Jei G.Imti() yra Petro sąrašo eilučių skaičius, tai tavo kodas turėtų atrodyti taip, kad veiktų:

for(int i = 0; i < G.Imti(); i++)
{
for(int j = 0; j < GG.Imti(); j++)
{
	if(G.Imti(i).ImtiPav() == GG.Imti(j).ImtiPav())
	{
			G3.Imti(i).DetiSvor(G.Imti(i).ImtiSvor() + GG.Imti(j).ImtiSvor());
	}
}
G3.Imti(i).DetiPav(G.Imti(i).ImtiPav());
G3.Imti(i).DetiPoz(G.Imti(i).ImtiPoz());
}

Redagavo TheLightning
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Nieko nesurado, nes tu lygini pirmą Petro su pirmu Rasos sąrašo elementu, antrą su antru ir t. t.

if(G.Imti(i).ImtiPav() == GG.Imti(i).ImtiPav())

 

Jei G.Imti() yra Petro sąrašo eilučių skaičius, tai tavo kodas turėtų atrodyti taip, kad veiktų:

for(int i = 0; i < G.Imti(); i++)
{
for(int j = 0; j < GG.Imti(); j++)
{
	if(G.Imti(i).ImtiPav() == GG.Imti(j).ImtiPav())
	{
			G3.Imti(i).DetiSvor(G.Imti(i).ImtiSvor() + GG.Imti(j).ImtiSvor());
	}
}
G3.Imti(i).DetiPav(G.Imti(i).ImtiPav());
G3.Imti(i).DetiPoz(G.Imti(i).ImtiPoz());
}

Ačiū

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

×
×
  • Pasirinkite naujai kuriamo turinio tipą...