Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C] Notacja polska - sposób

Ostatnio zmodyfikowano 2012-11-08 13:01
Autor Wiadomość
wisien92
Temat założony przez niniejszego użytkownika
[C] Notacja polska - sposób
» 2012-11-06 16:24:06
Witam mam takie zadanie:

Prosze napisac program obliczajacy formuly notacji polskiej (NP). Dokładne wyjaśnienie mozna znalezc w Wiki. Dzialania sa calkowitoliczbowe. Zmienne i wyniki mieszcza sie w int.

W pierwszej linii podano liczbe zestawow testowych. W kazdej kolejnej linii podana jest jedna formula w NP bez nawiasow.

Chciałem to zrobić w następujący sposób:
1.wczytujemy stringiem wzór
2.we wzorze szukam kiedy są 2 liczby obok siebie (za pomoca kodu ascii)
3.jak znalazlem to sprawdzam znak przed 1sza liczba i obliczam
4.wynik wpisuje w miesce znaku , zuzyte liczby usuwam i calosc przesuwam
5.jezeli nie koniec powtarzam az bedzie koniec

na kartce to dziala :) tylko pytanie czy nie zuzyje to za duzo pamieci ? ew. czy macie jakis prostrzy pomysl na rozwiazanie problemu


przyklad:

- + / / / 6 5 + 7 8 + - 5 2 * 6 9 3 3

ma wyjsc 0

moją metodą
1.- + / / 1 + 7 8 + - 5 2 * 6 9 3 3
2.- + / / 1 15 + - 5 2 * 6 9 3 3
3.- + / 0 + - 5 2 * 6 9 3 3
4.- + / 0 + 3 * 6 9 3 3
5.- + / 0 + 3 54 3 3
6.- + / 0 57 3 3
7.- + 0 3 3
8.- 3 3
9.0


pozdrawiam
P-68618
DejaVu
» 2012-11-06 16:28:48
Wydaje mi się, że są na to gotowe algorytmy...

Frazy, które należy wpisać w wyszukiwarkę google:
P-68621
wisien92
Temat założony przez niniejszego użytkownika
» 2012-11-06 16:36:28
no właśnie NP i ONP sie zapisuje odwrotnie
ONP  2 3 + 5 *
NP * 5 + 3 2

czyli stosu wydaje mi sie nie trzeba a raczej rekurencyjnie to rozwiązać ... chyba, że czegoś nie dotrzegam
P-68622
crash
» 2012-11-06 16:37:17
Dobrze Ci się wydaje DejaVu@ :)

Osobiście korzystałem (ale tylko jako wzór): http://edu.i-lo.tarnow.pl/inf/utils/010_2010/0410.php

Wszystko jest w Googlach.
P-68624
m4tx
» 2012-11-06 16:51:20
Dobrze Ci się wydaje DejaVu@ :)

Osobiście korzystałem (ale tylko jako wzór): http://edu.i-lo.tarnow.pl/inf/utils/010_2010/0410.php

Wszystko jest w Googlach.
Taa... Tylko że podajesz link do ONP, a autorowi chodzi o NP. To jest jednak różnica :)
P-68629
crash
» 2012-11-06 17:07:35
Zobaczyłem to właśnie kilkanaście sekund za późno. Nie mam nic na swoje usprawiedliwienie ;]

Hmm, a gdyby tak wejście czytać od tylca? Albo sobie wynik ONP odwrócić... Tylko kurka nie tędy droga chyba ;p </offtop>
P-68630
wisien92
Temat założony przez niniejszego użytkownika
» 2012-11-06 17:25:16
chciałem narazie dla dowolnego stringa sprawdzic czy sa 2 liczby obok siebie ...

(dodatkowe pytanie(:)) -czy atoi nie powinno zmieniac tego stringa na kod ascii?)

C/C++
char tab[ 10 ];

scanf( "%s", tab );
atoi( tab );
for( n = 0; n >= 10; n++ )
{
    if( tab[ n ] <= 57 && tab[ n ] >= 48 && tab[ n + 1 ] <= 57 && tab[ n + 1 ] >= 48 )
         printf( "sa 2 liczby obok siebie" );
   
    else
         printf( "nie ma 2ch liczb obok sie bie" );
   
}
P-68632
DejaVu
» 2012-11-06 18:08:37
Frazy, które należy wpisać w wyszukiwarkę google:

http://en.wikipedia.org/wiki/Polish_notation
P-68633
« 1 » 2
  Strona 1 z 2 Następna strona