Programiranje u C++-u - pitanja i odgovori izdvojena tema

poruka: 6.998
|
čitano: 1.018.057
|
moderatori: Danny_HR, Lazarus Long
+/- sve poruke
ravni prikaz
starije poruke gore
7 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Mozel neko oobjasniti gdje je ovjdje greska hitno je!!!

#include <cstdlib>
#include <iostream>

using namespace std;
void sortBubble(float a[],int n){
int i,j;
float pom;
for(int i=0;i<n;++i)
{
for(int j=0;j<n-i;++j)
if(a[j]>=a[j+1])
{
pom=a[j];a[j]=a[j+1];a[j+1]=pom;
}
}
}

int main()
{
void displej(float a[],int n);
int n;
cout<<"Unesite br. clanova niza\n";
cin>>n;
float a[n];
cout<<"UNOS\n";
for(int i=0;i<n-1;++i)
{
        cout<<i+1<<".clan\n";
        cin>>a[i];
}
sortBubble(a,n);
displej(a,n);
cout<<endl;
    system("PAUSE");
    return 0;
}
void displej(float a[],int n)
{
 for(int i=0;i<n;++i){
 cout<<a[i]<<" ";}
    
}

Lazar Sladojevic
 
0 0 hvala 0
8 godina
offline
Programiranje u C++-u - pitanja i odgovori

probaj ovako u sortiranju

for(i=0;i<n-1;i++)
    {
       for(j=i+1;j<n;j++)
          if(x[j]<x[i])
          {
             pom=x[i];
             x[i]=x[j];
             x[j]=pom;
          }
    }

 

možda ti javlja i greške zbog toga što je pom float a ostali int, stavi radije sve int ili float (šta će ti float uopće osim ako tako nepiše u zadatku), a nisam siguran ni za ono deklariranja a[n], ne znam hoće li to raditi nisam dugo programirao ali eto.

I zašto preskačeš 1. član uvijek a[0], stavi i++ a ne ++i.

 

guglao sam, neće raditi float a[n], može ovako

int* a= (int*)alloc(n * sizeof(int)); //ili float kako hoćeš

Avira+CIS
Poruka je uređivana zadnji put čet 5.4.2012 17:44 (njonji).
Moj PC  
0 0 hvala 0
10 godina
offline
Programiranje u C++-u - pitanja i odgovori

Što si ga zakomplicirao, nisi dinamički alocirao memoriju, a morao si, a onda si i u sortu malo pobrkao lončiće, a malo si i u petlji kod unosa niza pogriješio.

 

 

#include <cstdlib>
#include <iostream>

using namespace std;
void sortBubble(float *a,int n){
float pom;
for(int i=0;i<n-1;++i)
{
for(int j=0;j<n-1-i;++j)
if(a[j]>a[j+1])
{
pom=a[j];a[j]=a[j+1];a[j+1]=pom;
}
}
}

int main()
{
void displej(float *a,int n);
int n;
cout<<"Unesite br. clanova niza\n";
cin>>n;
float *a = new float[n];
cout<<"UNOS\n";
for(int i=0;i<n;++i)
{
        cout<<i+1<<".clan\n";
        cin>>a[i];
}
sortBubble(a,n);
displej(a,n);
cout<<endl;
delete [] a;
    system("PAUSE");
    return 0;
}
void displej(float *a,int n)
{
 for(int i=0;i<n;++i){
 cout<<a[i]<<" ";}
   
}

Poruka je uređivana zadnji put čet 5.4.2012 17:49 (Floki).
 
1 0 hvala 0
8 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Greska je u ovoj liniji:

for (int j=0; j<n-i; ++j)

 

trebalo bi biti:

for (int j=0; j<n-1; ++j)

 

ili onako kako je floki napravio

 

njonji kaže...
I zašto preskačeš 1. član uvijek a[0], stavi i++ a ne ++i.

To je i mene zbunilo, ali cini se da nema razlike izmedu ++i i i++ u for petlji, iako sam ocekivao da ce ih biti.

My computer once beat me at chess, but we got even after a round of boxing.
Poruka je uređivana zadnji put čet 5.4.2012 18:00 (rustweaver).
8 godina
offline
Programiranje u C++-u - pitanja i odgovori

for(int i=0;i<n;++i)
{
        cout<<i+1<<".clan\n";
        cin>>a[i];
}

 

ovo će mu ispisati prvo "2.clan" koliko ja vidim...i ako ima 5 članova taj niz a[] onda je prvi a[0] a zadnji a[4], ne postoji onda a[5] a čini mi se da ga on tamo želi ispisati (i upisati)... stavi i++ ne znam zašto okrećeš možeš samo pogreške dobiti

 

i ovo je puno elegantnije i ljepše za viditi u sortiranju

for(i=0;i<n-1;i++)
    {
       for(j=i+1;j<n;j++)
          if(x[j]<x[i])
          {
             pom=x[i];
             x[i]=x[j];
             x[j]=pom;
          }
    }

Avira+CIS
Poruka je uređivana zadnji put čet 5.4.2012 18:19 (njonji).
Moj PC  
0 0 hvala 0
10 godina
offline
Programiranje u C++-u - pitanja i odgovori

Dečki, razlika između postfix i prefix inkrementa je što se prefix izvrši odmah, a postfix kad se izvrši ta linija koda.

Pošto su u petlji dijelovi odjeljeni semicolonom, dakle imamo tri linje koda, izvršio se inkrement trenutno ili po izvršenju linije koda učinak je isti.

Dakle, oba inkrementa u petlji daju isti učinak, a uzmite ovaj primjer što sam ispravio, vidjet ćete da radi.

Poruka je uređivana zadnji put čet 5.4.2012 18:24 (Floki).
 
0 0 hvala 1
8 godina
offline
Programiranje u C++-u - pitanja i odgovori

dobro, neće doći (ako je npr n=5) do a[5] jer će provjeriti da i nije manji od n, ali će prvi član biti upisan u a[1] zar ne?

cin>>a[i];

tu je i=1 odmah ako se ne varam (zbog ++i), tj imat će 1 član manje ukupno?

Avira+CIS
Poruka je uređivana zadnji put čet 5.4.2012 18:24 (njonji).
Moj PC  
0 0 hvala 0
10 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
njonji kaže...

dobro, neće doći (ako je npr n=5) do a[5] jer će provjeriti da i nije manji od n, ali će prvi član biti upisan u a[1] zar ne?

cin>>a[i];

tu je i=1 odmah ako se ne varam (zbog ++i), tj imat će 1 član manje ukupno?

Ne, neće, prvi član će biti upisan kao a[0], sjeti se kako petlja radi:

1. početno stanje

2. uvjet nastavka

3. izvršenje naredbe ili blokla naredbi

4. inkrement

 

Kad dođe do inkrementa, pošto je to linija koda u petlji i postfix i prefix inkrement iz te linije izlaze jednako povećani.

Ubaci moj kod u IDE i vidjet ćeš da radi, promjeni inkremente u petljama u postfix, vidjet ćeš da je isti rezultat.

Poruka je uređivana zadnji put čet 5.4.2012 18:32 (Floki).
6 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
njonji kaže...
I zašto preskačeš 1. član uvijek a[0], stavi i++ a ne ++i

U For petlji među njima razlike nema. Zašto?, pogledaj kako se izvršava For petlja:
1. početna vrijetnost - i=0
2. uvjet - i<=10
3. naredba/blok nardebi
4. inkrementacija/dekrementacija varijable i
Pogledaj sljedeći kod i rezultat ispisa:
#include<iostream>#include<cstdlib>using namespace std;int main(){    for(int i=0; i<=10; i++)    {       cout<<i<<endl;       if(i==10) cout<<endl<<endl;    }    for(int i=0; i<=10; ++i)    {       cout<<i<<endl;    }    system("PAUSE");    return 0;}

 

 

Neka ti neko iskusniji malo bolje objasni razliku.

8 godina
offline
Programiranje u C++-u - pitanja i odgovori

nisam već godinu dana ništa programirao pa nije više sjećanje svježe :p

znam ono koja je razlika ako u printf (tj cout) napišemo i++ ili ++i, ali mislio sam da je i ovdje razlika ali guglao sam i stvarno nije :)

 

da kužim, samo sam mislio da ++i znači da će se inkrementirati prije odlaska na izvršenje naredbi ali u oba slučaja ga inkrementira tek kada se vrati u for liniju (isti k ispadne)

p.s. mislim da je ono moje sortiranje ljepše (prepisao ga od starih zadataka na kompjuteru šta sam radio u srednjoj) jer nema ono j-1-i  i onih j+1 u naredbama kao u vašim primjerima :)  neka provjeri i stavi koje mu se više sviđa, ja se samo sjetio da sam to već radio davno pa eto neka ima za one kojima treba ;)

Avira+CIS
Poruka je uređivana zadnji put čet 5.4.2012 18:58 (njonji).
Moj PC  
0 0 hvala 0
9 godina
offline
Programiranje u C++-u - pitanja i odgovori

 

Statistička funkcija lower incomplete gamma funkcija se računa prema slici 1 a kod je sljedeći:

 

double incgamma (double x, double a){ 

double sum=0; 

double term=1.0/a; 

int n=1; 

while (term != 0){ 

sum = sum + term; 

term = term*(x/(a+n)); 

n++; 

return pow(x,a)*exp(-1*x)*sum; 

 

Meni je sada potrebna upper incomplete gamma funkcija koja se računa prema slici 2, a razlika je jedino u granicama određenog integrala, pa da li netko zna kako to izmjeniti?

 

Poruka je uređivana zadnji put čet 5.4.2012 18:54 (Legolas).
 
0 0 hvala 0
6 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
7 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

e ekipa imam pitanje u jednom zadatku. Znači unosim kvadratnu matricu i sada treba prvojeriti da li je ona jedinična ili ne. (Matrica je jedinična ako su joj na galvnoj dijagonali jedinica, a svi ostali elementi matrice 0.) za sve treba koristiti funkcije. i mene sada muči taj uvjet kako ga postaviti. ako netko zna bio bih mu zahvala! :)

Moj PC  
0 0 hvala 0
8 godina
offline
Programiranje u C++-u - pitanja i odgovori

dvije for petlje, i=0, j=0 i onda if(i=j) to je dijagonala i u njemu opet if(a[i][j]==1) ostaviš prazno a else neki n=1 kojeg si prethodno stavio u n=0 prije svih petlji pa ako su sve jedinice po dijagonali ostat će 0 i znači da je jedinična a ako se promjeni znači da nije (može i true ili false sa booleanima ako neželiš 0 i 1)

 

a sad opet vidim ako trebaš provjeriti jesu li svi ostali koji nisu na dijagonali nule onda opet nakon vitičasti od svega u if(i=j) staviš else pa isto n=1... ako sam dobro skužio zadatak :)

Avira+CIS
Poruka je uređivana zadnji put čet 5.4.2012 19:18 (njonji).
Moj PC  
1 0 hvala 1
7 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Da znam kako provjeriti to za glavnu dijagonalu, ali treba provjeriti i ostale elemente niza koji moraju biti 0.

8 godina
offline
Programiranje u C++-u - pitanja i odgovori

eno napisao sam već gore

n=0;

for(bla bla){

  for (bla bla){

    if(i=j)

    {

       if(a[i][j]!=1)

         n=1;

    }

   else

   {

      if(a[i][j]!=0)

         n=1;

   }

}

}

Avira+CIS
Poruka je uređivana zadnji put čet 5.4.2012 19:33 (njonji).
Moj PC  
1 0 hvala 1
7 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

for (i=0; i<n; i++)

  for (j=0; j<n; j++)

{

if (i==j)

{

     if (a[i][j]!=1)

             c++; //prije toga je postavljeno na 0.

}

     else

      {

                if (a[i][j]!=0)

                     k++;

        }

 

if (c==0 && k==0)

cout<<"Matrica je jedinična."<<endl;

else

cout<<"......nije jedinična."<<endl;

 

evo sada sam tako rješio, sad nezz da li će biti točna za sve unesene kombinacije ali...

Moj PC  
0 0 hvala 0
8 godina
offline
Programiranje u C++-u - pitanja i odgovori

stavi samo c=1 umjesto c++ i ne treba ti k nego isto stavi c=1 jer ako ijedno od toga ne valja nije jedinična... i if(i=j)  tu ne ide == koliko se sjećam nego samo ako je konkretna vrijednost npr 1

Avira+CIS
Moj PC  
0 0 hvala 1
7 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

hvala! :)

Moj PC  
0 0 hvala 0
8 godina
offline
Programiranje u C++-u - pitanja i odgovori

np :)

lijepo se prisjetiti ovoga, srećom ne moraš rotirati matricu kao što je bio zadatak na faksu hehe

Avira+CIS
Moj PC  
1 0 hvala 0
8 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
Floki kaže...

Pošto su u petlji dijelovi odjeljeni semicolonom, dakle imamo tri linje koda, izvršio se inkrement trenutno ili po izvršenju linije koda učinak je isti.

Da to. Na to sam posve zaboravio.

My computer once beat me at chess, but we got even after a round of boxing.
8 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
njonji kaže...

stavi samo c=1 umjesto c++ i ne treba ti k nego isto stavi c=1 jer ako ijedno od toga ne valja nije jedinična... i if(i=j)  tu ne ide == koliko se sjećam nego samo ako je konkretna vrijednost npr 1

"==" je operator uspoređivanja i uvjek se stavlja kad su nešto uspoređuje npr "i==j", "i==1", "2==3", do se operator "=" koristi kod pridruživanja desne strane lijevoj.
P.S. istovremeno možeš koristit opa operatora mada se to nepreporučava. U sljedećem slučaju program prvo varijabli z preda vrijednost 2 te onda varijablu z usporedi s varijablom i.
P.P.S ako sam nešto falio u ovom kodu nek me netko ispravi

 int i=2,j=3,z;

 if (i==(z=j-1)) cout << z << endl; 

10 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
B3Arf00t kaže...

evo sada sam tako rješio, sad nezz da li će biti točna za sve unesene kombinacije ali...

for varijable ti nemaju vitice koje označavaju blok naredbi.

~~~ You know, half these gook whores are serving officers in the Vietcong. The other half have got TB. Be sure you only fuck the ones that cough. ~~~
9 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori

Brža varijanta za provjerit jediničnost:

 

bool jedinice_na_dijagonali = true;

for(int i=0;i<n;++i)

{

      if ( a[i][i]!=1 )

      {

            jedinice_na_dijagonali = false;

            break;

       }

}

 

if ( jedinice_na_dijagonali == false )

{

       cout<<"Nije jedinična";

}

else

{

       bool nule_izvan_dijagonale = true;

       for (int i=0;i<n-1;++i)

       {

             for(int j=i+1;j<n;++j)

             {

                   if ( a[i][j]!=0 || a[j][i] != 0)

                   {

                           nule_izvan_dijagonale = false;

                           break;

                   }

             }

 

              if (nule_izvan_dijagonale == false)

              {

                    break;

              }

       }

 

       if (nule_izvan_dijagonale == false)

       {

                cout<<"Nije jedinična";

       }

       else

       {

                cout<<"Jedinična je";

        }

 

}

 

Dakle prvo pogledamo dijagonalu. Ako tu nađemo element koji nije jednak jedan, gotovi smo.

Ako su sve jedinice na dijagonali idemo gledati ono kaj nije dijagonala. For petljom trčimo samo po gornjem trokutu i odjednom provjeravamo i donji trokut. Ako nađemo element koji nije nula gotovi smo, izlazimo iz svega. Na kraju, ispišemo dobiveni zaključak :D

http://manutd-croatia.com/forum/index.php ... forum i udruga navijača Manchester Uniteda...
6 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

/*An Internet service provider has three different subscription packages for
its customers:
-Package A: For $9.95 per month 10 hours of access are provided. Additional
hours are $2.00 per hour.
-Package B: For $14.95 per month 20 hours of access are provided. Additional
hours are $1.00 per hour.
-Package C: For $19.95 per month unlimited access is provided.
Write a program that calculates a customer’s monthly bill. It should input
customer name, which package the customer has purchased, and how many hours were
used. It should then create a bill that includes the input information and the
total amount due. The bill should be written to a file.
*Input Validation: Be sure the user only selects package A, B, or C. Also, the
number of hours used in a month cannot exceed 744.
21.
Modify the program in problem 20 so it also displays how much money Package A
customers would save if they purchased packages B or C, and how much money
package B customers would save if they purchased package C. If there would be no
savings, no message should be printed……*/

#include <iostream>
#include <fstream>
#include <stdlib.h>
using namespace std;

void Print(string strName, char chPackage, int nHours, float fPrice, int nTime, int nAdditional)
{
    cout << "Customer: " << strName << endl;
    cout << "Package: " << chPackage << endl;
    cout << "Hours used: " << nHours << endl;
    cout << "TOTAL: " << fPrice + (nHours - nTime) * nAdditional << " $" << endl;
}

int main()
{
    cout << "Please select a subscription package:" << endl << endl;
    cout << "Press 1 for package A: For $9.95 per month 10 hours of access " <<
         "are provided." << endl;
    cout << "Additional hours are $2.00 per hour." << endl << endl;
    cout << "Press 2 for package B: For $14.95 per month 20 hours of access " <<
         "are provided." << endl;
    cout << "Additional hours are $1.00 per hour." << endl << endl;
    cout << "Press 3 for package C: For $19.95 per month unlimited access " <<
         "is provided." << endl;
    int nX;

    do
    {
        cout << "Enter your choice: " << endl;
        cin >> nX;
    }while(nX<1 || nX>3);

    char chPackage;

    //default cijena paketa
    float fPrice;

    //vrijeme dobiveno u pojedniom paketu
    int nTime = 0;

    //cijena svakog sata koji prelazi nTime pojedinog paketa
    int nAdditional = 0;

    if(nX==1)
    {
        cout << "Package A selected." << endl;
        chPackage = 'A';
        fPrice = 9.95;
        nTime = 10;
        nAdditional = 2;
    }
    else if(nX==2)
    {
        cout << "Package B selected." << endl;
        chPackage = 'B';
        fPrice = 14.95;
        nTime = 20;
        nAdditional = 1;
    }
    else if(nX==3)
    {
        cout << "Package C selected." << endl;
        chPackage = 'C';
        fPrice = 19.95;
    }

   cout << "Enter your name:" << endl;
   string strName;
   cin >> strName;
    int nHours;

    do
    {
        cout << "Enter how many hours you have used (max. 744 hours):" << endl;
        cin >> nHours;
    }while (nHours < 0 || nHours > 744);

    char chYN;
   cout << "Print bill? <Y/N>" << endl;
   cin >> chYN;
   cout << endl;
   if(chYN == 'y' || chYN == 'Y')
       Print(strName, chPackage, nHours, fPrice, nTime, nAdditional);
   else if(chYN == 'n' || chYN == 'N')
       exit (1);

   ofstream File;
   File.open("ISP_bill.txt");
   File << "Customer: " << strName << endl;
   File << "Package: " << chPackage << endl;
   File << "Hours used: " << nHours << endl;
   File << "TOTAL: " << fPrice + (nHours-nTime) * nAdditional << " $" << endl;
   File.close();

    //float fA/fB/fC su cijene po paketima s uracunatim iskoristenim satima
    float fA, fB, fC;
    if(nHours > nTime)
    {
        fA = 9.95 + (nHours - 10) * 2;
        fB = 14.95 + (nHours - 20) * 1;
        fC = 19.95;
    }
    else
    {
        fA = 9.95;
        fB = 14.95;
        fC = 19.95;
    }


    if(nX==1)
    {
        if( fA > fB && fB > fC )
            cout << "If you had purchased package C you would have saved " <<
                fA - fC << " dollars." << endl;

        if( fA > fB && fB < fC )
            cout << "If you had purchased package B you would have saved " <<
                fA - fB << " dollars." << endl;
    }
    else if(nX==2)
    {
        if( fB > fC)
            cout << "If you had purchased package C you would have saved " <<
                fB - fC << " dollars." << endl;
    }

    return 0;
}

 

