Izrada dvodimenzionalnog polja HITNO

poruka: 8
|
čitano: 6.147
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
15 godina
neaktivan
offline
Izrada dvodimenzionalnog polja HITNO

ljudovi treba mi pomoc hitno

imam za zadatak napraviti polje veličine 40X15 (učenici/predmeti)

od korisnika zatrazi stvarni broj učenika i predmeta

unijeti sve ocjene za te učenike i predmete

kreirati izbornik:

"unesi izbor": (sa switch caseom)

1.prosjek predmeta -> "unesi redni broj predmeta" -> ispisi prosjek predmeta

2.prosjek učenika -> " unesi rb ucenika" -> ispisi prosjek ucenika

3.prosjek ukupno -> ispisi ukupni prosjek

 

novi izracun :1 da

                     0 ne

 

ako je odabran izlaz: 0 ne

                                 1 da

 

koristiti petlje for, do-while ili while BEZ goto

 

ljudovi pls ako mozete rjesite, oduzit cu se nekako ;)

 

e da programski jezik je visual c++

 

hvala

Poruka je uređivana zadnji put pon 28.11.2011 12:27 (Section31).
Moj PC  
1 0 hvala 0
15 godina
neaktivan
offline
Izrada dvodimenzionalnog polja HITNO

itko?

 

pls hitno mi je

Moj PC  
0 0 hvala 0
16 godina
offline
Re: Izrada dvodimenzionalnog polja HITNO

sto je, na ispitu si?

Lack of money is the root of all evil. George Bernard Shaw
15 godina
neaktivan
offline
Izrada dvodimenzionalnog polja HITNO

