+ All Categories
Home > Documents > Program Are

Program Are

Date post: 01-Oct-2015
Category:
Upload: dragosvoinea96
View: 6 times
Download: 0 times
Share this document with a friend
Description:
1
48
Elemente de practica programarii Algoritmi. Scheme logice. Introducere in Matlab
Transcript
  • Elemente de practica programarii

    Algoritmi. Scheme logice.Introducere in Matlab

  • GeneralitiUn calculator este o maina ce permite rezolvarea unor probleme prin executarea unui lan de instruciuni.O succesiune de instruciuni, ce pornind de la niste date de intrare, prin prelucrare obtine rezultate, se numete program.Instruciunile ce pot fi recunoscute i executate de microprocesor sunt simple i limitate ca numr, pentru a nu complica structura hardware dar consistente pentru a fi utilizat eficient puterea de calcul. Limbajele de programare sunt limbaje artificiale, folosite n tiina calculatoarelor, pentru a scrie secvene de instruciuni (programe), care pot fi executate de calculator. Similar limbajelor naturale, limbajele de programare au vocabular, gramatic i sintax. Limbajele de programare trebuie s aib structuri logice simple i reguli gramaticale foarte precise.

  • AlgoritmCum ajungem la rezultateLimbaj de programareScrierea programuluiProblemaDate de intrareRezultateCum scriem un programExecuia programuluiObinerea de rezultate

  • MatlabUn exemplu de mediu de programare este MATLAB (MATrix LABoratory), un program interactiv pentru rezolvarea de probleme stiinifice. De la an la an firma productoare (MathWorks, 1984, SUA - http://www.mathworks.com/) adaug funcii noi (Toolbox-uri), cu care se ce pot rezolva problemele specifice unui domeniu de activitate. Student Edition of Matlab este o varianta minimala, destinata initierii in arta programarii, care apeleaza la editorul de texte Notepad pentru creerea programului (fisierului cu instructiuni, ce trebuie sa aiba extensia .m). Pentru executia programului este suficient ca in fereastra de comenzi Matlab sa se tasteze numele lui, urmat de tasta enter. Anterior trebuie informat Matlab-ul de locul in care se afla fisierul cu programul, prin comanda cd. Ex: cd d:\amatlabin cazul in care locul este directorul amatlab, pe discul d:

  • Fereastra de comenzi MatlabPutem tasta si efectua calcule sau executa instructiuni in fereastra de comenzi Matlab. Executia sau calculul se realizeaza la apasarea tastei enter! Rezultatul calculelor directe sunt memorate in variabila cu numele ans. Intre ferestrele Notepad si Matlab putem transfera informatie prin procedura copy - paste

  • Adunarea a 2 numereIdentificarea datelor si a algoritmului Identificarea variabilelor (a, b, c)c) Rularea programului programuluib) Alegerea limbajului si scrierea programului

  • ConcluziiDatele sunt identificate prin nume si stau in aceeasi memorie cu programul. Rezultatul este identificat printr-un nume, este o variabila ce sta tot in aceeasi memorie.Numerele afisate de program pot crea confuzii datorita faptului ca nu sunt oferite explicatii asupra provenientei lorProgramul nu este flexibil, schimbarea datelor de intrare necesitand schimbarea programului (a fisierului ex1.m)

  • Afisareadisp(text explicativ)afisarea textului explicativdisp(variabila)afisarea valorii variabilei, fara numele ei

  • Introducerea datelor la cererev=input(text explicativ)variabila cu numele v primeste valoarea tastata de utilizator. Textul explicativ lamureste utilizatorul aspru actiunii ce trebuie sa o execute

  • Compararea (instructiunea if)Sa se afle care din numerele a si b (tastate de utilizator) este mai mare

    if conditiegrup1 instructiunielsegrup 2 instructiuniendIn cazul in care conditie este adevarata se executa grupul 1, in caz contrar grupul 2

  • Operatori relationali

  • Compararea a doua numere

  • Operatii repetitive (while)Sa se repete comparari de perechi de doua numere date de utilizator, pana cand cele doua numere sunt egalewhile expresie grup de instruciuni endgrup de instruciuni este executat atta timp ct expresie este adevrat.Este necesar ca grup de instruciuni sa actioneze si asupra expresiei

  • Operatii repetitive (while)

  • Operatii repetitive (for)Sa se afiseze mesajul informatica este interesanta de n ori (n fiind particularizat de utilizatir la lansarea programului). for contor = val.intiala : pas : val.finalagrup instructiuniendVariabila contor primeste valoarea initiala si este marita cu valoarea pas la fiecare parcurgere a grupului de instructiuni. Grupul de instructiuni este deci repetat pana cand vaiabila contor ajunge la valoarea finala. Daca pas nu e precizat, valoarea lui implicita este 1.

  • Operatii repetitive (for)Sa se afiseze mesajul informatica este interesanta de n ori (n fiind particularizat de utilizator la lansarea programului).

  • Variabile indexate (vectori si matrici)In Matlab numele de variabile nu trebuie s depeasc 19 caractere (ce este suplimentar nu este luat n considerare). Caracterele permise sunt literele alfabetului englez, cifrele de la 0 la 9 i semnul _ (subliniere). Aa cum i spune i numele, Matlab-ul este locul n care prelucrrile datelor se fac prin intermediul matricilor. Chiar i mrimile scalare, care nu au dect o dimensiune, sunt vzute de matrici de dimensiune 1x1! S generm de exemplu variabila g. Comanda whos este ne d informaii despre variabilele existente: g=2; whos Name Size Elements Bytes Density Complex g 1 by 1 1 8 Full No Grand total is 1 elements using 8 bytes

  • Variabile indexate (vectori si matrici)Matlab-ul ne ofer o variant global de actualizare, n care se indic toate valorile elementelor matricei: ntreg setul de valori este ncadrat ntre paranteze drepte, elementele fiecrei linii fiind separate prin caracterul spaiu, iar liniile separate prin caracterul ;Exemplu, generarea matricei m de dimensiune 3 x 5: m=[11 12 13 14 15; 21 22 23 24 25; 31 32 33 34 35]m = 11 12 13 14 15 21 22 23 24 25 31 32 33 34 35

  • Variabile indexate (vectori si matrici)In Matlab referirea la un element al unei matrici se face prin indicarea numelui matricei, urmat intre paranteze rotunde de pozitia elementului.Ex: Atunci cand se lucreaza cu siruri de numere, este foarte comoda utilizarea vectorilor (matrici cu o singura dimensiune). Ex: a=[2 6 7 0 1]a = 2 6 7 0 1 m(2,1)ans = 21 c=m(1,3)+m(3,5)+2c = 50 a(4)ans = 0

  • Gasirea sumei elementelor unui sir

  • Gasirea sumei elementelor unui sir

  • Instructiuni, Functii predefinite

  • mean(X) calculeaza pentru matrici valoarea medie de pe fiecare din coloanele matricei X sau pentru vectori valoarea medie a componentelor vectorului Xmedian(X) calculeaza pentru matrici valoarea median de pe fiecare din coloanele matricei X sau pentru vectori valoarea median a componentelor vectorului Xprod(X) calculeaza pentru matrici valoarea produsului elementelor de pe fiecare din coloanele matricei X sau pentru vectori valoarea produsului componentelor vectorului Xsum(X)calculeaza pentru matrici valoarea sumei elementelor de pe fiecare din coloanele matricei X sau pentru vectori valoarea sumei componentelor vectorului Xsort(X) sorteaza crescator pentru vectori elementele vectorului X sau pentru matrici fiecare din coloanele matricei X

  • sign(X) ofera semnul argumentului Xrem(X,Y) ofera restul mpririi lui X la Yround(X) rotunjeste valoarea argumentului X la cel mai apropriat ntregabs(X) - determina valoarea absoluta a fiecarui element al matricei Xsqrt(X) calculeaz radicalul de ordinul doi din XA^n- ridic la puterea n, argumentul Apow2(X) - ridic doi la puterea argumentului Xsin(X) sinus de X, cos(X) - cosinus de X,

  • Realizarea de grafice de functii fplot(lista functii, limite, marcaj)lista functii descrie functia sau functiile de argument x . Ex: sin(x), cos(x), 2*x+1, (x.^2) limite este un vector cu 2 sau 4 elemente, ce fixeaz prin primele 2 elemente, domeniul de definiie i prin valorile 3 i 4 domeniul de valori ale funciei. Ex: [-1 1], [-1 1 2 6]marcaj este un parametru opional, cu care impunem forma curbei (putem pune suplimentar liniei continui i nite semne speciale pe curba funciei). Valorile admise sunt: '-+', '-x', '-o', '-*' (sau '+-', 'x-', 'o-', '*-') si suprapun peste curba funciei semnele +, x, o sau *.

  • Graficul functiei x*sin(x)

  • Reprezentarea grafica a variabilelor Matlab

  • Reprezentarea grafica a puctelor prezentate in vectorii q (abscisa axa x) si w (ordonata axa y)

  • plot(q) este echivalenta cu plot(x,q), unde x este un vector cu elementele: 1, 2, 3 , 4,

  • Comenzi pentru controlul axelor, titlurititle('text') se folosete pentru indicarea de titluri, textul aprnd n partea de sus a graficului.xlabel('text') se folosete pentru indicarea unor explicaii i a unitilor de msur pe abscis, textul aprnd sub axa x.ylabel('text') se folosete pentru indicarea unor explicaii i a unitilor de msur pe ordonat, textul aprnd pe axa y.legend(text1,text2,text3, ...) adaug legend graficului, corespunztor fiecrui tip de linie cu care este construit graficul, sunt prezentate explicaiile text1, tex2,.... grid on instruciune cu care generm o reea de linii orizontale i verticale, cu care s putem citi corect mrimea valorilor pe graficgrid off instruciune cu care anulm efectul grid on

  • Alte posibilitati grafice 2Dstem(y) face o reprezentare grafic cu segmente verticale de lungimea valorilor indicate n vectorul y. Fiecare segment se termin cu un cerculestairs(y) unete prin trepte valorile vectorului y.bar(y) realizez un grafic, n care valorile din vectorul v sunt reprezentate prin bare verticale.hist(y) reprezint grafic o histogram nprind n 10 intervale egal spaiate, valorile din vectorul y. Fiecare bar ne arat prin mrimea nlimii (ordonata), de cte ori este prezent n vectorul y volarea de pe ordonat. Se reprezint astfel distribuia elementelor vectorului y.

  • Etapele realizrii unui programa) Definirea problemeib) Selecia algoritmilor i a structurilor de datec) Specificarea structurii i a logicii programului (descompunerea n uniti de program-module- i stabilirea funciuni, logicii i a interfeelor pentru fiecare modul)d) Codificarea (transcrierea ntr-un limbaj de programare)e) Depanarea i testarea (pornind de la verificarea modulelor independent)f) Redefinirea pailor anteriori (corectarea erorilor depistate)g) Documentareah) Intreinerea programului

  • Algoritmi. Scheme logiceAlgoritmul este o mulime de reguli de calcul, folosite ntr-o succesiune bine precizat, cu ajutorul crora putem obine soluia, cu o precizie mulumitoare, a unei probleme, prin execuia unui numr finit de operaii.ProprieticlaritateeficacitateuniversalitateCorespunztor etapelor de calcul algoritmul este format din mai muli pai, ce se execut n ordinea lor matural, atta timp ct nu intervine o condiie de salt, ce s impun executarea unui alt pas dect cel urmtor Reprezentarea grafic, intuitiv, a unui algoritm poate fi fcut cu ajutorul schemelor logice.

  • Simboluri folosite n ntocmirea de scheme logiceBlocul de calculCalculul ce trebuie executat se scrie in interiorul dreptunghiuluiSTARTSTOPBlocul de nceput i Blocul de sfrit al schemei logice

  • SCRIElista mrimiCITETElista mrimiBlocul ieireBlocul intrareCDANUBlocul de decizieSe folosete pentru indicarea unei decizii ntr-un algoritm. Indeplinirea sau nu a condiiei C duce la continuarea pe ramura DA, respectiv NU

  • Toate blocurile funcionale se leag prin arce orientate dup sensul de parcurgere a algoritmuluiSemnul de atribuire := VariabileConstanteIdentificatori Operatori matematici: + - * /Operatori logici: < > >=
  • Rezolvarea ecuaiei de gradul I ax+b=0 x=-b/a, cnd a nu e zero STARTSTOPCITETEa,ba=0danuSCRIEEc. imp.SCRIEx=,xx:=-b/aMatlab, initiere

  • Gsirea valorii minime (maxime) a unui ir de numereSTARTciteteni:=1citetea(i)i:=i+1i
  • Calculul sumei (produsului) valorilor unui ir de numereSTARTciteteni:=1citetea(i)i:=i+1i
  • Ordonarea valorilor unui ir de numereSTARTciteteni:=1citetea(i)i:=i+1i
  • Cutarea secvenial a unei valori ntr-un ir de numereSTARTcitetev, ni:=1citetea(i)i:=i+1i
  • Cutarea binar a unei valori ntr-un ir de numereSTARTcitetev, ni:=1citetea(i)i:=i+1i
  • Elemente de programare structuratProgramarea structurat are ca idee fundamental proiectarea de la nceput a programului n aa fel nct acesta s prezinte o structur bine determinat, simpl i clar, adecvat unei analize eficiente a corectitudinii programului.Structurile cu ajutorul crora se poate ntocmi n acest fel un program sunt:secvenadeciziaselecia ciclul cu test iniialciclul cu test final

  • DANUs1s2sns1ss2.....cSELECIAcDECIZIA...snSECVENAs2s1

  • DANUcCICLU CU TEST FINALCICLU CU TEST INIIALsDANUcs


Recommended