Scrigroup - Documente si articole

Username / Parola inexistente      

Home Documente Upload Resurse Alte limbi doc  

CATEGORII DOCUMENTE





AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Probleme cu algoritmi si cheme logice

algoritmi

+ Font mai mare | - Font mai mic







DOCUMENTE SIMILARE

Trimite pe Messenger
REPREZENTAREA SI PRELUCRAREA INFORMATIEI IN CALCULATOARELE NUMERICE
Evaluarea corectitudinii algoritmilor
Proiect ASDN - Algoritmul de minimizare Karnaugh
PROIECT ASDN - Sinteza unui ceas electronic desteptator
Texte pagina webAnaliza si sinteza sistemelor numerice - proiect
Algoritmi semnatura digitala
Limbaje de prezentare a algoritmilor ( pseudocod )
Tehnici de programare
Shell-ul ca limbaj de programare
Tipuri de limbaje de programare

Probleme

Problema nr. 1

Sa se prezinte sub forma de chema logica si instructiunea unui limbaj de programare sau pseudocod un algoritm eficient care sa determine pentru o matrice de n linii si m coloane a carei elemente se citesc de la tastatura urmatoarele:



a) media aritmetica a elementelor de pe fiecare linie

b) media aritmetica a elementelor de pe fiecare coloana

c) valoarea elem. maxim si locul in care acesta se afla de pe fiecare linie

d) valoarea elem. maxim si locul in care acesta se afla de pe fiecare coloana

e) valoarea elem. minim si locul in care acesta se afla de pe fiecare linie

f) valoarea elem. minim si locul in care acesta se afla de pe fiecare coloana

g) elementul maxim la nivel de matrice

h) elementul minim la nivel de matrice

program matricea_de_la_curs;

type matrice=array[1..20,1..20] of integer;

var a:matrice;

    max,max2,min,min2,w,z,i,p,maa,m,n,d,e,f,g,minn,maxx,j,s,ma,x,y:integer;

begin

  writeln('dati nr de linii si nr de coloane');

  write('n=');

  readln(n);

  write('m=');

  readln(m);

  for i:=1 to n do

    for j:=1 to m do

       begin

          writeln('a[',i,',',j,']=');

          read(a[i,j]);

       end;

a) for i:=1 to n do

    begin

     s:=0;

     for j:=1 to m do

        s:=s+a[i,j];

     ma:=(s div m);

     writeln('media aritmetica pe linia ',i ,'=',ma);

     readln;

    end;

b) for j:=1 to m do

    begin

      p:=0;

      for i:=1 to n do

        p:=p+a[i,j];

      maa:=(p div n);

      writeln('media aritmetica pe coloana ',j,'= ',maa);

      readln;

    end;

c)  for i:=1 to n do

    begin

     max:=-3200;

     for j:=1 to m do

         if a[i,j]>max then

                           begin

                             max:=a[i,j];

                             x:=j;

                           end;

     writeln('maximul liniei ',i,' este elementul a[',i,',',x,'] si este egal cu ',max);

     readln;

    end;

d)  for j:=1 to m do

    begin

     max2:=-3200;

     for i:=1 to n do

         if a[i,j]>max2 then

                              begin

                                 max2:=a[i,j];

                                 y:=i;

                              end;

     writeln('maximul coloanei ',j,' este elementul a[',y,',',j,'] si este egal cu ',max2);

     readln;

    end;

e)  for i:=1 to n do

    begin

     min:=3200;

     for j:=1 to m do

         if a[i,j]<min then

                           begin

                             min:=a[i,j];

                             w:=j;

                           end;

     writeln('minimul liniei ',i,' este elementul a[',i,',',w,'] si este egal cu ',min);

     readln;

    end;

f)  for j:=1 to m do

    begin

     min2:=3200;

     for i:=1 to n do

         if a[i,j]<min2 then

                              begin

                                 min2:=a[i,j];

                                 z:=i;

                              end;

     writeln('minimul coloanei ',j,' este elementul a[',z,',',j,'] si este egal cu ',min2);

     readln;

    end;

g)  maxx:=-3200;

  minn:=3200;

  for i:=1 to n do

    for j:=1 to m do

      if a[i,j]>maxx then

                       begin

                          maxx:=a[i,j];

                          d:=i;

                          e:=j;

                       end;

h)  for i:=1 to n do

    for j:=1 to m do

       if a[i,j]<minn then

                         begin

                            minn:=a[i,j];

                            f:=i;

                            g:=j;

                         end;

  writeln('elementul maxim al matricei este a[',d,',',e,']=',maxx);

  writeln('elementul minim al matricei este a[',f,',',g,']=',minn);

  readln;

end.

SCHEMA LOGICA:

Problema nr. 2

Se da un vector cu n elemente numere intregi. Sa se mute la sfarsitul vectorului elementele sale nule pastrand ordinea celorlalte elemente.

program ddd;

type vector=array[1..20] of integer;

var v:vector;

    n,i,j,k:integer;

begin

  write('dati numarul de elemente');

  readln(n);

  for i:=1 to n do

     begin

      write('v[',i,']=');

      readln(v[i]);

     end;

  for i:=1 to n-1 do

     for j:=i+1 to n do

        if v[i]=0 then

           begin

               k:=v[i];

               v[i]:=v[j];

               v[j]:=k;

           end;

  for i:=1 to n do

    writeln('v[',i,']=',v[i]);

  readln;

end.

SCHEMA LOGICA:



Problema nr. 3

Sa se realizeze un program pentru evaluarea expresiei:

         

                 A +B, daca C≥0

E=

                A-B, daca C<0                          

          Analizand problema data, se observa ca datele de intrare sunt A, B si C. Algoritmul va testa pe C, si, in functie de valoarea sa, va calcula pe E fie ca A+B, fie ca A-B.

program prg2_pagina_187;

var a,b,c:integer;

        e:real;

begin

write('Introduceti valoarea pentru a= ');read(a);

write('Introduceti valoarea pentru b= ');read(b);

write('Introduceti valoarea pentru c= ');read(c);

e:=0;

if (c<0) then e:=(a*a)-b

              else

                  if (c=0) then e:=sqrt((a*a)-b)

                                else e:=(1/(a*a))-b;

write('E:= ',e:8:2);

readln;

end.

SCHEMA LOGICA:

Problema nr. 4

Sa se verifice daca 2 numere sunt prietene

Doua numere sunt prieten daca primul numar este = cu suma divizorilor celui de-al doilea mai putin el insusi si cel de-al doilea este egal cu suma divizorilor primului numar mai putin el insusi

n=220 1+2+4+5+10+11+20+22+44+55+110

m=284 1+2+4+71+142

s1 = suma divizorilor lui n mai putin el insusi

s2 = suma divizorilor lui m mai putin el insusi

n si m prietene daca s1=m si s2=n

program lalala;

var m,n,s1,s2,i:integer;

begin

  write('n=');

  readln(n);

  write('m=');

  readln(m);

  for i:=1 to n-1 do

    if n mod i=0 then s1:=s1+i;

  for i:=1 to m-1 do

    if m mod i=0 then s2:=s2+i;

    if (s1=m) and (s2=n) then writeln('aceste doua numere sunt prietene')

                         else writeln('din pacate nu sunt prietene');

  readln;

  end.

SCHEMA LOGICA:

Probleme de logica:

Problema nr. 5:

In aceasta vara, batranul Trica a murit, lasand proprietatile sale ca mostenire nepotului sau Andi, prietenul meu. El a mostenit si castelul Towertia, bantuit de fantome. Incepand cu ora 12 noaptea pana dimineata se aud in tot castelul doua zgomote descifrabile: un cantat duios la vioara si un ras puternic. Andi a observat anumite obiceiuri:

-         cand el canta la pian si fantoma nu rade, fantoma care canta la vioara isi schimba activitatea (daca canta-tace, daca tacea-canta); altfel ea face in fiecare minut ce facea in cel precedent;

-         cand fereastra este inchisa fantoma care rade face ce facea cealalta fantoma in minutul precedent (rade daca cealalta canta, tace daca cealalta tacea);

-         cand fereastra este deschisa, fantoma care rade face opusul la ceea ce cealalta facea in minutul precedent.

Andi vrea sa stie cum sa scape de fantome (sa le faca sa taca)!

Rezolvare:

-         3: cand fereastra este deschisa, fantoma care rade face opusul la ceea ce cealalta facea in minutul precedent.

-         1: cand el canta la pian si fantoma nu rade, fantoma care canta la vioara isi schimba activitatea (daca canta-tace, daca tacea-canta); altfel ea face in fiecare minut ce facea in cel precedent;




-         2: cand fereastra este inchisa fantoma care rade face ce facea cealalta fantoma in minutul precedent (rade daca cealalta canta, tace daca cealalta tacea)

Problema nr. 6

Duminica, Marius si Radu au fost sa vada la hipodrom cursa de cai. Mai intai s-au dus sa vada caii. Au facut pariuri pe primele cinci locuri.

Radu a crezut astfel:

1)    Doodoo; 2) Azur; 3) Elfy; 4)Candy; 5) Emily.

Marius a pariat astfel:

1)    Azur; 2) Emily; 3)Candy; 4)Doodoo; 5) Elfy

Rezultatele au aratat ca nici unul nu a castigat:

1)Marius nu a ghicit locul nici unui cal

2)Marius nu a ghicit nici macar ordinea a cate doi cai unul dupa altul

Radu a fost mai aproape de realitate:

          3)A ghicit locurile a doi cai;

          4)A ghicit ordinea finala a doua perechi de cai unul dupa altul.

Care a fost rezultatul ?

1

2

3

4

5

Radu

Doodoo

Azur

Elfy

Candy

Emily

Marius

Azur

Emily

Candy

Doodoo

Elfy

Urmarind tabelul de mai sus putem afirma ca:

Pe locul I nu va fi Doodoo sau Azur

Pe locul II nu va fi Emily

Pe locul III nu va fi Candy

Pe locul IV nu va fi Doodoo

Pe locul V nu va fi Elfy


Deci Doodoo poate fi pe locurile II sau V.

Ordinea este:

1

2

3

4

5

Elfy

Doodoo

Azur

Candy

Emily

Problema nr. 7

Un batranel se duce la piata (mai bine statea acasa) sa vanda niste oua. Un tanar neatent l-a imbrancit si cosul a cazut spargand ouale. vinovatul vrand sa isi rascumpere greseala l-a intrebat :

 -Cate oua au fost in cos?

 -Nu-mi aduc aminte, dar stiu ca daca le scoteam cate 2,cate 3,cate 4,cate 5 sau cate 6, in cos ramanea mereu un singur ou, iar daca le scoteam cate 7 , nu ramanea nici unul.

Dupa cateva minute de gandire, tanarul a calculat cate oua erau.

Tu poti gasi numarul de oua din cos?

Rezolvare:

-         batranelul spune ca daca scotea ouale cate 7 nu mai ramanea nici un ou un cos de unde tragem concluzia ca numarul oualor trebuie sa fie un multiplu de 7

-         mai spune ca daca le scotea cate 2,cate 3,cate 4,cate 5 sau cate 6, in cos ramanea mereu un singur ou de unde rezulta ca din numarul care este multiplu de 7 daca scadem 1 trebuie sa ramana un numar care sa fie divizibil si cu 2 si cu 3 si cu 4 si cu 5 si cu 6

-         deci cautam un numar care sa aibe ultima cifra 1 sau 6

-         astfel 7, 14 sunt excluse

-         incercam 21:7=3

                     21-1=20:2=10

                               20:3 nu este divizibil

-     cautam in continuare

-     28, 35, 42, 49 sunt excluse

-     verificam 56:7=8

                       56-1=55:2 nu este divizibil

-     63, 70, 77, 84 sunt excluse

-     continuam cu 91:7=13

                             91-1=90:2=45

                                           :3=30

                                           :4=25

                                           :5=18

                                           :6=15

Rezulta ca batranelul avea in cos exact 91 de oua.








Politica de confidentialitate

DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 2058
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2019 . All rights reserved

Distribuie URL

Adauga cod HTML in site