Ovaj kod radi ali mislim da bi se mogao malo poboljsati i uljepsati.

Ako se nesto od ovoga moze krace napisati, slusam. Stvari koje me zanimaju sam oznacio zelenim markerom ali primam i kritike na racun svega ostaloga, pogotovo na stil pisanja. Znam da je zadatak malo duzi od prosijeka na ovoj temi, ali ako netko moze pogledati i dati koji savjet {#}

 

1. zeleno: kada unesem razmak jednostavno prekoci taj dio i normalno nastavi dalje. getline(cin, strName) ne prihvaca. Htio bih napraviti da se moze unijeti ime i prezime a da ne moram to podijeliti na zasebne varijable.

2. zeleno: htio sam to napisati kao do-while kod cega bi while bio (chYN != 'y' || chYN != 'Y'|| chYN != 'n' || chYN != 'N'); ali iz nekog razloga to ne radi. Tj. radi ali ne kako treba, zapne. I kada unesem y/Y/n/N i dalje vrti onaj do.

3. zeleno: se moze to nekako krace napisati? Ili bolje?


 

Poruka je uređivana zadnji put sub 7.4.2012 0:02 (Rattner).
 
0 0 hvala 0
8 godina
offline
Programiranje u C++-u - pitanja i odgovori

Za 1. zeleno probaj koristiti vector pa vidi hoće li raditi, malo guglaj :)

Avira+CIS
Moj PC  
1 0 hvala 1
7 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

for varijable ti nemaju vitice koje označavaju blok naredbi.

 

 

Ma zaboravio sam kod prepisivanja programa napisati vitičaste zagrade (jer mi ne radi ovaj stil kod), ali u programu sam ih stavio ;)

6 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
njonji kaže...

Za 1. zeleno probaj koristiti vector pa vidi hoće li raditi, malo guglaj :)

 

1. zeleno sam zamjenio ovime; sada radi.

    cout << "Enter your name:" << endl;
    string tmp;
    cin.ignore();
    getline(cin, tmp);
    vector <string> strName;
    strName.push_back(tmp)
Void Print(...) sada izgleda ovako,void Print(vector<string> strName, char chPackage, int nHours, float fPrice, int nTime, int nAdditional)a u cout-ovima je strName promijenjeno u strName[0] 


Nisam jos ucio vektore, postoji li mozda neki sigurniji/ljepsi/kraci nacin?

Poruka je uređivana zadnji put sub 7.4.2012 20:17 (Rattner).
8 godina
offline
Programiranje u C++-u - pitanja i odgovori

Koristi getline, ja mislio da si to već pokušao pa sam zato predložio vector kao iduće ali vidim sada nema nigdje getline gore :)

 

evo link http://www.cplusplus.com/forum/articles/6046/

Avira+CIS
Moj PC  
0 0 hvala 0
6 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori
Rattner kaže...

1. zeleno: kada unesem razmak jednostavno prekoci taj dio i normalno nastavi dalje. getline(cin, strName) ne prihvaca. Htio bih napraviti da se moze unijeti ime i prezime a da ne moram to podijeliti na zasebne varijable.

Malo sam to glupo srocio, ali ova prva recenica se odnosi na getline.

Sa vektorima radi ok, ali sam morao dodati cin.ignore()

 

    cout << "Enter your name:" << endl;
    string tmp;
   cin.ignore();
    getline(cin, tmp);
    vector <string> strName;
    strName.push_back(tmp)

 

I tek sada sam se sjetio da probam dodati cin.ignore() ali bez vektora. I radi.
Ukratko; ovo ne radi:

    cout << "Enter your name:" << endl;
    string strName;
    getline(cin, strName);

A ovo radi:

    cout << "Enter your name:" << endl;
    string strName;
   cin.ignore();
    getline(cin, strName)

 
0 0 hvala 0
E-mail:
Lozinka:
 
vrh stranice