Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: Siruri de caractere-Backtracking  (Citit de 2999 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
EDDYZY
Strain


Karma: -1
Deconectat Deconectat

Mesaje: 4



Vezi Profilul
« : Iulie 19, 2013, 14:00:14 »

Salut,
alta problema de backtracking



Scriet¸i un program C/C++ care cite¸ste din fi¸sierul standard de intrare (tastatura)
¸siruri de caractere de forma cuvˆant#tip, unde cuvˆant este un ¸sir oarecare de litere
iar tip poate fi una din literele S,P sau C, semnificat¸ia fiind subiect, predicat sau
complement. Aplicat¸ia va afi¸sa pe ecran toate propozit¸iile avˆand structura subiect
predicat complement ce pot fi formate cu ajutorul cuvintelor citite. Datele de intrare
se consider˘a a fi corecte.
Exemplu: dac˘a la intrare s-au introdus ¸sirurile: Ion#S Vasile#S alearga#P
repede#C scrie#P, atunci pe ecran se va afi¸sa: Ion scrie repede, Ion alearga
repede, Vasile scrie repede, Vasile alearga repede


deci se rezolva cu backtracking gen permutari S1P1C1,S1P2C1, etc

Dar cum reusesc sa memorez sirurile si sa le introduc in backtracking??
Memorat
AlexandruValeanu
Vorbaret
****

Karma: 29
Deconectat Deconectat

Mesaje: 167



Vezi Profilul
« Răspunde #1 : Iulie 19, 2013, 18:21:17 »

Problema nu se rezolva cu permutari ci cu produs cartezian. Tu ai 3 multimi: S-multimea subiectelor, P-multimea predicatelor si C-multimea complementelor. Tu trebuie sa generezi toate triplele de forma (a,b,c) cu a apartine S, b apartine P si c apartine C.
Acum, cum faci back-ul? Ceva de genu:

Cod:
back(nivel)
{
if(nivel==4) //am pus si subiect si predicat si complement
afisare();
else
{
for ( int i = 1; i <= M[ nivel ][ 0 ]; i++ ) //M[nivel][0] = cardinalul multimii M[nivel], multime in care stochezi cele 3 multimi S,P,C; ai un masiv 3-dimensional unde stochezi sirurile
{
st[ nivel ] = M[ nivel ][ i ];
back(nivel+1);
}
}
}

Daca nu iti iese sau ai nevoie de ajutor la ceva...sa-mi spui. Bafta!
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines