Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

[Zadatak] Rastuci ili opadajuci niz

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Rastuci ili opadajuci niz

[ Pregleda: 5448 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

borlland

Član broj: 156303
Poruke: 80
91.191.24.*



+1 Profil

icon [Zadatak] Rastuci ili opadajuci niz01.11.2007. u 11:17 - pre 200 meseci
Treba mi vasa pomoc oko zadatka. U program unosimo brojeve npr. 1 5 7 8 12 i posto su brojevi rastuci treba da ispise na ekranu DA a ako je niz opadajuci npr. 9 6 4 3 da ispise NE
Nemam ideju kako da ovo izvedem, pa ako znate da mi pomognete, hitno mi je!
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
91.148.113.*



+7 Profil

icon Re: [Zadatak] Rastuci ili opadajuci niz01.11.2007. u 13:04 - pre 200 meseci
Nesto ovako
Pozdrav
Code:


#include <iostream>
using namespace std;

int main()

{
    int n,m=0,ret=1;
    //unos
    cout << "Koliko niz treba da ima brojeva ? ";
    cin >> n;
    cout << endl;
    if (n<2)
    {
        cout << "Nedovoljno clanova\n";
        return 1;
    }
    long * niz=new long  [n];
    while (m< n)
    {
        cout << endl;
        cout << "Unesite " << m+1 << " clan niza -> ";
        cin >> niz[m];
        m++;
    }
    //provera
    m=1;
    while (m < n)
    {
        if(!(niz[m-1]<niz[m])) {ret = 3;break;}
        m++;
    }
    if (ret !=1)
    {
        m=1;ret=2;
        while (m < n)
        {
            if(!(niz[m-1]>niz[m])) {ret = 3;break;}
            m++;
        }
    }
    //ispis
    m=0;
    cout << "\nNiz ";
    while (m < n)
    {
        cout << niz[m] << " ";
        m++;
    }
    cout << " je ";
    switch (ret)
    {
        case 1:cout << "Rastuci\nOdgovor je DA\n";break;
        case 2:cout << "Opadajuci\nOdgovor je NE\n";break;
        case 3:cout << "Neodredjen\n";
    }
    return 0;
}

 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.tekostolac.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: [Zadatak] Rastuci ili opadajuci niz01.11.2007. u 13:32 - pre 200 meseci
Code:

// ... sam kraj ...
    }
    delete [] niz; // <-- jel' tako ? ;)
    return 0;
}
 
Odgovor na temu

borlland

Član broj: 156303
Poruke: 80
*.bc1.dlp287.bih.net.ba.



+1 Profil

icon Re: [Zadatak] Rastuci ili opadajuci niz01.11.2007. u 13:40 - pre 200 meseci
Hvala ti puno legendo, program radi. Evo i ja sam nesto skucko pa ako mozes da pogledas i da dopunis moje greske.
Tvoj program je za mene malo komplikovaniji ali radi. Da li sam ovo dobro zamislio sa sumom i prosjekom?

Code:

#include <iostream.h>
void main ()
{
    int n;
    double prosjek=0;
    double suma=0;

        cout << "Koliko brojeva zelis unijeti: ";
        cin >> n;

        for (int i=1; i<=n; i++)
        {
            cout << "Unesi broj: ";
            cin >> i;
                suma += i;
        }

        prosjek = double suma % n ;
        if (suma >= prosjek)
            cout << "DA!";
        else
            cout << "NE!";


}


Javlja jednu gresku: "Illegal use floating point in function mani(), linija 18.
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
91.148.115.*



+7 Profil

icon Re: [Zadatak] Rastuci ili opadajuci niz01.11.2007. u 15:26 - pre 200 meseci
Citat:
X Files:
Code:

// ... sam kraj ...
    }
    delete [] niz; // <-- jel' tako ? ;)
    return 0;
}

Da ili delete niz;
Nemam obicaj da brisem memoriju tamo gde ce je operativni sistem ionako sam obrisati.
Isto je i sa destrutorima u klasi.
Brisem jedino globalne promenljive koje ce mozda da se koriste na nekom drugom mestu i koje bi drzale rezervisanu memoriju bez potrebe ...


 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
91.148.115.*



+7 Profil

icon Re: [Zadatak] Rastuci ili opadajuci niz01.11.2007. u 15:52 - pre 200 meseci
@borlland
Ako mislis na sumu svih clanova niza onda ti ovaj program ne racuna to
Mada ne vidim svrhu, zato sto suma nikad nije manja od proseka
ovde se suma uvecava za redni broj mesta (mozda si tako i hteo ?)
Code:

for (int i=1; i<=n; i++)
        {
            cout << "Unesi broj: ";
            cin >> i;          //ovde si i promenio i pokvario petlju . i se koristi 3 reda gore
                suma += i;
        }

Evo ti ispravan kod (ako ti treba da sumu dodajes sa i stavi suma += i; ali ne menjaj cin >> m;)
Code:

#include <iostream.h>
using namespace std;   //stavljaj ovo uvek na pocetku kad koristis STL
int main ()                  // main treba da je int   int main()
{
    int n;
    double prosjek=0;
    double suma=0;
    double m;
    cout << "Koliko brojeva zelis unijeti: ";
    cin >> n;

    for (int i=1; i<=n; i++)
    {
        cout << "Unesi broj: ";
        cin >> m;
        suma += m;
    }

    prosjek = suma / n ;
    cout << "\nSuma je " << suma;
    cout << "\nProsek je " <<  prosjek;
    cout << endl;
    if (suma >= prosjek)
        cout << "DA!";
    else
        cout << "NE!";

    return 0;                            //program treba da vrati 0 ako je regularan izlaz , ako izlazi zbog greske stavi return 1
}




[Ovu poruku je menjao Eurora3D Team dana 01.11.2007. u 17:21 GMT+1]
 
Odgovor na temu

borlland

Član broj: 156303
Poruke: 80
*.bc1.dlp285.bih.net.ba.



+1 Profil

icon Re: [Zadatak] Rastuci ili opadajuci niz01.11.2007. u 16:22 - pre 200 meseci
Pozdrav

Kontam da sam pokuso na pogresan nacin rijesit zadatak, to ono sa sumom i prosjekom, nema veze moze i on posluzit za ucenje.
Pravo rjesenje je ono pravo, samo sto si ti koristio u rjesenju nizove i switcheve koje mi nismo jos radili, a moramo rijesit!

Citat:
Eurora3D Team: Nesto ovako
Pozdrav
Code:


int main()

{
    int n,m=0,ret=1; // ovo ret=1
    //unos
    cout << "Koliko niz treba .....
}


Code:


long * niz=new long  [n];
....


Code:

//provera
    m=1;
    while (m < n)
    {
        if(!(niz[m-1]<niz[m])) {ret = 3;break;} // ovo 
        m++;
     }
    if (ret !=1)
    {
        m=1;ret=2;
        while (m < n)
        {
            if(!(niz[m-1]>niz[m])) {ret = 3;break;} // ovo 
            m++;
        }
    }




Ako ti nije frka da malo isjecke iskomentiras? Hvala tebi u svakom slucaju.
using namespace std;ne stavljam sto mi prijavljuje gresku, koristim Borland 4.5 kompajler
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
91.148.115.*



+7 Profil

icon Re: [Zadatak] Rastuci ili opadajuci niz01.11.2007. u 17:05 - pre 200 meseci
@borlland
Ok za using namespace
Ja imam Mingw i MS VC++
Dodao sam ti nekoliko komentara
Code:

#include <iostream>
using namespace std;

int main()

{
    int n,m=0,ret=1; //n je koliko brojeva nam treba , m je brojac, ret ce da drzi vrednost sta je niz 1==Rastuci 2==Opadajuci i 3== Neodredjen
    //unos
    cout << "Koliko niz treba da ima brojeva ? ";
    cin >> n;
    cout << endl;   // Ovo je unos i prelazimo u novi red
    if (n<2)           // ako hocemo manje od 2 broja nemamo niz i izlazimo
    {
        cout << "Nedovoljno clanova\n";
        return 1;
    }
    long *niz=new long[n]; // ovde alociramo long niz sa n elemenata
    while (m< n) // m je ovde 0
    {
        cout << endl;
        cout << "Unesite " << m+1 << " clan niza -> "; // niz pocinje indexom 0 niz[0] a ispisujemo od 1
        cin >> niz[m];
        m++;
    }
    //provera
    m=1;  // stavljmo m na 1 zbog racunanja m-1. Ovde je ret=1 ... postavljeno je na pocetku
    while (m < n)
    {
        if(!(niz[m-1]<niz[m])) {ret = 3;break;} // prolazimo kroz sve parove 0 i 1 , 1 i 2 ... i ako predhodni nije manji od sledeceg
        m++;                                             // stavljamo ret=3 i izlazimo iz while (znaci nije rastuci) .
    }
    if (ret !=1) // ako nije rastuci proveravamo dali je opadajuci
    {
        m=1;ret=2; // opet m na 1 a ret = 2 da bi ako izadjemo iz petlje ok ret ostalo 2 . Isto vazi i za predhodnu samo je ret = 1
        while (m < n) // najveci clan niza je n-1 niz[n-1] zato sto je pocinje sa niz[0] zato je m < n dobar uslov
        {
            if(!(niz[m-1]>niz[m])) {ret = 3;break;}// isto kao gore samo proveravamo dali je sledeci manji od predhodnog
            m++; // prelazimo na sledeci par
        }
    }
    // Ako su obe petlje izasle pre kraja ret = 3 sto znaci da je niz Neodedjen
    //ispis
    m=0;  // stavljamo m na 0
    cout << "\nNiz ";
    while (m < n)
    {
        cout << niz[m] << " "; // ispisujemo sve clanove niza sa razmakom posle
        m++;
    }
    cout << " je ";
    switch (ret) // swithuje ret i ispisuje odgovor
    {
        case 1:cout << "Rastuci\nOdgovor je DA\n";break;
        case 2:cout << "Opadajuci\nOdgovor je NE\n";break;
        case 3:cout << "Neodredjen\n";
    }
    delete [] niz; // Ovo je sugestija by X Files. (Moze da radi i bez ove linije) . Ova linija brise dinamicki alociran niz ... new long[n]
    return 0; // vracamo 0
}




