Sunteți pe pagina 1din 16

Introducere

Un algoritm este o metod de rezolvare a unei probleme printr-un numr finit de pai. Printr-un
pas se nelege o operaie executabil de ctre un operator. Putem spune c un algoritm seamn cu un
proces de calcul (un complex de operaii) cu o reet. !u orice proces de calcul este un algoritm.
Un program de calculator este un complex de instruciuni scrise ntr-un anumit limba" numit limba" de
programare ce transcriu operaiile dintr-un algoritm pentru operator. #nstruciunile unui limba" de
programare trebui s fie neles at$t pentru programator c$t i pentru operator.
Proprietile algoritmilor
generalitatea (pentru rezolvarea mai multor probleme din aceeai sfer)
finitudinea
determinismul (s cuprind toate cazurile posibile)
unicitatea (la aceleai intrri s obin aceleai ieiri dar prelucrarea s fie unic)
claritatea%precizia (la orice operaie executat s se tie ce operaie urmeaz)
&in punct de vedere structural un algoritm cuprinde urm. etape'
iniializarea
prelucrarea
furnizarea rezultatelor
Un algoritm are ( sau mai multe date de intrare. )ceste date se mai numesc i date iniiale.
*peratori logici' )!& *+ !*, - . .-
)lgoritmii n principal cei pentru prelucrarea datelor pot fi exprimai n diferite modaliti' text
liber pseudocod sc/em logic limba" de programare. )lgoritmii sunt n special pentru prelucrare
automat a datelor.
constante
variabile
Prezentarea unui algoritm'
text
sc/em logic
pseudocod
limba" de programare
0tructuri de date
*rganizare datelor este un proces cu urm. activiti'
identificarea datelor
clasificarea i descrierea proprietilor sau caracteristicile datelor
gruparea datelor n colecii de date destinate prelucrrii
reprezentarea extern pe suportul te/nic al datelor
identificarea definirea i descrierea procedurilor de preluare i stocare a datelor
1n calculator datele sunt memorate pe supori de memorie extern sub forma unor colecii de date
uniform structurate numite fiiere. *rganizarea uniform se face prin nregistrri. &e regul toate
nregistrrile dintr-un fiier n aceeai zon' gsim acelai tip de dat. 2odalitatea structurrii
nregistrrilor o tie doar programatorul n cazul unui fiier. ,abela este un fiier care conine colecii de
date dar i structura nregistrrilor.
1n funcie de obiectele pe care le reprezint datele se clasific'
date elementare sau scalare (entiti indivizibile)
colecii de date (mulime de date elementare ntre care se definesc i se descriu anumit relaii)
#. &atele elementare pot fi tratate sub 3 aspecte'
!ivelul fizic ce corespunde modului de organizare i reprezentare intern a datelor. * dat
elementar se memoreaz ntr-o zon de memorie situat la o anumit adres. 4a poate conine date
numerice alfanumerice sau de un tip declarat fiind reprezentate n cod binar. 1n acest caz cea mai mic
unitate de adresare fiind bitul.
!ivelul logic ce corespunde modului de organizare i prelucrare a datelor de ctre utilizatori.
Pentru identificarea unic a datelor utilizatorul va specifica pentru fiecare urm. elemente'
identificatorul de dat sau numele asociat datei.
mulimea valorilor pe care le poate lua data respectiv n procesul prelucrrii.
verificarea ncadrrii n domeniul de valori (modelele de validare)
atribute' tipul datei (numeric simpl vector...) precizia de reprezentare intern a datei (pentru
numere reale exist reprezentare cu simpl sau dubl precizie) alte caracteristici (alinierea
modalitatea de alocare a memoriei asociate datei...)
##. 0e numete structur de date o colecie de date pentru s-a definit un mecanism de selectare i
identificare a componentelor. Pe baza acestor mecanisme sau n ele se pot introduce relaii care s
asigure ordonarea datelor dup criteriile dorite i s faciliteze n acest mod prelucrarea lor. 1ntre date
exist relaii ce se pot grupa n 3 categorii'
)partenena datelor la entitate.
5egturile dintre entitile de acelai tip sau de tipuri diferite
&in alt punct de vedere o structur de date poate fi'
0ecvenial (localizarea unei componente se face prin parcurgerea tuturor componentelor care se
afl naintea sa n ordinea existent)
6u acces direct (dac o component din structur poate fi localizat fr a ine cont de celelalte
componente)
6omponentele unei structuri date pot fi'
&ate elementare
0tructuri de date
&up tipul componentelor structurile se pot grupa n'
structuri de date omogene (conin componente de acelai tip)
structuri de date eterogene (cu componente de tipuri diferite)
5a fel ca i datele elementare structuri de date pot fi reprezentate at$t n memoria intern c$t i n
memoria extern'
fiierul (colecie de date uniform structurat pe baza unor elemente de structur numite
nregistrri)
baz de date (colecie de fiiere i tabele mpreun cu un mecanism de gestionarea lor numit
sistem de gestiune a bazelor de date- 078&)
banca de date (o colecie de baze de date mpreun cu toate elementele implicate n gestionarea
ei const$nd n ec/ipamente module soft for de munc suport financiar...)
&in punct de vedere a modului de alocare a zonelor de memorie'
structuri de date statice (alocarea zonei de memorie se face n momentul compilrii i nu se
sc/imb)
structurile de date dinamice (alocarea zonei de memorie se face numai n momentul executrii
modulului care utilizeaz aceasta aceste zone put$nd fi modificate eliberate realocate pe toat
durata de execuie a programului respectiv).
0e numete tip de structur o mulime ordonat de date ntre care s-a stabilit o relaie (sau mai
multe) i care folosete pentru realizarea operaiilor specifice structurii un grup de operatori de baz cu
o anumit semantic.
!oiuni privind limba"ele de programare
5imba" de programare 9 este un ansamblu de simboluri cuvinte instruciuni si semnificaii
atribuite acestora utilizat pentru descrierea algoritmilor inteligibil(accesibil) at$t operatorului uman cit
si executantului. ,ranscrierea unui algoritm este un program. Programul este o succesiune de
instruciuni aparin$nd unui limba" de programare prin care se descriu operaiile si ordinea de executare
a acestora pentru rezolvarea automata a unei probleme date(pentru transcrierea unui algoritm).
)vem mai multe tipuri de limba"e de programare'
5imba"e procedurale(limba"e universale) 9 deoarece nu sunt limitate la un anumit tip de
probleme
078&
5imba"e de programare pe obiecte (orientate spre obiecte)
*rice limba" de programare presupune definirea urmtoarelor'
)lfabetul
7ramatica
:ocabularul
Punctuaia
0emantica
)lfabetul 9 mulimea caracterelor alfabetice numerice speciale.
:ocabularul 9 dat de totalitatea cuvintelor folosite de limba"ul de programare
6uvintele pot fi'
;. cuvinte rezervate 9 acestea au o semnificaie prestabilita pentru limba"ul de
programare(funcii proceduri etc.) 6uvintele rezervate se mai numesc si cuvinte c/eie.
)tunci c$nd sunt obligatorii in cadrul unor elemente de limba" (instruciuni pri ale
programului). )numite limba"e mai utilizeaz si cuvinte rezervate opionale.
3. cuvinte utilizator - sunt de fapt identificatorii(nume pentru constante variabile fiiere
proceduri etc.) cuvintele utilizator trebuie sa respecte anumite reguli de constituire cum ar fi
sa nceap cu o litera sa nu conin anumite caractere speciale fiecare limba" precizeaz de
regula ce caractere pot sa conin identificatorii. 0pre exemplu' !+<6+, nu !+-6+,.
7ramatica - cuprinde sintaxa si morfologia
;. sintaxa - metoda de formare a propoziiilor si frazelor instruciunilor
3. morfologia cuprinde ansamblul regulilor de modificare a formei cuvintelor.
Punctuaia - reprezint un ansamblu de reguli privind utilizarea semnelor speciale numite 9 de
punctuaie conform prevederilor din sintaxa.
0emantica 9 definete sensul atribuit cuvintelor si instruciunilor. #n general prima forma a unui
program este obinuta prin intermediul unui modul al limba"ului de programare numit 4&#,*+ 9
program sursa. Unele limba"e de programare accepta si alte editoare pentru realizarea
programelor sursa.
*bservaie ' marea ma"oritate a programelor surse sunt sub forma unui fiier text. &e la
programul sursa pentru executarea unui program se trece la o forma mult mai apropiata de sistemul de
operare si de maina pe care se dorete sa se lucreze.
6ompilare 9 procedura soft=are care realizeaz traducerea programului sursa in cod intern
rezult$nd aa zisul program obiect.
4lementele ale limba"ului de programare Pascal.
Pascalul face parte din categoria limba"elor de programare de nivel nalt procedural folosind cu
succes recomandrile date de teoria programrii structurate. * mulime ordonata de instruciuni asociate
unui algoritm de programare accesibile unui operator. #nstruciunea reprezint exprimarea in forma
riguroasa impusa de limba"ul de programare a unei operaii si precizeaz funcia sau operaia si
operatorii
0 se determine un algoritm eficient prin care s se preia elementele unei matrice de n linii i m
coloane de numere reale. 0 se determine minimul. maximul pentru fiecare linie i coloan i la nivel de
matrice cu poziiile acestor valori. 0 se determine media elementelor nenule pentru fiecare linie
coloan i la nivel de matrice. *80.' una din condiiile ca algoritmul s fie eficient este ca parcurgerea
elementelor matricei s se fac de c$t mai puine ori. 1n final se vor afia toate rezultatele obinute.
type inreg=record
x,y:integer;
end;
suma=record
s:real;
nr:integer;
end;
var n,m,i,j,t,p,nr:integer;
a:array[1..50,1..50]of real;
po!xl,po!xc,po!nl,po!nc:array[1..50,1..50]of integer;
po!max,po!min:array[1..50]of inreg;
max!l,max!c,min!l,min!c:array[1..50]of real;
nrmax!l,nrmax!c,nrmin!l,nrmin!c,nrmax,nrmin:array[1..50]of integer;
max,min,s:real;
sl,sc:array[1..50]of suma;
"egin
#rite$%nr. linii:%&;readln$n&;
#rite$%nr. coloane:%&;readln$m&;
for i:=1 to n do
for j:=1 to m do "egin #rite$%a[%,i,%,%,j,%]:%&;readln$a[i,j]&;end;
for i:=1 to n do "egin
max!l[i]:=a[i,1];min!l[i]:=a[i,1];
nrmax!l[i]:=1;nrmin!l[i]:=1;
po!xl[i,nrmax!l[i]]:=1;po!nl[i,nrmin!l[i]]:=1;
if a[i,1]'(0 t)en "egin
sl[i].s:=sl[i].s*a[i,1];
sl[i].nr:=sl[i].nr*1
end;
for j:=+ to m do "egin
if max!l[i]'a[i,j] t)en "egin
max!l[i]:=a[i,j];
nrmax!l[i]:=1;
po!xl[i,nrmax!l[i]]:=j
end
else
if max!l[i]=a[i,j] t)en "egin
nrmax!l[i]:=nrmax!l[i]*1;
po!xl[i,nrmax!l[i]]:=j
end;
if min!l[i](a[i,j] t)en "egin
min!l[i]:=a[i,j];
nrmin!l[i]:=1;
po!nl[i,nrmin!l[i]]:=j
end
else
if min!l[i]=a[i,j] t)en "egin
nrmin!l[i]:=nrmin!l[i]*1;
po!nl[i,nrmin!l[i]]:=j
end;
if a[i,j]'(0 t)en "egin
sl[i].s:=sl[i].s*a[i,j];
sl[i].nr:=sl[i].nr*1
end;
end;
end;
for j:=1 to m do "egin
max!c[j]:=a[1,j];min!c[j]:=a[1,j];
nrmax!c[j]:=1;nrmin!c[j]:=1;
po!xc[j,nrmax!c[j]]:=1;po!nc[j,nrmin!c[j]]:=1;
if a[1,j]'(0 t)en "egin
sc[j].s:=sc[j].s*a[1,j];
sc[j].nr:=sc[j].nr*1
end;
for i:=+ to n do "egin
if max!c[j]'a[i,j] t)en "egin
max!c[j]:=a[i,j];
nrmax!c[j]:=1;
po!xc[j,nrmax!c[j]]:=i
end
else
if max!c[j]=a[i,j] t)en "egin
nrmax!c[j]:=nrmax!c[j]*1;
po!xc[j,nrmax!c[j]]:=i
end;
if min!c[j](a[i,j] t)en "egin
min!c[j]:=a[i,j];
nrmin!c[j]:=1;
po!nc[j,nrmin!c[j]]:=i
end
else
if min!c[j]=a[i,j] t)en "egin
nrmin!c[j]:=nrmin!c[j]*1;
po!nc[j,nrmin!c[j]]:=i
end;
if a[i,j]'(0 t)en "egin
sc[j].s:=sc[j].s*a[i,j];
sc[j].nr:=sc[j].nr*1
end;
end;
end;
max:=max!l[1];
min:=min!l[1];
for i:=+ to n do "egin
if max'max!l[i] t)en
max:=max!l[i];
if min(min!l[i] t)en
min:=min!l[i];
end;
t:=0;p:=0;
for i:=1 to n do
if max=max!l[i] t)en
for j:=1 to nrmax!l[i] do "egin
t:=t*1;
po!max[t].x:=i;
po!max[t].y:=po!xl[i,j]
end;
for i:=1 to n do
if min=min!l[i] t)en
for j:=1 to nrmin!l[i] do "egin
p:=p*1;
po!min[p].x:=i;
po!min[p].y:=po!nl[i,j]
end;
for i:=1 to n do "egin
#riteln$%maximul pe linia '%,i,%( este:%,max!l[i]:5:+,% ,, minimul pe linia
'%,i,%( este:%,min!l[i]:5:+&;
#rite$%poitiile maximului: %&;
for j:=1 to nrmax!l[i] do
if po!xl[i,j]'(0 t)en
#rite$po!xl[i,j],% %&;
#rite$%,, poitiile minimului: %&;
for j:=1 to nrmin!l[i] do
if po!nl[i,j]'(0 t)en
#rite$po!nl[i,j],% %&;
end;
for i:=1 to m do "egin
#riteln$%maximul pe coloana '%,i,%( este:%,max!c[i]:5:+,% ,, minimul pe coloana
'%,i,%( este:%,min!c[i]:5:+&;
#rite$%poitiile maximului: %&;
for j:=1 to nrmax!c[i] do
if po!xc[i,j]'(0 t)en
#rite$po!xc[i,j],% %&;
#rite$%,, poitiile minimului: %&;
for j:=1 to nrmin!c[i] do
if po!nc[i,j]'(0 t)en
#rite$po!nc[i,j],% %&;
end;
#riteln$%maximul pe matrice:%,max:5:+&;
#rite$%poitiile maximului: %&;
for i:=1 to t-1 do
#rite$po!max[i].x,% %,po!max[i].y,%,%&;
#rite$po!max[t].x,% %,po!max[t].y&;
#riteln$%minimul pe matrice:%,min:5:+&;
#rite$%poitiile minimului: %&;
for i:=1 to p-1 do
#rite$po!min[i].x,% %,po!min[i].y,%,%&;
#rite$po!min[p].x,% %,po!min[p].y&;
s:=0;nr:=0;
for i:=1 to n do
if sl[i].s'(0 t)en "egin
#riteln$%media pe linia '%,i,%( este:%,sl[i].s,sl[i].nr:5:+&;
s:=s*sl[i].s;
nr:=nr*sl[i].nr
end
else
#riteln$%nu exista elemente nenule pe linia '%,i,%(%&;
for i:=1 to m do
if sc[i].s'(0 t)en
#riteln$%media pe coloana '%,i,%( este:%,sc[i].s,sc[i].nr:5:+&
else
if s'(0 t)en #riteln$%media elem nenule pe matrice este:%,s,n:.:+&
else
#riteln$%nu exista elemente nenule in matrice%&;
readln
end.
0e citesc de la tastatur 3 vectori v; de >n? elemente i v3 de >m? elemente. 0 se fac un
algoritm eficient i structurat reprezentat printr-o sc/em logic i limba" de programare 6are s rezolve
urmtoarele operaii' sortarea vectorul v; prin intersc/imbare (metoda bulelor) sortarea vectorului v3
prin metoda seleciei (minim maxim i locurile lor). #nterclasarea celor 3 vectori i afiarea at$t a
vectorului v@ rezultat c$t i a poziiilor iniiale pentru fiecare valoare a acestuia n vectorii de
provenien v; v3. dup memorarea acestora. 0 se afieze de asemenea vectorul v; n forma iniial i
forma ordonat i v3 la fel.
type vector=record
n,o,v,p:integer;
end;
var v1,v+,v/:array[1..50]of vector;
n,m,i,j,0,x,p,u,tmp,min,max,nrmin,nrmax:integer;
o0:"oolean;
pomax,pomin:array[1..50]of integer;
"egin
#rite$%nr elemente v1:%&;readln$n&;
for i:=1 to n do "egin
#rite$%v1[%,i,%]=%&;readln$v1[i].n&;
v1[i].o:=v1[i].n;v1[i].p:=i
end;
#rite$%nr elemente v+:%&;readln$m&;
for j:=1 to m do "egin
#rite$%v+[%,j,%]=%&;readln$v+[j].n&;
v+[j].o:=v+[j].n;v+[j].p:=j
end;
o0:=true;
#)ile o0'(false do "egin
o0:=false;
for i:=1 to n-1 do
if v1[i].n(v1[i*1].n t)en "egin
tmp:=v1[i].n;
v1[i].n:=v1[i*1].n;
v1[i*1].n:=tmp;
o0:=true
end
end;
p:=1;u:=m;
#)ile $p'u& do "egin
for i:=p*1 to u do
if min(v+[i].n t)en "egin
min:=v+[i].n;
nrmin:=1;
pomin[nrmin]:=i
end
else if min=v+[i].n t)en "egin
nrmin:=nrmin*1;
pomin[nrmin]:=i
end;
j:=1;
for i:=p to p*nrmin-1 do "egin
tmp:=v+[i].n;
v+[i].n:=v+[pomin[j]].n;
v+[pomin[j]].n:=tmp;
j:=j*1
end;
p:=p*nrmin;
max:=v+[p].n;nrmax:=1;pomax[nrmax]:=p;
for i:=p*1 to u do
if max'v+[i].n t)en "egin
max:=v+[i].n;
nrmax:=1;
pomax[nrmax]:=i
end
else if max=v+[i].n t)en "egin
nrmax:=nrmax*1;
pomax[nrmax]:=i
end;
j:=nrmax;
for i:=u do#nto u-nrmax*1 do "egin
tmp:=v+[i].n;
v+[i].n:=v+[pomax[j]].n;
v+[pomax[j]].n:=tmp;
j:=j-1 end;
u:=u-nrmax;
end;
0:=0;i:=1;j:=1;
#)ile $i'=n&and$j'=m& do "egin
0:=0*1;
if v1[i].n'v+[j].n t)en "egin
v/[0].n:=v1[i].n;
v/[0].p:=i;v/[0].v:=1;
i:=i*1
end
else
"egin
v/[0].n:=v+[j].n;
v/[0].p:=j;v/[0].v:=+;
j:=j*1
end
end;
if i(m t)en
for tmp:=j to m do "egin
0:=0*1;v/[0].n:=v+[tmp].n;
v/[0].p:=tmp;v/[0].v:=+;
end
else
for tmp:=i to n do "egin
0:=0*1;v/[0].n:=v1[tmp].n;
v/[0].p:=tmp;v/[0].v:=1;
end;
#rite$%v1 ordonat : %&;
for i:=1 to n do #rite$v1[i].n,% %&;
#riteln;#rite$%v1 initial : %&;
for i:=1 to n do #rite$v1[i].o,% %&;
#rite$%v+ ordonat : %&;
for i:=1 to m do #rite$v+[i].n,% %&;
#riteln;#rite$%v+ initial : %&;
for i:=1 to m do #rite$v+[i].o,% %&;
#rite$%v/ ordonat : %&;
for i:=1 to 0 do #rite$v/[i].n,% %&;
for i:=1 to 0 do #riteln$%elementul [%,i,%] din v/ se afla in vectorul
''v%,v/[i].v,%(( pe poitia [%,v/[i].p,%]%&;
readln
end.
Problema 3.
0 se calculeze suma elementelor de rang impar ale unui vector de dimensiune n dat.
4lementele vectorului sunt numere reale i se introduc de la tastatur.
cod
var x:array[1..100]of real;
n,i:"yte;
s:real;
"egin
#rite$%dimensiunea vectorului %&;readln$n&;
for i:=1 to n do "egin
#rite$%x[%,i,%]=%&;readln$x[i]& end;
s:=0;
for i:=1 to n do
if odd$i& t)en s:=s*x[i];
#riteln$%suma = %,s:10:+&
end.
sc)ema logic1
START
citeste n
citeste x[i], i=1,n
s=0
i=1
i<=n
i=impar
s=s+x[i]
i=i+1
DA NU
scrie s
STOP
DA
Problema 4
&eterminarea ultimei apariii a unei valori date ntr-un vector neordonat de dimensiune n.
cod
var x:array[1..100]of real;
n,i,po:"yte;
a:real;
"egin
#rite$%dimensiunea vectorului %&;readln$n&;
for i:=1 to n do "egin
#rite$%x[%,i,%]=%&;readln$x[i]& end;
#rite$%valoarea cautata %&;readln$a&;
po:=0;
for i:=1 to n do
if x[i]=a t)en po:=i;
if po'(0 t)en #riteln$%poitia = %,po&
else #riteln$%valoare negasita%&
end.
sc)ema logic1
START
citeste n,v
citeste x[i], i=1,n
po!=0
i!=1
i=n
x[i]=v
po!=i
i=i+1
po=0
scrie po scrie "n# exista"
STOP
DA
NU DA
Problema 5
&eterminarea elementului maxim dintr-un vector i a tuturor apariiilor sale.
cod
var x:array[1..100]of real;
po:array[1..100]of "yte;
n,i,po:"yte;
max:real;
"egin
#rite$%dimensiunea vectorului %&;readln$n&;
for i:=1 to n do "egin
#rite$%x[%,i,%]=%&;readln$x[i]& end;
max:=x[1];0:=1;po[0]:=1;
for i:=+ to n do
if x[i](max t)en "egin max:=x[i];0:=1;po[0]:=i end
else if x[i]=max t)en "egin 0:=0*1;po[0]:=i end;
#rite$%maximul este %,max:10:+,% pe poitiile %&;
for i:=1 to 0 do #rite$po[i],% %&
end.
sc)ema logic1
START
citeste n
citeste x[i], i=1,n
max!=x[1]$
%!=1$
po[%]!=1$
i!=&
i<=n
%!=%+1
po[%]!=i$
max!=x[i]$
%!=1
po[%]!=i$
x[i]'max
x[i]=max
i=i+1
scrie "maxim#( este",max,"pe poitii(e",po[i],i=1,%
STOP
DA
DA NU
DA NU NU
Problema 6
0uma elementelor unei matrice dreptung/iulare de dimensiune mAn.
cod
var a:array[1..10,1..+0]of real;
m,n,i,j:"yte;
s:real;
"egin
#riteln$%nr linii%&;readln$m&;
#riteln$%nr coloane%&;readln$n&;
for i:=1 to m do
for i:=1 to n do "egin #rite$%a[%,i,%,%,j,]=%&; readln$a[i,j]& end;
s:=0;
for i:=1 to m do for j:=1 to n do s:=s*1a[i,j];
#riteln$%suma%,s&
end.
sc/ema logic
START
citeste m
citeste a[i,)]$ i=1,m$ )=1,n
citeste n
scrie "nr co(oane"
scrie "nr* (inii"
s!=0
i=1
i<=m
)=1
)<=n
s!=s+a[i,)]
)!=)+1
i=i+1
scrie "s#ma=",s
STOP
DA
NU
DA
NU
Problema 7
&eterminarea elementelor maxim i minim dintr-o matrice dreptung/iulara de dimensiune mAn.
cod
var a:array[1..10,1..+0]of real;
m,n,i,j:"yte;
min,max:real;
"egin
#riteln$%nr linii%&;readln$m&;
#riteln$%nr coloane%&;readln$n&;
for i:=1 to m do
for i:=1 to n do "egin #rite$%a[%,i,%,%,j,]=%&; readln$a[i,j]& end;
max:=a[1,1];min:=max;
for i:=1 to m do
for j:=1 to n do
if a[i,j](max t)en max:=a[i,j]
else if a[i,j]'min t)en min:=a[i,j];
#riteln$%maximul=%,max:10:+&;
#riteln$%minimul=%,min:10:+&
end.
sc/ema logic
START
citeste m
citeste a[i,)]$ i=1,m$ )=1,n
citeste n
scrie "nr co(oane"
scrie "nr* (inii"
max!=a[1,1]$
min!=max$
i!=1$
i<=m
)=1
)<=n
a[i,)]'max
a[i,)]<min max!=a[i,)]
min!=a[i,)]
)=)+1
i=i+1 scrie max,min
STOP
DA
NU
DA
DA
DA
NU
NU
NU
Problema 8
5a o petrecere ntre prieteni )lin sugereaz s-l sune la telefon pe 6tlin pentru a participa i el
la acest ... eveniment. )lin a reuit s str$ng urmtoarele informaii'
;. numrul are B cifre
3. a doua "umtate a numrului (ultimile trei cifre) este de Cori mai mare dec$t numrul
format cu cifre de pe poziiile 3 @ C
@. dou cifre (a patra i a cincea) sunt identice
C. a treia cifr este dublul celei de-a doua iar suma acestora este egal cu prima cifr
D. a patra cifr este dublu celei de-a treia sau a doua cifr mrit cu3.
6are este numrul lui 6tlinE
rezolvare
;. B cifre 9 abcdefg
3. efgFCAbcd
@. dFe
C. cF3Ab
D. cGbFa
H. dF3Ac si dF3Gc
&in H. rezulta cF3 dFC. &in @. rezulta eFC. &in C. rezulta bF;. &in D. rezulta aF@. !umarul este
@;3CCfg. &in ;. efgFCAbcd F- efgFCA;3C F- efg F CIH. &eci numarul este @;3CCIH
Problema 9
1ntr-o diminea patru biei 2ircea &an 6osmin si +zvan "ucau fotbal n curtea colii dar
dintr-o greeal mingea a spart un geam. ) aprut directorul colii i a pus o serie de ntrebri la care a
primit urmtoarele raspunsuri'
2ircea ' ;. 4u nu am lovit mingea c$nd s-a spart fereastra.
3. ) fost ideea lui +zvan s "ucam aici.
@. 6osmin este vinovat.
&an ' C. 4u nu am spart nici o fereastr.
D. 6osmin a fcut-o.
H. Joc mult mai bine fotbal dec$t +zvan.
6osmin ' B. !u este vina mea.
K. &ac tiam c va sf$ri aa nu ncepeam "ocul aici.
I. !u am nimic de-a face cu 2ircea.
+zvan ' ;(. !u am fcut nici un ru ferestrei.
;;. ) fost 6osmin.
;3. 6$nd am a"uns aici ei "ucau de"a.
&irectorul pun$nd i alte ntrebri a neles c bieii au spus c$te o minciun. 6ine a spart
fereastra E
rezolvare
6osmin nu a spart fereastra altfel D) i ;;) sunt minciuni i deci C)GH) i ;()G;3) sunt adevrate
ceea ce nseamn c &an i +zvan nu au spart fereastra. 3) este n contradicie cu ;3) care era adevrat
deci 3) este fals =' ;) i @) adevrate. &eci nici 2ircea nu a spart fereastra. 0ingurul rmas este
6osmin dar contradicie cu ipoteza fcut.

S-ar putea să vă placă și