Informatica PASCAL


  1. #1
    Junior SiAc reprezinta o cantitate neglijabila
    Data de inscriere
    14-02-2009
    Varsta
    32
    Sex
    M
    Mesaje
    59
    Mesaje bazar
    101
    Putere Reputatie
    31
    Reputatie
    10
    Puncte CF
    1.5

    Exclamation Informatica PASCAL

    Cine ma poate ajuta cu o idee la problema asta:

    Un grup de n <= 10 persoane numere de la 1 la n sunt asezate pe un rand de scaune.Se stie ca intre oricare 2 persoane vecine se ivesc conflicte.

    Cerinte :

    1 – Afisati toate modurile posibile de rearanjare a persoanelor astfel incat intre oricare 2 persoare aflate in conflict sa stea una sau cel mult doua persoane .

    2 – Creati o lista simplu inlantuita care sa contina persoanele care nu au conflicte, afisati-o , eliminati pe ultimul din lista si afisati din nou .


    VA MULTUMESC!
    Girlatahauuu!!!

  2. #2
    Maniac liwiu_evo's Avatar liwiu_evo are ceva special... liwiu_evo are ceva special...
    Data de inscriere
    14-04-2007
    Locaţie
    in spatele tau cu farurile stinse
    Varsta
    33
    Sex
    M
    Mesaje
    4,036
    Mesaje bazar
    300
    Putere Reputatie
    55
    Reputatie
    136
    Puncte CF
    7.0
    Usergroups:
    poate sunt mai greu de cap, da tot nu intelesei ce vrea problema...
    Edited by MOD - Semnatura. Forumul permite si crearea unei semnaturi care sa apara la sfarsitul mesajelor tale; aceasta ar trebui sa fie o fraza scurta, un citat celebru, eventual o gluma, dar care sa nu aiba dimensiuni prea mari. De asemenea nu sunt permise link-uri directe sau tag-uri catre: site-uri, anunturi de mica publicitate, publicitate de orice fel. Ne rezervam dreptul de a edita semnaturile ce incalca regulamentul forumului fara a avertiza utilizatorul;
    Vrei mai putine reclame? Inregistreaza-te sau logheaza-te

  3. #3
    arhitectã Xayidee's Avatar Xayidee este o raza de lumina in ochii tuturor Xayidee este o raza de lumina in ochii tuturor Xayidee este o raza de lumina in ochii tuturor Xayidee este o raza de lumina in ochii tuturor Xayidee este o raza de lumina in ochii tuturor Xayidee este o raza de lumina in ochii tuturor
    Data de inscriere
    14-02-2006
    Locaţie
    Neverland/Cluj
    Varsta
    35
    Sex
    F
    Mesaje
    2,010
    Mesaje bazar
    34
    Putere Reputatie
    47
    Reputatie
    673
    Puncte CF
    10.0
    Usergroups:
    Citat Mesaj iniţiat de SiAc Vezi mesajele
    Cine ma poate ajuta cu o idee la problema asta:

    Un grup de n <= 10 persoane numere de la 1 la n sunt asezate pe un rand de scaune.Se stie ca intre oricare 2 persoane vecine se ivesc conflicte.

    Cerinte :

    1 – Afisati toate modurile posibile de rearanjare a persoanelor astfel incat intre oricare 2 persoare aflate in conflict sa stea una sau cel mult doua persoane .

    2 – Creati o lista simplu inlantuita care sa contina persoanele care nu au conflicte, afisati-o , eliminati pe ultimul din lista si afisati din nou .


    VA MULTUMESC!
    pentru nr.1

    trebuie sa faci aranjamente (sau combinari - nu stiu exact, dar in nici un caz permutari) de n luate cate n; asta poti sa faci cu un vector care sa contina numerele si verifici inainte sa le treci intr-un nou vector daca in vectorul initial au aceiasi vecini. de exemplu
    if i-1<>b[i-1] and i+1<>b[i+1] then
    c[i]:=b[i]
    else
    break
    unde b e un vector care contine un aranjament
    c e vectorul pe care il afisezi
    si toata treaba asta o pui intr-o structura repetitiva.

    pentru nr.2

    din moment ce intre oricare 2 personae vecine apar conflicte nu cred ca exista persoane fara conflicte.

    oricum pentru asta poti lua 2 vectori in care primul contine persoanele si in al doilea ai 1 pentru persoane cu conflicte si 0 pentru persoane fara.
    dupa pur si simplu creezi o lista in care elementele adaugate le citesti din primul vector si pui conditia

    if b[i]=0 then
    adaugi un element in lista
    else
    i:=i+1

    iar dupa ca sa elimini parcurgi lista si verifici
    if p[i].next=null then
    p[i-1].nr:=p[i].nr;
    p[i-1].next:=null;

    si dupa afisezi lista


    ceva de genu.... acum vezi si tu cum o faci mai eficienta si ce structuri repetitive alegi si ai grija la redactare.

    sper sa mearga.

  4. #4
    Junior SiAc reprezinta o cantitate neglijabila
    Data de inscriere
    14-02-2009
    Varsta
    32
    Sex
    M
    Mesaje
    59
    Mesaje bazar
    101
    Putere Reputatie
    31
    Reputatie
    10
    Puncte CF
    1.5
    treuie sa fac cu backtraking
    Girlatahauuu!!!

  5. #5
    arhitectã Xayidee's Avatar Xayidee este o raza de lumina in ochii tuturor Xayidee este o raza de lumina in ochii tuturor Xayidee este o raza de lumina in ochii tuturor Xayidee este o raza de lumina in ochii tuturor Xayidee este o raza de lumina in ochii tuturor Xayidee este o raza de lumina in ochii tuturor
    Data de inscriere
    14-02-2006
    Locaţie
    Neverland/Cluj
    Varsta
    35
    Sex
    F
    Mesaje
    2,010
    Mesaje bazar
    34
    Putere Reputatie
    47
    Reputatie
    673
    Puncte CF
    10.0
    Usergroups:
    offf... nu mai stiu backtraking
    sorry

  6. #6
    Junior SiAc reprezinta o cantitate neglijabila
    Data de inscriere
    14-02-2009
    Varsta
    32
    Sex
    M
    Mesaje
    59
    Mesaje bazar
    101
    Putere Reputatie
    31
    Reputatie
    10
    Puncte CF
    1.5
    nui nimik ms oricum!! xD
    Girlatahauuu!!!

  7. #7
    Senior Member Chip's Avatar Chip reprezinta o cantitate neglijabila
    Data de inscriere
    04-10-2005
    Locaţie
    Oltenia, eterna TerraNova
    Varsta
    39
    Sex
    M
    Mesaje
    610
    Mesaje bazar
    155
    Putere Reputatie
    41
    Reputatie
    16
    Puncte CF
    30.5
    Usergroups:
    pai daca stii ca trebuie sa faci cu backtracking, ce idee mai vrei? ca asta e ideea. faci cu backtracking...

    iei la rand toate combinatiile, daca una nu e buna te intorci la pasul anterior si pui alta persoana. (adica fix backtracking clasic), iar in functia de verificare pui conditia ca 2 elemente alaturate din lista rezultata sa nu aiba conflict.
    ...sa fim dintre romani cei mai fierbinti!

  8. #8
    Junior SiAc reprezinta o cantitate neglijabila
    Data de inscriere
    14-02-2009
    Varsta
    32
    Sex
    M
    Mesaje
    59
    Mesaje bazar
    101
    Putere Reputatie
    31
    Reputatie
    10
    Puncte CF
    1.5
    deci stiu ca trebuie cu backtraking ca mia spup profa.. dar nu mai stiu cum ( daca poate cineva sa imi scrie si mie procedura BACK... recursiva .. nu ami stiu oridinea.. si cum se punea coditia! ... nu neaparat in pascal.. si in pseudocod plz! 10x!
    Girlatahauuu!!!

  9. #9
    arhitectã Xayidee's Avatar Xayidee este o raza de lumina in ochii tuturor Xayidee este o raza de lumina in ochii tuturor Xayidee este o raza de lumina in ochii tuturor Xayidee este o raza de lumina in ochii tuturor Xayidee este o raza de lumina in ochii tuturor Xayidee este o raza de lumina in ochii tuturor
    Data de inscriere
    14-02-2006
    Locaţie
    Neverland/Cluj
    Varsta
    35
    Sex
    F
    Mesaje
    2,010
    Mesaje bazar
    34
    Putere Reputatie
    47
    Reputatie
    673
    Puncte CF
    10.0
    Usergroups:
    google is your friend.
    exista deasemenea in manualul de la clasa sau in orice culegere de probleme.

    http://www.cs.utt.ro/~cami/sda/sda/l1.html

    imi dau seama ca iti e greu sa cauti sau sa rezolvi singur problema, insa daca astepti sa iti pice para o sa te descurci cam greu la BAC.

  10. #10
    Junior SiAc reprezinta o cantitate neglijabila
    Data de inscriere
    14-02-2009
    Varsta
    32
    Sex
    M
    Mesaje
    59
    Mesaje bazar
    101
    Putere Reputatie
    31
    Reputatie
    10
    Puncte CF
    1.5
    nu e pentru bac deci informatica pentru bac stiu dar problema asta mia pus capac ! e imposibila.. credema! incearca sa o faci sa vezi ....
    Girlatahauuu!!!

  11. #11
    Junior SiAc reprezinta o cantitate neglijabila
    Data de inscriere
    14-02-2009
    Varsta
    32
    Sex
    M
    Mesaje
    59
    Mesaje bazar
    101
    Putere Reputatie
    31
    Reputatie
    10
    Puncte CF
    1.5
    sa inteleg ca nu ia dat nimeni de cap? doamne ce aiurea e...

    chiar nimeni nu mai stie back???
    Girlatahauuu!!!

  12. #12
    Junior SiAc reprezinta o cantitate neglijabila
    Data de inscriere
    14-02-2009
    Varsta
    32
    Sex
    M
    Mesaje
    59
    Mesaje bazar
    101
    Putere Reputatie
    31
    Reputatie
    10
    Puncte CF
    1.5
    deci!

    am incercat sa rezolv cerinta 1) si mi-a ieshit :

    type stiva=array[1..10] of integer;

    var st,ver,poz:stiva;
    m,n,j,i:integer;

    procedure init(l:integer);
    begin
    for m:=1 to n do
    begin
    st[m]:=0;
    poz[m]:=0;
    ver[m]:=0;
    end;
    st[1]:=l;
    poz[l]:=1;
    ver[l]:=1;
    end;

    procedure tipar;
    begin
    for i:=1 to n do
    write(st[i],' ');writeln;
    end;

    function valid(k,t:integer):boolean;
    begin
    valid:=false;
    if

    (st[k]+1<>t) and
    (st[k]-1<>t) and
    {(poz[i]-poz[i-1]<3) and
    (poz[i]-poz[i+1]>-3) and
    (poz[i]-poz[i+1]<3) and
    (poz[i]-poz[i-1]>-3) and}
    (ver[t]<>1) then valid:=true;
    end;

    procedure back(k:integer);
    begin
    for i:=1 to n do
    begin

    if k=10 then tipar
    else if valid(k,i) then begin
    st[k+1]:=i;
    poz[i]:=k+1;
    ver[i]:=1;
    back(k+1);
    end;

    end;
    end;
    begin
    write('N=');readln(n);

    for j:=1 to n do
    begin
    init(j);
    back(1);
    end;
    readln;
    end.

    Problema e ca nu merge bine adik imi face prima solutie si dupa se strica treaba daca ma poate ajuta cineva va rog frumos !!!
    Girlatahauuu!!!
    Vrei mai putine reclame? Inregistreaza-te sau logheaza-te

Google+

Cautati logo-ul CraiovaForum?

Iata cateva variante: