Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 6 odgovora
  • 3.414 pregleda

Najnovija ↓

Poredjenje stringova karaktera sa zadatim 07.12.2012. u 00:49 · pre 169 meseci #1
Jel moze neko da mi napise kako bi se ovako nesto moglo porediti. Znaci korisnik napise nesto tipa ovako

((a/b)V(a-c)V(b*g))=>(((a-c-b)v(a+u+o*g))=>((a/b)V(a-c)V(b*g)))

a recimo zadato mu je da pronadje dal je to isto sto i

A=>(B=>A)


i sad on treba da proveri tj da nadje => pa dal je iza njega zagrada pa onda dal se nalazi izmedju te druge zagrade i => isto sto i ispred prvog //tj u ovom slucaju((a/b)V(a-c)V(b*g)) // pa dal je iza njega => i na kraju da proveri da li su sve zagrade koje su otvorene i zatvorene pa onda.... Al ako bi mi moga neko ova prva tri slucaja objasniti bio bih mu veoma zahvalan :).

Sviđa mi se1
Re: Poredjenje stringova karaktera sa zadatim 07.12.2012. u 11:06 · pre 169 meseci #3
Ovde je najmanji problem rad sa stringovima.

Ono što tebi treba (ako sam dobro shvatio) je da utvrdiš da li su dva logička izraza ekvivalentna (daju iste rezultate za iste vrednosti promenljivih).
Tu postoji više pristupa.

1. Možeš da izparsiraš obe formule, napraviš dva drveta izraza i identifikuješ promenljive.
Za svaku moguću kombinaciju promenljivih izračunaš rezultat oba izraza.
Ako je za svaku kombinaciju rezultat isti, onda su izrazi ekvivalentni.

2. Isto kao pod 1, stim da koristiš neku gotovu parser-evaluator biblioteku.

3. Izparsiraš obe formule, napraviš dva drveta izraza.
Oba drveta izraza pretvoriš u neku normalnu logicku formu (KDNF http://en.wikipedia.org/wiki/Disjunctive_normal_form).
Ako su oba KDNF drveta ista, onda su i izrazi isti.

Sve u svemu, problem uopšte nije prost i više se dotiče matematičke logike i ostalih stvari nego C++ ili stringova.
Sigurno da ima i drugih a verovatno i boljih pristupa, pa neka se javi neko ko zna bolje, ovo ti je onako na prvu loptu.

Tema je više za forume tipa matematika-kompajleri-parseri i slično pa ako neko može neka je premesti.

Pozdrav!
Re: Poredjenje stringova karaktera sa zadatim 07.12.2012. u 12:56 · pre 169 meseci #4
Citat:
Mihajlo Cvetanović:
Nigde se ne spominju reči kompjuter ili program. Šta zapravo želiš?


Da program mi treba koji bi to radio. Za sad na pocetku da se u njega vec unesu ove tri aksiome i one se ne mogu menjati nikad znaci samo za te tri da se proveri i da ako pripada napise pripada ako ne napise ne pripada bez ikog daljeg rada.

A=>(B=>A)
(A=>(B=>C))=>((A=>B)=>(A=>C))
(¬B => ¬A)=>(A=>B)


Da trebam ako su uneti iskazi tacni ( znaci za njih nema nikakve provere) da utvrdim dal pripada jednom od ove prethodno navedene tri aksiome. E sad malo sam pricao sa prof i on mi je rekao na ovaj nacin kao sto je gore da resim. Mislim tako sam ga ja razume makar. Spominjao je i preko drveta al mi se cini da je rekao da to ako bi se menjale a posto su aksiome zadate bez mogucnosti promene da je dosta samo sa stringovima
Re: Poredjenje stringova karaktera sa zadatim 07.12.2012. u 16:58 · pre 169 meseci #5
Mislim da znam koji je profesor na kom fakultetu u pitanju. Pozdravi ga od mene.

Evo ti u prilogu nečega otprilike, pa priloagodi. Implikacija je ">", negacija "-" i ne pije ove ostale kuke i motike. Za to treba da proširiš funkciju readSubformula().
Potpis
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
Re: Poredjenje stringova karaktera sa zadatim 07.12.2012. u 19:52 · pre 169 meseci #6
@dusans

Nisi razumeo problem. Ne traži se ekvivalencija formula, nego da se ispita da li je formula određenog oblika.

Recimo, za

A\,:\,(p\Rightarrow(p\Rightarrow q)),
B\,:\,(r\Rightarrow\lnot p)

se A\Rightarrow(B\Rightarrow A) svodi na

(*) (p\Rightarrow(p\Rightarrow q))\Rightarrow((r\Rightarrow\lnot p)\Rightarrow(p\Rightarrow(p\Rightarrow q))),

tj. (*) je formula oblika A\Rightarrow(B\Rightarrow A).

Njemu treba program koji ispituje da li je uneta formula jednog od navedena tri oblika.
Potpis
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
Re: Poredjenje stringova karaktera sa zadatim 18.12.2012. u 21:47 · pre 168 meseci #7
Ljudi jel moze mala pomoc znaci odradio sam program tj doradio ga malo i sad sljaka ko zmaj. E sad razmisljao sam da ga ubacim u c++ builder ovaj borlandov. E sad nemam pojma kako se radi sa njim tj znao sam nekad tacnije pre 4 godine al sam sve pozabroavljao a nije mi tu sveska da se podsetim pa ako bi mi neko samo mogao napisati koji deo koda gde treba ici i kako da napisem da radi ( ono tipa za ispis texta u edit preko dugmeta ide na dugme kucam kod za ispis Edit1->text = "sassdadaa";. Hvala unapred na pomoci



// ... proces za odredjivanje tj [/code]ovaj fajl clana @Nedeljko ... //

int main()
{
std::string line;

while(std::getline(std::cin, line))
{
if( line == "exit" )
break;

Parser parser(line);

std::cout << std::boolalpha;

std::cout << parser.axiom1() << "\n";
std::cout << parser.axiom2() << "\n";
std::cout << parser.axiom3() << "\n";
}

return 0;
}[/code]
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme