際際滷

際際滷Share a Scribd company logo
Backtracking                             Clasa X
Manualul profesorului




Software educa釘ional realizat de:   Profesori coordonatori:
Adrian  Gabriel Di釘                       Corina Achinca
erban Nistor                             Cecilia Blnescu
                                            Rodica Cherciu
Cuprins


1. Terminologie  Prezentarea elementelor software
2. Informa釘ii generale despre tema prezentat
3. Obiective
4. Structura general
  4.1.    Con釘inut
  4.2.    Recomandri de structurare i predare
5. Structura detaliat
  5.1.    Joc  Problema damelor
  5.2.    Exemplu practic: aranjarea mobilei 樽ntr-o cas
  5.3.    Opera釘ii pe stiv
  5.4.    Exemplificarea lucrului pe stiv
  5.5.    Prezentarea ablonului de func釘ii i proceduri
  5.6.    Generarea permutrilor
  5.7.    Problema generrii aranjamentelor
  5.8.    Problema damelor
  5.9.    Joc  Problema comis-voiajorului
  5.10.   Problema comis-voiajorului  rezolvare iterativ
  5.11.   Problema comis-voiajorului  rezolvare recursiv
  5.12.   Problema comis-voiajorului  implementare
  5.13.   Joc  Problema labirintului
  5.14.   Problema labirintului  rezolvare iterativ
  5.15.   Problema labirintului  implementare
6. Teste de evaluare
  6.1.    Testul   1
  6.2.    Testul   2
  6.3.    Testul   3
  6.4.    Testul   4
7. Teme pentru acas
  7.1.    Tema     1
  7.2.    Tema     2
  7.3.    Tema     3
  7.4.    Tema     4
8. Bibliografie
1. Terminologie
       Obiect de con釘inut
       Un fiier independent care prezint informa釘ii grupate din punct de vedere
tematic, ce nu pot fi prezentate separat. Poate fi format din mai multe pagini de
con釘inut. n cadrul acestui ghid vom folosi i no釘iunea de component atunci
c但nd vom face referire la un obiect de con釘inut.


       Butoane start anima釘ie/trecere la pasul urmtor
       Sunt amplasate 樽n cadrul anima釘iilor i al aplica釘iilor care con釘in mai mul釘i
pai. Prin apasarea acestui buton 樽ncepe rularea anima釘iei sau respectiv se trece
la pasul urmtor al anima釘iei. Dup apsare, acest buton se transform 樽n buton
de pauz, care, odat accesat 樽ntrerupe pentru moment anima釘ia la cadrul
curent.

        Texte de reper  sunt link-uri prezente 樽n text, eviden釘iate printr-o culoare
specific a cuvantului, care atunci c但nd sunt accesate, ofer informa釘ii
suplimentare ce detaliaz no釘iunile respective.


       Butoane teorie
       Accesarea lor prezint pas cu pas, 樽ntr-o fereastr de detaliu, no釘iunile
teoretice legate de lec釘ie, pe care cine dorete le poate revedea pentru a
parcurge interactiv cerin釘ele urmtoare ale lec釘iei.


       Butoane de detaliere
       Ofer informa釘ii suplimentare despre o anumit no釘iune sau prezint mai
樽n detaliu con釘inutul unei pr釘i din lec釘ie, pentru cei care simt nevoia s aib mai
multe explica釘ii.


       Butoane de revenire
       Sunt amplasate 樽n partea de jos a ecranului. Prin apsarea acestui buton
se reia anima釘ia de la 樽nceput, pentru a o studia mai bine.


       Butoane de obiective
       Sunt amplasate 樽n partea de jos a ecranului i ofer utilizatorului 樽ntr-o
fereastr de detaliu, obiectivele parcurgerii materialului din modulul respectiv.
Butoane de defilare pe text
         Prin apsarea acestor butoane, textul se deruleaz 樽n sensul sge釘ii.


       Butoane de start
       Prin accesarea acestui buton se 樽ncepe cronometrarea timpului 樽n care
elevul rezolv o anumit cerin釘.


         Butoane de resetare
         Se folosesc pentru re樽nceperea jocului 樽n cazul 樽n care elevul solicit acest
lucru.


      Butoane de help
      Ofer elevului detalii asupra modului 樽n care trebuie s rezolve interactiv
anumite cerin釘e.

      Butoane de verificare
      Sunt utilizate 樽n cadrul unor probeleme care se rezolv interactiv. n
aceast situa釘ie elevul solicit calculatorului s-i verifice corectitudinea solu釘iei.


      Butoane de vitez
      Prin accesarea acestor butoane se stabilete viteza de derulare a
anima釘iilor in func釘ie de capacitatea de 樽n釘elegere a elevului.

      Ferestre de detaliu
      Ofer informa釘ii suplimentare sau detalii despre un anumit element
(termen, concept, imagine, algoritm)
      Se 樽nt但lnesc ferestre de tipul:
       - urmrirea etapelor execu釘iei unui algoritm elaborat 樽n cadrul lec釘iei
       - indica釘ii asupra modului 樽n care trebuie rezolvate anumite cerin釘e
       - fereastra Teorie  care descrie amnun釘it baza teoretic necesar
          pentru rezolvarea problemelor supuse aten釘iei elevului.
-   fereastra Enun釘  red enun釘ul problemei 樽n timpul rezolvrii
    acesteia, dac elevul solicit
-   ferestre Ajutor  dau indica釘ii suplimentare asupra modului interactiv
    de completare a ferestrelor de dialog
-   ferestre de dialog  apar 樽n cazul 樽n care se solicit elevului s
    completeze interactiv procedurile i func釘iile specifice metodei
    backtracking pentru o problem dat




-   ferestre de stabilire a parametrilor pentru anima釘ie  se utilizeaz
    pentru a personaliza simularea modului de execu釘ie a algoritmului 樽n
    func釘ie de posibilit釘ile i caracteristicile psiho-individuale ale elevului
2. Informa釘ii generale despre tema
prezentat
       Produsul multimedia realizat ofer o perspectiv coerent, unitar i
constructiv asupra cunoaterii, utilizrii i implementrii tehnicii de programare
backtracking.
       n cadrul acestei teme abordate  backtracking  au fost puse 樽n eviden釘
urmtoarele aspecte:
 - definirea tehnicii de programare backtracking, cu accent pe problemele care
    pot fi rezolvate prin aceast metod;
 - prezentarea principalelor proceduri specifice metodei backtracking i
    aplicarea acestora 樽n probleme concrete;
 - formarea abilit釘ilor de construire a algoritmului backtracking utiliz但nd
    metode activ-participative de tip joc.

       Cuvinte cheie la aceast tem sunt: func釘ii, proceduri, stiv, list,
algoritm, limbaj pseudocod/limbaj de programare, recursivitate, matrice de
adiacen釘.
       Materialul are o structur modularizat care permite folosirea 樽n mai multe
variante a intrumentelor puse la dispozi釘ie.
       Sunt puse la dispozi釘ia elevului at但t module de teorie referitoare la tehnica
de programare backtracking, c但t i momente de evaluare pentru realizarea unui
feedback permanent, colectiv i care s pun 樽n lumin progresul 樽nregistrat de
elevi.
       Fiecare lec釘ie con釘ine o tem pe care elevii trebuie s o elaboreze acas
sau 樽n timpul orelor de laborator.
3. Obiective
Obiectiv                                     Detaliere
                                Obiective de referin釘
  R1       Utilizarea corect a no釘iunilor informatice, a vocabularului informatic
           aferent i a elementelor specifice limbajului pseudocod.
  R2       Prelucrarea datelor de tip calitativ i cantitativ cuprinse 樽n algoritmii
           elabora釘i.
  R3       Utilizarea corect a algoritmilor i a ra釘ionamentelor 樽n rezolvarea unor
           probleme cu grade de dificultate diferite.
  R4       Elaborarea etapelor de realizare a unei aplica釘ii 樽n urma analizei
           acesteia.
  R5       Exprimarea i redactarea corect a algoritmului 樽n limbaj pseudocod sau
           limbaj de programare Pascal/C++.
                               Obiective opera釘ionale
  OP1      S recunoasc tipurile de probleme care se rezolv prin tehnica
           backtracking.
  OP2      S identifice principiul de func釘ionare i s recunoasc pr釘ile esen釘iale
           ale algoritmului: func釘ii i proceduri.
  OP3      S rearanjeze func釘iile i procedurile pentru problema damelor.
  OP4      S interpreteze i s stabileasc valorile variabilelor utilizate 樽n algoritm,
           c但nd se dau valorile datelor de intrare, pentru o problem care se
           rezolv prin tehnica backtracking.
  OP5      S identifice i s recunoasc tehnica de programare backtracking
           pentru o problem dat (problema comis-voiajorului i problema
           labirintului).
  OP6      S-i aminteasc procedurile de baz ale tehnicii backtracking  forma
           standard (nerecursiv).
  OP7      S construiasc func釘iile i procedurile de baz ale tehnicii backtracking
           i s creeze programul principal corespunztor care le apeleaz.
  OP8      S modifice algoritmul creat utiliz但nd backtracking recursiv i s deduc
           principalele schimbri care se impun prin 樽mbinarea celor dou tehnici
           de programare (backtracking  recursiv).
  OP9      Fiind date valorile de intrare s in釘eleag modul de execu釘ie al
           algoritmului construit prin backtracking recursiv.
 OP10      S compare cele dou forme backtracking (recursiv  nerecursiv) din
           punct de vedere al eficien釘ei.
 OP11      S aplice no釘iunile 樽nv釘ate la tehnica backtracking 樽n plan, 樽n problema
           labirintului 樽n care trebuie s disting caracteristicile i principalele
           modificri din func釘iile i procedurile standard.
 OP12      Fiind date valorile de intrare 樽n problema labirintului s 樽n釘eleag modul
           de execu釘ie al algoritmului construit.
OP13   S interpreteze i s stabileasc valorile variabilelor utilizate 樽n algoritm,
       c但nd se dau valorile datelor de intrare, pentru problema labirintului.
4. Structura general
       4.1. Con釘inut
      Se prezint lista obiectelor de con釘inut (notate cu M) i caracteristicile lor
generale.

M1  Joc  Problema damelor
Obiective didactice OP1, OP2
       Timp          10 minute
Tip de interac釘iune exerci釘iu, problematizare, descoperire
     cu elevul
     Descriere       - prin acest joc elevul este pus 樽n fa釘a unei probleme cu date
                        concrete care-l determin s caute (s cerceteze) condi釘iile
                        樽n care se pot aeza patru dame pe tabla de sah.

M2  Exeplul practic: aranjarea mobilei intr-o casa
Obiective didactice OP1, OP2
       Timp            5 minute
Tip de interac釘iune expunerea, observarea, descrierea
     cu elevul
     Descriere          - este prezentat 樽ntr-o form atractiv  captivant
                          modalitatea de aezare a mobilei 樽ntr-o cas;
                        - anima釘ia realizat, observat cu aten釘ie, conduce la ideea
                          de metod backtracking: aezi mobila 樽n cas 樽n toate
                          modurile posibile i o alegi pe cea care-釘i place mai mult.

M3  Opera釘ii pe stiv
Obiective didactice OP2
       Timp            5 minute
Tip de interac釘iune expunerea, observarea, problematizarea, modelarea i
     cu elevul         simularea
     Descriere          - se definete stiva i principalele operatii care se fac pe
                           stiv;
                        - prin anima釘ia atractiv i sugestiv (vraf de farfurii) elevul
                           樽n釘elege mai bine mecanismul stivei (Last In  First Out):
                           pentru a extrage o farfurie trebuie s le scoatem pe cele
                           situate deasupra, iar pentru a pune o farfurie, trebuie s o
                           aezm totdeauna deasupra celorlalte.
M4  Exemplificarea lucrului pe stiv
Obiective didactice OP2, OP4
       Timp           5 minute
Tip de interac釘iune observarea, problematizarea, modelarea i simularea
     cu elevul
     Descriere         - apel但nd acest modul, elevul 樽nva釘 modul de gestionare a
                         unei stive. Printr-o anima釘ie tridimensional, elevul afl:
                       - cum se elimin un element din stiv;
                       - cum se adaug un element 樽n stiv;
                       - cum se modifica un element 樽n stiv.

M5  Prezentarea ablonului de func釘ii i proceduri
Obiective didactice OP1, OP2
       Timp          10 minute
Tip de interac釘iune explica釘ia, modelarea, problematizarea
     cu elevul
     Descriere       - 樽n acest modul sunt prezentate func釘iile i procedurile
                        standard ale tehnicii de programare backracking.

M6  Generarea permutrilor
Obiective didactice OP2, OP2, OP3
       Timp         25 minute
Tip de interac釘iune observa釘ia, problematizarea, modelarea i simularea
     cu elevul
     Descriere       - modulul pune 樽n eviden釘 o succesiune de opera釘ii mintale
                        care conduc elevul spre 樽n釘elegerea clar a mecanismului
                        backtracking;
                     - permutrile de trei elemente (fiind reprezentate aici de trei
                        melodii) sunt generate pas cu pas, 樽n ritmul de 樽n釘elegere i
                        cu respectarea stilului cognitiv, a particularita釘ilor psiho-
                        individuale ale fiecrui elev.
M7  Problema generrii aranjamentelor de trei elemente luate c但te dou
Obiective didactice OP2, OP3, OP4
       Timp         10 minute
Tip de interac釘iune explica釘ia, exerci釘iul, problematizarea, modelarea i simularea
     cu elevul
     Descriere       - modulul con釘ine un joc prin care elevul este invitat s
                         construiasc aranjamentele de trei elemente luate c但te
                         dou.
                     - printr-o participare activ, elevul, aflat permanent 樽n
                         interac釘iune cu calculatorul, este condus spre construirea
                         aranjamentelor av但nd la dispozi釘ie stiva i cele patru cifre:
                         0 (ini釘ializare stiv), 1, 2 i 3 pentru construirea
                         aranjamentelor corespunztoare.

M8  Problema damelor
Obiective didactice OP2, OP3, OP4
       Timp         15 minute
Tip de interac釘iune problematizare, descoperire, exerci釘iu, modelare i simulare
     cu elevul
     Descriere       - prezentarea problemei damelor;
                     - explicarea modalit釘ii de rezolvare a acestei probleme prin
                        tehnica backtracking;
                     - elevul are ca sarcin de lucru s aeze 樽n ordine secven釘ele
                        de opera釘ii specifice fiecrei proceduri sau func釘ii;
                     - dup aceast interac釘iune a elevului cu programul, urmeaz
                        o etap de anima釘ie care are rolul de a exemplifica modul
                        de execu釘ie al algoritmului pentru cazul a patru dame.

M9  Joc  Problema comis-voiajorului
Obiective didactice OP5, OP6
        Timp         10 minute
Tip de interac釘iune exerci釘iu, problematizare, descoperire
      cu elevul
     Descriere        - este un joc atractiv care 樽l pune pe elev 樽n situa釘ia de a
                        determina un ciclu hamiltonian 樽ntr-un graf dat.
M10  Problema comis-voiajorului  rezolvare iterativ
Obiective didactice OP5, OP6, OP7
        Timp        10 minute
Tip de interac釘iune observare, problematizare, 樽nv釘are dirijat
      cu elevul
     Descriere       - 樽n acest modul se explic modalitatea de construire a
                        algoritmului backtracking iterativ pentru problema comis-
                        voiajorului;
                     - elevul este dirijat interactiv spre construirea func釘iilor si
                        procedurilor backtracking 樽n cazul problemei comis-
                        voiajorului.

M11  Problema comis-voiajorului  rezolvare recursiv
Obiective didactice OP7, OP8, OP9
        Timp        7 minute
Tip de interac釘iune observare, problematizare, 樽nv釘are dirijat
      cu elevul
     Descriere      - printr-o participare activ, elevul, aflat permanent 樽n
                    interac釘iune cu calculatorul, este condus spre 樽n釘elegerea
                    mecanismului de utilizare a metodei backtracking recursiv.

M12  Problema comis-voiajorului  implementare
Obiective didactice OP8, OP9, OP10
        Timp        8 minute
Tip de interac釘iune observare, problematizare, modelare i simulare
      cu elevul
     Descriere       - este un modul interactiv care conduce elevul spre
                        樽n釘elegerea mecanismului de execu釘ie a algoritmului care
                        utilizeaz backtracking-ul recursiv;
                     - se prezint, pas cu pas, in ritmul de 樽n釘elegere al elevului,
                        instruc釘iunile ce se execut (modul de gestionare a stivei
                        solu釘iilor i stivei de recursivitate).

M13  Joc  Problema labirintului
Obiective didactice OP1, OP5
        Timp         10 minute
Tip de interac釘iune exerci釘iu, problematizare, descoperire
      cu elevul
     Descriere        - modulul con釘ine un joc  problema labirintului;
                      - printr-o participare activ, utiliz但nd o anima釘ie captivant,
                         elevul 樽n釘elege mecanismul de rezolvare a problemei
                         labirintului care utilizeaz metoda backtracking 樽n plan.
M14  Problema labirintului  rezolvare iterativ
Obiective didactice OP6, OP11, OP12
        Timp          10 minute
Tip de interac釘iune observare, problematizare, 樽nv釘are dirijat
      cu elevul
     Descriere         - 樽n acest modul se dau detalii 樽n legtur cu algoritmul
                         backtracking care trebuie construit pentru problema
                         labirintului;
                       - construirea func釘iilor i procedurilor specifice acestei
                         probleme se face interactiv.

M15  Problema labirintului  implementare
Obiective didactice OP11, OP12, OP13
        Timp          15 minute
Tip de interac釘iune observare, problematizare, modelare i simulare
      cu elevul
     Descriere         - este un obiect de con釘inut bogat 樽n anima釘ii care descrie
                         modul de execu釘ie al algoritmului;
                       - urmrind cu aten釘ie acest modul interactiv, elevul 樽i
                         clarific i fundamenteaz succesiunea de opera釘ii logice
                         prin care, implement但nd metoda backtracking 樽n plan, se
                         poate rezolva problema labirintului.
4.2. Recomandri de structurare i predare
       mbinarea modulelor realizate pentru aceast lec釘ie este la latitudinea
fiecrui profesor, 樽n func釘ie de particularit釘ile psiho-individuale ale elevilor clasei.

   1. Lec釘ia 1 (definirea i 樽n釘elegerea tehnicii de programare backtracking)

          Obiect de con釘inut                              Timp (minute)
                  M2                                            5
                  M3                                            5
                  M4                                            5
                  M5                                            10
                  M6                                            10
                Test 1                                          10
               Tema 1                                           5

   2. Lec釘ia 2 (implementarea tehnicii backtracking 樽n problema damelor)

          Obiect de con釘inut                              Timp (minute)
                  M1                                            10
                  M7                                            10
                  M8                                            15
                Test 2                                          10
               Tema 2                                           5

   3. Lec釘ia 3 (backtracking recursiv)

          Obiect de con釘inut                              Timp (minute)
                  M9                                            10
                  M10                                           10
                  M11                                           7
                  M12                                           8
                Test 3                                          10
               Tema 3                                           5

   4. Lec釘ia 4 (backtracking 樽n plan)

          Obiect de con釘inut                              Timp (minute)
                  M13                                           10
                  M14                                           10
                  M15                                           15
                Test 4                                          10
               Tema 4                                           5
5. Structura detaliat a
con釘inuturilor
      5.1. Joc  Problema damelor
       Acest obiect de con釘inut are rolul de a familiariza elevul cu problema
damelor. Obiectul este interactiv i se prezint sub form de joc. Elevul trebuie
s aeze pe tabla de sah patru dame, astfel 樽nc但t ele s nu se atace. El trebuie
s respecte regulile jocului: damele s nu fie aezate pe aceeai linie, coloan
sau pe diagonal. Mutarea damelor este restric釘ionat de timp: elevul se va
樽ncadra 樽n 5 minute, perioada 樽n care el va determina toate situa釘iile posibile 樽n
care se pot aeza damele pe tabla de ah.
5.2. Exemplu practic: aranjarea mobilei 樽ntr-o
cas
       Acest modul prezint problema aranjrii mobilei 樽ntr-o cas. Sunt date
obiectele care constituie mobila casei. Acestea se deplaseaz ocup但nd camerele
casei 樽n toate modurile posibile. Anima釘ia atrage aten釘ia elevului i-l conduce spre
aflarea unei noi metode de programare: tehnica backtracking. Prin utilizarea

butonului      se 樽ncepe anima釘ia. Aceasta se poate relua, ori de c但te ori dorete

elevul, apas但nd butonul       .
5.3. Opera釘ii pe stiv
      Acest obiect este interactiv i are ca scop definirea no釘iunii de stiv,
precum i a opera釘iilor ce se pot face cu elementele unei stive: adugarea i
scoaterea unui element din stiv. Elevul are la dispozi釘ie urmtoarele butoane:

         declaneaz anima釘ia, care prezint c但t se poate de sugestiv ce este o
stiv

       reia anima釘ia pentru o 樽n釘elegere c但t mai bun.
n timpul anima釘iei, elevul particip activ la 樽n釘elegerea defini釘iei, utiliz但nd
aceleai butoane.
5.4. Exemplificarea lucrului pe stiv
       Este un obiect de con釘inut interactiv, care conduce elevul la fixarea
cunotin釘elor privind opera釘iile efectuate pe stiv i modul 樽n care se realizeaz
ele pe un exemplu concret.




       Interactivitatea se realizeaz prin intermediul unor butoane       ,     ,

      , care permit declanarea anima釘iei, oprirea acesteia i reluarea la momentul
urmtor, 樽n func釘ie de posibilitatea de 樽ntelegere a elevului. Ini釘ial stiva con釘ine
un element A. La adugarea unui nou element B, se observ c acesta este
aezat primul. Dac dorim s eliminm din stiv elementul A, trebuie mai 樽nt但i s
fie scos elementul B i apoi elementul A. Anima釘ia, grafica, culorile, sunt realizate
pentru a pstra echilibrul psihologic, atractiv  captivant i astfel elevul s fie
condus ctre o percepere optim a lucrului pe stiv.
5.5. Prezentarea ablonului de func釘ii i
proceduri
       n acest obiect sunt prezentate procedurile i func釘iile specifice metodei
backtracking: succesor, validare, init, solu釘ie i tipar. Acestea sunt prezentate 樽n
pseudocod i vor fi completate 樽n func釘ie de problema pe care elevul o are de
rezolvat. Se recomand 樽nainte de studierea acestor proceduri, s se studieze cu
mult aten釘ie teoria legat de backtracking, care poate fi accesat prin utilizarea
butonului             .
5.6. Generarea permutrilor
       Acest obiect este interactiv. Rolul lui este de a exemplifica modul de
gestionare a stivei 樽ntr-o problem concret de backtracking: construirea
permutrilor de trei elemente. Elevul urmrete modalitatea de umplere a stivei,
dup tehnica backtracking. n paralel, se eviden釘iaz opera釘iile care se execut 樽n
algoritmul backtracking i astfel elevul face corela釘ia 樽ntre gestionarea stivei i
logica acestei tehnici de programare.




       Respect但nd particularit釘ile psiho-individuale ale elevului, obiectul con釘ine
dou butoane cu care anima釘ia se poate relua, opri sau continua. Prin
interac釘iunea elevului cu programul este pus 樽n lumin succesiunea de opera釘ii
mintale care conduc la construirea celor ase permutri.
5.7. Problema generrii aranjamentelor
       Este un obiect interactiv sub forma unui joc. Elevul are la dispozi釘ie
elementul 0 (pentru ini釘ializarea stivei) i 1, 2, 3 cu care s construiasc
aranjamente de dou elemente. Se eviden釘iaz astfel principiul backtracking i se
realizeaz o auto-evaluare a elevului 樽n ceea ce privete corectitudinea 樽n釘elegerii
acestei tehnici de programare.




       n momentul 樽n care elevul a 樽ncrcat greit stiva, este aten釘ionat i i se
precizeaz precedura din schema backtacking care nu a fost apelat.
5.8. Problema damelor
       Acest moment al lec釘iei este un moment interactiv i are ca scop
rezolvarea problemei damelor prin tehnica backtacking. Elevului i se prezint
opera釘iile ce se execut 樽n cadrul algoritmului backtracking pentru aceast
problem. El trebuie s identifice opera釘iile pentru fiecare procedur. Dac
alegerea nu este bine fcut, primete indica釘ii i este condus spre rezolvarea
corect a problemei. Dup stabilirea procedurilor, 樽ncepe implementarea
algoritmului pentru cele patru dame. La fiecare pas se explic elevului opera釘iile
care se efectueaz 樽n algoritm, p但n la gsirea complet a tuturor solu釘iilor.
5.9. Joc  Problema comis-voiajorului
      Este un obiect de con釘inut interactiv, de tip joc.
      Exist o interac釘iune permanent a elevului cu calculatorul pentru gsirea
drumului pe care trebuie s-l parcurg comis-voiajorul; el trebuie s respecte
urmtoarele reguli:
 - s viziteze toate casele
 - s treac o singur data pe la fiecare cas
      Jocul 樽ncepe 樽n momentul 樽n care elevul acceseaz butonul           . n
acest moment se declaneaz cronometrul i rezolvarea problemei trebuie s se
fac 樽n 7 minute. Dac elevul a greit traseul, exist butonul               care 樽i
permite s reia totul de la 樽nceput. n momentul gsirii solu釘iei, elevului i se
comunic timpul 樽n care a gsit drumul cutat. Utiliz但nd butonul             se
reamintesc o serie de no釘iuni necesare elaborrii algoritmului problemei. Butonul
            comunic elevului ce competen釘e dob但ndete 樽n urma parcurgerii
