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

problem sa jednim programom

[es] :: C/C++ programiranje :: problem sa jednim programom

[ Pregleda: 2931 | Odgovora: 17 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Ballistic

Član broj: 85078
Poruke: 5
*.dlp271.bih.net.ba.



Profil

icon problem sa jednim programom16.02.2006. u 18:14 - pre 221 meseci
Pozdrav svima na forumu.
Moj program izgleda ovako:

#include <iostream>
#include<conio>
using namespace std;
int main()
{
char text[100];
int oz[100], oz1[100], oz2[100];
int n1 = 0, n2 = 0, n11 = 0, n22 = 0;
bool tacan = true;

cout<<"Unesite relaciju:";
cin.getline(text, 100);

for(int i = 0; i < 100; i++) {
oz1 = 1000;
oz2 = 1000;
}

for(int i = 0; i < 100; i++) {
if(text == '(')
oz = 1;
else if(text == ')')
oz = 2;
else
oz = 0;
}

for(int i = 0; i < 100; i++) {
if(oz == 1) {
n1++;
oz1[n11] = i;
n11++;
}
if(oz == 2) {
n2++;
oz2[n22] = i;
n22++;
}
}
for(int i = 0; i < 100; i++) {
if(oz1 > oz2) {
cout << "\nNemoze biti prva ')' zagrada!";
cout << "\nOna se nalazi na poziciji " << oz2 + 1 << ".";
tacan = false;
}
}

if(n1 != n2)
tacan = false;
if(tacan == false)
cout << "\nZagrade nisu dobro zatvorene!";
if(tacan == true)
cout << "\nZagrade su ispravno zatvorene!";
getch ();

}

Ovaj program provjerava jesu li tacno zatvorene sve zagrade u unesenom izrazu.Naime problem je u tome da on radi samo za male zagrade (,),a mene interesuje koko mogu ubaciti da program radi i za ostale dvije vrste zagrada,tj.da provjerava jesu li i ostale dvije vrste zagrada pravilno zatvorene.

npr:
{12+[45-(2-1)]}-ispravno
[8+(5-8)+{4-1}]-ne ispravno

[Ovu poruku je menjao Ballistic dana 22.02.2006. u 20:18 GMT+1]
 
Odgovor na temu

dimitar 16
Dimitar Misev
Makedonija

Član broj: 31509
Poruke: 134
62.162.20.*

Jabber: dimitarmisev@gmail.com


Profil

icon Re: Provjeravanje da li su u algebarskom izrazu sve zagrade pravilno zatvorene16.02.2006. u 19:27 - pre 221 meseci
http://www.elitesecurity.org/poruka/1034525
 
Odgovor na temu

NrmMyth
Ivan Maček
Split

Član broj: 63456
Poruke: 849
*.cmu.carnet.hr.

Sajt: www.dump.hr


Profil

icon Re: Provjeravanje da li su u algebarskom izrazu sve zagrade pravilno zatvorene16.02.2006. u 20:40 - pre 221 meseci
Stack ili rekurzija.
 
Odgovor na temu

Ballistic

Član broj: 85078
Poruke: 5
*.dlp395.bih.net.ba.



Profil

icon Re: Provjeravanje da li su u algebarskom izrazu sve zagrade pravilno zatvorene16.02.2006. u 20:51 - pre 221 meseci
Stack implementirati pomocu vezane liste


[Ovu poruku je menjao Ballistic dana 16.02.2006. u 21:54 GMT+1]
 
Odgovor na temu

vladab
Vladimir Bašanović
Beograd

Član broj: 9512
Poruke: 498
212.200.117.*



Profil

icon Re: Provjeravanje da li su u algebarskom izrazu sve zagrade pravilno zatvorene16.02.2006. u 21:21 - pre 221 meseci
Citat:
Ballistic: Stack implementirati pomocu vezane liste

Ili pogledati malo sta ima u STL-u! std::stack.

[Ovu poruku je menjao vladab dana 16.02.2006. u 22:24 GMT+1]
 
Odgovor na temu

dimitar 16
Dimitar Misev
Makedonija

Član broj: 31509
Poruke: 134
62.162.20.*

Jabber: dimitarmisev@gmail.com


Profil

icon Re: Provjeravanje da li su u algebarskom izrazu sve zagrade pravilno zatvorene17.02.2006. u 19:32 - pre 221 meseci
Citat:
Ballistic: Stack implementirati pomocu vezane liste

Rekurzija je definitivno najbolje i najelegantno resenje. Zasto da se muci da implementira stack, kad rekurzija to mu daje besplatno :)




[Ovu poruku je menjao dimitar 16 dana 17.02.2006. u 20:34 GMT+1]
 
Odgovor na temu

NrmMyth
Ivan Maček
Split

Član broj: 63456
Poruke: 849
*.cmu.carnet.hr.

Sajt: www.dump.hr


Profil

icon Re: Provjeravanje da li su u algebarskom izrazu sve zagrade pravilno zatvorene17.02.2006. u 19:56 - pre 221 meseci
Zasto bi implementirao stack??
Post gore => STL.
 
Odgovor na temu

dimitar 16
Dimitar Misev
Makedonija

Član broj: 31509
Poruke: 134
62.162.20.*

Jabber: dimitarmisev@gmail.com


Profil

icon Re: Provjeravanje da li su u algebarskom izrazu sve zagrade pravilno zatvorene18.02.2006. u 14:49 - pre 221 meseci
Pa dobro sad, to u slucaj da koristi C.
 
Odgovor na temu

vladab
Vladimir Bašanović
Beograd

Član broj: 9512
Poruke: 498
212.200.116.*



Profil

icon Re: Provjeravanje da li su u algebarskom izrazu sve zagrade pravilno zatvorene19.02.2006. u 09:27 - pre 221 meseci
Citat:
Ballistic: Pozdrav svima na forumu.
Moj program izgleda ovako:

#include <iostream>
#include<conio>
using namespace std;
...
cout<<"Unesite relaciju:";
cin.getline(text, 100);

...

Meni ovo lici na c++ :O)
 
Odgovor na temu

NrmMyth
Ivan Maček
Split

Član broj: 63456
Poruke: 849
*.cmu.carnet.hr.

Sajt: www.dump.hr


Profil

icon Re: Provjeravanje da li su u algebarskom izrazu sve zagrade pravilno zatvorene19.02.2006. u 12:26 - pre 221 meseci
svejedno, covjeka vise nema...
 
Odgovor na temu

Ballistic

Član broj: 85078
Poruke: 5
*.dlp306.bih.net.ba.



Profil

icon Re: Provjeravanje da li su u algebarskom izrazu sve zagrade pravilno zatvorene19.02.2006. u 22:20 - pre 221 meseci
ima,ima
 
Odgovor na temu

NrmMyth
Ivan Maček
Split

Član broj: 63456
Poruke: 849
*.cmu.carnet.hr.

Sajt: www.dump.hr


Profil

icon Re: Provjeravanje da li su u algebarskom izrazu sve zagrade pravilno zatvorene20.02.2006. u 17:06 - pre 221 meseci
pa onda ukljuci se
 
Odgovor na temu

Ballistic

Član broj: 85078
Poruke: 5
*.dlp473.bih.net.ba.



Profil

icon Re: Provjeravanje da li su u algebarskom izrazu sve zagrade pravilno zatvorene20.02.2006. u 17:44 - pre 221 meseci
ukljucen sam
 
Odgovor na temu

Mali Misha
Mihajlo Anđelković
NBGD

Član broj: 79396
Poruke: 379
*.powernet.bg.

ICQ: 195487525
Sajt: cpptea.com


+1 Profil

icon Re: Provjeravanje da li su u algebarskom izrazu sve zagrade pravilno zatvorene20.02.2006. u 19:49 - pre 221 meseci
A zar ne moze da se upotrebi i (unsigned) int niz od samo tri clana?

Code:
#include <iostream>
using namespace std;

bool valid(const char * t)
{
    unsigned int z[3] = {0};

    while(*t)
    {
        switch(*t)
        {
            case '(':
                z[2]++;
                break;

            case ')':
                if(z[2]==0)
                {
                    cout << "Suvisna ')'.\n";
                    return false;
                }

                z[2]--;
                break;


            case '[':
                if(z[2])
                {
                    cout << "Nedozvoljeno otvaranje '['\n";
                    return false;
                }
                z[1]++;
                break;

            case ']':
                if(!z[1])
                {
                    cout << "Suvisna ']'.\n";
                    return false;
                }
                if(z[2])
                {
                    cout << "Nedozvoljeno zatvaranje ']'.\n";
                    return false;
                }
                z[1]--;
                break;


            case '{':
                if(z[2] || z[1])
                {
                    cout << "Nedozvoljeno otvaranje '{'.\n";
                    return false;
                }
                z[0]++;
                break;

            case '}':
                if(!z[0])
                {
                    cout << "Suvisna '}'.\n";
                    return false;
                }
                if(z[1] || z[2])
                {
                    cout << "Nedozvoljeno '}'.\n";
                    return false;
                }
                z[0]--;
        }
        
        t++;
    }

    if(z[0]||z[1]||z[2])
    {
        cout << "Nezatvorene zagrade:" <<  (z[0]?" {":" ") <<
            (z[1]?" [":" ") << (z[2]?" (":"") << '\n';
        return false;
    }

    return true;
}

main()
{
    char text[500];

    cin.getline(text,500);
    
    valid(text);
}

Nisam siguran da li ima rupa, ali to je jedna ideja...
*edit I*: Switch se moze zameniti i sa nekoliko ugnezdjenih for-ova. Tako ce f-ja biti sporija ali kraca.
*edit II*: opis:

( - ok
) - greska ako nisu otvorene (
[ - greska ako su otvorene (
] - greska ako nisu otvorene [ ili ako su otvorene (
{ - greska ako su otvorene ( ili [
} - greska ako nisu otvorene } ili ako su otvorene ( ili [

greska ako nisu zatvorene sve koje su otvorene.

[Ovu poruku je menjao Mali Misha dana 20.02.2006. u 21:04 GMT+1]
Ipak se ++uje.
 
Odgovor na temu

NrmMyth
Ivan Maček
Split

Član broj: 63456
Poruke: 849
*.cmu.carnet.hr.

Sajt: www.dump.hr


Profil

icon Re: Provjeravanje da li su u algebarskom izrazu sve zagrade pravilno zatvorene20.02.2006. u 20:42 - pre 221 meseci
Siguran sam da tvoj greedy algoritam ne radi kako treba.
samo ova crta proizvodi nebuloze
Citat:
[ - greska ako su otvorene (

npr. naredba ( a*3+[3-1]*2 ) je valjana.

Primjedba na:
Citat:
Switch se moze zameniti i sa nekoliko ugnezdjenih for-ova. Tako ce f-ja biti sporija ali kraca.

Iz ovoga se vidi da si pocetnik. Sjecam se svojih prvih koraka i teznjom sa sto vise optimiziram do granica normalnog.
No ovo je greska, jer nitko, ema bas nitko nece osjetiti tu razliku izmedju fora i switcha, a for ce ti povecati preglednost... iako algoritam ne funcionira.

Prijedlog:
Igraj se sa sto vise sa natjecateljskom informatikom, odnosno zadatcima, jer ce ti bas oni pomoci da razvijes osjecaj za takve vrste optimizacija, a da ne govorim o vrijednom znanju. Govorim iz iskustva.

Poz.
 
Odgovor na temu

Mali Misha
Mihajlo Anđelković
NBGD

Član broj: 79396
Poruke: 379
*.powernet.bg.

ICQ: 195487525
Sajt: cpptea.com


+1 Profil

icon Re: Provjeravanje da li su u algebarskom izrazu sve zagrade pravilno zatvorene20.02.2006. u 21:41 - pre 221 meseci
Citat:
npr. naredba ( a*3+[3-1]*2 ) je valjana.

Ma daj, molim te... priseti se prioriteta a vidi i primer u prvom postu teme.

Citat:
Iz ovoga se vidi da si pocetnik. Sjecam se svojih prvih koraka i teznjom sa sto vise optimiziram do granica normalnog.

Interesantan stereotip *pocetnika*. :p Bilo kako bilo, na mestu je bilo da spomenem alternative i razlike u njihovom ponasanju. Uzgred, *preglednost* (relativnog li pojma) ne znaci i *kratkoca*. Obrati paznju na reci koriscene u prethodna dva posta.

[Ovu poruku je menjao Mali Misha dana 20.02.2006. u 23:43 GMT+1]
Ipak se ++uje.
 
Odgovor na temu

dimitar 16
Dimitar Misev
Makedonija

Član broj: 31509
Poruke: 134
62.162.20.*

Jabber: dimitarmisev@gmail.com


Profil

icon Re: Provjeravanje da li su u algebarskom izrazu sve zagrade pravilno zatvorene20.02.2006. u 21:52 - pre 221 meseci
Citat:
Ma daj, molim te... priseti se prioriteta a vidi i primer u prvom postu teme.

Heh, i ja uopste nisam pomislio na prioriteta, tek sad sam video primer :)
 
Odgovor na temu

NrmMyth
Ivan Maček
Split

Član broj: 63456
Poruke: 849
*.cmu.carnet.hr.

Sajt: www.dump.hr


Profil

icon Re: Provjeravanje da li su u algebarskom izrazu sve zagrade pravilno zatvorene21.02.2006. u 14:06 - pre 221 meseci
Moj grijeh!
 
Odgovor na temu

[es] :: C/C++ programiranje :: problem sa jednim programom

[ Pregleda: 2931 | Odgovora: 17 ] > FB > Twit

Postavi temu Odgovori

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