Forum » Programiranje » [C++]Strukture
[C++]Strukture
jernejf ::
LP!
Spet jaz in moji problemi s C++. Tokrat mi ni jasno nekaj pri strukturah. Evo naloge:
Napišite program za vnos podatkov o 10 računalnikih. Računalnik je nov tip in je sestavljen iz: ime, datuma_nakupa, hitrosti_procesotja in velikosti_pomnilnika. Datum je sestavljen iz dneva, meseca in leta. Program naj vpisane podatke tudi izpiše urejene po hitrosti procesorja (padajoče). Pri implementaciji uporabite polje računalnikov in funkcije.
Naredil sem da vpišem vse zahtevane podatke. Program mi tudi izpiše vneseno. Težava se mi pojavi, ko mora izpisati po hitrosti procesorja. Prosim za namig, kako se lotiti problema
Evo kode do sedaj:
struct Datum //Struktura datum
{
int dan, mesec, leto;
};
struct predmet //struktura predmet
{
char ime[32];
Datum d_nakupa;
int hitrost_procesorja;
int velikost_pomnilnika;
};
void vpis(predmet racunalnik[]) //funkcija za vpis podatkov
{
for (int i=0; i 10; i++)
{
cout "Vpisi podatke za " i+1 " racunalnik." endl;
cout "Vpisi ime racunalnika: ";
cin racunalnik[i].ime;
cout "Vpisi datum nakupa (dan mesec leto): ";
cin racunalnik[i].d_nakupa.dan >> racunalnik[i].d_nakupa.mesec racunalnik[i].d_nakupa.leto;
cout "Vpisi hitrost procesorja: ";
cin racunalnik[i].hitrost_procesorja;
cout "Vpisi velikost pomnilnika: ";
cin racunalnik[i].velikost_pomnilnika;
cout endl;
}
void izpis(predmet racunalnik[]) //funkcija za izpis podatkov
{
for (int i=0; i 10; i++)
{
cout "Ime racunalnika: " racunalnik[i].ime endl;
cout "Datum nakupa: " racunalnik[i].d_nakupa.dan "." racunalnik[i].d_nakupa.mesec "."
racunalnik[i].d_nakupa.leto endl;
cout "Hitrost procesorja: " racunalnik[i].hitrost_procesorja endl;
cout "Velikost pomnilnika: " racunalnik[i].velikost_pomnilnika endl;
cout endl;
}
}
int main()
{
predmet racunalnik[10]; //definicija polja racunalnik tipa predmet
vpis (racunalnik); //klic funkcije vpis
cout "-----------------------------------"endl;
izpis(racunalnik); //klic funkcije izpis
system("PAUSE");
return 0;
}
}
PS:(Manjkajo operatorji - je manjše in je večje)
Hvala lepa in LP!
Spet jaz in moji problemi s C++. Tokrat mi ni jasno nekaj pri strukturah. Evo naloge:
Napišite program za vnos podatkov o 10 računalnikih. Računalnik je nov tip in je sestavljen iz: ime, datuma_nakupa, hitrosti_procesotja in velikosti_pomnilnika. Datum je sestavljen iz dneva, meseca in leta. Program naj vpisane podatke tudi izpiše urejene po hitrosti procesorja (padajoče). Pri implementaciji uporabite polje računalnikov in funkcije.
Naredil sem da vpišem vse zahtevane podatke. Program mi tudi izpiše vneseno. Težava se mi pojavi, ko mora izpisati po hitrosti procesorja. Prosim za namig, kako se lotiti problema
Evo kode do sedaj:
struct Datum //Struktura datum
{
int dan, mesec, leto;
};
struct predmet //struktura predmet
{
char ime[32];
Datum d_nakupa;
int hitrost_procesorja;
int velikost_pomnilnika;
};
void vpis(predmet racunalnik[]) //funkcija za vpis podatkov
{
for (int i=0; i 10; i++)
{
cout "Vpisi podatke za " i+1 " racunalnik." endl;
cout "Vpisi ime racunalnika: ";
cin racunalnik[i].ime;
cout "Vpisi datum nakupa (dan mesec leto): ";
cin racunalnik[i].d_nakupa.dan >> racunalnik[i].d_nakupa.mesec racunalnik[i].d_nakupa.leto;
cout "Vpisi hitrost procesorja: ";
cin racunalnik[i].hitrost_procesorja;
cout "Vpisi velikost pomnilnika: ";
cin racunalnik[i].velikost_pomnilnika;
cout endl;
}
void izpis(predmet racunalnik[]) //funkcija za izpis podatkov
{
for (int i=0; i 10; i++)
{
cout "Ime racunalnika: " racunalnik[i].ime endl;
cout "Datum nakupa: " racunalnik[i].d_nakupa.dan "." racunalnik[i].d_nakupa.mesec "."
racunalnik[i].d_nakupa.leto endl;
cout "Hitrost procesorja: " racunalnik[i].hitrost_procesorja endl;
cout "Velikost pomnilnika: " racunalnik[i].velikost_pomnilnika endl;
cout endl;
}
}
int main()
{
predmet racunalnik[10]; //definicija polja racunalnik tipa predmet
vpis (racunalnik); //klic funkcije vpis
cout "-----------------------------------"endl;
izpis(racunalnik); //klic funkcije izpis
system("PAUSE");
return 0;
}
}
PS:(Manjkajo operatorji - je manjše in je večje)
Hvala lepa in LP!
darkolord ::
Napiši/uporabi eno funkcijo za sortiranje polja/arraya... Bubble sort je za tako zadevo recimo OK - pač namesto direktne vrednosti primerjaš vrednosti hitrost_procesorja
jernejf ::
Če tako naredim a mi nebo potem uredil po velikosti samo hitrosti procesorja ostale podatke pa pustil??
Naredil sem z booble sort, toda pri prvem izpisu je neka napaka, ter to kar sem že prej omenil. Hitrosti procesorja uredi po vrsti, druge podatke pa pusti(če ima računalnik , ki je vnešen tretji najhitrejši procesor, pri izpisu to hitrost procesorja samo kopira k prvemu.)
Kode za sortiranje:
void izpis(predmet racunalnik[])
{
int x; //vmesni spremenljivki za zamenjavo vrednosti
bool has_swapped;
while(1)
{ has_swapped = 0; //reset flag
for (int i=0;i 4;i++)
{
if (racunalnik[i].hitrost_procesorja racunalnik[i+1].hitrost_procesorja) //ce niso razporejena
{
//exchange them
x=racunalnik[i].hitrost_procesorja;
racunalnik[i].hitrost_procesorja = racunalnik[i+1].hitrost_procesorja;
racunalnik[i+1].hitrost_procesorja = x;
has_swapped = 1; //vsaj enkrat smo zamenjali, lahko, da seznam še vedno ni urejen
}
}
//if no swaps were made during this pass, the list has been sorted
if (has_swapped == 0)
{break;}
}
for (int i=4; i 0; i--)
{
cout "Ime racunalnika: " racunalnik[i].ime endl;
cout "Datum nakupa: " racunalnik[i].d_nakupa.dan "." racunalnik[i].d_nakupa.mesec "."
racunalnik[i].d_nakupa.leto endl;
cout "Hitrost procesorja: " racunalnik[i].hitrost_procesorja endl;
cout "Velikost pomnilnika: " racunalnik[i].velikost_pomnilnika endl;
cout endl;
}
}
Prosim za pomoč in LP
Naredil sem z booble sort, toda pri prvem izpisu je neka napaka, ter to kar sem že prej omenil. Hitrosti procesorja uredi po vrsti, druge podatke pa pusti(če ima računalnik , ki je vnešen tretji najhitrejši procesor, pri izpisu to hitrost procesorja samo kopira k prvemu.)
Kode za sortiranje:
void izpis(predmet racunalnik[])
{
int x; //vmesni spremenljivki za zamenjavo vrednosti
bool has_swapped;
while(1)
{ has_swapped = 0; //reset flag
for (int i=0;i 4;i++)
{
if (racunalnik[i].hitrost_procesorja racunalnik[i+1].hitrost_procesorja) //ce niso razporejena
{
//exchange them
x=racunalnik[i].hitrost_procesorja;
racunalnik[i].hitrost_procesorja = racunalnik[i+1].hitrost_procesorja;
racunalnik[i+1].hitrost_procesorja = x;
has_swapped = 1; //vsaj enkrat smo zamenjali, lahko, da seznam še vedno ni urejen
}
}
//if no swaps were made during this pass, the list has been sorted
if (has_swapped == 0)
{break;}
}
for (int i=4; i 0; i--)
{
cout "Ime racunalnika: " racunalnik[i].ime endl;
cout "Datum nakupa: " racunalnik[i].d_nakupa.dan "." racunalnik[i].d_nakupa.mesec "."
racunalnik[i].d_nakupa.leto endl;
cout "Hitrost procesorja: " racunalnik[i].hitrost_procesorja endl;
cout "Velikost pomnilnika: " racunalnik[i].velikost_pomnilnika endl;
cout endl;
}
}
Prosim za pomoč in LP
Gundolf ::
Ne menjat samo hitrosti procesorja:
> x=racunalnik[i].hitrost_procesorja;
> racunalnik[i].hitrost_procesorja = racunalnik[i+1].hitrost_procesorja;
> racunalnik[i+1].hitrost_procesorja = x;
Zamenjaj celo strukturo:
predmet temp = racunalnik[i];
racunalnik[i] = racunalnik[i+1];
racunalnik[i+1] = temp;
> x=racunalnik[i].hitrost_procesorja;
> racunalnik[i].hitrost_procesorja = racunalnik[i+1].hitrost_procesorja;
> racunalnik[i+1].hitrost_procesorja = x;
Zamenjaj celo strukturo:
predmet temp = racunalnik[i];
racunalnik[i] = racunalnik[i+1];
racunalnik[i+1] = temp;
darkolord ::
x=racunalnik[i].hitrost_procesorja;
tole zamenjaj v x = racunalnik[i] prav tako tisto dve vrstici kasneje... Pa deklaracijo iz int v racunalnik
tole zamenjaj v x = racunalnik[i] prav tako tisto dve vrstici kasneje... Pa deklaracijo iz int v racunalnik
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [C++]Brisanje struktureOddelek: Programiranje | 1419 (1350) | jernejf |
» | c++ in linux/windowsOddelek: Programiranje | 1726 (1602) | rapvirus |
» | [C++]Kako polje iz funkcije za vnos spravit ven?Oddelek: Programiranje | 1385 (1341) | Moravče |
» | čitanje črkOddelek: Programiranje | 1542 (1411) | BigWhale |
» | c++ datotekeOddelek: Programiranje | 4038 (3527) | Vesoljc |