acestui set de module.
5.10. Problema comis-voiajorului  rezolvare
iterativ
        Acest obiect de con釘inut are rolul de a elabora algoritmul rezolvrii
problemei comis-voiajorului prin metoda iterativ. Elevul este solicitat s rezolve
interactiv problema. Din ferestrele procedure i respectiv function 樽i alege pe
r但nd fiecare din acestea, pe care le completeaz cu instruc釘iunile pseudocod
specifice problemei comis-voiajorului.




       Butonul     trebuie accesat 樽naintea construirii procedurilor. n acest
moment se deschide fereastra Ajutor care ofer indica釘ii cu privire la modul 樽n
care se completeaz procedurile i func釘iile pentru implementarea iterativ a
metodei backtracking.
5.11. Problema comis-voiajorului  rezovare
recursiv
        Prin parcurgerea acestui modul, elevul 樽i formeaz deprinderea de a
utiliza metoda backtracking 樽n forma recursiv. Este un obiect de con釘inut
interactiv.
        Se deschid dou ferestre de dialog: function succesor si procedure
bkt(k). Cele dou proceduri se completeaz de ctre elev, care urmrete 樽n
continuare no釘iunile teoretice prin folosirea butonului          .




       n cadrul ferestrelor exist butonul          . Prin accesarea lui, elevul
primete rspuns dac a rezolvat corect sau nu cerin釘a. n cazul 樽n care
rezolvarea este incorect, are dreptul la un numar maxim de 6 樽ncercri. n final,
dac nu gsete rezolvarea corect i se ofer solu釘ia i este aten釘ionat c nu a
reuit s descopere singur varianta corect.
5.12. Problema comis-voiajorului 
implementare
        Prin acest obiect de con釘inut se pune 樽n eviden釘 succesiunea de
opera釘ii/instruc釘iuni care se execut 樽n cadrul algoritmului backtracking recursiv
pentru problema comis-voiajorului.
        Este un obiect de con釘inut interactiv. Elevul urmrete pas cu pas modul
de construire a solu釘iilor pe stiva solu釘iilor i 樽n acelai timp poate vizualiza
modul de gestionare a segmentului de stiv ataat recursivit釘ii.
        Anima釘ia se desfoar automat sau poate fi condus de elev, 樽n ritmul pe
care 樽l dorete, stabilind prin intermediul ferestrei de dialog viteza de rulare.
5.13. Joc  Problema labirintului
       Este un moment interactiv de tip joc. Acesta capteaz aten釘ia elevului care
trebuie s se deplaseze printr-un anumit labirint. Anima釘ia atractiv i captivant
conduce la 樽n釘elegrea problemei i a mecanismului backtracking 樽n plan.

       Explica釘ia jocului se ob釘ine prin accesarea butonului      , iar butonul
folosete pentru fixarea vitezei de deplasare a cavalerului 樽n func釘ie de ritmul de
樽n釘elegere al elevului.
5.14. Problema labirintului  rezolvare iterativ
       Se explic elevului modul 樽n care sunt memorate datele de intrare 樽n
problema labirintului. Acest lucru se ob釘ine dac facem click pe grupul de cuvinte
Matricea de adiacen釘. n acest caz sunt prezentate datele de intrare i
codificarea acestora.
       n secven釘a principal, fc但nd click pe procedurile init, succesor i tipar,
se deschid ferestre de dialog care solicit aten釘ia elevului i 樽l antreneaz 樽n
completarea acestora.
5.15. Problema labirintului  implementare
       n acest moment al lec釘iei, elevul este dirijat spre 樽n釘elegerea logic a
modului de execu釘ie a algoritmului elaborat la pasul anterior.
       Aez但nd mouse-ul pe suprafe釘ele matricei situat 樽n partea dreapt sus,
sunt explicate elevului codificrile pentru sensul de deplasare.

       Exist de asemenea butonul          care fixeaz viteza de derulare a
anima釘iei.
       Declanarea anima釘iei, 樽n cazul 樽n care ea nu este automat, este condus
de elev prin mouse. Este simulat modul de gestionare a valorilor ce indic pozi釘ia
cavalerului 樽n ficare moment: linia, coloana i direc釘ia.
       Aceste valori sunt trecute 樽n trei stive, reprezentate tridimensional, iar la
gsirea unei solu釘ii, acestea sunt exemplificate pe matricea de adiacen釘.
Simularea etapelor de gsire a solu釘iilor, exemplific elevului succesiunea de
opera釘ii mintale care conduc la descoperirea rezultatului.
6. Teste de evaluare
      6.1. Testul 1
                                   Problema 1
Punctaj: 1 Timp: 1 minut Obiectiv: OP2
Enun釘ul problemei:
Dac pentru nivelul k oarecare al vectorului solu釘ie am verificat toate valorile
posibile:
a) algoritmul se 樽ncheie
b) se revine pe nivelul anterior
c) se trece pe nivelul urmtor


                                  Problema 2
Punctaj: 1 Timp: 1 minut Obiectiv: OP2
Enun釘ul problemei:
Dup ce s-a gsit o valoare convenabil pentru componenta k, urmtorul pas
este:
a) se trece la componenta urmtoare (k+1), dac nu s-a ajuns la o solu釘ie
b) se rm但ne la componenta k, cut但nd 樽n continuare o alt valoare convenabil
c) se revine la componenta k-1


                                   Problema 3
Punctaj: 1 Timp: 1 minut Obiectiv: OP2
Enun釘ul problemei:
n ce condi釘ii se revine la componenta anterioar?
a) dup ce am gsit o valoare convenabil pentru componenta k
b) dac valoarea testat pentru componenta k nu convine
c) dac am testat toate valorile posibile pentru componenta k


                                   Problema 4
Punctaj: 1 Timp: 1 minut Obiectiv: OP2
Enun釘ul problemei:
n ce condi釘ii se trece de la componenta k la componenta k+1?
a) dup ce am gsit o valoare convenabil pentru componenta k
b) dup ce am testat toate valorile posibile pentru componenta k
c) dac nu am gsit nici o valoare convenabil pentru componenta k
Problema 5
Punctaj: 1 Timp: 1 minut Obiectiv: OP2
Enun釘ul problemei:
Ini釘ializarea componentei st[k] se realizeaz:
a) c但nd se trece de pe nivelul k-1 pe nivelul k
b) c但nd se revine de pe nivelul k+1 pe nivelul k
c) c但nd pe nivelul k+1 au fost testate toate valorile posibile


                                     Problema 6
Punctaj: 1 Timp: 1 minut Obiectiv: OP2
Enun釘ul problemei:
Algoritmul se 樽ncheie dac:
a) s-au testat toate valorile posibile pentru primul nivel
b) s-au testat toate valorile posibile pentru ultimul nivel
c) pe un nivel oarecare, k, nu am gsit nici o valoare care s verifice condi釘iile de
continuare


                                   Problema 7
Punctaj: 1 Timp: 1 minut Obiectiv: OP2
Enun釘ul problemei:
Dup gsirea unei solu釘ii, pasul urmtor este:
a) se revine pe nivelul anterior
b) se rm但ne pe acelai nivel, test但ndu-se urmtoarea valoare disponibil
c) se 樽ncheie algoritmul


                                   Problema 8
Punctaj: 1 Timp: 1 minut Obiectiv: OP2
Enun釘ul problemei:
n cazul stivei, 樽ntotdeauna se permite accesul direct la:
a) prima component introdus
b) ultima component introdus
c) toate componentele sale
Problema 9
Punctaj: 1 Timp: 1 minut Obiectiv: OP2
Enun釘ul problemei:
Se d o stiv implementat cu ajutorul unui vector S. n stiv s-au introdus, 樽n
aceast ordine, numerele 1 si 2; S=(1,2). Dac se noteaza cu PUSH(n) opera釘ia
prin care se adaug informa釘ia x 樽n stiv i cu POP opera釘ia prin care se scoate
un element din stiv, care este rezultatul opera釘iilor:
POP, PUSH(3), PUSH(6), POP, PUSH(5)
a) S=(3,6,5)
b) S=(3,6,5)
c) S=(1,3,5)
6.2. Testul 2
                                     Problema 1
Punctaj: 1 Timp: 1 minut Obiectiv: OP1, OP2, OP4
Enun釘ul problemei:
Se citesc n i p numere naturale, n>=p. S se genereze toate submul釘imile cu p
elemente ale mul釘imii {1,2,......n}.
Care este numrul maxim de elemente din stiv?
a) n
b) p
c) n+p


                                     Problema 2
Punctaj: 1 Timp: 1 minut Obiectiv: OP1, OP2, OP4
Enun釘ul problemei:
Se citesc n i p numere naturale, n>=p. S se genereze toate submul釘imile cu p
elemente ale mul釘imii {1,2,......n}.
Care este condi釘ia de validare?
a) elementele puse 樽n stiv s fie consecutive
b) elementele puse 樽n stiv s fie nenule
c) elementele puse 樽n stiv s fie distincte


                                     Problema 3
Punctaj: 1 Timp: 1 minut Obiectiv: OP2
Enun釘ul problemei:
Se citesc n i p numere naturale, n>=p. S se genereze toate submul釘imile cu p
elemente ale mul釘imii {1,2,......n}.
Pentru a evita repeti釘ia, elementele se aeaz 樽n stiv 樽n ordine cresctoare: pe
nivelul k se va afla o valoare mai mare dec但t pe nivelul k-1 i mai mic dec但t n-
p+k.
Folosind cunotiin釘ele acumulate, alege secven釘a de cod pentru urmtorul
subprogram:
procedure init(k,st)
        if k>1 then ...
a) st[k]<-1
b) st[k]<-st[k+1]
c) st[k]<-st[k-1]
d) st[k]<-0
Problema 4
Punctaj: 1 Timp: 1 minut Obiectiv: OP2, OP4
Enun釘ul problemei:
Se citesc n i p numere naturale, n>=p. S se genereze toate submul釘imile cu p
elemente ale mul釘imii {1,2,......n}.
Pentru a evita repeti釘ia, elementele se aeaz 樽n stiv 樽n ordine cresctoare: pe
nivelul k se va afla o valoare mai mare dec但t pe nivelul k-1 i mai mic dec但t n-
p+k.
Folosind cunotiin釘ele acumulate, alege secven釘a de cod pentru urmtorul
subprogram:
procedure init(k,st)
        if k>1 then st[k]<-st[k-1]
                 else if k=1 then ...
        endif
a) st[k]<-1
b) st[k]<-st[k+1]
c) st[k]<-st[k-1]
d) st[k]<-0


                                     Problema 5
Punctaj: 1 Timp: 1 minut Obiectiv: OP2, OP4
Enun釘ul problemei:
Se citesc n i p numere naturale, n>=p. S se genereze toate submul釘imile cu p
elemente ale mul釘imii {1,2,......n}.
Pentru a evita repeti釘ia, elementele se aeaz 樽n stiv 樽n ordine cresctoare: pe
nivelul k se va afla o valoare mai mare dec但t pe nivelul k-1 i mai mic dec但t n-
p+k.
Folosind cunotiin釘ele acumulate, alege secven釘a de cod pentru urmtorul
subprogram:
procedure succesor(k,st,as)
        if ... then
                        st[k] <- st[k]+1
                        as <- true
                 else as <- false
        endif
a) st[k]<n-p+k
b) st[k]<n+p-k
c) st[k]<n
d) st[k]<=n-p+k
Problema 6
Punctaj: 1 Timp: 1 minut Obiectiv: OP2, OP4
Enun釘ul problemei:
Se citesc n i p numere naturale, n>=p. S se genereze toate submul釘imile cu p
elemente ale mul釘imii {1,2,......n}.
Pentru a evita repeti釘ia, elementele se aeaz 樽n stiv 樽n ordine cresctoare: pe
nivelul k se va afla o valoare mai mare dec但t pe nivelul k-1 i mai mic dec但t n-
p+k.
Folosind cunotiin釘ele acumulate, alege secven釘a de cod pentru urmtorul
subprogram:
procedure validare(k,st,ev)
...
a) ev<-true
   for i<-1,k-1 do
         if st[k]=st[i] then ev<-false
         endif
b) ev<-true
c) ev<-true
   if st[k]=st[n] then ev<-false
   endif
d) ev<-true
   if st[k]=st[k-1] then ev<-false
   endif


                                      Problema 7
Punctaj: 1 Timp: 1 minut Obiectiv: OP2
Enun釘ul problemei:
n cazul problemei damelor pe tabla de ah:
a) mul釘imile S1, S2,..., Sn coincid
b) elementele s1, s2,..., sn coincid
c) mul釘imile S1, S2,..., Sn sunt distincte


                                    Problema 8
Punctaj: 1 Timp: 1 minut Obiectiv: OP2
Enun釘ul problemei:
Tabloul 樽n care se re釘ine solu釘ia pentru problema aranjamentor este de fapt:
a) un tablou bidimensional
b) o coad
c) nici una din variantele de mai sus
Problema 9
Punctaj: 1 Timp: 1 minut Obiectiv: OP2
Enun釘ul problemei:
Costel a implementat metoda backtracking pentru a tipri toate cuvintele formate
cu cele cinci litere ale cuv但ntului ASTRU. Programul tiprete un ir de cuvinte
separate prin spa釘iu 樽n ordinea alfabetic. Care este cuv但ntul tiprit chiar 樽n fa釘a
cuv但ntului RASTU?
a) SUART
b) RASUT
c) SUTRA
d) RAUTS
6.3. Testul 3
                                   Problema 1
Punctaj: 1 Timp: 1 minut
Enun釘ul problemei:
Fie un program care implementeaz metoda backracking pentru determinarea
numerelor naturale cu ajutorul cifrelor 1,2,3,4,5. Numerele vor con釘ine toate cele
5 cifre distincte i vor fi construite 樽n ordine cresctoare. Ce numr va fi tiprit
dup 31245?
a) 25413
b) 31254
c) 25431
d) 21345


                                   Problema 2
Punctaj: 1 Timp: 1 minut
Enun釘ul problemei:
Fie un program care implementeaz metoda backtracking pentru determinarea
numerelor naturale cu ajutorul cifrelor 1,2,3,4,5. Numerele vor con釘ine toate cele
5 cifre distincte i vor fi construite 樽n ordine cresctoare. C但te numere tiprete
programul?
a) mai pu釘in de 100
b) 100
c) 120
d) mai mult de 120


                                       Problema 3
Punctaj: 1 Timp: 1 minut
Enun釘ul problemei:
Fie un program care implementeaz metoda backtracking pentru determinarea
numerelor naturale cu ajutorul cifrelor 1,2,3,4,5. Numerele vor con釘ine toate cele
5 cifre distincte i vor fi construite 樽n ordine cresctoare. Numrul 21453 va fi
tiprit:
a) al 20-lea
b) al 28-lea
c) al 31-lea
d) nu se poate preciza
Problema 4
Punctaj: 1 Timp: 1 minut
Enun釘ul problemei:
Fie un program care implementeaz metoda backtracking pentru determinarea
numerelor naturale cu ajutorul cifrelor 1,2,3,4,5. Numerele vor con釘ine toate cele
5 cifre distincte i vor fi construite 樽n ordine cresctoare. naintea numrului
31245 va fi tiprit numrul:
a) 25413
b) 31254
c) 25431
d) 21345


                                   Problema 5
Punctaj: 1 Timp: 1 minut
Enun釘ul problemei:
n utilizarea tehnicii backtracking, varianta recursiv:
a) revenirea din autoapel este echivalent cu trecerea la nivelul urmator din
varianta nerecursiv
b) revenirea din autoapel este echivalent cu trecerea la nivelul anterior din
varianta recursiv
c) nu se revine niciodat la nivelul anterior
d) se revine la nivelul anterior la 樽ncheierea algoritmului


                                   Problema 6
Punctaj: 1 Timp: 1 minut
Enun釘ul problemei:
n probleme care utilizeaz backtracking recursiv, care din urmtoarele afirma釘ii
este adevrat?
a) func釘ia back se autoapeleaz pentru valoarea urmtoare a aceluiai nivel din
stiv
b) func釘ia back se autoapeleaz pentru urmtorul nivel din stiv
c) func釘ia back se autoapeleaz pentru nivelul urmtor din stiv fr a mai gsi
succesorul elementului
d) func釘ia back se autoapeleaz fr a se 釘ine seama de nivelul din stiv
Problema 7
Punctaj: 1 Timp: 1 minut
Enun釘ul problemei:
n problema damelor, se implementeaz metoda backtracking recursiv.
Procedura bkt afieaz toate modalit釘ile posibile de aezare a 4 dame pe tabla
de ah.
Func釘ia validare testeaz dac valoarea pus pe nivelul k a generat o solu釘ie
valid, return但nd true sau false.
Pune釘i 樽n locul punctelor de suspensie variante potrivite (scrierea este 樽n
pseudocod).
function validare(k)
      posibil<-true
      for i=1,k-1 do
            if ... then posibil<-false
            endif
      endfor
      validare<-posibil
return
a) (st[k]=st[i]) and (abs(st[k]-st[i])=abs(k-i))
b) (st[k]=st[i]) or (abs(st[k]-st[i])=abs(k-i))
c) (st[k]<>st[i]) and (abs(st[k]-st[i])=abs(k-i))
d) (st[k]<>st[i]) or (abs(st[k]-st[i])=abs(k-i))


                                  Problema 8
Punctaj: 1 Timp: 1 minut
Enun釘ul problemei:
n problema damelor, se implementeaz metoda backtracking recursiv.
Procedura bkt afieaz toate modalit釘ile posibile de aezare a 4 dame pe tabla
de ah.
Pune釘i 樽n locul punctelor de suspensie varianta potrivit:
procedure bkt(k)
      for i=1,4 do
            ....
      endfor
return
a) if k=1 then tipar
             else for i=1,4 do
                                   st[k]<-i
                                   bkt(k+1)
                   endfor
   endif
b) st[k]<-i
   if valid(k) then
      if k=5 then tipar
             else bkt(k+1)
      endif
   endif
c) if k<4 then
      for i=1,4 do
                  st[k]<-i
                  bkt(k+1)
      endfor
          else tipar
   endif


                                     Problema 9
Punctaj: 1 Timp: 1 minut
Enun釘ul problemei:
n procedura BKT se afieaz toate elementele produsului cartezian MxMxMxM
unde M={1,2,...n}; st este un vector de numere 樽ntregi, iar procedura tipar
afieaz elementele st[1],st[2],...st[4].
procedure bkt(k)
       ...
return
Alege釘i din variantele de mai jos secven釘a care trebuie aezat 樽n locul punctelor
de suspensie pentru a ob釘ine un rezultat eronat la apelul bkt(1).
a) for i=1,4 do
        st[k]<-i
        if k=n then tipar
                  else bkt(k+1)
        endif
   endfor
b) if k=4 then tipar
             else for i=1,4 do
                                      st[k]<-i
                                      bkt(k+1)
                    endfor
   endif
c) if k<5 then for i=1,n do
                                     st[k]<-i
                                     bkt(k+1)
                    endfor
             else tipar
   endif
6.4. Testul 4
                                    Problema 1
Punctaj: 1 Timp: 1 minut
Enun釘ul problemei:
Pe o tabl de ah de dimensiune mxn se gsete un cal 樽n pozi釘ia (l0, c0). Se
樽ncearc determinarea tuturor modalit釘ilor prin care acesta poate s treac de 2
ori prin acelai loc tiind c un cal situat 樽ntr-un punct dat poate sri 樽n 8 direc釘ii
afiate 樽n figura alturat.

                                     8           1

                               7                      2

                                           *

                               6                      3

                                     5           4
Care dintre urmtoarele afirma釘ii este adevrat:
a) vectorul solu釘ie are n componente
b) vectorul solu釘ie are m componente
c) vectorul solu釘ie are mxn componente


                                    Problema 2
Punctaj: 1 Timp: 1 minut
Enun釘ul problemei:
Din punctul k, caracterizat de coordonatele (st[k].l, st[k].c) se poate ajunge 樽ntr--
unul din punctele:
a) (st[k].l-1, st[k].c+1)
b) (st[k].l-2, st[k].c+1)
c) (st[k].l-1, st[k].c+2)
d) (st[k].l+1, st[k].c+1)
e) (st[k].l+1, st[k].c+2)
f) (st[k].l-2, st[k].c+2)
Problema 3
Punctaj: 1 Timp: 1 minut
Enun釘ul problemei:
Alege釘i varianta corect de scriere pentru procedura init, unde (l1, c1) reprezint
pozi釘ia csu釘ei de pe tabl unde calul se poate deplasa 樽n mod valid din pozi釘ia k-
1.
a) procedure init(k)
         st[k].l<-l0
         st[k].c<-c0
   return
b) procedure init(k)
         st[k].d<-0
   return
c) procedure (k)
         st[k].d<-1
         if k=1 then st[k].l<-l0
                         st[k].c<-c0
                  else st[k].l<-l1
                         st[k].c<-c1
   return
d) procedure (k)
         st[k].d<-0
         if k=1 then st[k].l<-l0
                         st[k].c<-c0
                  else st[k].l<-l1
                         st[k].c<-c1
   return


                                    Problema 4
Punctaj: 1 Timp: 1 minut
Enun釘ul problemei:
Dac (l, c) reprezint o pozi釘ie valid a calului atunci alege釘i condi釘ia corect:
a) (l>1) or (c>1) or (l>m) or (c>n)
b) (l>1) and (c>1) and(l>m) and (c>n)
c) (l>1) and (c>1) and (l<m) and (c<n)
d) (l>=1) and (c>=1) and (l<=m) and (c<=n)
Problema 5
Punctaj: 1 Timp: 1 minut
Enun釘ul problemei:
Determina釘i condi釘iile corecte de continuare ce trebuiesc 樽ndeplinite de procedura
valid:
a) pozi釘ia aleas nu trebuie s fie 樽n afara tablei de ah
b) calul nu trebuie s se 樽ntoarc la punctul de unde tocmai a venit dar poate
reveni mai t但rziu 樽n acest punct
c) calul nu poate trece de mai multe ori prin acelai loc


                                  Problema 6
Punctaj: 2 Timp: 2 minute
Enun釘ul problemei:
Alege釘i varianta corect de scriere a func釘iei solutie:
a) function solutie(k)
         if k=m*n then solutie<-true
                     else solutie<-false
         endif
   return
b) function solutie(k)
          if k=m then solutie<-true
                    else solutie<-false
          endif
   return
c) function solutie(k)
         if k=m then solutie<-true
                  else solutie<-false
         endif
   return


                                  Problema 7
Punctaj: 2 Timp: 2 minute
Enun釘ul problemei:
Alege釘i varianta corect de scriere a procedurii tipar:
a) procedure tipar(k)
          write(st[k].l, st[k].c)
   return
b) procedure tipar(k)
          for i=1, n do write(st[i],l, st[k].c) endfor
   return
c) procedure tipar(k)
          for i=1, k do write(st[i].l) write(st[i].c) endfor
   return
7. Teme pentru acas
       7.1. Tema 1

Problema 1

Fie n cuburi, etichetate de la 1 la n (n  200) de laturi Li, i culori Ci, i=1...n. S
se aranjeze cele n cuburi 樽n turnuri de k cuburi, astfel 樽nc但t s fie stabile ( nu se
va aranja un cub mai mare peste un cub mai mic), iar culorile cuburilor alturate
trebuie s fie diferite.
S se descrie algoritmul de rezolvare a problemei date folosind tehnica
backtracking.
Indica釘ie: - pentru introducerea datelor se folosete o matrice a cuburilor cu n
linii i dou coloane ) pe prima coloan latura cubului, iar pe coloana
a doua culoarea).


Problema 2

S se determine toate modurile 樽n care se poate perfora un bilet de autobuz. Un
bilet are 9 puncte de perforare posibile:
* * *
* * *
* * *
Un bilet poate fi introdus 樽n aparat pe o singur fa釘.
7.2. Tema 2

Problema 1

Determina釘i toate modurile de scriere a unui numr natural ca sum de numere
prime distincte.
Indica釘ie: - Se genereaz 樽ntr-un tablou unidimensional toate numerele prime
mai mici dec但t numrul dat.


Problema 2

Se consider o mul釘ime cu n elemente i un numr natural k nenul.
S se calculeze c但te submul釘imi cu k elemente satisfac pe r但nd condi釘iile de mai
jos i s se afieze aceste submul釘imi.
a) con釘in p obiecte date;
b) nu con釘in nici unul din q obiecte date;
c) con釘in exact un obiect din p obiecte date;
d) con釘in r obiecte din p obiecte date dar nu con釘in alte q obiecte.
7.3. Tema 3
Problema 1

C但tigtorul unui premiu 樽n valoare de v lei poate s aleag din n tipuri de
obiecte 樽n valoare de v1, v2,...,vn, astfel 樽nc但t obiectele alese s aib valoarea
total v. tiind c exist m1 obiecte de tipul 1, m2 obiecte de tipul 2,..., mn
obiecte de tipul n, determina釘i toate alegerile posibile ce 樽ndeplinesc condi釘ia
cerut.


Problema 2

O caravan format din n cmile cltorete prin deert 樽n ir indian. Beduinul se
hotrte s schimbe aezarea cmilelor astfel 樽nc但t fiecare cmil s nu mai
vad 樽n fa釘a ei aceeai cmil de p但na atunci. Care sunt posibilit釘ile de a aeza
cmilele?
7.4. Tema 4
Problema 1

Un cal i un rege se afl pe o tabl de ah. Unele c但mpuri ale tablei sunt "arse",
pozi釘iile lor fiind cunoscute. Calul nu poate clca pe c但mpuri "arse", iar orice
micare a calului face ca respectivul c但mp s devin "ars". S se afle dac exist
o succesiune de mutri permise (cu restric釘iile de mai sus), prin care calul s
poat ajunge la rege i s revin la pozi釘ia ini釘ial. Pozi釘ia ini釘ial a calului,
precum i pozi釘ia regelui sunt considerate "nearse".


