Sunteți pe pagina 1din 13

Informatic clasa a IX-a

ALGORITMI
Un algoritm (cuvntul are la origine numele matematicianului persan Al-Khwarizmi) nseamn
n matematic i informatic o metod sau o procedur de calcul, alctuit din pa ii elementari
necesari pentru rezolvarea unei proleme sau categorii de proleme!
"ele mai importante propriet i ale unui algoritm sunt urmtoarele#
"orectitudinea - este proprietatea algoritmului de a furniza o solu ie corect a prolemei
date!
$eneralitatea - este proprietatea unui algoritm de a rezolva o clas sau categorie de
proleme, i nu doar o singur prolem particular!
"laritatea - proprietatea algoritmului de a descrie cu e%actitate i fr amiguit i pa ii
care treuiesc parcur i n rezolvarea prolemei!
&erificailitatea - proprietate care permite ca fiecare pas s poat fi verificat ntr-un timp
rezonail de ctre om, folosind mi'loace de validare de ncredere!
(ptimalitatea - proprietatea unui algoritm de a se termina dup un numr minim de pa i!
)initudinea - este proprietatea algoritmului de a se termina ntr-un numr finit de pa i!
*ficien a - este proprietatea unui algoritm de a se termina nu numai ntr-un numr finit, ci
i +rezonail+ de pa i, chiar dac acesta nu este cel mai mic posiil (nu este optim)!
Etapele rezolvarii unei proleme#
-stailirea cerintelor prolemei
-stailirea datelor de intrare si a datelor de iesire
-stailirea unui rationament general de rezolvare a prolemei
-reprezentarea algoritmului prolemei intr-o forma simpla si clara
-verificarea rationamentului pentru valori concrete
-implementarea algoritmului intr-un lima' de programare
Notiunile cu care opereaza algoritmii
Algoritmii opereaza cu urmatoarele notiuni#
Un algoritm prelucreaza datele de intrare in scopul otinerii unor rezultate (a
datelor de iesire) utilizand si date intermediare!
,atele sunt valori concrete specifice fiecarei proleme care vor fi retinute de
calculator in anumite zone de memorie!
,imensiunea zonelor de memorie depinde de tipul datelor respective! -ntuitiv, memoria
poate fi reprezentata ca locatii succesive (zone de memorie) identificate prin adrese (numere de
ordine)!
.n program datele apar fie su forma unor constante (valori cunoscute anticipat, care nu se
modifica pe parcursul e%ecutiei), fie su forma de variaile!
/utem defini o variaila ca fiind un nume dat unei zone de memorie!
,atele se caracterizeaza printr-un anumit tip care va determina #
-o anumita multime din care data poate lua valori
- un anumit mod de reprezentare n memoria calculatorului
- o multime de operatori care pot fi aplicati acestor valori!
- tipul unei date determina lungimea zonei de memorie ocupata de acea data! .n general,
lungimea zonei de memorare este dependenta de calculatorul pe care s-a implementat
compilatorul!
0 1 02
Informatic clasa a IX-a
ALGORITMI
,atele se pot clasifica dupa tipul lor in#
"aractere
-ntregi
3eale
4ogice
5ir de caractere
Variabilele: retin date de un tip anume! ( variaila isi poate schima valoarea dar tipul nu! (
variaila pentru a fi prelucrata treuie sa fie declarata (anuntata)! Acest lucru consta de fapt in
precizarea tipului variailei!
Exemplu:
caracter car
intreg a
real ,c
logic %
sir 6
Expresiile # o e%presie este alcatuita din unul sau mai multi operanzi legati intre ei prin
operatori! (peranzii pot fi constante sau variaile!
Exemplu:
7!89:;a
unde 7!7, :, a sunt operanzi iar 9 si ; sunt operatori
Operatori pentru tipuri numerice #
operator semnificatie
9 adunare
- scadere
; inmultire
1 catul impartirii
< restul impartirii
Operatori relationali #
operator semnificatie
= egalitate
>? diferit
? @ai mare
?= @ai mare sau egal
> @ai mic
>= @ai mic sau egal
Operatori logici #
operator semnificatie
A Begatie logica
si 5i logic
sau 5au logic
,atele de tip logic pot avea doua valori # A (adevarat) si ) (fals)
3eguli de compunere a operatorilor logici #
e%presie A e%presie
A )
) A
: 1 02
Informatic clasa a IX-a
ALGORITMI
*%presie0 *%presie: *%presie0 SI *%presie:
A A A
A ) )
) A )
) ) )
*%presie0 *%presie: *%presie0 SAU *%presie:
A A A
A ) A
) A A
) ) )
Programarea structurata a inceput la inceputul anilor CD! *ste un concept cu o importanta
fundamentala in scrierea algoritmilor! -n general, algoritmii se eleoreaza prin utilizarea e%clusiva a
anumitor structuri (liniara, alternativa, repetitiva)! /rin structura se intelege o anumita forma de
iminare a operatiilor cu care lucreaza algoritmii!
Un lima' pseudocod este un ansamlu de convenEii, respectate n mod sistematic, care
definesc operaEiile permise (instrucEiuni) pentru reprezentarea algoritmilor!
4ima'ul pseudocod foloseFte cuvinte cheie preluate din lima'ul natural care descriu
instrucEiunile din algoritm! (dac, atunci, altfel, ct timp, altfel, e%ecut)! Acestea formeaz
vocaularul (le%icul) lima'ului!
3egulile de folosire a cuvintelor cheie pentru formarea instrucEiunilor mpeun cu alte cuvinte
sau simoluri determin sintaxa lima'ului!
STRUTURI !E ONTRO"
#$ STRUTURA "INIARA
/arcurgerea instrucEiunilor n secvenE, n ordinea lor, reprezint o structur liniar (sec%en&ial)!
A. Declararea datelor
%ariabila tip'
4a nceputul oricrui algoritm, vom preciza datele de intrare, datele de ieFire, datele
intermediare, precum Fi tipul lor! .nainte de a utiliza orice variail, se va declara, preciznd numele Fi
tipul ei! ( variail nu poate fi declarat de mai multe ori n acelaFi algoritm!
Exemple#
% realG
c characterG
i ntregG
B.Operaia de citire
cite(te %ariabila#) %ariabila*)+) %ariabilan'
2 1 02
Informatic clasa a IX-a
ALGORITMI
Efect# /rin operaEia de citire (operaEia de intrare) se preiau succesiv valori de la tastatur Fi se
asociaz, n ordine, variailelor specificate!
.Operaia de scriere
scrie expresie#) expresie*)+) expresien'
Efect# (peraEia de scriere (operaEia de ieFire) presupune evaluarea n ordine a e%presiilor
specificate Fi afiFarea pe ecran a valorilor lor pe aceeaFi linie!
D.Operaia de atri!uire
%ariabila expresie'
Efect# se evalueaz e%presia, apoi se atriuie valoarea e%presiei variailei din memrul stng!
Aplica&ii rezol%ate
0! )ie a un numr real, citit de la tastatur, care reprezint lungimea laturii unui cu! 5 se scrie un
algoritm care s calculeze Fi s se afiFeze volumul Fi aria total a cuului!
Date de intrare a realG
Date de ie"ire: & realG
A realG
nceput
citeFte aG
&a;a;aG
scrie Hvolumul cuului este# H, &G
AI;a;aG
scrie Haria cuului este# H, AG
sfrFit
:! ,e ziua lui, Andrei a primit 5 lei Fi ar vrea s-Fi invite colegii la o ngheEat! Jtiind c o ngheEat
cost / lei, s se scrie un algoritm care s calculeze Fi s afiFeze numrul ma%im de colegi pe care
-onel i poate invita Fi suma de ani care i mai rmne lui -onel!
Date de intrare# 5 naturalG
/ naturalG
nr naturalG
Date de ie"ire# rest naturalG
nceput
citeFte 5,/G
nr 51(/90)G 1;/90 pt c Fi Andrei
mnnc ngheEat;1
rest 5<(/90)G
scrie Hnumrul ma%im de invitaEi este#
K,nrG
scrie H5uma rmas este# K, restG
sfrFit
2! )ie % un numr natural format din 8 cifre(%
7
%
2
%
:
%
0
%
D
)! 5 se afiFeze un triunghi format din
cifrele numrului % astfel#
- prima linie (n vf! triunghiului) se va afla cifra din mi'loc %
:!
%
:
7 1 02
Informatic clasa a IX-a
ALGORITMI
- /e linia a doua se vor afla cifrele %
2
%
:
%
0
%
2
%
:
%
0
- a treia linie se vor afla toate cifrele lui % %
7
%
2
%
:
%
0
%
D
Date de intrare# % naturalG
Date de ie"ire# %
7
,%
2
,%
:
,%
0
,%
D
naturalG
nceput
citeFte %G
%
D
%<0DG 1;reEin cifra
unitEilor;1
%%10DG 1;elimin cifra
unitEilor;1
%
0
%<0DG 1;reEin cifra
zecilor;1
%%10DG 1;elimin cifra zecilor;1
%
:
%<0DG 1;reEin cifra sutelor;1
%%10DG 1;elimin cifra sutelor;1
%
2
%<0DG 1;reEin cifra miilor;1
%%10DG 1; elimin cifra miilor, n %
rmne cifra zecilor de mii;1
scrie H H,%
:
G scrie H H,%
2
,%
:,
%
0
G scrie
%,%
2
,%
:
,%
0
,%
D
G
sfrFit
Probleme propuse
0! "e va afiFa urmtorul algoritm pentru valorile citite C Fi :2 #
Date intrare#iesire: a natural, naturalG
nceput
citeFte a,G
aa9G
a-G
aa-G
scrie Ha= K,a, H=K,G
sfrFit
:! "e va afiFa urmtorul algoritm dac se citeFte valoarea#
Date de intrare# a naturalG
Date intermediare# naturalG
Date de ie"ire# c

naturalG
nceput
citeFte aG
a < 0DDG
aLa10DDMG
c;0DD9aG
scrie cG
sfrFit
2! "e valoare va avea variaila a la sfrFitul urmtoarei secvenEe de instrucEiuniN
a, ntregiG
a2G CG
a91:# aa-1:;aG
7! )ie a, ,c Fi d patru variaile reale! "are din urmtoarele instrucEiuni atriuie variailei d
media aritmetic a valorilor variailelor a, Fi cN
a) d(a99c)12G
) da129129c12G
c) da99c12G
d) d(a99c)12-0G
8 1 02
Informatic clasa a IX-a
ALGORITMI
8! 5e consider polinomul P,x-.ax
/
0bx
*
0cx01! 5e citesc valorile a)b)c)1 Fi x
2
! 5 se calculeze
valoarea P,x
2
-$
I! 5e citeFte un numr natural cu e%act trei cifre! 5 se afiFeze suma cifrelor acestui numr!
C! )ie %
0
,%
:
,%
2
,%
7
,

%
8
cinci valori reale! 5crieEi un algoritm care s foloseasc o singur variail
suplimentar pentru a permuta circular valorile celor cinci variaile (e%# 0,:,2,7,8 s devin
:,2,7,8,0)!
O! 5e citeFte un numr ntreg ce reprezint un numr de ore! 5 se afiFeze acest numr n
minute, apoi n secunde!
P! 5 se determine ctul Fi restul mprEirii lui a la b fr a realiza efectiv mprEirea!
0D! )ie a, Fi c trei numere reale, care reprezint lungimile laturilor unui triunghi! 5 se scrie un
algoritm care s calculeze Fi s afiFeze perimetrul Fi aria triunghiului!
00! ( roasc Eestoas parcurge o distanE de , Qilometri n R ore! 5 se scrie un algoritm care
s calculeze Fi s se afiFeze viteza cu care se deplaseaz roasca Eestoas (e%primat n
metri1secund)!
0:! ,oi colegi (&ictor Fi )lorin) pleac simultan din oraFele n care locuiesc, unul ctre cellalt!
Jtiind c distanEa dintre cele : oraFe este ,, c &ictor merge cu viteza v0, iar )lorin merge
cu viteza v: (,,v0,v: numere reale), scrieEi algoritmul care calculeaz dup ct timp se
ntlnesc cei doi colegi Fi la ce distanE de oraFul locuieFte &ictor!
02! )ie A Fi S dou puncte n plan, specificate prin coordonatele lor carteziene! 5 se scrie un
algoritm care s calculeze Fi s afiFeze lungimea segmentului AS!
07! A fost odat un alaur cu I capete! .ntr-o zi )t-)rumos s-a suprat Fi i-a tiat un cap! /este
noapte i-au crescut alte I capete n loc! /e acelaFi gtA A doua zi, )t-)rumos i-a tiat iar un
cap, dar peste noapte alaurul i-au crescut n loc alte I capete!!!Fi tot aFa timp de n zile! .n
cea de-a (n90)-a zi, )t-)rumos s-a plictisit Fi a plecat acas scrieEi un algoritm care citeFte
de la tastatur n, numrul de zile Fi care afiFeaz pe ecran cte capete avea alaurul dup n
zile! ,e e%emplu# pentru n=2, algoritmul va afiFa# ,upa 2 zile alaurul are 08 capete!
((limpiada :DD: cl a &-a)
08! 5 se calculeze ma a dou numere a, reale!
0I! 5e citesc de la tastatur dou numere naturale nenule! 5 se calculeze media aritmetic,
media geometric Fi media armonic a celor : numere!
I 1 02
*$ STRUTURA A"TERNATIV3
dac condiEie atunci
instructiuneT0
altfel
instrucEiuneaT:
sf!dac
Efect:
5e evalueaz e%presia!
,ac valoarea e%presiei este Ade$%rat, atunci se e%ecut instrucEiuneT0!
,ac valoarea e%presiei este &als, se e%ecut instrucEiuneT:!
(servaEii
0! Att ramura atunci, ct Fi pe ramura altfel este permis e%ecutarea unei singure instrucEiuni!
.n cazul n care este necesar efectuarea mai multor operaEii, acestea se grupeaz ntr-o
singur instrucEiune compus!
:! ,ac pe ramura altfel ne este necesar efectuarea nici unei operaEii, aceasta poate lipsi
(structura alternati% cu o ramur %i1)!
5electarea instrucEiunii ce urmeaz s fie e%ecutat n funcEie de valoarea unei e%presii reprezint o
structur% alternati$%.
Aplica&ii
#$ 4o1ulul unui numr
5e intoduce de la tastatur un numr ntreg %! 5crieEi un algoritm care calculeaz Fi afiFeaz
modulul numrului %!
Date de intrare# % ntregG
Date de ie"ire# rezultatul testului
citeFte %G
dac %>D atunci m-%G
altfel m%G
scrie Umodulul este# K,mG!
sf!dac
*$ Paritatea
5 se introduc de la tastatur un numr ntreg %! 5crieEi un algoritm care testeaz dac % este
un numr par!
Date de intrare# % ntregG
Date de ie"ire# m ntregG
citeFte %G
dac (%<:=D) atunci scrie %, K este parKG
altfel scrie %, K este imparKG
sf!dac
2! 5 se rezolve ecuaEia de gradul - pentru coeficienEii a, reali daEi !
citeste a,
daca aD atunci V
% (-1a)
scrie %
W
altfel daca D
atunci scrie Xnu e%ista solutiiY
altfel scrie Xo infinitate de solutiiY
sf!daca
sf!daca
7! 5 se calculeze valoarea funcEiei
f(%)= %
:
, daca %>D
:%90 , daca %?=D
pentru un % real dat!
citeste %
daca %>D atunci f %;%
altfel f :;%90
sf!daca scrie f
Structura alternati% generalizat
4a acest tip de structur se face selectarea ntre mai multe acEiuni, n funcEie de o variail de
memorie numit selector, care poate lua mai multe valori, dintr-o mulEime ordonat de
leemente de acelaFi tip cu selectorul!
5inta%a#
5n cazul c selector
caz# v
0
# instrucEiune
0
caz* v
:
# instrucEiune
:
Z
cazn v
n
# instrucEiune
n
alt6el instrucEiune
n90
11 (optional)
s6$cazuri
Selector este o variail sau o e%presie de tip
ntreg sau caracter (nu este permis tipul real)!
caz
#
)+caz
n
se numesc etichete Fi sunt valori
pe care la poate lua selectorul!
,ac selector.%
#
se e%ecut instruc&iune
#
!
,ac selector.%
*
se e%ecut instruc&iune
*
,ac selector7%
8
(Q=0,n) Fi e%ist ramura
alt6el atunci se e%ecut instruc&iune
n0#
'
,ac nu e%ist ramuar else (altfel) atunci nu se
e%ecut nimic Fi se trece la urmtoarea
instruciune de dup case(cazuri)!
Probleme propuse
0! )ie ecuaEia de gradul al ---lea a%
:
9%9c=D cu a[D! 5crieEi un algoritm care s rezolve ecuaEia n
mulEimea numerelor reale!
:! )ie a Fi dou nr ntregi! 5crieEi un algoritm care s verifice dac a Fi sunt numere
consecutive!
2! 5tailiEi relaEia de ordine dintre dou numere reale oarecare , citite de la tastatur !
7! 5e citesc trei numere a,,c! 5 se tipreasc ma%imul dintre ele !
8! 5e citeFte media unui candidat la e%amenul de capacitate! ,ac media este P!0O, candidatul este
admis n liceul solicitat, altfel este transferat la alt liceu! ,ac media este cel puEin P!8D, este
admis la profilul informatic-intensiv, altfel la matematic-informatic! "itind media
candidatului, stailiEi cum este repartizat!
I! 5e citesc de la tastatur dou numere Fi un caracter! ,ac caracterul este U9K, calculaEi suma
celor dou numere, dac este U-K, diferenEa lor, dac este U;K, produsul, iar dac este U1K
calculaEi, dac este posiil, ctul!
C! "itindu-se o liter mic, s se precizeze dac aceasta este vocal sau consoan!
O! /e aza datei curente e%primat prin trei valori naturale nenule (zi,lun,an), s se calculeze data
zilei urmtoare!
P! 5e citesc trei numere naturale nenule a,b,c! 5 se verifice dac cele trei valori pot fi laturile
unui triunghi Fi, n caz afirmativ, s se calculeze aria lui cu formula lui Reron! ,e asemenea s
se specifice Fi dac este un triunghi particular (isoscel sau echilateral)!
0D! 5e citesc patru numere ntregi oarecare! 5 se verifice dac ele alctuiesc o mulEime n sens
matematic, adic valorile sunt distincte!
00! 5e citeFte de la tastatur un numr natural cu e%act patru cifre! 5 se verifice dac numrul este
palindrom, adic citindu-l de la sfrFit spre nceput se oEine acelaFi numr!
0:! 5e dau dou numere de tip ntreg! 5 se verifice dac ele sunt numere consecutive!
02! .n planul cartezian %(6, se da un dreptunghi prin colEurile stanga-'os (%
s
,6
s
) Fi dreapta\sus(%
d
,6
d
)! 5 se detemine dac un punct oarecare (%,6) se afl sau nu n interiorul dreptunghiului!
07! 5 se verifice dac o fracEie a9b, pentru a Fi b numere naturale nenule cu ma%im 8 cifre, se
simplific prin 8! .n caz afirmativ se va afiFa Fi fracEia simplificat! Bumerele a,b,8 se citesc de
la tastatur n aceast ordine!
08! 5e citesc patru numere naturale! 5 se afiFeze ma%imul dintre s#: Fi s*/, unde s#: este suma
dintre primul Fi ultimul numr, iar s*/ dintre al doilea Fi al treilea numr!
0I! 5e citesc dou numere ntregi a, cu a?! 5 se testeze dac cele dou numere se divid! .n caz
afirmativ s se afiFeze un mesa' corespunztor, n caz contrar afFaEi ctul Fi restul mprEirii
lui a la !
0C! )iind date numere ntregi a, , c, d s se afiFeze minimul dintre ele!
0O! "unoscnd numrul natural n s se calculeze suma #0*0/0$$$0n!
0P! "unoscnd 8 Fi n (8;.n) numere naturale, s se calculeze suma 80,80#-0$$$0n!
:D! 5 se determine ultima cifr a sumei x0<, unde x Fi < sunt numere naturale date de la tastatur!
:0! )ie a,b Fi c salariile a trei persoane! 5 se precizeze cte dintre acestea sunt cel puEin egale cu o
valoare dat x reprezentnd salariul mediu pe economie!
::! 5 se determine ultima cifr a numrului *
x
, pentru x numr natural dat!
:2! )olosind o singur comparaEie, s se verifice dac trei numere naturale cu cel mult trei cifre
fiecare sunt pitagoreice! 5e va afiFa un mesa' corespunztor!
:7! -onel are R0 cm, $igel are R: cm, iar ,anuE are R2 cm! 5crieEi un algoritm care s afiFeze
numele celor 2 copii n ordinea cresctoare a nlEimii!
:8! Un iepuraF zgloiu ieFi din pdure Fi ncepu s alerge pe cmpie cu o vitez constant v
0
m1s!
,up un timp t
D
, apare la marginea pdurii un leu! 4eul zrii iepurele Fi ncepu s alerge dup
el cu o vitez constant v
:
m1s! 5crieEi un algoritm care afiFeaz dup cte secunde prinde leul
iepurele sau valoarea 90 dac leul nu prinde iepurele!
:I! (rice sum de ani 5 (5?C) poate fi pltit numai cu monede de 2 Fi 8 lei! ,at fiind 5?C, scrieEi
un program care s determine o modalitate de plat a sumei 5 numai cu monede de 2 Fi 8 lei!
:C! 5e citesc trei numere a, Fi c! 5 se verifice dac ele pot fi termenii unei progresii aritmetice!
:O! 5e citesc : numere naturale a Fi ! 5 se afiFeze cte numere pare sunt n intervalul La,M!
:P! 5e citesc dou intervale de timp e%primate n ore minute Fi secunde (h0,m0,s0) Fi (h:,m:,s:)!
5 se calculeze suma celor : intervale de timp!
2D! 5e citeFte un numr ntreg n care reprezint un an calendaristic! 5 se verifice dac anul este
isect sau nu (condiEia ca un an, s fie isect este ca, dac anul este diviziil cu 0DD, s fie
diviziil cu 7G altfel s fie diviziil cu 7DD)!
20! 5e d o dreapt n planul cartezian %o6! 5 se determine dac un punct p de coordonate %,z
aparEine sau nu dreptei!
/$ STRUTURA REPETITIVA
,e multe ori, n construirea algoritmilor de rezolvarea unor prtoleme, este necesar
repetarea unor operaEii atta timp ct condiEia este adevrat#
- ct timp este culoarea verde, mai trece o maFin!
- ct timp mai sunt ilete, vindeEi ileteleG sau vindeEi ilete pn le terminaEi!
- "t timp mai aveEi greFeli de corectat, corectaEi greFelile!
- ct timp mai aveEi numere, le adunaEi!
- ct timp mai aveEi cifre ntr-un numar afisaEi-le!
- .ncepnd de la 0 scrieEi n ordine numerele pn la 0DD!
@etoda de implementare a unei repetiEii este structura repetiti%$
5tructura repetitiv cuprinde# un grup de instrucEiuni, numite corpul ciclului, ce se e%ecut
repetat, Fi testarea unei condiEii care face ca procesul de repetare s continue sau nu!
*%# 5e introduce de la tastatur numere pn cnd ultimul numr este D, Fi se calculeaz suma
numerelor! ,-# S iniEial D, Fi a valoarea citit ce se adaug la sum pn cnd a=D!
5punem pe scurt c=t timp a>?D, adun-l pe a la S$
/rocesul de control cuprinde trei acEiuni#
Ini&ializarea- staileFte starea iniEial, starea dinainte de prima parcurgere a corpului ciclului!
(peraEia de atriuire sD, Fi citirea primului numr (cite"te a)!
Testarea- compar starea curent cu starea final care face ca procesul de repetare s se
sfrFeasc!
5e compar numrul a cu D (a>?D) dac condiEia este adevrat se continu citirea lui a! /rocesul
de e%ecutare repetat se termin cnd valoarea introdus pentru a este D!
4o1i6icarea- 5chim starea curent astfel nct s se avanseze ctre starea final! @odificarea
face parte din corpul ciclului Fi n e%emplul dat const n citirea unei noi valori a lui a (cite"te a),
care poate s fie D!
Structura repetiti%
*%ecutarea repetat a unor acEiuni, su un proces de control, este conceput algoritmic printr-o
structur repetitiv!
/rocesul de control presupune trei acEiuni#
Ini&ializare- 5taileFte, starea dinainte de prima parcurgere a corpului ciclului! (e%!sD,
i0)
Testare - compar starea curent cu starea care termin procesul de repetare Fi are rolul de
a termina procesul de ciclare!(i>=n)
4o1i6icare-5chim starea curent astfel nct s se avanseze ctre starea final, care
ncheie procesul de repetare! (ii90)
Clasificarea structurilor repetitive
5tructura repetitiv poate fi#
- cu numr necunoscut cunoscut de paFi
- cu numr cunoscut de pasi
5tructura repetitiv cu numr necunoscut de paFi poate fi#
- cu test iniEial
- cu test final
5inta%a instrucEiunii repetitive cu numr necunoscut de paFi cu test iniEial c=t>timp
Structura repetiti% cu test initial se numeFte instrucEiunea c=t>timp si are urmtoarea sinta%:
c=t>timp (condiEie) execut
instrucEinune'
s6=r(it>c=t>timp
*fectul instrucEiunii#
Pas ## 5e evalueaz condiEia care este o e%presie!
Pas *# ,ac e%presia este fals, se iese din instrucEiunea c=t>timpG ,ac valoarea este adevrat,
se e%ecut instructiunea, apoi se revine la /as 0, la evaluarea e%presiei!
(servaEii#
0! -nstrucEiunea se e%ecut, ct timp valoarea e%presiei din condiEiei este adevrat! /entru ca
ciclul s nu fie infinit, este oligatoriu ca instrucEiunea care se e%ecut s modifice cel puEin
una din variailele care intervin n e%presie, astfel nct acesta s poat lua valoarea fals!
:! ,ac e%presia din condiEie are de la nceput valoarea fals, instrucEiunea nu se e%ecut nici
mcar o dat!
2! -nstrucEiunea din corpul ciclului c=t>timp poate s conEin o alt instrucEiune c=t>timp! .n
acest caz se spune c instrucEiunile c=t>timp sunt imricate!
Probleme propuse
0) 5 se calculeze suma S.#0*0/.$$$$0n , respectiv produsul P.#?*?/?$$$$?n , pentru numrul
n natural nenul dat!
:) 5 se calculeze media aritmetic a n valori reale citite pe rnd de la tastatur!
2) 5e citesc pe rnd de la tastatur numere ntregi nenule ntr-o variail x, pn la
introducerea valorii D! 5 se calculeze suma numerelor pozitive introduse Fi produsul celor
negative!
7) 5e citesc pe rnd n numere ntregi Fi apoi o valoare ntreag a! 5 se determine numrul de
apariEii ale valorii a printre numerele citite!
8) /recizaEi ce se va afiFa n urma e%ecuEiei secvenEei de program de mai 'os pentru n.@ (s,n
Fi 8 sunt variaile ntregi)!
,ate de intrare# n intreg!
,ate de iesire#5 intreg
"iteste nG
5DG
Q0G
catTtimp(Q>=n)e%ecuta
s=s9QG
Q=Q9:G
5fTcatTtimp
5crie Us=K, sG
a) s=7 ) s=0I c) s=P d) s=08 e)s=D
I) 5 se afiseze cifrele numarului natural n citit de la tastatura!(Atentie nu se cunosc numarul
cifrelor lui n)!
C) )ie secventa cu %=0CP
,ate de intrare# % intregG
,ate de iesire# s intregG
,ate intermediare# c,dG
citeste %G
d%G
sDG
catTtimp(d>?D)e%ecuta
cd < 0DG
ss9cG
dLd 1 0DMG
5fTcatTtimp
scrie sG
"e se afiseazN
a) 0I ) 0O c)0C d) D e) PC0
O) 5e citeFte o succesiune de numere ntregi pn la introducerea valorii D! 5 se calculeze
media aritmetic a numerelor pozitive citite Fi numrul numerelor negative!
P) 5e citesc pe rnd numere ntregi pn la introducerea valorii \0! 5 se calculeze media
aritmetic a valorilor nenule citite!
0D) /entru un numr natural nenul n dat, s se determine p natural cu proprietatea *
p
;.n!
00) 5 se realizeze nmulEirea a dou numere naturale nenule a Fi b date prin adunri repetate!
Structura repetiti% cu test 6inal
Sintaxa:
repet

instructiune

pn cnd condiEie

*fect#
- se e%ecut secvenEa de instructiuni (orice instrucEiune pseudocod) care formeaz corpul
ciclului, apoi se verific condiEia, care este o e%presie logicG
- dac condiEia este fals, se e%ecut din nou secvenEa, s!a!m!d!G
- corpul ciclului se e%ecut n mod repetat pn cnd condiEia devine adevrat (adic ct
timp este fals)!
(servaEii#
- este un ciclu cu test final pentru c mai nti se e%ecut secvenEa Fi apoi se verific
condiEiaG
- este un ciclu cu numr necunoscut de paFi, numrul minim de e%ecuEii asigurat pentru
secvenE este 0 (cnd din start condiEia este adevrat)G
- pentru a evita uclarea infinit, corpul ciclului treuie s conEin cel puEin o instrucEiune
care s asigure ieFirea din ucl (la un moment dat condiEia s devin adevrat)!
Probleme propuse
5e citeFte un Fir de numere ntregi pn la ntlnirea valorii D! 5 se calculeze media
aritmetic a numerelor din Fir!
0! 5e considera algoritmul urmator#
citeste n
repeta
cifra n mod 0DG
scrie cG
n Ln 1 0DM
pana cand n=D
,eterminati ce se afiseaza pentru n =0:27!
:! 5a se afiseze inversul numarului n!
2! 5a se calculeze cmmdc-ul, respectiv cmmmc-ul a doua numere a, !
7! 5a se realize algoritmul de determinarea produsului a doua numere a si prin adunari
repetate!
8! 5 se calculeze ctul Fi restul mprEirii a dou numere naturale nenule , a Fi date , prin
scderi repetate!
I! 5 se descompun un numr natural nenul dat n factori primi , afisnd pentru fiecare factor
prim Fi puterea corespunztoare
C! 5 se verifice dac un numr natural nenul dat este palindrom , adic citit de la dreapta la
stnga Fi de la stnga la dreapta reprezint acelaFi numr !
O! 5 se determine numrul de apariEii ale unei valori date, printre elementele unui Fir dat cu n
elemente!
Structura repetiti% cu numr cunoscut 1e pa(i
5inta%a#
pentru v = v
i
, v
f
, pas e%ecut
instructiune
5f!pentru

(servaEii#
- v = variaila contor (de tip ntreg sau caracter)G
- v
i
= valoarea iniEial de la care ncepe numrareaG
- v
f
= valoarea final la care se opreFte numrareaG
- pas = din ct n ct se numr (pasul contorului)!
%
i
) %
6
(i pas sunt constante, variaile sau e%presii de acelaFi tip cu %!
,ac
a)! %
i
;. %
6
(i pas A2 - contor cresctor
)! %
i
A. %
6
(i pas;2 - contor descresctor
*fect#
- se ncarc variaila contor cu valoarea iniEial de la care ncepe numrtoarea (%
i
)G
- ct timp nu s-a depFit valoarea final %
6
la care se opreFte numrarea (adic %
i
;. %
6
pentru
un contor cresctor, sau %
i
A. %
6
pentru un contor descresctor) se e%ecut secvenEa care
formeaz corpul ciclului Fi se modific variaila contor % cu valoarea pasului (creFte sau scade
cu valoarea pas)G
- cnd valoarea final %
6
este depFit, instrucEiunea se ncheie!
(servaEii#
- este un ciclu cu numr cunoscut de paFi# nr paFi =
vf - vi
9 0
pas
- nu se recomand modificarea variailei contor % n corpul ciclului deoarece ea este modificat
implicit de ctre instrucEiune cu valoarea pasului pasG modificarea e%plicit a lui % duce la
comportri impreviziile ale instrucEiunii!
- dac pas lipseFte din sinta% se consider c pas = 0 (vezi mai sus)

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