1 / 19

Programare dirijata de evenimente PYTHON (VISUAL BASIC) A ctivităţi:

C1 /3.10.2013. Programare dirijata de evenimente PYTHON (VISUAL BASIC) A ctivităţi: 2 ore curs, sala 43, V ineri 14-16 2 ore laborator , ( prez. obl. ) Sala 37 Vineri 12-14/16-18/18-20 Mail: vcioban@cs.ubbcluj.ro , Web: www.cs.ubbcluj.ro/~vcioban

Télécharger la présentation

Programare dirijata de evenimente PYTHON (VISUAL BASIC) A ctivităţi:

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. C1 /3.10.2013 Programare dirijata de evenimente PYTHON (VISUAL BASIC) Activităţi: • 2 ore curs, sala 43, Vineri 14-16 • 2 ore laborator, (prez. obl.) Sala 37 Vineri 12-14/16-18/18-20 • Mail: vcioban@cs.ubbcluj.ro, • Web: www.cs.ubbcluj.ro/~vcioban • 0740230190

  2. Programare dirijata de evenimente PYTHON (VISUAL BASIC) • Notarea finală • Seminar (S): S=((n1+n2)/2)*0.9 + Prezenţa • Proiect (P): Catalog=[0.3*S+0.7*P]

  3. Fundamentele programării • Algoritmi şi descrierea lor • Subalgoritmi (Pseudocod)

  4. Fazele rezolvării unei probleme cu calculatorul (ciclul de viaţă al programului) : Rezolvarea unei probleme cu ajutorul calculatorului presupune parcurgerea următoarelor faze: - precizarea cerinţelor beneficiarului (definirea problemei) ; - specificarea problemei (ce se dăşi ce trebuie făcut/ce se cere); - proiectarea algoritmului de rezolvare a problemei(cum se rezolvă): (ansamblu-Specif., detaliu-Subalg.); - programarea propriu-zisă, numită şi implementare (sau codificare); - testarea produsului obţinut (verificarea-executor,validare-beneficiar); - exploatarea şi întreţinerea programului (corectivă, perfectivă, adaptivă); - redactarea documentaţiei fiecăreia din fazele enumerate.

  5. Descrierea algoritmilor: Prin algoritm putem înţelege o succesiune finită de operaţii. Acesta presupune executarea unor calcule într-o anumită ordine. Un algoritm este un text finit, o secvenţă finită de propoziţii ale unui limbaj de descriere a algoritmilor. O propoziţie a limbajului precizează o anumită regulă de calcul sau de decizie. Are următoarele trei caracteristici: generalitate, finitudine şi (unicitate şi exactitate). Algoritmul A defineşte o funcţie: A : D  R Descrierea algoritmilor se realizează prin mai multe limbaje de descriere, dintre care cele mai des folosite sunt: - schemele logice; - limbajul Pseudocod; - limbaje de programare. Variabila (nume, tip, valoare, semnificaţie, …)

  6. Start Citeste a, b, c Da Mesaj a=0 a=0 Nu 1 :=b2-4ac -b+ Da Nu <0 x1:= Re:=-b / 2a 2a -b- Im:=-/2a x2:= 2a Tipăreste Re,Im Tipăreste x1,x2 1 Stop Schemele logice: Utilizează: - blocurile pentru calcule; - săgeţile pentru ordinea lor.

  7. Limbajul Pseudocod: • Limbajul Pseudocod are două tipuri de propoziţii (pentru calcule): • standard (care au o structură fixă şi este formată cu ajutorul unor cuvinte • cheie), • nestandard (care descriu părţi ale algoritmului încă incomplet elaborate, • nefinisate, asupra cărora urmează să se revină) • comentarii (texte scrise între acolade utilizate pentru documentarea • algoritmului). • Ordinea execuţiei este naturală. • Descrierea algoritmilor se poate realiza (structurat)utilizand doar următoarele structuri: • secvenţială (formată dintr-o succesiune de propoziţii simple), • alternativă (permite executarea anumitor ramuri în funcţie de anumite condiţii) • repetitivă (prin care se poate executa aceleaşi propoziţii de mai multe ori).

  8. Date de intrare Prelucrare Date de iesire Structura generală a unui algoritm descris în Pseudocod : AlgoritmulNumeEste: { Antetul algoritmului } . . . { Corpul “ } SfarşitAlgoritm. { Sfarşitul “ } Un algoritm (în general) se desfăşoară în trei etape : - citirea datelor de intrare (iniţializarea datelor), - efectuarea de calcule (prelucrarea datelor), - tipărirea rezultatelor (extragerea datelor de ieşire).

  9. Operaţii (propoziţii): -Ortogonalitatea propozitiilor (structurilor) Citirea datelor Date Listă_variabile_de_intrare; Tipărirea rezultatelor Rezultate Listă_expresii_de_ieşire; Atribuirea de valori unei var. [Fie] Variabilă :=Expresie; Structuri alternative: - cu o ramură  Dacă Condiţie Atunci Secvenţă SfDacă ; - cu două ramuri  Dacă Condiţie Atunci Secvenţă1 Altfel Secvenţă2 SfDacă ; - cu mai multe ramuri  Selectează Expresie Dintre ListăValori1 : Secvenţă1; ListăValori2 : Secvenţă2; . . . ListăValorin : Secvenţăn [ Altfel Secvenţăn+1 ] SfSelectează;

  10. Secvenţă Da Nu Secvenţă Condiţie Condiţie Nu Da Structurile repetitive: Cu număr cunoscut de pasi: Pentru VarC := Li , Lf [ , Pas ] Execută Secvenţă SfPentru; Cu test iniţial: CâtTimp Condiţie Execută Secvenţă SfCâtTimp; Cu test final: Repetă Secvenţă PânăCând Condiţie;

  11. Exemplu:calculează produsul a două polinoame P şi Q , date prin vect. coef. Algoritmul Produs Este : { R:=PQ } Date m,(Pi , i=0,m), n,(Qj , j=0,n); { m=gradul lui P, n=gradul lui Q } Pentru k:=0,m+n Execută { m+n=gradul lui R } Rk:=0 SfPentru; Pentru i:=0,m Execută Pentru j:=0,n Execută Ri+j:=Ri+j+Pi*Qj SfPentru; SfPentru; Rezultate (Rk, k=0,m+n) SfAlgoritm.

  12. Exemplu:determină primele n (n dat) numere prime Algoritmul Prime Este :{ Primele n numere Prime } Date n; { primele n numere prime p =2,3,5, ... } p:=2; i:=0; CâtTimp i<n Execută { i reprezintă al câtelea număr prim a fost găsit } d:=2; { p este prim ? ( nu se divide cu 2,3, ... )} CâtTimp (d*d<=p) şi (p Mod d > 0) Execută d:=d+1{se caută divizori d =2,3,... Radical(p) } SfCâtTimp; Dacă d*d>p Atunci {dacă am trecut cu d de Radical(p) atunci p este prim ! } Rezultate p; i:=i+1 SfDacă; Dacă p=2 Atunci p:=p+1{ Se verifică doar pentru numerele impare de la 3,... } Altfel p:=p+2 SfDacă; SfCâtTimp SfAlgoritm.

  13. Exemplu:determinăoglinditulunuinumar n natural (cititi de la dreapta la stanga) (Oglinditullui 173 este 371). Algoritmul Oglindit Este : Date n; Ogl  0 CatTimp (n>0) UCif  n Mod 10; {Se determina ultima cifra a lui n } Ogl  Ogl*10+Ucif; { Se adauga cifra la Ogl } n [n/ 10] { Sterg Ultima cifră din n } SfCatTimp; Rezultate “oglinditul=“, Ogl SfAlgoritm. 4104 + 9 = 4014 + 99

  14. Parametri de Intrare Parametri de iesire Subalgoritm Subalgoritmi: rezolvă o anumită subproblemă Apel: Cheamă NumeSubalgoritm (ListaParametriActuali); Def.: Subalgoritmul NumeSubalgoritm (ListaParametriFormali) Este : {Antet} . . . { Corp subalgoritm } SfSubalgoritm. {sau SfNumeSubalgoritm. } Parametri de Intrare  Expresii Parametri de iesire  Variabile

  15. X , Y R R:=XY Exemplu:pentru trei mulţimi date A, B şi C calculăm AB, AC şi BC Algoritmul Reuniuni Este : Date A,B,C; Cheamă Reuniune (A,B,R1); Cheamă Reuniune (A,C,R2); Cheamă Reuniune (B,C,R3); Rezultate R1; Rezultate R2; Rezultate R3; SfAlgoritm. Subalgoritmul Reuniune ( X,Y, R ) Este : R:=X; Pentru fiecare yY Execută Dacă yX Atunci R:=R{y} SfDacă SfPentru SfReuniune. Subalgoritmul Reuninune determină mulţimea R = X  Y astfel : R := X  (Y \ X), adică depune în reuniune mai întâi elementele din mulţimea X, la care apoi mai adaugă acele elemente din Y care nu aparţin lui X.

  16. Funcţii: ~ Subalgoritm + Val. funcţiei Apelul unei funcţii: se face scriind într‑o expresie numele funcţiei urmat de lista parametrilor actuali. … NumeFuncţie (ListăParametriActuali)…{ expr.instr.} Def.: Funcţia NumeFuncţie (ListăParametriFormali) Este : { Antetul funcţiei } . . . NumeFuncţie := Expresie; { Corpul funcţiei } . . . SfFuncţie. {sau SfNumefuncţie.} Parametri de Intrare  Expresii Parametri de iesire  Variabile

  17. Exemple: Funcţia Există ( b, A, n, p ) Este : {se determina daca b apartine lui A} p:=1; CâtTimp (p<=n) şi (b<>ap) Execută p:=p+1 SfCâtTimp; Există := (p<=n) SfExistă. Funcţia Apart (b,A) Este : {analog ca mai sus} p:=1; {Card(A)=|A|} CâtTimp (p<=Card(A)) şi (b<>A[p]) Execută p:=p+1 SfCâtTimp; Apart := (p<=Card(A)) SfApart. Funcţia Card (A) Este : Card := a0 SfCard. Dacă yX Atunci R:=R{y} Sf_Dacă; Dacă Not Apart (y,X) Atunci R:=R{y} Sf_Dacă;

  18. Exemplu:determină maximul dintr-un şir X cu n componente. Funcţia Max (X,k) Este : Dacă k=1 Atunci Max:=x1 {Consistenţa} Altfel Dacă Max(X,k-1) < xk Atunci Max:= xk Altfel Max:= Max(X,k-1) SfDacă SfDacă SfMax. Apelul: Max(X,n) Exemplu:decide dacă b aparţine primelor k elemente din şirul A. Funcţia Apart (b,A,k) Este : Apart := (k>0) şi ( Apart(b,A,k-1) Sau (b=ak) ) SfApart. Apelul: Apart(b,A,Card(A))

  19. Spor(t) la studiu… şi la practică . . . C1 / 3.10.2013

More Related