Sunteți pe pagina 1din 15

LUCRAREA DE LABORATOR nr.

1 Tema: Cartea de vizit a studentuluiinformatician


Scopul lucrrii: Evidenierea nivelului de cunotine a fiecrui student la informatic, n mod deosebit algoritmizarea, pentru elaborarea unui plan individual de studiu pe viitor la lucrrile practice i lucrrile de laborator pe parcursul semestrului.

Obiectivele temei
1. Aprecierea personal a nivelului de cunoatere a urmtoarelor compartimente: a echipamentelor periferice i unitilor componente ale calculatorului electronic personal !"#$% a aciunilor elementare referitoare la sistemele de operare !&'$ (&)'&, *indo+s etc.%a manipulrilor de baz referitor la principalele activiti n prelucrarea fiierelor de sistem cu a,utorul membranelor -ar(anager.)'&/avigator. /orton#ommander i &tart, (0#omputer, bare i ferestrele *indo+s ului instalat, 'ffice 1223% a mediului dezvoltat integrat 4urbo "ascal !4"$, a algoritmizrii problemelor i a procedeelor de scriere.citire a datelor i utilizarea construciilor elementare a limba,ului 4" predestinate calculelor valorilor conform formulelor din matematic i fizic, elabor5nd algoritmi cu structuri liniare, ramificative, ciclice% studierea i nsuirea a tehnicilor de programare i principilor de elaborare a modelelor de calcul din 1. o!iuni "enerale.

Subiectele temei i ordinea executrii


&ubiectele temei se mpart n dou categorii n dependen de nivelul de pregtire a fiecrui student. I. Pentru cei care sunt mai slab iniiai n programare se recomand s expun concis, modul de cunoatere, n editorul ord !""x urmtoarele: 1.1. #ompartimentele cunoscute din domeniul informaticii, performanele i posibilitile utilizrii "#, sistemele de calcul i metodele algoritmizrii. 1.1. /ivelul nsuirii comenzilor de baz a &' i cunoaterea destinaiei panourilor i tastelor funcionale. (embranele &' de tipul /orton #ommander sau scenariul de lucru n &' *indo+s i *ord. 1.6. /ivelul de cunoatere al mediului de programare 4urbo "ascal. 7eprezentarea meniului principal, submeniurilor din mediul integrat dezvoltat 4urbo "ascal i comenzile editorului. 1.8. )up nsuirea noiunilor de baz ale algoritmizrii din ndrumarul prezent: notarea i descrierea blocurilor schemelor logice% regulile elaborrii diferitor structuri ale algoritmilor% modul de transpunere ale algoritmilor i organizare a programului 4" pentru prelucrarea datelor citite, calculul i afiarea lor. 1.9. "rincipiile depnrii programului simplu i e3ecutarea programului pas cu pas, urmrirea evalurii e3presiilor etc. 1.:. ;alidarea rezultatelor cu a,utorul "# ului, verificarea corectitudinei alctuirii programelor conform condiiilor problemelor. 1.<. =n 4urbo"ascal s efectueze calculele conform formulelor propuse fie din matematic.fizic, fie din Ane3a lucrrii , utiliznd funciile predefinite n 4". & reformuleze problemele i s elaboreze schemele logice conform crora se vor efectua calculele. 1.>. & elaboreze la indicaia profesorului un set de algoritmi n (& *ord. II. Pentru cei avansai n programare se recomand s expun concis n editorul ord !""x urmtoarele: 1.1. #ompartimentele din obiectivele temei, e3puse mai sus, prin noiuni i definiii concise, totodat, apreciind propriul nivel de cunoatere n sistemul zecimal. 1.1. & se elaboreze schema logic a algoritmului i programul n limba,ul 4" pentru efectuarea calculelor conform condiiilor problemelor propuse din matematic.fizic, utiliznd diverse structuri de date !tablouri, iruri, fiiere, liste etc.$. & foloseasc principiul modular, utiliznd propriile subprograme cu comentariile de vigoare.

Coninutul i forma drii de seam


1. #operta !foia de titlu, vezi (odel7aport"rogramarea #alculatoarelor1.doc $ cu indicarea numrului lucrrii de laborator i denumirea temei. 2. ;arianta, numrul, condiia problemei, scopul i sarcina !descrierea succint a sarcinii reformulate, adic adaptat la metoda rezolvrii$. 6. &chema logic a algoritmului.schia algoritmului i tabelul variabilelor utilizate n program. /oiunile generale, formulele de baz, rspunsurile la ntrebri, descrierea tehnicilor i nuanelor de realizare a programului !perfectate n *ord$.

8. 9.

#oninutul programului !listing ul complet$. 7ezultatele intermediare i finale afiate 6. Analiza rezultatelor n baza testelor elaborate i concluzia. <. ?ibliografia !doar sursele real utilizate cu referine concrete la capitole, paragrafe, etc$ >. Ane3e. E3emple i rezultate. -iiere intrare.ieire. 4abele.diagrame. @. #oninutul raportului.drii de seam se prezint tiprit pe hrtie i pe suport magnetic. Not: Aceste cerine ctre A Coninutul i forma drii de seam trebuie s se respecte la toate lucrrile de laborator.