Problema 2

Se d un caroiaj dreptunghiular de n linii i n coloane. n fiecare celul se afl un
numr 樽ntreg din intervalul [0, 15] a crui reprezentare binar pe 4 pozi釘ii indic
ieirile posibile spre celulele alturate 樽n ordinea N, E, S, V. Ieirea intr-o anumit
direc釘ie este posibil dac i numai dac bitul corespunztor acelei direc釘ii este 1.
S se elaboreze un program recursiv care s determine dac dintr-o celul
oarecare a caroiajului, ale crui coordonate sunt cunoscute, se poate iei 樽n afara
lui. n caz afirmativ se vor afia toate drumurile posibile numerot但nd solut釘iile.
Indica釘ie: Dac numrul dintr-o celul este 11 atunci reprezentarea binar va fi
1011 i deci direc釘iile posibile sunt N, S i V.
8. Bibliografie:
Informatic: - clasa a x-a  Tudor Sorin  Editura L&S
Informatic: - clasa a x-a  George Daniel Mateescu  Editura Petrion
                             Pavel Florin Moraru
                             Otilia Sofran
Informatic: - Probleme propuse i rezolvate  Rodica Cherciu - Editura Niculescu
                                                 Dan Grigoriu
                                                 Irina Iosupescu
                                                 Cecilia Blnescu
                                                 Simona Petrescu
                                                 Marcel Homorodean

More Related Content

