Zdravo!
Spet imam eno zacetnisko tezavico (zame je to konkretna tezava), in
sicer za C++.
Problem imam pri sortiranju ... Zanima pa me, ce mi lahko kdo z
obrazlozilom popravi program oz. ga pretvori v delujoco verzijo. (Zelim
se nauciti programiranja v C++ pa nisem vedel kam se obrnit. Tako, da ce
je to malo off-topic se iskreno opravicujem!)
Imam sledeci primer:
/*
Navodila:
----------
Napisite program, ki vodi evidenco o N konjih na
konjski dirki. O vsakem konju imamo podano ime, sifro
jahalca, disciplino v kateri tekmuje in stevilko steze.
Za vsakega jahalca je podano ime in priimek, spol,
starost, visina, teza,...Program naj sortira konje po
disciplinah ter stezah za to disciplino.
*/
//Vpis ?znam? naredit, ostalega pa ne.
//Program:
#include <iostream.h>//vkljucimo I/O Stream Class
#include <iomanip.h>//vklucimo I/O manipulation Class
//konstante
const int max_k=10;//dolocitev globalne konstante tipa int
//zacetek prg telesa
int main ()
{
//deklaracija spremenljivk
char ime_k[max_k][30];//ime konja
float dis_k[max_k];//disciplina konja
float steza_k[max_k];//steza na kateri konj tekmuje
char sifra_j[max_k][10];//sifra jahaca
char ime_j[max_k][30];//ime jahaca
char priimek_j[max_k][30];//priimek jahaca
char spol_j[max_k][8];//spol jahaca
float starost_j[max_k];//starost jahaca
float visina_j[max_k];//visina jahaca
float teza_j[max_k];//teza jahaca
float vmestni;//pomzna spremenljivka
//konec deklaracije spremenljivk
//zacetek vpisa vseh konjev, ki jih zelimo vpisati
cout << "Vpisete lahko najvec " << max_k << " konjev!" <<
endl;//sporocilo uporabniku
cout << endl << endl;
//navodilo uporabniku
cout << "Ce ne zelite vec vpisovati konjev," <<
endl << "kot ime konja vnesite *!" << endl;
//konec navodil za uporabo
//zacetek for zanke za vpisovanje
for (int v=0; v<max_k; v++)
{
//IME KONJA
cout << "Vpisi ime konja: ";//navodilo uporabniku
cin.getline(ime_k[v], 30, '\n');//prebere vnos
//zacetek sekvence za prekinitev vnosa
if (ime_k[v][0]=='*')
break;
//konec sekvence za prekinitev vnosa
//TEKMOVALNA DISCIPLINA
cout << "Vpisi disciplino konja (Vpisi od 0 do 9): ";//navodilo
uporabniku
cin >> dis_k[v];//prebere vnos
//SIFRA JAHACA
cout << "Vpisi sifro jahaca(glej klubsko kartico! Npr.:MZ43221):
";//navodilo uporabniku
cin.getline(sifra_j[v], 10, '\n');
cin.getline(sifra_j[v], 10, '\n');//prebere vnos
//IME JAHACA
cout << "Vpisi ime jahaca: ";//navodilo uporabniku
cin.getline(ime_j[v], 30, '\n');//prebere vnos
//PRIIMEK JAHACA
cout << "Vpisi priimek jahaca: ";//navodilo uporabniku
cin.getline(priimek_j[v], 30, '\n');//prebere vnos
//TEKMOVLNA STEZA
cout << "Vpisi stezo na kateri bo tekmovalec nastopil: ";//navodilo
uporabniku
cin >> steza_k[v];//prebere vnos
//STAROST JAHACA
cout << "Vpisi starost jahaca (Npr.: 21): ";//navodilo uporabniku
cin >> starost_j[v];//prebere vnos
//TEZA JAHACA
cout << "Vpisi tezo jahaca (Npr.: 123): ";//navodilo uporabniku
cin >> teza_j[v];//prebere vnos
//VISINA JAHACA
cout << "Vpisi visino jahaca (Npr.: 123 cm) ";//navodilo uporabniku
cin >> visina_j[v];//prebere vnos
//SPOL JAHACA
cout << "Vpisi spol jahaca: ";//navodilo uporabniku
cin.getline(spol_j[v], 8, '\n');//prebere vnos
cin.getline(spol_j[v], 8, '\n');//prebere vnos
}
//konec for zanke za vpisovanje
//izpis podatkov v vrstnem redu kot smo jih vpisali
for (int i=0; i<max_k; i++)//postavitev ustreznega pogoja
{
//zacetek sekvence za prekinitev izpisa
if (ime_k[i][0]=='*')//postavitev ustreznega pogoja
break;//ce je pogoj v glavi resnicen se izvajanje zanke prekine
//konec sekvence za prekinitev izpisa
cout << endl;//prazna vrstica
cout << endl;//prazna vrstica
//zacetek izpisa vseh podatkov
cout << "PODATKI ZA " << i+1 << ". KONJA:" <<
endl << " " << setw(35) << "Ime konja: " << ime_k[i] <<
endl << " " << setw(35) << "Tekmovalna disciplina: " << dis_k[i] <<
endl <<
endl << "PODATKI ZA " << i+1 << ". JAHACA:" <<
endl << " " << setw(35) << "Sifra jahaca: " << sifra_j[i] <<
endl << " " << setw(35) << "Ime jahaca: " << ime_j[i] <<
endl << " " << setw(35) << "Priimek jahaca: " << priimek_j[i] <<
endl << " " << setw(35) << "Spol jahaca: " << spol_j[i] <<
endl << " " << setw(35) << "Steza na kateri jahac tekmuje: " <<
steza_k[i] <<
endl << " " << setw(35) << "Starost jahaca: " << starost_j[i] <<
endl << " " << setw(35) << "Teza jahaca: " << teza_j[i] <<
endl << " " << setw(35) << "Visina jahaca: " << visina_j[i] << endl;
//konec izpisa vseh podatkov
}
//konec izpisa vpisanih podatkov po vpisnem vrstnem redu
//SORTIRANJE
//disciplina
for (int d=0; d<max_k; d++)//postavitev ustreznega pogoja
{
//zacetek sekvence za prekinitev izpisa
if (ime_k[d][0]=='*')//postavitev ustreznega pogoja
break;//izvajanje zanke se prekine, ce je pogoj v glavi resnicen
//konec sekvence za prekinitev izpisa
for (float prehod=0; prehod< max_k; prehod++)//postavitev ustreznega
pogoja
for (d=0; d<max_k; d++)//postavitev ustreznega pogoja
if (dis_k[d]<dis_k[d+1])//postavitev ustreznega pogoja
{
//DISCIPLINA
//zamenjava vrednosti padajoce po metodi mehurckov
vmestni=dis_k[d];
dis_k[d]=dis_k[d+1];
dis_k[d+1]=vmestni;
//STEZA
if (steza_k[d]<steza_k[d+1])
{
vmestni=steza_k[d];
steza_k[d]=steza_k[d+1];
steza_k[d+1]=vmestni;
}
}
}
//konec sortiranja po disciplinah
cout << endl;//prazna vrstica
for (int q=0; q<max_k; q++)
{
//zacetek sekvence za prekinitev izpisa
if (ime_k[q][0]=='*')//postavitev ustreznega pogoja
break;//ce je pogoj v glavi resnicen se izvajanje zanke prekine
//konec sekvence za prekinitev izpisa
cout << "Ime konja: " << ime_k[q] <<
endl << "Disciplina: "<< dis_k[q] <<
endl << "Tekmovalna steza: " << steza_k[q] <<
endl << endl;
}
return 0;
}
//konec programskega telesa
Za vse se ze v naprej lepo zahvaljujem!
Pozdrav,
Mitja
begin:vcard
n:Znidaric;Mitja
tel;cell:+386 (0)31 345-073
x-mozilla-html:FALSE
url:http://hot.toolsone.com
adr:;;;;;;
version:2.1
email;internet:[EMAIL PROTECTED]
note:http://hot.toolsone.com
end:vcard