1. Noiuni generale
1.1. Modelul de calcul al problemei "rogramarea veritabil n are frontier ntre tiinele e3acte i art. Btiinele e3acte i coordoneaz conduita, iar arta i sugereaz soluiile netradiionale prin posibilitatea neordinar de a gsi nuanele AcoloreC al succesului n timpul analizei i soluionarea problemei. Este cunoscut faptul c n timpul studiului problemei trecem prin etapele pregtirii problemei !contient sau incontient, n mod implicit sau e3plicit$ pentru rezolvarea ei cu a,utorul "# ului: formularea problemei generale, determinarea soluiei generale, n dependen de datele iniiale i metodele logico matematice, prin strategii i tehnici eficiente, redefinirea corect i elaborarea algoritmilor !algoritmi de calcul numeric, algoritmi de prelucrare a informaiei$ n baza celor tradiionali sau euristici, reieind din propriile cunotine i e3periene acumulate. Apoi transpunei respectivii algoritmi n programe al limba,ului de programare ales. )up aceasta depanri, derulri, ameeli, verificri la corectitudine, testri la eficien i la sf5rit, dup ce ai obinut obiectivele propuse, trecei ntr o stare euforic cu un refren bzit, plcut: D#e geniu suntED. #aracteristica fundamentala a prelucrrii automate a informaiei este natura algoritmica a proceselor ce se e3ecuta pe sistemele de calcul. 7ezolvarea prin calcul automat a unei probleme este posibila doar daca se precizeaz e3act datele de intrare, calculele ce trebuie efectuate si succesiunea lor. "entru a obine un model de calcul al unei probleme care s fie implementat pe "# trebuie de respectat etapele algoritmizrii i crerii programului conform regulilor sintactice i semantice ale limba,ului de programare ales ca s atingem scopul scontat c5t mai eficient. )e aceea pentru adoptarea unor decizii c5t mai corecte i eficiente, este necesar s se foloseasc rezultatele obinute n toate celelalte etape !niveluri de cunoatere a metodelor de rezolvare, formule, e3perimente sau msurtoarele efectuate, legi stabilite etc.$. Aceste rezultate pot fi sintetizate i folosite ntr un model de calcul. (odelul de calcul poate fi reprezentat printr un model matematic, adic FdublicatulC fenomenelor analizate, conceput n funcie de cunotinele noastre asupra naturii problemei, nchegate n cadru unei teorii sau experiment. "e baza acestor supoziii, se definesc variabilele modelului !care pot fi mai mult sau mai puin agregate$, legile care intervin n fenomenul analizat, formulele, metodele i restriciile, precum i criteriile de optim. #onstruirea modelului este dependent de informaiile obinute, mai ales de cele numerice !date de iniializare, coeficieni sau parametri care intervin n funciile care descriu o anumit legitate sau restricie etc.$. =n unele cazuri se dispune de date analitice, iar alte ori de mrime agregat !de regul ca o combinaie liniar a mrimilor analitice$. =n momentul elaborrii modelului apare problema lurii n consideraie i a resurselor de calcul !echipamente de calcul, vitez de prelucrare, memorie etc.$, n funcie de o anumit precizie. "entru rezolvarea modelului se folosesc diveri algoritmi. Algoritmul, la un mod general, reprezint o succesiune coerent de operaii aritmetice i.sau logice desfurate n vederea realizrii unui anumit scop !rezolvarea modelului$. &oluia modelului obinut cu a,utorul unui algoritm ales de noi va fi analizat, n scopul fundamentrii decizii finale. )ac n urma unei ample analize!tehnice, economice, psihologice etc.$ soluia este considerat corespunztoare, se trece la transpunerea n practic numr5ndu se, efectele care se obin. =n caz contrar, se reanalizeaz fie datele de intrare, fie algoritmul, fie chiar modelul. (odelarea matematic presupune observarea fenomenelor !obinerea datelor necesare$, elaborarea modelelor n conformitate cu cea mai riguroas teorie cunoscut, elaborarea unui algoritm de rezolvare a modelului i, n final, folosirea unui echipament de calcul pentru a aplica algoritmul elaborat n vederea obinerii soluiei optime. Acest tip de modelare este foarte dificil de implementat n practic din lipsa unor cunotine profunde. )e multe ori, se evit elaborarea modelului i n acest caz, se procedeaz astfel: - n funcie de informaiile disponibile se elaboreaz algoritmii de calcul n baza cruia se obine programul n limba,ul de programare care se deruleaz i, apoi, se analizeaz soluia obinut: - dac soluia obinut satisface criteriile considerate n analiz se trece la aplicare. )ac nu, se reia observaiile sau se elaboreaz un alt algoritm sau se ncearc elaborarea unui model, corect5ndu se algoritmul de calcul n mod corespunztor. "rin algoritm vom nelege un ansamblu de reguli de calcul, care indica operaiile necesare rezolvrii unei probleme si ordinea lor de efectuare. 7egulile de calcul constituie paii algoritmului. E3emple de algoritmi sunt: algoritmul lui Euclid pentru calculul celui mai mare divizor comun a doua numere naturale

regula lui #ramer pentru rezolvarea sistemelor liniare ciurul lui Eratostene pentru determinarea numerelor prime, etc. )eci, pot e3ista cazuri n care modelul nici nu se mai elaboreaz. /umai dac elaborarea algoritmului nu a fost satisfctoare se trece la elaborarea modelului care cere reformularea problemei, reieind din cunotinele acumulate i condiiile reale. Este posibil c acest model s nu fie complet. )up aplicarea algoritmului i analiza unor rezultate, modelul se completeaz, se aplic din nou algoritmul, se analizeaz din nou rezultatele etc. =n acest caz , avem un proces iterativ cu o modelare multilateral, numit i procedural. )eci , modelarea procedural este caracterizat prin acordarea unui rol mai mare algoritmului i a unuia secundar modelului. )e fapt, n modelarea procedural nu se mai poate face o distincie prea clar ntre model i algoritm. &e poate de scris chiar un Falgoritm de elaborare a modeluluiC . =n consecin, este necesar ca i din punct de vedere teoretic s acordm o atenie deosebit algoritmilor. =n general, un algoritm trebuie s ndeplineasc trei proprieti: generalitatea !universalitatea$, unicitatea !determinismul$ i finitudinea . "rima condiie se refer la posibilitatea c algoritmul s asigure prelucrarea unui numr mare de date de intrare !chiar AinfinitC$. A doua condiie se refer la claritatea operaiilor din fiecare bloc. "rin intermediul regulilor algoritmului, informaia iniial este transformata n rezultate bine definite, care determina n mod unic pasul urmtor. Adic, la orice e3ecuie a algoritmului cu date de intrare identice, rezultatele sunt aceleai. A treia se refer la numrul de pai finit n care se furnizeaz rezultatele !care trebuie s fie din punct de vedere practic de ordinul secundeor.minutelor $. Aceast caracteristic precizeaz c orice algoritm se termina ntr un numr finit de pai. =n continuare , prezentm o clasificare a algoritmilor din punct de vedere a comple3itii problemei i e3actitii soluiei. &e poate defini trei clase mari de algoritmi: algoritmi exaci !riguroi$, algoritmi aproximativi i algoritmi euristici. "entru a caracteriza aceti algoritmi, introducem urmtoarele notaii: #$Gvectorul soluiei furnizat de algoritm% #%G vectorul adevratei soluii, Gvector al unor abateri admisibile, dinainte stabilite. #lgoritm exact !riguros$ are urmtoare proprietate : H I HJG2 !1.1$ #lgoritmul aproximativ are proprietatea c pentru orice dat se gsete soluia HJ astfel ca: HI HJKG !1.1$ #lgoritmul euristic este de cutare prin ncercri bazate prin intuiie i e3periment care se mbuntete n general succesiv, cu proprietatea c , pentru un dat, nu avem sigurana c gsim o soluie H J, astfel nc5t s se respecte proprietatea !1.1$. Algoritmul euristic se compune n general , dintr o mulime de reguli inteligibile, care sunt ncercate n timpul calculelor, i se mbuntesc pe baza analizei rezultatelor obinute. =n urma acestor ncercri, programatorul constat care sunt regulile cele mai adecvate pentru anumite situaii !tipuri de probleme, metodele etc.$. 7ezult c mulimea regulilor elementare care pot fi folosite ntr un algoritm euristic este practic infinita, deoarece acestea sunt create pe msur ce algoritmul se aplic de mai multe ori. )ar, o procedur la care nu se cunosc regulile nu se poate algoritmiza !deoarece la elaborarea schemei unui algoritm ar trebui s tim ce reguli putem s aplicam$. &ar prea, deci, c este un nonsens s vorbim despre un algoritmi euristici. #ontradicia se rezolv fc5nd convenia c pentru o anumit perioad sau un anumit numr de aplicaii, algoritmul se compune dintr un anumit numr de aplicaii, algoritmul se compune dintr un numr finit de reguli elementare, cunoscute iniial. =n afara regulilor elementare !independente$, nu pot e3ista reguli compuse !AtrunchiateC sau AamendateC etc.$. )ac regula de compunere este cunoscut, atunci numrul de reguli compuse poate fi finit, procedura fiind algoritmizabil. =n consecin, rezult c o procedur euristic poate fi, cel puin temporar, algoritmizabil. (ulimea algoritmilor euristici aplicai pentru adoptarea deciziilor se numete euristic. =ntruc5t un algoritm euristic se compune din reguli elementare !i eventual reguli compuse $, putem afirma c orice euristic reprezint o mulime deschis de reguli !elementare i.sau compuse$, adic depinde de e3periena programatorului i atunci e obligator de elaborat i scenariul de testare al programului n baza unui set de date. =ns astfel de cazuri vor fi analizate la alte teme de lucrri de laborator. Eta&ele ela'orrii &ro"ramului. =n rezolvarea problemelor cu calculatorul se recomanda respectarea urmtoarelor etape: 1. &pecificarea precizarea completa a problemei de rezolvat prin stabilirea unui enun clar si definirea e3acta a datelor de intrare si a celor de ieire. 1. "roiectarea cutarea algoritmului de rezolvare si descrierea logicii fiecrei reguli de calcul si a relaiilor dintre reguli. 6. Lmplementarea scrierea programului. 8. 4estarea verificarea si depanarea programului pentru a ndeplini condiiile de specificare. 9. )ocumentarea scrierea documentaiei de utilizare a programului. :. =ntreinerea e3ploatarea si verificarea continua a performantelor programului !eventual prin adugarea de funcii noi$. "rin operaia de descriere a algoritmilor se urmrete prezentarea acestora ntr o forma precisa si clara, accesibila omului sau calculatorului. )escrierea algoritmilor se poate face prin: scheme logice, limba, pseudocod, limba, de programare.