Manualul profesorului

  • 1. Backtracking Clasa X Manualul profesorului Software educa釘ional realizat de: Profesori coordonatori: Adrian Gabriel Di釘 Corina Achinca erban Nistor Cecilia Blnescu Rodica Cherciu
  • 2. Cuprins 1. Terminologie Prezentarea elementelor software 2. Informa釘ii generale despre tema prezentat 3. Obiective 4. Structura general 4.1. Con釘inut 4.2. Recomandri de structurare i predare 5. Structura detaliat 5.1. Joc Problema damelor 5.2. Exemplu practic: aranjarea mobilei 樽ntr-o cas 5.3. Opera釘ii pe stiv 5.4. Exemplificarea lucrului pe stiv 5.5. Prezentarea ablonului de func釘ii i proceduri 5.6. Generarea permutrilor 5.7. Problema generrii aranjamentelor 5.8. Problema damelor 5.9. Joc Problema comis-voiajorului 5.10. Problema comis-voiajorului rezolvare iterativ 5.11. Problema comis-voiajorului rezolvare recursiv 5.12. Problema comis-voiajorului implementare 5.13. Joc Problema labirintului 5.14. Problema labirintului rezolvare iterativ 5.15. Problema labirintului implementare 6. Teste de evaluare 6.1. Testul 1 6.2. Testul 2 6.3. Testul 3 6.4. Testul 4 7. Teme pentru acas 7.1. Tema 1 7.2. Tema 2 7.3. Tema 3 7.4. Tema 4 8. Bibliografie
  • 3. 1. Terminologie Obiect de con釘inut Un fiier independent care prezint informa釘ii grupate din punct de vedere tematic, ce nu pot fi prezentate separat. Poate fi format din mai multe pagini de con釘inut. n cadrul acestui ghid vom folosi i no釘iunea de component atunci c但nd vom face referire la un obiect de con釘inut. Butoane start anima釘ie/trecere la pasul urmtor Sunt amplasate 樽n cadrul anima釘iilor i al aplica釘iilor care con釘in mai mul釘i pai. Prin apasarea acestui buton 樽ncepe rularea anima釘iei sau respectiv se trece la pasul urmtor al anima釘iei. Dup apsare, acest buton se transform 樽n buton de pauz, care, odat accesat 樽ntrerupe pentru moment anima釘ia la cadrul curent. Texte de reper sunt link-uri prezente 樽n text, eviden釘iate printr-o culoare specific a cuvantului, care atunci c但nd sunt accesate, ofer informa釘ii suplimentare ce detaliaz no釘iunile respective. Butoane teorie Accesarea lor prezint pas cu pas, 樽ntr-o fereastr de detaliu, no釘iunile teoretice legate de lec釘ie, pe care cine dorete le poate revedea pentru a parcurge interactiv cerin釘ele urmtoare ale lec釘iei. Butoane de detaliere Ofer informa釘ii suplimentare despre o anumit no釘iune sau prezint mai 樽n detaliu con釘inutul unei pr釘i din lec釘ie, pentru cei care simt nevoia s aib mai multe explica釘ii. Butoane de revenire Sunt amplasate 樽n partea de jos a ecranului. Prin apsarea acestui buton se reia anima釘ia de la 樽nceput, pentru a o studia mai bine. Butoane de obiective Sunt amplasate 樽n partea de jos a ecranului i ofer utilizatorului 樽ntr-o fereastr de detaliu, obiectivele parcurgerii materialului din modulul respectiv.
  • 4. Butoane de defilare pe text Prin apsarea acestor butoane, textul se deruleaz 樽n sensul sge釘ii. Butoane de start Prin accesarea acestui buton se 樽ncepe cronometrarea timpului 樽n care elevul rezolv o anumit cerin釘. Butoane de resetare Se folosesc pentru re樽nceperea jocului 樽n cazul 樽n care elevul solicit acest lucru. Butoane de help Ofer elevului detalii asupra modului 樽n care trebuie s rezolve interactiv anumite cerin釘e. Butoane de verificare Sunt utilizate 樽n cadrul unor probeleme care se rezolv interactiv. n aceast situa釘ie elevul solicit calculatorului s-i verifice corectitudinea solu釘iei. Butoane de vitez Prin accesarea acestor butoane se stabilete viteza de derulare a anima釘iilor in func釘ie de capacitatea de 樽n釘elegere a elevului. Ferestre de detaliu Ofer informa釘ii suplimentare sau detalii despre un anumit element (termen, concept, imagine, algoritm) Se 樽nt但lnesc ferestre de tipul: - urmrirea etapelor execu釘iei unui algoritm elaborat 樽n cadrul lec釘iei - indica釘ii asupra modului 樽n care trebuie rezolvate anumite cerin釘e - fereastra Teorie care descrie amnun釘it baza teoretic necesar pentru rezolvarea problemelor supuse aten釘iei elevului.
  • 5. - fereastra Enun釘 red enun釘ul problemei 樽n timpul rezolvrii acesteia, dac elevul solicit - ferestre Ajutor dau indica釘ii suplimentare asupra modului interactiv de completare a ferestrelor de dialog - ferestre de dialog apar 樽n cazul 樽n care se solicit elevului s completeze interactiv procedurile i func釘iile specifice metodei backtracking pentru o problem dat - ferestre de stabilire a parametrilor pentru anima釘ie se utilizeaz pentru a personaliza simularea modului de execu釘ie a algoritmului 樽n func釘ie de posibilit釘ile i caracteristicile psiho-individuale ale elevului
  • 6. 2. Informa釘ii generale despre tema prezentat Produsul multimedia realizat ofer o perspectiv coerent, unitar i constructiv asupra cunoaterii, utilizrii i implementrii tehnicii de programare backtracking. n cadrul acestei teme abordate backtracking au fost puse 樽n eviden釘 urmtoarele aspecte: - definirea tehnicii de programare backtracking, cu accent pe problemele care pot fi rezolvate prin aceast metod; - prezentarea principalelor proceduri specifice metodei backtracking i aplicarea acestora 樽n probleme concrete; - formarea abilit釘ilor de construire a algoritmului backtracking utiliz但nd metode activ-participative de tip joc. Cuvinte cheie la aceast tem sunt: func釘ii, proceduri, stiv, list, algoritm, limbaj pseudocod/limbaj de programare, recursivitate, matrice de adiacen釘. Materialul are o structur modularizat care permite folosirea 樽n mai multe variante a intrumentelor puse la dispozi釘ie. Sunt puse la dispozi釘ia elevului at但t module de teorie referitoare la tehnica de programare backtracking, c但t i momente de evaluare pentru realizarea unui feedback permanent, colectiv i care s pun 樽n lumin progresul 樽nregistrat de elevi. Fiecare lec釘ie con釘ine o tem pe care elevii trebuie s o elaboreze acas sau 樽n timpul orelor de laborator.
  • 7. 3. Obiective Obiectiv Detaliere Obiective de referin釘 R1 Utilizarea corect a no釘iunilor informatice, a vocabularului informatic aferent i a elementelor specifice limbajului pseudocod. R2 Prelucrarea datelor de tip calitativ i cantitativ cuprinse 樽n algoritmii elabora釘i. R3 Utilizarea corect a algoritmilor i a ra釘ionamentelor 樽n rezolvarea unor probleme cu grade de dificultate diferite. R4 Elaborarea etapelor de realizare a unei aplica釘ii 樽n urma analizei acesteia. R5 Exprimarea i redactarea corect a algoritmului 樽n limbaj pseudocod sau limbaj de programare Pascal/C++. Obiective opera釘ionale OP1 S recunoasc tipurile de probleme care se rezolv prin tehnica backtracking. OP2 S identifice principiul de func釘ionare i s recunoasc pr釘ile esen釘iale ale algoritmului: func釘ii i proceduri. OP3 S rearanjeze func釘iile i procedurile pentru problema damelor. OP4 S interpreteze i s stabileasc valorile variabilelor utilizate 樽n algoritm, c但nd se dau valorile datelor de intrare, pentru o problem care se rezolv prin tehnica backtracking. OP5 S identifice i s recunoasc tehnica de programare backtracking pentru o problem dat (problema comis-voiajorului i problema labirintului). OP6 S-i aminteasc procedurile de baz ale tehnicii backtracking forma standard (nerecursiv). OP7 S construiasc func釘iile i procedurile de baz ale tehnicii backtracking i s creeze programul principal corespunztor care le apeleaz. OP8 S modifice algoritmul creat utiliz但nd backtracking recursiv i s deduc principalele schimbri care se impun prin 樽mbinarea celor dou tehnici de programare (backtracking recursiv). OP9 Fiind date valorile de intrare s in釘eleag modul de execu釘ie al algoritmului construit prin backtracking recursiv. OP10 S compare cele dou forme backtracking (recursiv nerecursiv) din punct de vedere al eficien釘ei. OP11 S aplice no釘iunile 樽nv釘ate la tehnica backtracking 樽n plan, 樽n problema labirintului 樽n care trebuie s disting caracteristicile i principalele modificri din func釘iile i procedurile standard. OP12 Fiind date valorile de intrare 樽n problema labirintului s 樽n釘eleag modul de execu釘ie al algoritmului construit.
  • 8. OP13 S interpreteze i s stabileasc valorile variabilelor utilizate 樽n algoritm, c但nd se dau valorile datelor de intrare, pentru problema labirintului.
  • 9. 4. Structura general 4.1. Con釘inut Se prezint lista obiectelor de con釘inut (notate cu M) i caracteristicile lor generale. M1 Joc Problema damelor Obiective didactice OP1, OP2 Timp 10 minute Tip de interac釘iune exerci釘iu, problematizare, descoperire cu elevul Descriere - prin acest joc elevul este pus 樽n fa釘a unei probleme cu date concrete care-l determin s caute (s cerceteze) condi釘iile 樽n care se pot aeza patru dame pe tabla de sah. M2 Exeplul practic: aranjarea mobilei intr-o casa Obiective didactice OP1, OP2 Timp 5 minute Tip de interac釘iune expunerea, observarea, descrierea cu elevul Descriere - este prezentat 樽ntr-o form atractiv captivant modalitatea de aezare a mobilei 樽ntr-o cas; - anima釘ia realizat, observat cu aten釘ie, conduce la ideea de metod backtracking: aezi mobila 樽n cas 樽n toate modurile posibile i o alegi pe cea care-釘i place mai mult. M3 Opera釘ii pe stiv Obiective didactice OP2 Timp 5 minute Tip de interac釘iune expunerea, observarea, problematizarea, modelarea i cu elevul simularea Descriere - se definete stiva i principalele operatii care se fac pe stiv; - prin anima釘ia atractiv i sugestiv (vraf de farfurii) elevul 樽n釘elege mai bine mecanismul stivei (Last In First Out): pentru a extrage o farfurie trebuie s le scoatem pe cele situate deasupra, iar pentru a pune o farfurie, trebuie s o aezm totdeauna deasupra celorlalte.
  • 10. M4 Exemplificarea lucrului pe stiv Obiective didactice OP2, OP4 Timp 5 minute Tip de interac釘iune observarea, problematizarea, modelarea i simularea cu elevul Descriere - apel但nd acest modul, elevul 樽nva釘 modul de gestionare a unei stive. Printr-o anima釘ie tridimensional, elevul afl: - cum se elimin un element din stiv; - cum se adaug un element 樽n stiv; - cum se modifica un element 樽n stiv. M5 Prezentarea ablonului de func釘ii i proceduri Obiective didactice OP1, OP2 Timp 10 minute Tip de interac釘iune explica釘ia, modelarea, problematizarea cu elevul Descriere - 樽n acest modul sunt prezentate func釘iile i procedurile standard ale tehnicii de programare backracking. M6 Generarea permutrilor Obiective didactice OP2, OP2, OP3 Timp 25 minute Tip de interac釘iune observa釘ia, problematizarea, modelarea i simularea cu elevul Descriere - modulul pune 樽n eviden釘 o succesiune de opera釘ii mintale care conduc elevul spre 樽n釘elegerea clar a mecanismului backtracking; - permutrile de trei elemente (fiind reprezentate aici de trei melodii) sunt generate pas cu pas, 樽n ritmul de 樽n釘elegere i cu respectarea stilului cognitiv, a particularita釘ilor psiho- individuale ale fiecrui elev.
  • 11. M7 Problema generrii aranjamentelor de trei elemente luate c但te dou Obiective didactice OP2, OP3, OP4 Timp 10 minute Tip de interac釘iune explica釘ia, exerci釘iul, problematizarea, modelarea i simularea cu elevul Descriere - modulul con釘ine un joc prin care elevul este invitat s construiasc aranjamentele de trei elemente luate c但te dou. - printr-o participare activ, elevul, aflat permanent 樽n interac釘iune cu calculatorul, este condus spre construirea aranjamentelor av但nd la dispozi釘ie stiva i cele patru cifre: 0 (ini釘ializare stiv), 1, 2 i 3 pentru construirea aranjamentelor corespunztoare. M8 Problema damelor Obiective didactice OP2, OP3, OP4 Timp 15 minute Tip de interac釘iune problematizare, descoperire, exerci釘iu, modelare i simulare cu elevul Descriere - prezentarea problemei damelor; - explicarea modalit釘ii de rezolvare a acestei probleme prin tehnica backtracking; - elevul are ca sarcin de lucru s aeze 樽n ordine secven釘ele de opera釘ii specifice fiecrei proceduri sau func釘ii; - dup aceast interac釘iune a elevului cu programul, urmeaz o etap de anima釘ie care are rolul de a exemplifica modul de execu釘ie al algoritmului pentru cazul a patru dame. M9 Joc Problema comis-voiajorului Obiective didactice OP5, OP6 Timp 10 minute Tip de interac釘iune exerci釘iu, problematizare, descoperire cu elevul Descriere - este un joc atractiv care 樽l pune pe elev 樽n situa釘ia de a determina un ciclu hamiltonian 樽ntr-un graf dat.
  • 12. M10 Problema comis-voiajorului rezolvare iterativ Obiective didactice OP5, OP6, OP7 Timp 10 minute Tip de interac釘iune observare, problematizare, 樽nv釘are dirijat cu elevul Descriere - 樽n acest modul se explic modalitatea de construire a algoritmului backtracking iterativ pentru problema comis- voiajorului; - elevul este dirijat interactiv spre construirea func釘iilor si procedurilor backtracking 樽n cazul problemei comis- voiajorului. M11 Problema comis-voiajorului rezolvare recursiv Obiective didactice OP7, OP8, OP9 Timp 7 minute Tip de interac釘iune observare, problematizare, 樽nv釘are dirijat cu elevul Descriere - printr-o participare activ, elevul, aflat permanent 樽n interac釘iune cu calculatorul, este condus spre 樽n釘elegerea mecanismului de utilizare a metodei backtracking recursiv. M12 Problema comis-voiajorului implementare Obiective didactice OP8, OP9, OP10 Timp 8 minute Tip de interac釘iune observare, problematizare, modelare i simulare cu elevul Descriere - este un modul interactiv care conduce elevul spre 樽n釘elegerea mecanismului de execu釘ie a algoritmului care utilizeaz backtracking-ul recursiv; - se prezint, pas cu pas, in ritmul de 樽n釘elegere al elevului, instruc釘iunile ce se execut (modul de gestionare a stivei solu釘iilor i stivei de recursivitate). M13 Joc Problema labirintului Obiective didactice OP1, OP5 Timp 10 minute Tip de interac釘iune exerci釘iu, problematizare, descoperire cu elevul Descriere - modulul con釘ine un joc problema labirintului; - printr-o participare activ, utiliz但nd o anima釘ie captivant, elevul 樽n釘elege mecanismul de rezolvare a problemei labirintului care utilizeaz metoda backtracking 樽n plan.
  • 13. M14 Problema labirintului rezolvare iterativ Obiective didactice OP6, OP11, OP12 Timp 10 minute Tip de interac釘iune observare, problematizare, 樽nv釘are dirijat cu elevul Descriere - 樽n acest modul se dau detalii 樽n legtur cu algoritmul backtracking care trebuie construit pentru problema labirintului; - construirea func釘iilor i procedurilor specifice acestei probleme se face interactiv. M15 Problema labirintului implementare Obiective didactice OP11, OP12, OP13 Timp 15 minute Tip de interac釘iune observare, problematizare, modelare i simulare cu elevul Descriere - este un obiect de con釘inut bogat 樽n anima釘ii care descrie modul de execu釘ie al algoritmului; - urmrind cu aten釘ie acest modul interactiv, elevul 樽i clarific i fundamenteaz succesiunea de opera釘ii logice prin care, implement但nd metoda backtracking 樽n plan, se poate rezolva problema labirintului.
  • 14. 4.2. Recomandri de structurare i predare mbinarea modulelor realizate pentru aceast lec釘ie este la latitudinea fiecrui profesor, 樽n func釘ie de particularit釘ile psiho-individuale ale elevilor clasei. 1. Lec釘ia 1 (definirea i 樽n釘elegerea tehnicii de programare backtracking) Obiect de con釘inut Timp (minute) M2 5 M3 5 M4 5 M5 10 M6 10 Test 1 10 Tema 1 5 2. Lec釘ia 2 (implementarea tehnicii backtracking 樽n problema damelor) Obiect de con釘inut Timp (minute) M1 10 M7 10 M8 15 Test 2 10 Tema 2 5 3. Lec釘ia 3 (backtracking recursiv) Obiect de con釘inut Timp (minute) M9 10 M10 10 M11 7 M12 8 Test 3 10 Tema 3 5 4. Lec釘ia 4 (backtracking 樽n plan) Obiect de con釘inut Timp (minute) M13 10 M14 10 M15 15 Test 4 10 Tema 4 5
  • 15. 5. Structura detaliat a con釘inuturilor 5.1. Joc Problema damelor Acest obiect de con釘inut are rolul de a familiariza elevul cu problema damelor. Obiectul este interactiv i se prezint sub form de joc. Elevul trebuie s aeze pe tabla de sah patru dame, astfel 樽nc但t ele s nu se atace. El trebuie s respecte regulile jocului: damele s nu fie aezate pe aceeai linie, coloan sau pe diagonal. Mutarea damelor este restric釘ionat de timp: elevul se va 樽ncadra 樽n 5 minute, perioada 樽n care el va determina toate situa釘iile posibile 樽n care se pot aeza damele pe tabla de ah.
  • 16. 5.2. Exemplu practic: aranjarea mobilei 樽ntr-o cas Acest modul prezint problema aranjrii mobilei 樽ntr-o cas. Sunt date obiectele care constituie mobila casei. Acestea se deplaseaz ocup但nd camerele casei 樽n toate modurile posibile. Anima釘ia atrage aten釘ia elevului i-l conduce spre aflarea unei noi metode de programare: tehnica backtracking. Prin utilizarea butonului se 樽ncepe anima釘ia. Aceasta se poate relua, ori de c但te ori dorete elevul, apas但nd butonul .
  • 17. 5.3. Opera釘ii pe stiv Acest obiect este interactiv i are ca scop definirea no釘iunii de stiv, precum i a opera釘iilor ce se pot face cu elementele unei stive: adugarea i scoaterea unui element din stiv. Elevul are la dispozi釘ie urmtoarele butoane: declaneaz anima釘ia, care prezint c但t se poate de sugestiv ce este o stiv reia anima釘ia pentru o 樽n釘elegere c但t mai bun. n timpul anima釘iei, elevul particip activ la 樽n釘elegerea defini釘iei, utiliz但nd aceleai butoane.
  • 18. 5.4. Exemplificarea lucrului pe stiv Este un obiect de con釘inut interactiv, care conduce elevul la fixarea cunotin釘elor privind opera釘iile efectuate pe stiv i modul 樽n care se realizeaz ele pe un exemplu concret. Interactivitatea se realizeaz prin intermediul unor butoane , , , care permit declanarea anima釘iei, oprirea acesteia i reluarea la momentul urmtor, 樽n func釘ie de posibilitatea de 樽ntelegere a elevului. Ini釘ial stiva con釘ine un element A. La adugarea unui nou element B, se observ c acesta este aezat primul. Dac dorim s eliminm din stiv elementul A, trebuie mai 樽nt但i s fie scos elementul B i apoi elementul A. Anima釘ia, grafica, culorile, sunt realizate pentru a pstra echilibrul psihologic, atractiv captivant i astfel elevul s fie condus ctre o percepere optim a lucrului pe stiv.
  • 19. 5.5. Prezentarea ablonului de func釘ii i proceduri n acest obiect sunt prezentate procedurile i func釘iile specifice metodei backtracking: succesor, validare, init, solu釘ie i tipar. Acestea sunt prezentate 樽n pseudocod i vor fi completate 樽n func釘ie de problema pe care elevul o are de rezolvat. Se recomand 樽nainte de studierea acestor proceduri, s se studieze cu mult aten釘ie teoria legat de backtracking, care poate fi accesat prin utilizarea butonului .
  • 20. 5.6. Generarea permutrilor Acest obiect este interactiv. Rolul lui este de a exemplifica modul de gestionare a stivei 樽ntr-o problem concret de backtracking: construirea permutrilor de trei elemente. Elevul urmrete modalitatea de umplere a stivei, dup tehnica backtracking. n paralel, se eviden釘iaz opera釘iile care se execut 樽n algoritmul backtracking i astfel elevul face corela釘ia 樽ntre gestionarea stivei i logica acestei tehnici de programare. Respect但nd particularit釘ile psiho-individuale ale elevului, obiectul con釘ine dou butoane cu care anima釘ia se poate relua, opri sau continua. Prin interac釘iunea elevului cu programul este pus 樽n lumin succesiunea de opera釘ii mintale care conduc la construirea celor ase permutri.
  • 21. 5.7. Problema generrii aranjamentelor Este un obiect interactiv sub forma unui joc. Elevul are la dispozi釘ie elementul 0 (pentru ini釘ializarea stivei) i 1, 2, 3 cu care s construiasc aranjamente de dou elemente. Se eviden釘iaz astfel principiul backtracking i se realizeaz o auto-evaluare a elevului 樽n ceea ce privete corectitudinea 樽n釘elegerii acestei tehnici de programare. n momentul 樽n care elevul a 樽ncrcat greit stiva, este aten釘ionat i i se precizeaz precedura din schema backtacking care nu a fost apelat.
  • 22. 5.8. Problema damelor Acest moment al lec釘iei este un moment interactiv i are ca scop rezolvarea problemei damelor prin tehnica backtacking. Elevului i se prezint opera釘iile ce se execut 樽n cadrul algoritmului backtracking pentru aceast problem. El trebuie s identifice opera釘iile pentru fiecare procedur. Dac alegerea nu este bine fcut, primete indica釘ii i este condus spre rezolvarea corect a problemei. Dup stabilirea procedurilor, 樽ncepe implementarea algoritmului pentru cele patru dame. La fiecare pas se explic elevului opera釘iile care se efectueaz 樽n algoritm, p但n la gsirea complet a tuturor solu釘iilor.
  • 23. 5.9. Joc Problema comis-voiajorului Este un obiect de con釘inut interactiv, de tip joc. Exist o interac釘iune permanent a elevului cu calculatorul pentru gsirea drumului pe care trebuie s-l parcurg comis-voiajorul; el trebuie s respecte urmtoarele reguli: - s viziteze toate casele - s treac o singur data pe la fiecare cas Jocul 樽ncepe 樽n momentul 樽n care elevul acceseaz butonul . n acest moment se declaneaz cronometrul i rezolvarea problemei trebuie s se fac 樽n 7 minute. Dac elevul a greit traseul, exist butonul care 樽i permite s reia totul de la 樽nceput. n momentul gsirii solu釘iei, elevului i se comunic timpul 樽n care a gsit drumul cutat. Utiliz但nd butonul se reamintesc o serie de no釘iuni necesare elaborrii algoritmului problemei. Butonul comunic elevului ce competen釘e dob但ndete 樽n urma parcurgerii acestui set de module.
  • 24. 5.10. Problema comis-voiajorului rezolvare iterativ Acest obiect de con釘inut are rolul de a elabora algoritmul rezolvrii problemei comis-voiajorului prin metoda iterativ. Elevul este solicitat s rezolve interactiv problema. Din ferestrele procedure i respectiv function 樽i alege pe r但nd fiecare din acestea, pe care le completeaz cu instruc釘iunile pseudocod specifice problemei comis-voiajorului. Butonul trebuie accesat 樽naintea construirii procedurilor. n acest moment se deschide fereastra Ajutor care ofer indica釘ii cu privire la modul 樽n care se completeaz procedurile i func釘iile pentru implementarea iterativ a metodei backtracking.
  • 25. 5.11. Problema comis-voiajorului rezovare recursiv Prin parcurgerea acestui modul, elevul 樽i formeaz deprinderea de a utiliza metoda backtracking 樽n forma recursiv. Este un obiect de con釘inut interactiv. Se deschid dou ferestre de dialog: function succesor si procedure bkt(k). Cele dou proceduri se completeaz de ctre elev, care urmrete 樽n continuare no釘iunile teoretice prin folosirea butonului . n cadrul ferestrelor exist butonul . Prin accesarea lui, elevul primete rspuns dac a rezolvat corect sau nu cerin釘a. n cazul 樽n care rezolvarea este incorect, are dreptul la un numar maxim de 6 樽ncercri. n final, dac nu gsete rezolvarea corect i se ofer solu釘ia i este aten釘ionat c nu a reuit s descopere singur varianta corect.
  • 26. 5.12. Problema comis-voiajorului implementare Prin acest obiect de con釘inut se pune 樽n eviden釘 succesiunea de opera釘ii/instruc釘iuni care se execut 樽n cadrul algoritmului backtracking recursiv pentru problema comis-voiajorului. Este un obiect de con釘inut interactiv. Elevul urmrete pas cu pas modul de construire a solu釘iilor pe stiva solu釘iilor i 樽n acelai timp poate vizualiza modul de gestionare a segmentului de stiv ataat recursivit釘ii. Anima釘ia se desfoar automat sau poate fi condus de elev, 樽n ritmul pe care 樽l dorete, stabilind prin intermediul ferestrei de dialog viteza de rulare.
  • 27. 5.13. Joc Problema labirintului Este un moment interactiv de tip joc. Acesta capteaz aten釘ia elevului care trebuie s se deplaseze printr-un anumit labirint. Anima釘ia atractiv i captivant conduce la 樽n釘elegrea problemei i a mecanismului backtracking 樽n plan. Explica釘ia jocului se ob釘ine prin accesarea butonului , iar butonul folosete pentru fixarea vitezei de deplasare a cavalerului 樽n func釘ie de ritmul de 樽n釘elegere al elevului.
  • 28. 5.14. Problema labirintului rezolvare iterativ Se explic elevului modul 樽n care sunt memorate datele de intrare 樽n problema labirintului. Acest lucru se ob釘ine dac facem click pe grupul de cuvinte Matricea de adiacen釘. n acest caz sunt prezentate datele de intrare i codificarea acestora. n secven釘a principal, fc但nd click pe procedurile init, succesor i tipar, se deschid ferestre de dialog care solicit aten釘ia elevului i 樽l antreneaz 樽n completarea acestora.
  • 29. 5.15. Problema labirintului implementare n acest moment al lec釘iei, elevul este dirijat spre 樽n釘elegerea logic a modului de execu釘ie a algoritmului elaborat la pasul anterior. Aez但nd mouse-ul pe suprafe釘ele matricei situat 樽n partea dreapt sus, sunt explicate elevului codificrile pentru sensul de deplasare. Exist de asemenea butonul care fixeaz viteza de derulare a anima釘iei. Declanarea anima釘iei, 樽n cazul 樽n care ea nu este automat, este condus de elev prin mouse. Este simulat modul de gestionare a valorilor ce indic pozi釘ia cavalerului 樽n ficare moment: linia, coloana i direc釘ia. Aceste valori sunt trecute 樽n trei stive, reprezentate tridimensional, iar la gsirea unei solu釘ii, acestea sunt exemplificate pe matricea de adiacen釘. Simularea etapelor de gsire a solu釘iilor, exemplific elevului succesiunea de opera釘ii mintale care conduc la descoperirea rezultatului.
  • 30. 6. Teste de evaluare 6.1. Testul 1 Problema 1 Punctaj: 1 Timp: 1 minut Obiectiv: OP2 Enun釘ul problemei: Dac pentru nivelul k oarecare al vectorului solu釘ie am verificat toate valorile posibile: a) algoritmul se 樽ncheie b) se revine pe nivelul anterior c) se trece pe nivelul urmtor Problema 2 Punctaj: 1 Timp: 1 minut Obiectiv: OP2 Enun釘ul problemei: Dup ce s-a gsit o valoare convenabil pentru componenta k, urmtorul pas este: a) se trece la componenta urmtoare (k+1), dac nu s-a ajuns la o solu釘ie b) se rm但ne la componenta k, cut但nd 樽n continuare o alt valoare convenabil c) se revine la componenta k-1 Problema 3 Punctaj: 1 Timp: 1 minut Obiectiv: OP2 Enun釘ul problemei: n ce condi釘ii se revine la componenta anterioar? a) dup ce am gsit o valoare convenabil pentru componenta k b) dac valoarea testat pentru componenta k nu convine c) dac am testat toate valorile posibile pentru componenta k Problema 4 Punctaj: 1 Timp: 1 minut Obiectiv: OP2 Enun釘ul problemei: n ce condi釘ii se trece de la componenta k la componenta k+1? a) dup ce am gsit o valoare convenabil pentru componenta k b) dup ce am testat toate valorile posibile pentru componenta k c) dac nu am gsit nici o valoare convenabil pentru componenta k
  • 31. Problema 5 Punctaj: 1 Timp: 1 minut Obiectiv: OP2 Enun釘ul problemei: Ini釘ializarea componentei st[k] se realizeaz: a) c但nd se trece de pe nivelul k-1 pe nivelul k b) c但nd se revine de pe nivelul k+1 pe nivelul k c) c但nd pe nivelul k+1 au fost testate toate valorile posibile Problema 6 Punctaj: 1 Timp: 1 minut Obiectiv: OP2 Enun釘ul problemei: Algoritmul se 樽ncheie dac: a) s-au testat toate valorile posibile pentru primul nivel b) s-au testat toate valorile posibile pentru ultimul nivel c) pe un nivel oarecare, k, nu am gsit nici o valoare care s verifice condi釘iile de continuare Problema 7 Punctaj: 1 Timp: 1 minut Obiectiv: OP2 Enun釘ul problemei: Dup gsirea unei solu釘ii, pasul urmtor este: a) se revine pe nivelul anterior b) se rm但ne pe acelai nivel, test但ndu-se urmtoarea valoare disponibil c) se 樽ncheie algoritmul Problema 8 Punctaj: 1 Timp: 1 minut Obiectiv: OP2 Enun釘ul problemei: n cazul stivei, 樽ntotdeauna se permite accesul direct la: a) prima component introdus b) ultima component introdus c) toate componentele sale
  • 32. Problema 9 Punctaj: 1 Timp: 1 minut Obiectiv: OP2 Enun釘ul problemei: Se d o stiv implementat cu ajutorul unui vector S. n stiv s-au introdus, 樽n aceast ordine, numerele 1 si 2; S=(1,2). Dac se noteaza cu PUSH(n) opera釘ia prin care se adaug informa釘ia x 樽n stiv i cu POP opera釘ia prin care se scoate un element din stiv, care este rezultatul opera釘iilor: POP, PUSH(3), PUSH(6), POP, PUSH(5) a) S=(3,6,5) b) S=(3,6,5) c) S=(1,3,5)
  • 33. 6.2. Testul 2 Problema 1 Punctaj: 1 Timp: 1 minut Obiectiv: OP1, OP2, OP4 Enun釘ul problemei: Se citesc n i p numere naturale, n>=p. S se genereze toate submul釘imile cu p elemente ale mul釘imii {1,2,......n}. Care este numrul maxim de elemente din stiv? a) n b) p c) n+p Problema 2 Punctaj: 1 Timp: 1 minut Obiectiv: OP1, OP2, OP4 Enun釘ul problemei: Se citesc n i p numere naturale, n>=p. S se genereze toate submul釘imile cu p elemente ale mul釘imii {1,2,......n}. Care este condi釘ia de validare? a) elementele puse 樽n stiv s fie consecutive b) elementele puse 樽n stiv s fie nenule c) elementele puse 樽n stiv s fie distincte Problema 3 Punctaj: 1 Timp: 1 minut Obiectiv: OP2 Enun釘ul problemei: Se citesc n i p numere naturale, n>=p. S se genereze toate submul釘imile cu p elemente ale mul釘imii {1,2,......n}. Pentru a evita repeti釘ia, elementele se aeaz 樽n stiv 樽n ordine cresctoare: pe nivelul k se va afla o valoare mai mare dec但t pe nivelul k-1 i mai mic dec但t n- p+k. Folosind cunotiin釘ele acumulate, alege secven釘a de cod pentru urmtorul subprogram: procedure init(k,st) if k>1 then ... a) st[k]<-1 b) st[k]<-st[k+1] c) st[k]<-st[k-1] d) st[k]<-0
  • 34. Problema 4 Punctaj: 1 Timp: 1 minut Obiectiv: OP2, OP4 Enun釘ul problemei: Se citesc n i p numere naturale, n>=p. S se genereze toate submul釘imile cu p elemente ale mul釘imii {1,2,......n}. Pentru a evita repeti釘ia, elementele se aeaz 樽n stiv 樽n ordine cresctoare: pe nivelul k se va afla o valoare mai mare dec但t pe nivelul k-1 i mai mic dec但t n- p+k. Folosind cunotiin釘ele acumulate, alege secven釘a de cod pentru urmtorul subprogram: procedure init(k,st) if k>1 then st[k]<-st[k-1] else if k=1 then ... endif a) st[k]<-1 b) st[k]<-st[k+1] c) st[k]<-st[k-1] d) st[k]<-0 Problema 5 Punctaj: 1 Timp: 1 minut Obiectiv: OP2, OP4 Enun釘ul problemei: Se citesc n i p numere naturale, n>=p. S se genereze toate submul釘imile cu p elemente ale mul釘imii {1,2,......n}. Pentru a evita repeti釘ia, elementele se aeaz 樽n stiv 樽n ordine cresctoare: pe nivelul k se va afla o valoare mai mare dec但t pe nivelul k-1 i mai mic dec但t n- p+k. Folosind cunotiin釘ele acumulate, alege secven釘a de cod pentru urmtorul subprogram: procedure succesor(k,st,as) if ... then st[k] <- st[k]+1 as <- true else as <- false endif a) st[k]<n-p+k b) st[k]<n+p-k c) st[k]<n d) st[k]<=n-p+k
  • 35. Problema 6 Punctaj: 1 Timp: 1 minut Obiectiv: OP2, OP4 Enun釘ul problemei: Se citesc n i p numere naturale, n>=p. S se genereze toate submul釘imile cu p elemente ale mul釘imii {1,2,......n}. Pentru a evita repeti釘ia, elementele se aeaz 樽n stiv 樽n ordine cresctoare: pe nivelul k se va afla o valoare mai mare dec但t pe nivelul k-1 i mai mic dec但t n- p+k. Folosind cunotiin釘ele acumulate, alege secven釘a de cod pentru urmtorul subprogram: procedure validare(k,st,ev) ... a) ev<-true for i<-1,k-1 do if st[k]=st[i] then ev<-false endif b) ev<-true c) ev<-true if st[k]=st[n] then ev<-false endif d) ev<-true if st[k]=st[k-1] then ev<-false endif Problema 7 Punctaj: 1 Timp: 1 minut Obiectiv: OP2 Enun釘ul problemei: n cazul problemei damelor pe tabla de ah: a) mul釘imile S1, S2,..., Sn coincid b) elementele s1, s2,..., sn coincid c) mul釘imile S1, S2,..., Sn sunt distincte Problema 8 Punctaj: 1 Timp: 1 minut Obiectiv: OP2 Enun釘ul problemei: Tabloul 樽n care se re釘ine solu釘ia pentru problema aranjamentor este de fapt: a) un tablou bidimensional b) o coad c) nici una din variantele de mai sus
  • 36. Problema 9 Punctaj: 1 Timp: 1 minut Obiectiv: OP2 Enun釘ul problemei: Costel a implementat metoda backtracking pentru a tipri toate cuvintele formate cu cele cinci litere ale cuv但ntului ASTRU. Programul tiprete un ir de cuvinte separate prin spa釘iu 樽n ordinea alfabetic. Care este cuv但ntul tiprit chiar 樽n fa釘a cuv但ntului RASTU? a) SUART b) RASUT c) SUTRA d) RAUTS
  • 37. 6.3. Testul 3 Problema 1 Punctaj: 1 Timp: 1 minut Enun釘ul problemei: Fie un program care implementeaz metoda backracking pentru determinarea numerelor naturale cu ajutorul cifrelor 1,2,3,4,5. Numerele vor con釘ine toate cele 5 cifre distincte i vor fi construite 樽n ordine cresctoare. Ce numr va fi tiprit dup 31245? a) 25413 b) 31254 c) 25431 d) 21345 Problema 2 Punctaj: 1 Timp: 1 minut Enun釘ul problemei: Fie un program care implementeaz metoda backtracking pentru determinarea numerelor naturale cu ajutorul cifrelor 1,2,3,4,5. Numerele vor con釘ine toate cele 5 cifre distincte i vor fi construite 樽n ordine cresctoare. C但te numere tiprete programul? a) mai pu釘in de 100 b) 100 c) 120 d) mai mult de 120 Problema 3 Punctaj: 1 Timp: 1 minut Enun釘ul problemei: Fie un program care implementeaz metoda backtracking pentru determinarea numerelor naturale cu ajutorul cifrelor 1,2,3,4,5. Numerele vor con釘ine toate cele 5 cifre distincte i vor fi construite 樽n ordine cresctoare. Numrul 21453 va fi tiprit: a) al 20-lea b) al 28-lea c) al 31-lea d) nu se poate preciza
  • 38. Problema 4 Punctaj: 1 Timp: 1 minut Enun釘ul problemei: Fie un program care implementeaz metoda backtracking pentru determinarea numerelor naturale cu ajutorul cifrelor 1,2,3,4,5. Numerele vor con釘ine toate cele 5 cifre distincte i vor fi construite 樽n ordine cresctoare. naintea numrului 31245 va fi tiprit numrul: a) 25413 b) 31254 c) 25431 d) 21345 Problema 5 Punctaj: 1 Timp: 1 minut Enun釘ul problemei: n utilizarea tehnicii backtracking, varianta recursiv: a) revenirea din autoapel este echivalent cu trecerea la nivelul urmator din varianta nerecursiv b) revenirea din autoapel este echivalent cu trecerea la nivelul anterior din varianta recursiv c) nu se revine niciodat la nivelul anterior d) se revine la nivelul anterior la 樽ncheierea algoritmului Problema 6 Punctaj: 1 Timp: 1 minut Enun釘ul problemei: n probleme care utilizeaz backtracking recursiv, care din urmtoarele afirma釘ii este adevrat? a) func釘ia back se autoapeleaz pentru valoarea urmtoare a aceluiai nivel din stiv b) func釘ia back se autoapeleaz pentru urmtorul nivel din stiv c) func釘ia back se autoapeleaz pentru nivelul urmtor din stiv fr a mai gsi succesorul elementului d) func釘ia back se autoapeleaz fr a se 釘ine seama de nivelul din stiv
  • 39. Problema 7 Punctaj: 1 Timp: 1 minut Enun釘ul problemei: n problema damelor, se implementeaz metoda backtracking recursiv. Procedura bkt afieaz toate modalit釘ile posibile de aezare a 4 dame pe tabla de ah. Func釘ia validare testeaz dac valoarea pus pe nivelul k a generat o solu釘ie valid, return但nd true sau false. Pune釘i 樽n locul punctelor de suspensie variante potrivite (scrierea este 樽n pseudocod). function validare(k) posibil<-true for i=1,k-1 do if ... then posibil<-false endif endfor validare<-posibil return a) (st[k]=st[i]) and (abs(st[k]-st[i])=abs(k-i)) b) (st[k]=st[i]) or (abs(st[k]-st[i])=abs(k-i)) c) (st[k]<>st[i]) and (abs(st[k]-st[i])=abs(k-i)) d) (st[k]<>st[i]) or (abs(st[k]-st[i])=abs(k-i)) Problema 8 Punctaj: 1 Timp: 1 minut Enun釘ul problemei: n problema damelor, se implementeaz metoda backtracking recursiv. Procedura bkt afieaz toate modalit釘ile posibile de aezare a 4 dame pe tabla de ah. Pune釘i 樽n locul punctelor de suspensie varianta potrivit: procedure bkt(k) for i=1,4 do .... endfor return a) if k=1 then tipar else for i=1,4 do st[k]<-i bkt(k+1) endfor endif
  • 40. b) st[k]<-i if valid(k) then if k=5 then tipar else bkt(k+1) endif endif c) if k<4 then for i=1,4 do st[k]<-i bkt(k+1) endfor else tipar endif Problema 9 Punctaj: 1 Timp: 1 minut Enun釘ul problemei: n procedura BKT se afieaz toate elementele produsului cartezian MxMxMxM unde M={1,2,...n}; st este un vector de numere 樽ntregi, iar procedura tipar afieaz elementele st[1],st[2],...st[4]. procedure bkt(k) ... return Alege釘i din variantele de mai jos secven釘a care trebuie aezat 樽n locul punctelor de suspensie pentru a ob釘ine un rezultat eronat la apelul bkt(1). a) for i=1,4 do st[k]<-i if k=n then tipar else bkt(k+1) endif endfor b) if k=4 then tipar else for i=1,4 do st[k]<-i bkt(k+1) endfor endif c) if k<5 then for i=1,n do st[k]<-i bkt(k+1) endfor else tipar endif
  • 41. 6.4. Testul 4 Problema 1 Punctaj: 1 Timp: 1 minut Enun釘ul problemei: Pe o tabl de ah de dimensiune mxn se gsete un cal 樽n pozi釘ia (l0, c0). Se 樽ncearc determinarea tuturor modalit釘ilor prin care acesta poate s treac de 2 ori prin acelai loc tiind c un cal situat 樽ntr-un punct dat poate sri 樽n 8 direc釘ii afiate 樽n figura alturat. 8 1 7 2 * 6 3 5 4 Care dintre urmtoarele afirma釘ii este adevrat: a) vectorul solu釘ie are n componente b) vectorul solu釘ie are m componente c) vectorul solu釘ie are mxn componente Problema 2 Punctaj: 1 Timp: 1 minut Enun釘ul problemei: Din punctul k, caracterizat de coordonatele (st[k].l, st[k].c) se poate ajunge 樽ntr-- unul din punctele: a) (st[k].l-1, st[k].c+1) b) (st[k].l-2, st[k].c+1) c) (st[k].l-1, st[k].c+2) d) (st[k].l+1, st[k].c+1) e) (st[k].l+1, st[k].c+2) f) (st[k].l-2, st[k].c+2)
  • 42. Problema 3 Punctaj: 1 Timp: 1 minut Enun釘ul problemei: Alege釘i varianta corect de scriere pentru procedura init, unde (l1, c1) reprezint pozi釘ia csu釘ei de pe tabl unde calul se poate deplasa 樽n mod valid din pozi釘ia k- 1. a) procedure init(k) st[k].l<-l0 st[k].c<-c0 return b) procedure init(k) st[k].d<-0 return c) procedure (k) st[k].d<-1 if k=1 then st[k].l<-l0 st[k].c<-c0 else st[k].l<-l1 st[k].c<-c1 return d) procedure (k) st[k].d<-0 if k=1 then st[k].l<-l0 st[k].c<-c0 else st[k].l<-l1 st[k].c<-c1 return Problema 4 Punctaj: 1 Timp: 1 minut Enun釘ul problemei: Dac (l, c) reprezint o pozi釘ie valid a calului atunci alege釘i condi釘ia corect: a) (l>1) or (c>1) or (l>m) or (c>n) b) (l>1) and (c>1) and(l>m) and (c>n) c) (l>1) and (c>1) and (l<m) and (c<n) d) (l>=1) and (c>=1) and (l<=m) and (c<=n)
  • 43. Problema 5 Punctaj: 1 Timp: 1 minut Enun釘ul problemei: Determina釘i condi釘iile corecte de continuare ce trebuiesc 樽ndeplinite de procedura valid: a) pozi釘ia aleas nu trebuie s fie 樽n afara tablei de ah b) calul nu trebuie s se 樽ntoarc la punctul de unde tocmai a venit dar poate reveni mai t但rziu 樽n acest punct c) calul nu poate trece de mai multe ori prin acelai loc Problema 6 Punctaj: 2 Timp: 2 minute Enun釘ul problemei: Alege釘i varianta corect de scriere a func釘iei solutie: a) function solutie(k) if k=m*n then solutie<-true else solutie<-false endif return b) function solutie(k) if k=m then solutie<-true else solutie<-false endif return c) function solutie(k) if k=m then solutie<-true else solutie<-false endif return Problema 7 Punctaj: 2 Timp: 2 minute Enun釘ul problemei: Alege釘i varianta corect de scriere a procedurii tipar: a) procedure tipar(k) write(st[k].l, st[k].c) return b) procedure tipar(k) for i=1, n do write(st[i],l, st[k].c) endfor return c) procedure tipar(k) for i=1, k do write(st[i].l) write(st[i].c) endfor return
  • 44. 7. Teme pentru acas 7.1. Tema 1 Problema 1 Fie n cuburi, etichetate de la 1 la n (n 200) de laturi Li, i culori Ci, i=1...n. S se aranjeze cele n cuburi 樽n turnuri de k cuburi, astfel 樽nc但t s fie stabile ( nu se va aranja un cub mai mare peste un cub mai mic), iar culorile cuburilor alturate trebuie s fie diferite. S se descrie algoritmul de rezolvare a problemei date folosind tehnica backtracking. Indica釘ie: - pentru introducerea datelor se folosete o matrice a cuburilor cu n linii i dou coloane ) pe prima coloan latura cubului, iar pe coloana a doua culoarea). Problema 2 S se determine toate modurile 樽n care se poate perfora un bilet de autobuz. Un bilet are 9 puncte de perforare posibile: * * * * * * * * * Un bilet poate fi introdus 樽n aparat pe o singur fa釘.
  • 45. 7.2. Tema 2 Problema 1 Determina釘i toate modurile de scriere a unui numr natural ca sum de numere prime distincte. Indica釘ie: - Se genereaz 樽ntr-un tablou unidimensional toate numerele prime mai mici dec但t numrul dat. Problema 2 Se consider o mul釘ime cu n elemente i un numr natural k nenul. S se calculeze c但te submul釘imi cu k elemente satisfac pe r但nd condi釘iile de mai jos i s se afieze aceste submul釘imi. a) con釘in p obiecte date; b) nu con釘in nici unul din q obiecte date; c) con釘in exact un obiect din p obiecte date; d) con釘in r obiecte din p obiecte date dar nu con釘in alte q obiecte.
  • 46. 7.3. Tema 3 Problema 1 C但tigtorul unui premiu 樽n valoare de v lei poate s aleag din n tipuri de obiecte 樽n valoare de v1, v2,...,vn, astfel 樽nc但t obiectele alese s aib valoarea total v. tiind c exist m1 obiecte de tipul 1, m2 obiecte de tipul 2,..., mn obiecte de tipul n, determina釘i toate alegerile posibile ce 樽ndeplinesc condi釘ia cerut. Problema 2 O caravan format din n cmile cltorete prin deert 樽n ir indian. Beduinul se hotrte s schimbe aezarea cmilelor astfel 樽nc但t fiecare cmil s nu mai vad 樽n fa釘a ei aceeai cmil de p但na atunci. Care sunt posibilit釘ile de a aeza cmilele?
  • 47. 7.4. Tema 4 Problema 1 Un cal i un rege se afl pe o tabl de ah. Unele c但mpuri ale tablei sunt "arse", pozi釘iile lor fiind cunoscute. Calul nu poate clca pe c但mpuri "arse", iar orice micare a calului face ca respectivul c但mp s devin "ars". S se afle dac exist o succesiune de mutri permise (cu restric釘iile de mai sus), prin care calul s poat ajunge la rege i s revin la pozi釘ia ini釘ial. Pozi釘ia ini釘ial a calului, precum i pozi釘ia regelui sunt considerate "nearse". Problema 2 Se d un caroiaj dreptunghiular de n linii i n coloane. n fiecare celul se afl un numr 樽ntreg din intervalul [0, 15] a crui reprezentare binar pe 4 pozi釘ii indic ieirile posibile spre celulele alturate 樽n ordinea N, E, S, V. Ieirea intr-o anumit direc釘ie este posibil dac i numai dac bitul corespunztor acelei direc釘ii este 1. S se elaboreze un program recursiv care s determine dac dintr-o celul oarecare a caroiajului, ale crui coordonate sunt cunoscute, se poate iei 樽n afara lui. n caz afirmativ se vor afia toate drumurile posibile numerot但nd solut釘iile. Indica釘ie: Dac numrul dintr-o celul este 11 atunci reprezentarea binar va fi 1011 i deci direc釘iile posibile sunt N, S i V.
  • 48. 8. Bibliografie: Informatic: - clasa a x-a Tudor Sorin Editura L&S Informatic: - clasa a x-a George Daniel Mateescu Editura Petrion Pavel Florin Moraru Otilia Sofran Informatic: - Probleme propuse i rezolvate Rodica Cherciu - Editura Niculescu Dan Grigoriu Irina Iosupescu Cecilia Blnescu Simona Petrescu Marcel Homorodean