C++ zadatak

poruka: 33
|
čitano: 4.993
|
moderatori: Lazarus Long, XXX-Man, vincimus
+/- sve poruke
ravni prikaz
starije poruke gore
15 godina
neaktivan
offline
C++ zadatak

Trebam ispisati redni broj  najmanjeg ucitanog broja!(kojeg sam po redu upisala) kako da to izvedem?

 

Dosla sam do ovog, ali ne znam dalje. Kad upisem u petlji onda mi ispisiva poziciju svakog broja.

 

 

#include<iostream>
#include<vector>

using namespace std;

int main(){
    vector<double>podatci(8);
    cout<<"upisite 8 razlicitih brojeva"<<endl;

    for(int i=0;i<8;i++)
       cin>>podatci[i];
      
    double najmanji=podatci[0];

    for (int j=0;j<8;j++)
    {
       if (podatci[j]<najmanji)
          najmanji=podatci[j];
    }
    cout<<"najmanji broj je "<<najmanji<<endl;


}   

 
0 0 hvala 0
15 godina
neaktivan
offline
RE: C++ zadatak

rijesila sam,  jako jednostavno.

hvala svejedno!

15 godina
neaktivan
offline
RE: C++ zadatak

evo imam drugi problem!isti zadatak malo modificiran!

 

kako ispisati sve brojeve koji su upisani prije najmanjeg, a da ne koristim petlju while!

15 godina
neaktivan
offline
RE: C++ zadatak

Koristi for petlju:

 

for(;;) {

 

kod...

 

}

 

Radi isto kao while petlja.

Kad zelis izac, opali break;

Inace, nemoj ovo koristiti ako ces se ikad bavit programiranjem, ovo nije "dobra praksa". For petlja se treba koristiti ako znas koliko ces iteracija imati, a while se koristi ako ne znas.

Poruka je uređivana zadnji put uto 19.1.2010 22:22 (g09o).
15 godina
neaktivan
offline
RE: C++ zadatak

Hvala na savjetu!

Evo skuzila sam kako, a da je u skladu sa "dobrom praksom".

17 godina
offline
C++ zadatak

Evo oba zadatka iskombinirana u jedan, može i odvojeno na istu foru

 

#include<iostream>
using namespace std;

void main() {
    int i, pom, min, polje[5];
    cout<< "Unesi 1. broj: "; cin>> polje[0];
    min=polje[0];
    for(i=1; i<5; i++) {
       cout<< "Unesi " << (i+1) << ". broj: ";
       cin>> polje[i];
       if(polje[i]<min)
          min=polje[i];
    }
    for(i=0; i<5; i++)
       if(polje[i]==min) {
          cout<< "Redni broj najmanjeg broja je: " << (i+1);
           pom=i;
       }
    cout<< "\nBrojevi do najmanjeg broja: ";
    for(i=0; i<pom; i++)
       cout<< polje[i] << "\t";

}

 
0 0 hvala 0
15 godina
neaktivan
offline
RE: C++ zadatak

Hvala!

Evo ja sam to rijesila ovako:

 

 

 

#include<vector>
#include<iostream>

using namespace std;

int main (){

vector<double>podatci (8);
int s;

cout<<"Upisi 8 razlicitih brojeva!"<<endl;

for(int i=0;i<8;i++)
cin>>podatci[i];

double najmanji=podatci[0];

for(int i=0;i<8;i++)
{
    if (podatci[i]<najmanji)
    {najmanji=podatci[i];
    s=i;
    }
}
for(int i=0;i<s;i++)

    cout<<podatci[i];

}


15 godina
neaktivan
offline
C++ zadatak

Evo imam novi zadatak, nikako ne mogu skuziti sto ne funkcionira, a probala sam vise razlicitih kombinacija.

 

 

Program upisuje 5 ocjena i treba pronaci koja je najmanja i koliko se puta ta ocjena pojavljuje. Ne mogu nikako doci do rjesenja kako da mi izade koliko se tocno puta najmanja ocjena pojavljuje.

 

evo koda.

 

 

#include<vector>
#include<iostream>

using namespace std;

int main()
{
    vector<int>ocjena(5);
    cout<<"upisite 5 ocjena"<<endl;


    for (int i=0;i<5;i++)
       cin>>ocjena[i];
   
        int najmanja=ocjena[0];
       int s=0;

    for (int j=0;j<5;j++)
    {
       if (ocjena[j]<najmanja)
       { najmanja=ocjena[j];
        if (ocjena[j]==najmanja)
        s++;
       }
      
    }

    cout<<"Najmanja ocjena je "<<najmanja<<endl;
    cout<<"ocjena se pojavljuje "<<s<<" puta"<<endl;


}

 

 

Poruka je uređivana zadnji put sri 20.1.2010 16:24 (prvasica).
 
0 0 hvala 0
17 godina
offline
C++ zadatak

Čak ti niti ne treba polje, probaj ovako:

 

ponovi N puta:

 upiši ocjenu

 ako je ocjena manja od trenutno najmanje:

  trenutno najmanja = ocjena

  broj ponavljanja = 1

 ako je ocjena jednaka trenutno najmanjoj:

  broj ponavljanja = broj ponavljanja + 1

The candle flame gutters. Its little pool of light trembles. Darkness gathers. The demons begin to stir.
 
0 0 hvala 0
15 godina
neaktivan
offline
RE: C++ zadatak

Trebam to rijesiti pomocu polja jer imam i jedan zadatak u kojem moram zbrojiti koliko se puta pojavljuje svaka pojedina ocjena. Zbog toga mi je vazno. Ne kuzim zasto ona moja petlja ne funkcionira.

17 godina
offline
C++ zadatak

Jer bi trebala provjeravati broj ponavljanja tek nakon što su svi brojevi upisani! Ovako se neće svi zbrojiti, program još nezna za sve.

 

Ako želiš polje, onda ovako:

 

N puta:

 Upiši broj, i spremi ga u polje

Za svaki broj u polju:

 ako je manji od prijašnjeg najmanjeg:

  za svaki broj u polju, provjeri je li mu jednak, ako jest - uvećaj broj ponavljanja za 1

 

The candle flame gutters. Its little pool of light trembles. Darkness gathers. The demons begin to stir.
 
0 0 hvala 0
17 godina
protjeran
offline
C++ zadatak

Potrebno je polje jer se mora brojati koliko puta se unese neka ocjena

 

#include <iostream>
using namespace std;

int main(){
    int i, pom, min, ocjene[5] = {0};

    cout << "Unesi 1. ocjenu: ";
    cin >> pom;
    if(pom < 1 || pom >5)
       return -1;
    min = pom;
    ocjene[pom-1]++;

    for(i = 1; i < 5; i++){
       cout << "Unesi " << i+1 << ". ocjenu: ";
       cin >> pom;
       if(pom < 1 || pom >5)
          return -1;
       ocjene[pom-1]++;
       if(pom < min)
          min = pom;
    }
    cout << "Najmanja ocjena je: " << min << ", unesena " << ocjene[min-1] << " puta.";
    return 0;
}

 

 

Poruka je uređivana zadnji put sri 20.1.2010 16:35 (Tracer).
Moj PC  
0 0 hvala 0
17 godina
offline
RE: C++ zadatak
prvasica kaže...

Trebam to rijesiti pomocu polja jer imam i jedan zadatak u kojem moram zbrojiti koliko se puta pojavljuje svaka pojedina ocjena. Zbog toga mi je vazno. Ne kuzim zasto ona moja petlja ne funkcionira.

pa kad ti je pomoću polja, to je limunadica, nakon što uneseš polje poredaj ga pomoću npr. bubble sort metode, zatim provuci polje kroz petlju i postavi if(polje[0]==polje[i]

                                s++

Taj s daš na ispis i to je to

 

#include<iostream>
using namespace std;

void main() {
    int i, j, pom, s=0, polje[5];

    for(i=0; i<5; i++) {
       cout<< "Unesi " << (i+1) << ". broj: ";
       cin>> polje[i];
    }
    for(i=0; i<4; i++)
       for(j=0; j<4-i; j++)
          if(polje[j+1]<polje[j]) {
             pom=polje[j];
             polje[j]=polje[j+1];
             polje[j+1]=pom;
          }
    for(i=0; i<5; i++)
       if(polje[0]==polje[i])
          s++;
    cout<< "Najmanji broj: " << polje[0] << "\nBroj njegovog pojavljivanja: " << s;
}

Naravno, slušaj tracera, ovo bi više bilo zaoibilazno bez puno poslaNevinašce

Poruka je uređivana zadnji put sri 20.1.2010 17:00 (Floki).
15 godina
neaktivan
offline
RE: C++ zadatak
itf4n kaže...

Jer bi trebala provjeravati broj ponavljanja tek nakon što su svi brojevi upisani! Ovako se neće svi zbrojiti, program još nezna za sve.

 

Ako želiš polje, onda ovako:

 

N puta:

 Upiši broj, i spremi ga u polje

Za svaki broj u polju:

 ako je manji od prijašnjeg najmanjeg:

  za svaki broj u polju, provjeri je li mu jednak, ako jest - uvećaj broj ponavljanja za 1

 

A zasto onda ova petlja ne funkcionira:

 

for (int j=0;j<5;j++)
    {
       if (ocjena[j]<najmanja)
          najmanja=ocjena[j];{
        if (ocjena[j]==najmanja)
        s++;
       }

 

na koji to nacin mogu ispraviti?

Jer ako prva ocjena nije ona najmanja onda mi ispise broj ponavljanja uvijek za 1 put veci nego stavrni broj ponavljanja ocjene.

16 godina
neaktivan
offline
RE: C++ zadatak

1. Na što je postavljeno najmanja na početku? Ovako uspoređuje sa nekim smećem koje je zapisano na toj memoriji. Inicijalizacija je nužna.

2. Brojanje koliko puta se ponovila trebaš u novoj petlji, nakon što odrediš koja je to najmanja.

 

Tracerovo rješenje je najbolje, najmanje petlji,a sve radi kak spada :D

A sortiranje je samo bespotrebna komplikacija.

17 godina
offline
C++ zadatak

@Prvasica - zato što, kad se to polje "vrti", nemaš još sve brojeve u polju.

 

@Tracer - čim se unese najmanji broj, moguće je izbrojati koliko još puta će biti on unesen. Nema razloga za polja... osim što joj treba za neki drugi zadatak.

The candle flame gutters. Its little pool of light trembles. Darkness gathers. The demons begin to stir.
 
0 0 hvala 0
16 godina
neaktivan
offline
RE: C++ zadatak
itf4n kaže...

@Tracer - čim se unese najmanji broj, moguće je izbrojati koliko još puta će biti on unesen. Nema razloga za polja... osim što joj treba za neki drugi zadatak.

Polje ne treba, ali se onda mora brojač stavit na nulu kad se nađe nova najmanja. Ali elegantnije je sa poljem, tu se dobiva koliko puta je koja unesena, pa se može neki prosjek računat ili šta ja znam :D

 

A možda je prvašica mislila da treba brojeve pospremit u polje pa s njima nešto radit.

17 godina
protjeran
offline
RE: C++ zadatak
itf4n kaže...

@Prvasica - zato što, kad se to polje "vrti", nemaš još sve brojeve u polju.

 

@Tracer - čim se unese najmanji broj, moguće je izbrojati koliko još puta će biti on unesen. Nema razloga za polja... osim što joj treba za neki drugi zadatak.

Da. Moguće je resetiranjem brojača kada se naiđe na sljedeći najmanji. Ali nekako mi je ovo prirodnije :)

15 godina
neaktivan
offline
C++ zadatak

Uspjela sam!!!

 

 

Hvala na savjetima!!! Kako me izluduje kada ne znam u cemu sam pogrijesila!!!

Mislim da mi prije nije funkcioniralo jer sam zaboravljala da se u if naredbi ne koristi znak =, vec==.

 

Hvala Tracer! Ma trebaju mi polja jer iza toga ne bih znala rijesiti sljedeci zadatak u kojem moram ispisati koliko se cesto pojavljuje svaka pojedina ocjena.

 

evo kako na moj nacin:

 

#include<vector>
#include<iostream>

using namespace std;

int main()
{
    vector<int>ocjena(5);
    cout<<"upisite 5 ocjena"<<endl;


    for (int i=0;i<5;i++)
       cin>>ocjena[i];
   
        int najmanja=ocjena[0];
       int s=0;

    for (int j=0;j<5;j++)
    {
       if (ocjena[j]<najmanja)
          najmanja=ocjena[j];
    }
    for (int k=0;k<5;k++)
      {
        if (ocjena[k]==najmanja)
        s++;
       }
      
      
   

    cout<<"Najmanja ocjena je "<<najmanja<<endl;
    cout<<"ocjena se pojavljuje "<<s<<" puta"<<endl;


}

Poruka je uređivana zadnji put sri 20.1.2010 16:55 (prvasica).
 
2 0 hvala 0
17 godina
offline
RE: C++ zadatak

za taj sljedeći prouči tracerov kod, ne stavljas broj na lokaciju u polju, nego koristiš polje kao brojač polje[br-1]

17 godina
offline
C++ zadatak

#include <iostream>
using namespace std;

int main(){
    int i, n, ocjena, ocjene[5] = {0};

    cout<< "Unesi broj ocjena: "; cin>> n;
    for(i=0; i<n; i++) {
       cout<<"Unesi " << (i+1) << ". ocjenu: ";
       cin>> ocjena;
       if(ocjena<=5 && ocjena>=1)
        ocjene[ocjena-1]++;
    }
    for(i=0; i<5; i++)
       cout<< "Ocjena " << (i+1) << " je unesena: " << ocjene[i] << " puta." << "\n";
   


}
Evo, mada će ona imati vjerojatno rješenje kad se vrati

 
0 0 hvala 0
15 godina
neaktivan
offline
RE: C++ zadatak

Evo rijesila sam i taj zadatak s pojedinim brojem ocjena.-na svoj nacin jer mi je ovo Tracerovo jos uvijek napredno.

 

Bas sam se zamislila, a sto bi bilo da sam imala 100 razlicitih brojeva za koje sam trebala napisati koliko se cesto ponavljaju. Ne znam kako bih to uspjela rijesiti.

 

Ovo je moje rjesenje:

 

#include<vector>
#include<iostream>

using namespace std;

int main()
{
    vector<int>ocjena(10);
    int a=0;
    int b=0;
    int c=0;
    int d=0;
    int e=0;
    cout<<"Upisite 10 ocjena ucenika!"<<endl;

    for (int i=0;i<10;i++)
       cin>>ocjena [i];

    for (int j=0;j<10;j++)
    {
       if (ocjena [j]==5)
          a++;
       if (ocjena [j]==4)
          b++;
       if (ocjena [j]==3)
          c++;
       if (ocjena [j]==2)
          d++;
       if (ocjena[j]==1)
          e++;
    }

    cout<<"Ucenik ima "<<a<<" petica, "<<b<<" cetvrtica, "<<c<<" trica, "<<d<<" dvica i "<<e<<" jedinica."<<endl;
}

15 godina
neaktivan
offline
RE: C++ zadatak
Floki kaže...

#include <iostream>
using namespace std;

int main(){
    int i, n, ocjena, ocjene[5] = {0};

    cout<< "Unesi broj ocjena: "; cin>> n;
    for(i=0; i<n; i++) {
       cout<<"Unesi " << (i+1) << ". ocjenu: ";
       cin>> ocjena;
       if(ocjena<=5 && ocjena>=1)
        ocjene[ocjena-1]++;
    }
    for(i=0; i<5; i++)
       cout<< "Ocjena " << (i+1) << " je unesena: " << ocjene[i] << " puta." << "\n";
   


}

Evo, mada će ona imati vjerojatno rješenje kad se vrati

 

 

 

   Da ovo je tvoje puno, puno ljepse.

17 godina
protjeran
offline
RE: C++ zadatak
prvasica kaže...

Bas sam se zamislila, a sto bi bilo da sam imala 100 razlicitih brojeva za koje sam trebala napisati koliko se cesto ponavljaju. Ne znam kako bih to uspjela rijesiti.

 

 

E, u tome i jest stvar kod mog rješenja jer se njime mogu brojati baš svi uneseni brojevi. Samo bi trebalo promjeniti broj elemenata. Znači, pokušaj shvatiti kako sam ja rješio zadatak i odmah će ti biti jasno kako da riješiš i ovaj sa 100 ili par milijuna brojeva.

17 godina
offline
RE: C++ zadatak

nisam nikakav genijalac, to ti je fora iz tracerove knjige

svaka čast na improvizaciji, ide to tebiSmijeh

17 godina
protjeran
offline
RE: C++ zadatak
Floki kaže...

nisam nikakav genijalac, to ti je fora iz tracerove knjige

svaka čast na improvizaciji, ide to tebiSmijeh

 

cout << char(104) << char(118) <<  char(97) << char(108) << char(97) << char(32) << char(59) << char(41);

Poruka je uređivana zadnji put sri 20.1.2010 18:22 (Tracer).
15 godina
neaktivan
offline
RE: C++ zadatak
Floki kaže...

nisam nikakav genijalac, to ti je fora iz tracerove knjige

svaka čast na improvizaciji, ide to tebiSmijeh

Haha, ucim se, tek sam na samome pocetku.

 

bitno je da je zanimljivo.

Poruka je uređivana zadnji put sri 20.1.2010 18:26 (prvasica).
15 godina
neaktivan
offline
RE: C++ zadatak
Floki kaže...

#include <iostream>
using namespace std;

int main(){
    int i, n, ocjena, ocjene[5] = {0};

    cout<< "Unesi broj ocjena: "; cin>> n;
    for(i=0; i<n; i++) {
       cout<<"Unesi " << (i+1) << ". ocjenu: ";
       cin>> ocjena;
       if(ocjena<=5 && ocjena>=1)
        ocjene[ocjena-1]++;
    }
    for(i=0; i<5; i++)
       cout<< "Ocjena " << (i+1) << " je unesena: " << ocjene[i] << " puta." << "\n";
   


}
Evo, mada će ona imati vjerojatno rješenje kad se vrati

 

 

 

Skuzila sam, odlicno rjesenje!

17 godina
offline
C++ zadatak

imaš autora tu, a to nisam jaCool

 
0 0 hvala 0
15 godina
neaktivan
offline
RE: C++ zadatak
Floki kaže...

imaš autora tu, a to nisam jaCool

Super Tracer!

 

A koja je to knjiga da je znam nabavit?

Nova poruka
E-mail:
Lozinka:
 
vrh stranice