Descrierea al"oritmilor &rin sc(eme lo"ice &chema logica este descrierea grafica a unui algoritm cu a,utorul unor simboluri care indica paii algoritmului si ordinea lor de e3ecuie. -iecrei operaii sau pas i se ataeaz un simbol geometric n interiorul cruia se nscrie operaia de e3ecutat. &uccesiunea operaiilor este simbolizata prin sgei. &chema logica reflecta de fapt modul de e3ecuie al programului corespunztor algoritmului. ;om analiza n continuare simbolurile grafice utilizate. a$ terminal marcheaz nceputul, sf5ritul sau un punct de revenire n schema logica. =ntr o schema logica e3ista un singur terminal de &4A74 si un singur terminal de &4'". &4A74 &4'" 7E4M7/

-igura 9.1. &imbolul terminal al schemei logice b$ bloc de intrare.ieire !citire.scriere$ permite precizarea datelor de intrare n problema prin initializarea cu valori corespunztoare a variabilelor care codifica aceste date sau permite afisarea unor rezultate !obtinute ca date de ieire din algoritm$. ?loc de Lntrare.ieire 7EA) a, b, c% *7L4E 31, 31%

-igura 9.1. ?locul de citire.scriere date, reprezentat printr un paralelogram c$ atribuire sau bloc de calcul reprezint o operaie de calcul cu atribuirea rezultatului variabilei din membrul st5ng. &imbolul de atribuire poate fi: N sau :O calcul 31 :a b.a% JNJP1

-igura 9.6. ?locul de calcul ;ariabilele din membrul drept al blocului de calcul trebuie sa aiba valori bine definite !rezultate n urma citirii sau calculului$% vechea valoare a variabilei din membrul stang se pierde, peste ea scriindu se noua valoare rezultata n urma operaiei de calcul. d$ linia de flu3 indica directia flu3ului operaiilor

-igura 9.8. 7eprezentarea unei linii de flu3 e$ conectorul indica punctul n care o linie de flu3 se conecteaza cu o alta linie de flu3 sau o ntrerupere a liniei de flu3.

-igura 9.8. &chema unui conector de flu3 f$ decizia logica indica un test logic al carui rezultat poate fi adevarat !true$ sau fals !false$, continuarea flu3ului de prelucrare facandu se pe ramura n care condiia este ndeplinita. #ondiie )A A)B /M )A /M

-igura 9.9. 7eprezentarea grafica a deciziei logice g$ procedura reprezint un algoritm sau un subalgoritm descris n alt loc, pentru care se cunosc datele de intrare% procedura returneaza rezultatele sau face doar anumite prelucrri asupra datelor de intrare. "rocedura Ecgr1!a,b,c,31,31$ (ed!a,b$

-igura 9.:. ?loc pentru apelul procedurilor

Algoritmii pot fi descrisi pe baza unor structuri sau succesiuni de structuri rezultate din combinarea simbolurilor definite mai sus. 4ipuri de structuri: 1. &tructura liniara este data de un bloc sau de o succesiune de blocuri de calcul. 'peraie 1 'peraie 1 'peraie 6 'peraie 1P1P6

-igura 9.<. &chema unei structuri liniare, nlocuita cu un singur bloc de calcul &e va considera n continuare e3emplul simplu al calculului mediei aritmetice a doua numere care se citesc% blocul de calcul a mediei poate fi nlocuit cu o procedura, (A!a,b$.

-igura 9.>.E3emplu simplu pentru o structura liniara &tructura alternativa !L- 4QE/ ER&E$ este o structura care are la baza blocul de decizie logica. #a e3emplu se considera schema logica pentru calculul funciei:

-igura 9.@. E3emplu de structura L- 4QE/ ER&E

6. &tructuri repetitive !cicluri$ sunt structuri utile n situaii n care o anume operaie sau grup de operaii se repeta de un numr finit de ori. #a e3emplu se va considera calculul sumei elementelor dintr un ir: a1, a1, S, an : & O a1 T a1 T S T an. 'peraiile ce trebuie efectuate pas cu pas sunt: &N2 !initializarea sumei$ & N & T a1 & N & T a1 operaii care se repeta, S S difera doar indicele & N & T an #iclul cu contor initializare indice N indiceUinitial corp ciclu indice N indice P pas indice V indicefinal /u )a corp ciclu incrementare test initializare

-igura 9.12 &tructura unui ciclu cu contor

-igura 9.11. #iclu cu contor pentru calculul sumei unui ir de n elemente

Ciclul cu test initial *+,-LE . DO/ e3ecuta corpul ciclului atat timp cat condiia este adevarata !-igura 9.11$.

-igura 1.11. $iclul %I&' ( )O

-igura 1.16. #iclul cu test final aplicat la calculul sumei elementelor unui ir Ra primele teme vom reduce totul la probleme mult mai simple care vor include algoritmi liniari, ramificativi, ciclici i mi3t care trebuie s asigure aceleai proprieti, ns sunt bazai numai pe deducii logice, evideniind urmtoarele etape pentru rezolvarea problemei concrete: 1$ 7eformularea strict a problemei: datele iniiale, metoda.formulele, forma i coninutul rezultatelor. 1$ Elaborarea algoritmului rezolvrii problemei i verificarea lui. 6$ Alctuirea programului n conformitate cu algoritmul elaborat la etapa precedent. 8$ )erularea, testarea i documentarea programului. 9$ Analiza rezultatelor programului. 4rebuie de menionat c cea mai rsp5ndit form de reprezentare a algoritmului este descrierea prin schemele logice. (ai detaliat se e3pune i se e3amineaz n lucrrile de laborator ce urmeaz.

' * ' + P & ': +odele de program TP n ba,a algoritmilor liniari


W"rogram efectuat de studentul grupei 4L 291 /ume-am X W Rlab. nr.1 ; A 7 L A / 4 A < X

Program &lb-nr./ W#ondiia problemei: #alculai valorile lui d,J conform formulelor urmtoare: d:01 *!2sin! 3451ln627x4, 8:01cos x2cos 3 45cos1x2342ex. )atele iniiale se introduc de la tastatur. X W&chia algoritmului: algoritmi liniari, utiliznd funcii predefinite n 4" X Mses #rt% ;ar H,Y,),Z : 7eal% Wvariabilele H, Y iniiale% var le ), Z rezultateX Be"in #lrscr% *riteln![Lntroduceti valoarea lui 3GV [$% 7eadln!3$% *riteln![Lntroduceti val. YGV [$% 7eadln!0$% d01*s2r*3/4s2r*sin*5///6*ln*5/4s2rt*3//7 $01*cos*3/4cos*5//6cos*345/4e3&*3/7 *riteln![7ezult.1: dG [,d:1$% *riteln![7ezult.1: JG [,J:1$% End. "rogram Rlab1U1Usfera%
W"rogram efectuat de studentul gr. 4L 2:1 /ume-am Rlab. nr.1, ;ar ta 1<
1

W #ondiia problemei: #alculai valorile Ariei seciunii a3iale a sferei !( $ i ;olumului sferei !(6$ conform formulelor cunoscute. )atele iniiale se introduc de la tastatur. X W&chia algoritmului: algoritmi liniari n baza formulelor geometrice. X Mses crt% #onst piG6.1819@% WAcest rnd se putea evita. "i !\$ n 4" e determinatX ;ar r,l,s,v : 7eal% ?egin W Lntroducerea datelor: X *riteln![Lntroduceti raza sfereiGV [$% 7eadln!r$% W #alculul variabilelor: X s:GpiI!rIr$% v:G8.6IpiIs]r!r$Ir% +riteln![Aria sec i a3iale a sferei [, s:>:6,[ !( p.$[$% +riteln![ [$% +riteln ![;olumul sferei G [, v:>:6,[ !( cubi$[$% +riteln![ [$% 7eadJe0% End.

E H E ( " R E: (odele de algoritmi n soluionarea problemelor:


"roblema 1.8.1:. &e cere s se realizeze algoritmul care citind o valoare de tip ntreg / i o cifr ntreag #, verific dac n reprezentarea zecimal a numrului / apare #. ;ariant de soluie: n acelai conte3t, se cere s se precizeze numrul de apariii ale cifrei # n reprezentarea zecimal Al"oritmul0 &tart 1 1

Introducere
/ i # aG2 /mod12G# da aGaP1 /G/div12 < /V2 nu 4iprire @ &top nu

8 9 : da >

"roblema 1.8.1<. &e cere s se redacteze algoritmul care afieaz toate permutrile care se pot face cu numerele 1, 1, 6, 8, 9 Lndicaie: se vor utiliza cinci cicluri cuprinse unul n altul, cte unul pentru fiecare poziie din cadrul fiecrui ciclu se parcurg toate valorile posibile poziiei corespunztoare 1 1 6 8 9 : < da fGfalse 1: fGfalse A ? 1< mG1 mGi da 11 fGfalse nu 1@ mG, da nu 12 mGJ da nu 11 da mGl nu ? &tart numG2 iG1 fGtrue ,G1 ,Gi nu 16 da 11 11 @ da fGtrue lG1 lGi nu 18 lG, da nu 19 da lGJ nu A > JG1 JGi nu 12 JG, da nu

1>

16 18 19

fGtrue da numGnumP1 4iprire L,,,J,l,m

1: 1< 1> 1@ 62

mGmP1 mK: nu lGlP1 lK: nu ,G,P1 61 ,K: iGiP1 ,K: nu &top da 9 da : da 16 da 1>

61 66

nu

Problema 2.24.2 Se cere s se redacte,e algoritmul care listea, tripletele 1i, 9, 84 i n, natural n0:; care satis<ac relaia in29n08n. Se vor considera tripletele pentru care .=0i=9=8=+, unde + data de intrare. Lndicaie: se lucreaz n ntreg de aceea ( i n trebuiesc astfel alei nct ( nK16i 1 adic nIln!($Kln!16i 1$. 7ezult c pentru un ( precizat

ln ( 1 1 ) ln +
Algoritmul

6i

1 &tart 1 6 8 #itire ( nG6

ln$ 1 6i 1 # n da ln + 9
: < nu > @ da

nu

&top

iG1

,GiP1 JG,P1 inP,nGJn 4iprire !i, ,, J$ i n JGJP1 11 JK( 11 nu ,G,P1 nu ,K( 1 iGiP1 19 iK( 1 1: nu nGnP1

12 da

>

<

da 18 da

16

Model !arcina "Condi!ie 0 &e dau 6 numerele reale a, ', c care reprezint lungimile laturilor unui triunghi. & se calculeze aria acestui triunghi. Restric!ii 0 2 K a8'8c K 122 -ntrare 0 /umerele a8'8c sunt citite din fiierul te3t LATUR-.- . =n fiier numerele a8'8c sunt aran,ate pe o linie i separate prin un spaiu unul de altul. -e9ire 0 Aria triunghiului este scris n fiierul te3t AR-A.OUT. )ac triunghi cu aa laturi nu e3ist n fiierul de ieire se scrie numrul .1.

E3em&lu 1 0 LATUR-.1@> E3em&lu : 0 LATUR-.116 ;c(ema 'loc 0

AR-A.OUT <.6122@: AR-A.OUT 1

Listingul programului : #include <stdio.h> #include <math.h> #define intrare "LATURI.IN","rt" ! #define esire "ARITA."UT","#t" ! int main$int ar%count, char& ar%cs'( float a,*,c,+,s,t,! -IL. &f! f/fo+en$intrare fscanf$f,"0f 0f 0f",1a,1*,1c ! fclose$f ! +/$a2*2c 32! s/4! )

t,/+&$+5a &$+5* &$+5c ! if $t,>4 s/s6rt$t, ! f/fo+en$esire if $s>4 f+rintf$f,"0f",s ! else f+rintf$f,"0d",5, ! fclose$f ! return 4! 7

%ntrebrile de autocontrol
1. Enumrai principalele caracteristici ale lui *indo+s @3 1223 i principiul gestiunii ferestrelor. 1. )escriei lansarea programului *ord for *indo+s, #rearea, Editarea i &alvarea unui document nou. 6. #aracterizai (ediul de programare 4M7?' "A&#AR: &istemul de meniuri.i meniul principal. 7ndul de ,os i -ereastra Edit. 8. )efinii structura algoritmului i notaia n schemele bloc. 9. )efinii structura programului 4" i sinta3a e3presiilor n limba,ul 4". :. #um se definesc tipurile de date i variabile n 4"^ <. #e reprezint funciile predefinite n 4". >. #e tipuri de date predefinite cunoatei n 4". @. ;erificai ce rezultate se vor obine pentru urmtoarele secvene de program: a$ ?egin Wpentru 3G1, aG 1 i 3G1, aG1X fG1IaI3Pabs!a 1$% f3Ge3p!s]r!3$$.s]rt!s]r!a$$%+rite!_fG`,f,`f3G`,f3$End% b$ ?egin z:G 6I< div 1 mod <.6 a trunc!sin!1$$% +riteln!_zG`, z$ end% c$ ?egin v:G succ!round!9.1$ a pred!6$$% +riteln!_vG`, v:8$ end% @I. #um trebuie scris n 4" instruciunea de atribuire, fr a utiliza cicluri, pentru calcularea valorii E prin urmtoarea formul: 31 36 38 EG1P 3P b P cc P cc ^ 1E 6E 8E 12I.#5te operaii n 4" se vor efectua n timpul calcului urmtoarei e3presii: !3 P 1.1$I!0 P <.12$a6.8^ 11I. &unt date punctele pe plan ca valori reale a,b,c,d,s,t,u. &e cunoate c punctele !a,b$ i !c,d$ nu se afl pe dreapta e3primat prin egalitatea sI3PtI0PuG2. & se determine dac punctele !a,b$ i !c,d$ aparin diferitor semiplane. 11. )escriei modalitile de soluionarea ale problemelor asistate de "#.

Anexa r. <ar. 1

Varintele problemelor Ll.nr.1

=ormulele &entru calcul !c sin>!3 .6$$ dGccccccccc% !1.<Pln:0$% 0Gecvv6a a ? a.c e% cPz: vG ccccc !6Pz?.9$ 0P sin: vv a +G ccccccccc. 1,2221P!0 vv$? UUUU .( @ aGe cos!h J ,$P e, Je % bGa ln!a ,> sin1h$ J. UUUU UUUU : : ? ? > ]Gf d Pf a f ln !dP3$.df% 0Gcos ] a ]. f:Pd:

<alorile daatelor ini!iale 3G2,689S<,89% cu pasul 2,1 0G 2,9<2 cG1,> cG1,26< aG1,19S6,19% cu pasul 2,1 vvG9,@<> ,G 2,1S1,2% cu pasul 2,1 JG1,< hG2,@8 dG1,69@ fG19,9 3G 2,1S1,@% cu pasul 2,1

9 : < > @ 12

UUU aGgAlg:!nPm$ :Pm. "Pn % bG!ng? a$.!ea3 <$ UUU uGsin !s 1$.p tg !s st$ % oG u.sPsin>!s p$
? ?

UU aG6tg !e + $ 2.+ %
A : :

bGa?.] sin? !a ]]$

UUUUU atGarcsin d + P e e +>e % asGat ln!t$Plog2 at afG e8z dg? d z.g% +G!s sin r $Pln !r.]$%
: ?

aaGaf arctg!z d.g$8 UUU ffGe er +e .ss%


.B

11 ddGln!d v:rPr$.!r 1$% drGdd? d arcsin>!rPv$.r 11 16 18 UUUUUUUUU UUUUU : ? eeG e Ph fd + v ln1rf% JGr tg v:Pee:
.:r

ggGv e.r log2 rm .!mv 1$% gGsinr!gg m:r r$ c f3 0: ln1cf ddGccccccccc% !1.<Pln:0$% 0>!3 zz$: vG ccccc !6Pzz?.9$ UUU A : lG log2 v rPm arcsin !m$% llG lP1 e.m r

19

gG1,2S1,:8% cu pasul 2,1 mG1,18 nG1,68 "G2,< &G1,:29 tG2,9S1,2% cu pasul 2,1 ]G2,9S6,1% cu pasul 2,1 +G1,16 eG9,11 dG1,<11 t,eG1,2S1, +G1,1121 d,zG8,121 gG1,S:,2 hG9,21 rG2,1S6,2% cu pasul 2,1 sG1,6 vG1,221 dG8,228S>,2<% cu pasul 2,1 rG1,86 vG2,6S9,1% cu pasul 2,1 hG1,28 rG1,121 vG1,6S<,2% cu pasul 2,1 m,rG2,>< 3G2,6S8,9% cu pasul 2,1 0G 2,9<2 cG1,> mG2,8S2,9% cu pasul 2,1 r,vG1,>

1:I. &e d un numr natural / i numerele A1,...,A/. )e precutat subirurile numerelor formate din: a$ ptrate ntregi% b$ puterile cinciului% c$ numere simple. "entru fiecare caz de obinut cea mai mare lungime a subirului precutat. Este de dorit, p entru cei avansai n programare, s ncerce s utili,e,e subprograme care ar gsi patratele ntregi, puterile numerelor prime, numere multiple i alte situaii de prelucrare a irurilor de numere prin diveri algoritmi. 1<. "roblema 'i<1 &e tie c un numr natural este deosebit dac e3ist un numr natural m astfel nct nGmP&!m$ unde &!m$ este suma cifrelor lui m. &e cere un program care verific dac un numr natural 3 este deosebit. (etoda folosita: daca 3 are a cifre atunci i m va avea m sau a 1 cifre i ele pot s aib sum minim dac toate cifrele lui m snt F1C i &!m$Ga 1 i suma cifrelor n este ma3im dac toate snt F@C i atunci &!m$GaI@. )eci m poate s varieze de la n aI@ pn la n aP1 1>. )e alctuit algoritmul pentru programul 4"!pr1261%$ de mai ,os. W )e obinut toate combinaiile din 12 elemente !1,...,12$, c5te 8 elemente in fiecare X program 1261%
const nG12% numG8% var i:integer% a:arra0j1..nk of 1..n% procedure tipareste% var i:integer% begin for i:G1 to num do +rite!ajik,[ [$% +riteln% end% procedure permuta!J:integer$% var i,3:integer% begin if JG1 then tipareste else begin for i:G1 to J do begin 3:Gajik%ajik:GajJk%ajJk:G3%

permuta!J 1$% 3:Gajik%ajik:GajJk%ajJk:G3% end% end% end% begin for i:G1 to n do ajik:Gi% +riteln% permuta!n$% end. GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG X 1@. )e alctuit algoritmul pentru programul 4" de mai ,os i de determinat ce efectueaz. uses crt% const nG11% a:arra0j1..nk of integerG!2,2, 1,2, 1,12, 1, 8, 8,8, @,9$% var i,,,J,]:b0te% z,+:integer% begin clrscr% for i:G1 to n do begin +rite!ajik,[ [$% end% +riteln%+riteln% for i:G1 to n do begin if ajikV2 then inc!J$%end% i:Gn% repeat if ajikV2 then begin z:Gajik% for ,:Gi do+nto 1 do begin aj,k:Gaj, 1k%end% aj1k:Gz% end else dec!i$% if ajik K 2 then begin inc!]$% +:Gajik% for ,:Gi to n ] do begin aj,k:Gaj,P1k%end% ajn ]P1k:G+% end% until iGJ% for i:G1 to n do begin +rite!ajik,[ [$%end% readJe0% end. 12. "roblema8. )e alctuit algoritmul i programul pentru urmtoare condiie: Avionul poate efectua o cursa din

#hiinu in una din localitatile R1, R1, ...Rn. #ostul unui bilet la cursa D#hiinu localitatea RiD este de Ai lei. grupul de pasageri include (1 persoane care pleaca in localitatea R1, (1 persoane care pleaca in localitatea R1 s. a. m. d. )in localitatea Ri !iG1,1,...,n$ in localitatea R, !,G1,1,...,n$ se circula cu trenul, costul unui bilet fiind de 4i, lei. &e considera, ca costul unui bilet direct DRi R,D este mai mic dec5t costul unui bilet cu transportari DRi RJ R,D, adica 4i, K4iJ P4J,. Elaborai un program care determina localitatea unde va ateriza avionul, garant5nd minimizarea costului total al biletelor procurate de pasageri.X 11. "roblema 'i<>. )e alctuit algoritmul i programul pentru urmtoare condiie: -ie ; o multime ce contine elementele 1 si 2.HGH1,H1...Hn cu n mai mare ca 1 !n este dat$si Hi apartine lui ;.&e mai dau:Z si s apartin multimii numerelor naturale mai mari ca 1.&a se genereze toate cuvintele YGY1Y1...YJ, unde Y1PY1P... PYJG&. &a se determine pentru fiecare dun cuvintele generate de cite ori apar ca subcuvinte ale lui H.X 11. "roblema. )e alctuit algoritmul i programul pentru urmtoare condiie: -ie " o permutare a elementelor j1,1....Jk &punem ca " este un ciclu de lungime l daca o submultime ji1,i1....ilk a multimii j1,1...Jk este astfel inc5t urmatoarele relatii sa fie indeplinite: - 1."!i1$Gi1,....,"!l 1$G"!l$, "!il$Gi1 - 1."!3$G3 p u oricare 3 din j1,1..Jklji1,i1,...ilk 16. "roblema 'i<1 )e alctuit algoritmul i programul pentru urmtoare condiie: -ie un vector ; cu p componente, ocupat partial cu elemente din multimea AG!a,b,c,d,e,f,g$. #omponentele lui ; se considera ocupate incepind in ordine cu L componenta, fara sa e3iste locuri libere intre componentele ocupate. -iind date un element 0, se cere: a$ &a se verifice daca 0 in A si daca se gaseste printre elementele ocupate in vector

b$ Ln cazul in care 0 nu se gaseste in vector, sa se ordoneze crescator componentele aflate in vector si apoi sa se introduca 0 pe locul care i se cuvine in ordine crescatoare!le3icografic$ c$ )aca 0 se gaseste in vector, sa se scoata si sa se comprime locurile ocupate astfel incit locurile libere sa ramina ultimele.X 18. "roblema )e alctuit algoritmul i programul pentru urmtoare condiie: &e d o matrice A patratica formata din elementele 2 i1. &e cere:)e gasit sirul ? cu proprietatile: 1.Elementele sirului sint distincte doua cite doua. 1."entru orice doua elemente l si m consecutive ale sale ,Ajl,mkG1. 6.#onsiderind elementul ?i, succesorul ?iP1 este cel mai mic indice cu proprietatile cerute. EHE("RM: 2111 AG 1 2 1 2 1211 1222 ,unde ?G!1,1,6,8$ "recautam de la inceput primul element al matricei G1,apoi se precauta pe rindul iG, alt element al matricei G1 .)aca nu s a gasit trecem la succesorul primului element al matricei G1,etc. 19. "roblema 'i11@ )e alctuit algoritmul i programul pentru urmtoare condiie: &e dau mulimile ;Gja,b,c,dk si &GjA,?k. /umim cuv5nt format cu elementele lui ;M& o succesiune formata conform regulilor: 1$orice 3 din ; ja,dk este un cuv5nt. 1$daca 3 este cuv5nt atunci a3d este cuv5nt. 6$daca 3,0 sunt cuvinte atunci 3A0, a?0 sunt cuvinte. d5ndu se succesiune 3G31,31,...,3n cu elemente ;M&, sa se determine daca 3 este cuv5nt.
?ibliografie: #ristea ;alentin, 4ehnici de programare. Ed.: ?ucur., 4eora, 1@@6. .:>1.6% 41@. (aranu 7adu. (&U)'& i M/LH. &isteme de operare. Mtilizare *indo+s, Rotus, *ord"erfect. ?ucur., Ed.4ehnicm, 1@@9. .:@1.6% (61. 6. 4. ?lnescu n.a. "A&#AR ni 4urbo"ascal. v.1,1. ?ucur., Ed.: 4ehnica,1@@1. 8. 16. ;asiu R., grama 7., Aldica A. 4urbo "ascal :.2. "rograme #l. /apoca: (icro Lnformatica ,1@@8. 6@@ p. !&er."#$. L&?/ @<6 @:1<8 1 2 #dM :>1.6 ; 69 9. 'dagescu Loan, #opos #ristina s.a. (etode si 4ehnici de programare. .enunturi, solutii, probleme propuse. Ed.:?ucur.: L/4A#4, 1@@8.:>1.6% '16. :. )r. Zris iamsa si Rars Zlander ``4otul despre # si #PP``, traducere de Eugen )umitrescu <. oppqrst u. vsnwxxsy zrs{w|s xs y}~|q w.!8 |x.$ v.: twqp. 1@@6 >. qsxw . rzrsppwrsxwq xs y}~|q w. v.: sw w .. 1@>>. .:>1.6% 82@. @. p . r. }~| w. v.: sw w .. 1@>>..:>1.6% @<. 12. qrrw ., vw|wx} . }~| w. . ty rzrsppw. v.: wxsx~ w . 1@>>..:>1.6% 91>. 11. "rogramare calculatoarelor. Lndrumar de laborator..A."opescu, &. (arin s.a.. #hiinu.: M4(, 1@@:. 11. Lnformatica. Lndrumar de laborator..A."opescu, &. (arin .. #hiinu.: M4(, 1226. 1. 1.

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