[Ovu poruku je menjao Eurora3D Team dana 06.11.2007. u 16:12 GMT+1]
 
Odgovor na temu

borlland

Član broj: 156303
Poruke: 80
*.bc1.dlp56.bih.net.ba.



+1 Profil

icon Re: [Zadatak] Rastuci ili opadajuci niz01.11.2007. u 19:14 - pre 200 meseci
Hvala ti care, ziv ti bio i svako dobro. Eee kad cu ja znati kao ti ili X-Files :D, reci mi sta mislis o ovoj knjizi ako je poznajes

Efikasno programiranje na jeziku C++

 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.dynamic.sbb.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: [Zadatak] Rastuci ili opadajuci niz01.11.2007. u 19:27 - pre 200 meseci
Napomenuo bih da C++ stanadard pravi razliku izmedju delete pointer; i delete [] pointer.
Prvo je namenjeno ne-nizovima a drugo za nizove. Drugim rečima, potrebno je uparivati 'delete sa new' i 'delete [] sa new []'.
Npr:
http://msdn2.microsoft.com/en-us/library/h6227113(VS.80).aspx

(nije bitno)
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
91.148.112.*



+7 Profil

icon Re: [Zadatak] Rastuci ili opadajuci niz01.11.2007. u 21:38 - pre 200 meseci
@X Files
Tacno ....
@borlland
Pa pocni da da odgovaras na pitanja ovde na forumu kao mi , pa za jedno 6 meseci ces da vidis koliko si naucio
(meni je programiranje posao ...)
Knjigu nisam citao ....
Inace, c++ je odavno definisan i opisan
Pozdrav



[Ovu poruku je menjao Eurora3D Team dana 01.11.2007. u 23:04 GMT+1]
 
Odgovor na temu

osmania
Panet

Član broj: 26316
Poruke: 773
*.20.11.vie.surfer.at.



+7 Profil

icon Re: [Zadatak] Rastuci ili opadajuci niz05.11.2007. u 22:38 - pre 200 meseci
ovo je bio sudar mozgova mislim respekt...
a pitanje kad cemo mi zanti ko x file i ovaj drugi
pa ono mozda nikada...
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
91.148.112.*



+7 Profil

icon Re: [Zadatak] Rastuci ili opadajuci niz07.11.2007. u 10:44 - pre 200 meseci
Slucajno sam video tvoj komentar @osmania
Ako mislis na "sudar mozgova" kao na neslaganje u razmisljanju izmedju mene i X Files, toga nije bilo.
Covek je dao odlicnu sugestiju za pocetnike (skolski primer) i za ovakve pikanterije uvek pogledajte njegova objasnjenja.
Zato sam tu liniju i dodao u kod (pogledaj zadnji kod).
Ja je nisam stavio zato sto se program zavrsava u sledecem redu gde ce niz (kao i cela virtuelna memorija) biti obrisani od strane operativnog sistema.
Kad se pisu primeri za pocetnike trebalo bi da se obrati paznja na neke takve stvari , da bi ljudi od pocetka sticali dobre navike u programiranju.
Mi to uglavnom ne radimo ...
A sto se programa tice , nije uopste komplikovan (mislim da sam koristio samo 7 klucnih reci c++)
Vise treba obratiti paznju na logiku (kako proveriti dali je niz rastuci)
Pozdrav



 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.tekostolac.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: [Zadatak] Rastuci ili opadajuci niz07.11.2007. u 11:23 - pre 200 meseci
^
Slažem se. Nikakva loša namera ne postoji u primedbama. Pogotovo nema nikakvog potcenjivanja nekoga ili nečega. Pošto su zadaci o kojima je reč pretežno namenjeni u školske svrhe, osećam se prozvanim da ukažem na neke stvari na koje bi profesor/nastavnik/asistent mogli dati primedbu.

Jedan od takvih slučajeva je i 'obaveza' stavljanja int ispred main(), na koju najčešće reagujem. Ja sam oduvek stavljao void main() ili ništa ispred main(), i to će kompajleri prihvatiti. Ipak, najnoviji standard kaže kako treba, i pametno je držati se toga (barem dok ne izađeš iz škole) i stvoriti neke navike, koje mogu imati pozitivnog uticaja na neke kasnije zahvate.

Profesori su raznih naravi i neki te može pitati "koji ti je to jezik u kome programiraš" (ako ne staviš int) ;) ?

(kao što matematičari daju primedbe za neucrtane strelice na XY osi)
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Rastuci ili opadajuci niz

[ Pregleda: 5448 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.