aa skoro, profi nesto iskrslo pa mora ic ca {#}

 

aj sad ako bi neko mogao to rjesit bar da vidin postupak, pls

Moj PC  
1 0 hvala 0
17 godina
offline
Izrada dvodimenzionalnog polja HITNO

Nedorečen si u zadatku, ako hoćeš imena učenika i imena predmeta unositi jedino po rednim brojevama - onda je to običan dvodimenzionalni niz, a ako hoćeš unositi imena učenika i nazive predmeta, to je onda druga stvar - treba bar neka struktura ući u igru.

Ako se imena učenika i nazivi predmeta unose jedino po rednom broju, sve se svodi na deklaraciju dvodimezionalnog niza npr. razred[40][15], zatim u taj niz se ocjene unose dvostrukom petljom for, preko switcha pozivamo funkcije za izračun, i u njima se sve svodi na manipulaciju elemenata niza preko jedne ili dvostruke petlje.

Cijeli ovaj postupak utrpamo u neku do-while petlju koja se ponavlja ako na pitanje zelite li završiti se utipka 0.

 

izračun nije težak - prosjek učenika znači prosjek reda dvodimenzionalnog niza, prosjek predmeta znači prosjek stupca dvodimenzionalnog niza, a sveukupni prosjek je prosjek svih polja niza.

 

E, ali sad stvarno ozbiljno - koga god profa sruši na ovom - i zaradio je asa, viruj (sve što trebaš ovdje napraviti je zbrojiti pojedine retke ili stupce niza i podijeliti sa brojem redaka ili stupaca) - zato pogledaj malo deklaraciju dvodimenzionalnih nizova i što su uopće oni, kao i upotrebu dvostrukih petlji u radu sa takvom vrstom nizova.

 

Evo ti i primjer za rad:

- na ovaj način unosiš elemente u niz:

for(int i = 0; i<brojUcenika; i++)
    {
       for(int j=0; j<brojPredmeta; j++)
       {
          cout<< "Ocjena: " <<  i+1 << ". ucenik " << j+1 << ". predmet: ";
          cin>> razred[i][j];
       }
    }

- kad uneseš enemente u niz, onda ideš sa računanjem.

na ovaj način računaš prosjek ocjena npr. za 1. učenika:

cout<< "Redni broj ucenika: ";
    cin>> redniBrojUcenika;
    for(int i = 0; i < brojPredmeta; i++)
    {

       prosjekUcenika += razred[redniBrojUcenika - 1][i];
   
    }
    prosjekUcenika /= brojPredmeta;
    cout<< "Prosjek " << redniBrojUcenika << ". ucenika: " << prosjekUcenika << endl;

Poruka je uređivana zadnji put uto 29.11.2011 16:37 (Floki).
 
1 0 hvala 1
17 godina
offline
Izrada dvodimenzionalnog polja HITNO

Sada valjda i sam pogađaš kako računaš prosjek predmeta:

 

 

prosjekPredmeta += razred[i][redniBrojPredmeta - 1];

 

Znači , ovdje kroz petlju zbrajamo elemente pojedinog stupca matrice, za razliku od gornjeg slučaja gdje zbrajamo elemente pojedinog retka matrice računajući prosjek učenika.

 

 

 

Poruka je uređivana zadnji put uto 29.11.2011 15:41 (Floki).
 
1 0 hvala 0
15 godina
neaktivan
offline
Izrada dvodimenzionalnog polja HITNO

okej uspio san nesto sklepat da radi

jos moran samo jednu stvar "usadit" u kod

 

evo kod:

 

#include<iostream>

using namespace std;

 

int main()

{

     int nuc, npr;

     int uc[40][15];

     cout<<"Unesi broj ucenika";

     cin>>nuc;

     cout<<"Unesi broj predmeta";

     cin>>npr;

     int i, j;

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

     {

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

          {

               cout<<"Unesi ocjenu ucenika broj "<<i+1<<" iz predmeta   "<<j+1;

               cin>>uc[i][j];

          }

     }

     float pr_pr, pr_uc, pr_uk;

     do

     {

          cout<<"Izaberi:"<<endl;

          cout<<"1. prosjek predmeta"<<endl;

          cout<<"2. prosjek ucenika"<<endl;

          cout<<"3. ukupni prosjek"<<endl;

          int greska=0;

          do

          {

               int izbor;

               cin>>izbor;

               switch(izbor)

               {

               case 1:

               {

                    cout<<"Unesi broj predmeta ";

                    int br_pr;

                    cin>>br_pr;

                    br_pr--;

                    int suma_uc=0;

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

                    {

                         suma_uc=suma_uc+uc[i][br_pr];

                    }

                    pr_pr=(float)suma_uc/nuc;

                    cout<<"Prosjek predmeta je: "<<pr_pr;

                    break;

               }

               case 2:

               {

                    cout<<"Unesi broj ucenika ";

                    int br_uc;

                    cin>>br_uc;

                    br_uc--;

                    int suma_pr=0;

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

                    {

                         suma_pr=suma_pr+uc[br_uc][j];

                    }

                    pr_uc=(float)suma_pr/npr;

                    cout<<"Prosjek ucenika je: "<<pr_uc;

                    break;

               }

               case 3:

               {   

                    int suma_uk=0;

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

                    {

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

                         {

                              suma_uk=suma_uk+uc[i][j];

                         }

                    }

                    pr_uk=(float)suma_uk/(nuc*npr);

                    break;

               }

               default:

               {   

                    greska=1;

               }

              }

          }while(greska=1);

     }while(1);

     system("pause");

     return 0;

}

 

e sad mi jos treba sljedece, da svaki put kad on izracuna nesto od ona 3 slucaja da me pita hocu li novi izracun pa da ja biram 0 za ne tj. izlaz, 1 za da, ako odaberem 0 tj. izlaz da me opet pita da 1, ne 0

eto tu sam zapeo pa ako mozete samo to implementirat to bi bilo to, znam da pilam sry za to :D

 

hvala ;)

Moj PC  
0 0 hvala 0
15 godina
neaktivan
offline
Re: Izrada dvodimenzionalnog polja HITNO

Na kraju petlje dodaj nekakav ispis u kojem program napise poruku korisniku da treba upisati 0 za prekid odnosno 1 za dalje. Nakon toga koristis cin i pohranis korisnikov upis u neku varijablu. Te uvjet while zamjenis sa necime tipa: while (nastavi_dalje==1);

My computer once beat me at chess, but we got even after a round of boxing.
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice