» »

prog. za izjavni račun(c++)...

prog. za izjavni račun(c++)...

Tloramus ::

Živ!

Rad bi naredu en simpl program za izjavni račun, pa vas zato, ker nimam kaj dosti pojma o stvari prosim za help.
Program naj bi zgledal nekako takole:
-najprej te vpraša s katero vrsto sestavljenih izjav hočeš operirati(to znam..)
-potem te vrže v ustrezno funkcijo(to tud)
-napišeš dve izjavi, program pa testira pravilnost... tukaj pa se mi je zataknilo. Za vnos izjav uporabljam cin.getline(ime, ...), ne vem pa kako stestirat če izjavi držita.
Se pravi:

if(izjava1 == true && izjava2 == true)
{
cout << "izjava je pravilna..";
}
else
....


Če vam ni jasno, kaj mislim please vprašajte.

  • spremenil: Tloramus ()

Thomas ::

Izjava v splošnem drži odvisno od vrednosti spremenljivk, ki se v njej pojavljajo.

Dovolj je, če jih preizkusiš za vrednosti 0 in 1. V vseh možnih kombinacijah.

Primer:

A AND (-A OR B OR C)

for A=0 to 1
for B=0 to 1
for C=0 to 1
___If A + ((1-A) + B + C) > 0 then incr T else INCR F
Next
Next
Next

Print True,T,,False,F

:)
Man muss immer generalisieren - Carl Jacobi

Tloramus ::

Ja, to že, samo jest ne vem kako direkt v c++ preveriš ali input drži ali ne. Recimo maš eno spremenljivko(recimo blabla), vanjo vpišeš 1+1=2 in jo testiraš. Ampak kako jo testiraš? Z blabla == true, al z blabla eq true, al jo daš samo v oklepaj if(blabla)... ??:O

Thomas ::

Program moraš napisat.

Imajo pa nekateri basici funkcijo VAL$. Ta izračuna vrednost izjave.

:)
Man muss immer generalisieren - Carl Jacobi

cyer^3d ::

Tloramus:

Ce te prav razumem tebe zanima, kako bi iz nekega inputa (v tvojem primeru log. izjave) naredil neke operacije in tako prisel do resitve.

Za te primere moras napisati parser, ki poteka tako, da iz danega inputa najprej zgradis binarno drevo, nato pa se sprehodis skozi njega rekurzivno in z njim operiras kakorkoli ze hoces.

Npr. podobne naloge so tudi tipa, da je input(niz znakov) recimo "((50+23)*34-33+22)*44/233" ...

Najbolje je, da si sposodis kaksno knjigo o algoritmih ali pa malo posurfas, keywords: binary tree

Stvar zajema tako binarna drevesa kot rekurzijo, kar ti bo kot zacetniku morda povzrocalo nemalo tezav...ampak se ti splaca nauciti:)

virtual_reality ::

Predlagam da si pogledas GSL - The GNU Scientific Library:

Complex Numbers Roots of Polynomials Special Functions
Vectors and Matrices Permutations Sorting
BLAS Support Linear Algebra Eigensystems
Fast Fourier Transforms Quadrature Random Numbers
Quasi-Random Sequences Random Distributions Statistics
Histograms N-Tuples Monte Carlo Integration
Simulated Annealing Differential Equations Interpolation
Numerical Differentiation Chebyshev Approximation Series Acceleration
Discrete Hankel Transforms Root-Finding Minimization
Least-Squares Fitting Physical Constants IEEE Floating-Point

lp
"C makes it easy to shoot yourself in the foot. C++ makes it harder, but when you do, it blows away your whole leg."

Tloramus ::

Thank you!:))

Thomas ::

Jest bi se lotil takole - nekaterim v zabavo, drugim v zgražanje, tretjim pa naj bo za nasvet - takole:

Nredil bi vse WFF - (well formed furmulae) do dolžine 10 znakov v C++.

Kako vem, če je WFF?

Saj ne vem. Naredil bi kar vse možne iz znakov "xyz,{}&|...".

Na (RAM disku) bi jih kompiliral in tiste uspešno skompilirane pisal v fajl.

Potem bi pa preizkusil vrednost vsake WWF za vse vrednosti parametrov.

Dobil bi orjaško matriko iz 0 in 1. Na presečišču binarnega inputa in indeksa WWF bi pač stala 0 ali 1.

Množico (vektor) vseh Goedeliziranih WFFjev in matriko bi potem imel za vselej naprej.

Tko. :D

Man muss immer generalisieren - Carl Jacobi


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[C] Zakaj točno "printf(getchar() != EOF);" ne dela in zakaj potrebujem "%d"

Oddelek: Programiranje
5709 (473) lebdim
»

[C++] Naloge

Oddelek: Programiranje
273810 (2141) LordiBoy
»

java pomoč

Oddelek: Programiranje
211822 (1214) kr?en
»

excel+visual basic

Oddelek: Pomoč in nasveti
101455 (1342) švrk
»

Iskanje naslednje ponovitve - najboljši algoritem (strani: 1 2 )

Oddelek: Programiranje
724217 (3275) Thomas

Več podobnih tem