UNIVERSITATEA BABEŞ-BOLYAI Facultatea de …lauras/test/docs/school/FP/2013-2014/lectures/... ·...

35
FUNDAMENTELE PROGRAMĂRII Laura Dioşan INTRODUCERE UNIVERSITATEA BABEŞ-BOLYAI Facultatea de Matematică şi Informatică

Transcript of UNIVERSITATEA BABEŞ-BOLYAI Facultatea de …lauras/test/docs/school/FP/2013-2014/lectures/... ·...

Page 1: UNIVERSITATEA BABEŞ-BOLYAI Facultatea de …lauras/test/docs/school/FP/2013-2014/lectures/... · Data – o colecție de simboluri stocate (într-o anumită reprezentare) într-un

FUNDAMENTELE

PROGRAMĂRII

Laura Dioşan

INTRODUCERE

UNIVERSITATEA BABEŞ-BOLYAI

Facultatea de Matematică şi Informatică

Page 2: UNIVERSITATEA BABEŞ-BOLYAI Facultatea de …lauras/test/docs/school/FP/2013-2014/lectures/... · Data – o colecție de simboluri stocate (într-o anumită reprezentare) într-un

Sumar

Elemente organizatorice

Scopul activității

Conținut curs

Activități și evaluare

Dezvoltarea proceselor de programare

Ce este programarea?

Elementele de bază ale unui program Python

Un simplu proces de dezvoltare bazat pe funcționalități

Octombrie, 2013 Fundamentele programării - Introducere 2

Page 3: UNIVERSITATEA BABEŞ-BOLYAI Facultatea de …lauras/test/docs/school/FP/2013-2014/lectures/... · Data – o colecție de simboluri stocate (într-o anumită reprezentare) într-un

Elemente organizatorice Profesori coordonatori

Conf. Dr. Laura Dioșan www.cs.ubbcluj.ro/~lauras

Lect. Dr. Vasile Prejmarean http://www.cs.ubbcluj.ro/~per/

Asist. Dr. Camelia Șerban http://www.cs.ubbcluj.ro/~camelia/

Orar Curs – 2 ore/săptămână

Seminar – 2 ore/săptămână

Laborator – 2 ore/săptămână

Informații utile www.cs.ubbcluj.ro/~lauras/

Teaching

Current year

Fundamentele programarii

Octombrie, 2013 Fundamentele programării - Introducere 3

Page 4: UNIVERSITATEA BABEŞ-BOLYAI Facultatea de …lauras/test/docs/school/FP/2013-2014/lectures/... · Data – o colecție de simboluri stocate (într-o anumită reprezentare) într-un

Scopul activității Cunoașterea celor mai importante concepte din

programare

Familiarizarea cu conceptele din software engineering (arhitectură, implementare, întreținere)

Înțelegerea instrumentelor sofware de bază

Învățarea limbajului de programare Python și utilizarea lui pentru implementarea, rularea, testarea și depanarea programelor

Însușirea și îmbunătățirea stilului de programare

Octombrie, 2013 Fundamentele programării - Introducere 4

Page 5: UNIVERSITATEA BABEŞ-BOLYAI Facultatea de …lauras/test/docs/school/FP/2013-2014/lectures/... · Data – o colecție de simboluri stocate (într-o anumită reprezentare) într-un

Conținut curs Introducere în procesul de dezvoltare software Programare procedurală Programare modulară Tipuri definite de utilizator Principii de dezvoltare a softului Testarea și inspectarea programelor Recursivitate Complexitatea algoritmilor Metode prin divizare Backtracking Algoritmi de căutare Algoritmi de sortare Recapitulare

Octombrie, 2013 Fundamentele programării - Introducere 5

Page 6: UNIVERSITATEA BABEŞ-BOLYAI Facultatea de …lauras/test/docs/school/FP/2013-2014/lectures/... · Data – o colecție de simboluri stocate (într-o anumită reprezentare) într-un

Activități și evaluare

Activități de laborator – 30% Documentații și programe

În timpul semestrului

Evaluare practică – 30% În sesiune

Evaluare scrisă – 30% În sesiune

Activitate de seminar – 10% În timpul semestrului

Octombrie, 2013 Fundamentele programării - Introducere 6

Page 7: UNIVERSITATEA BABEŞ-BOLYAI Facultatea de …lauras/test/docs/school/FP/2013-2014/lectures/... · Data – o colecție de simboluri stocate (într-o anumită reprezentare) într-un

Activități și evaluare Toate activitățile sunt obligatorii

Participarea la examen este condiționată de o prezență de 75% la orele de curs

Condiții de promovare:

Nota finală >= 5

Fiecare laborator este evaluat cu o notă între 1 și 10 pe baza explicațiilor, codului sursă, exemplelor, testelor, etc.

Întârzierea în predarea unui laborator este penalizată prin diminuarea notei cu 1p pentru fiecare săptămână de întârziere

Nota pentru laborator se stabilește ca o medie a notelor pentru toate laboratoarele realizate. Laboratoarele nerealizate vor primi nota 1.

Este permisă o singură absență de la orele de laborator (absențele suplimentare vor diminua nota cu 1p/absență)

În cursul unui laborator (2 ore) se pot preda maxim 2 teme de laborator

O temă de laborator copiată este notată cu 0

Octombrie, 2013 Fundamentele programării - Introducere 7

Page 8: UNIVERSITATEA BABEŞ-BOLYAI Facultatea de …lauras/test/docs/school/FP/2013-2014/lectures/... · Data – o colecție de simboluri stocate (într-o anumită reprezentare) într-un

Activități și evaluare

În sesiunea de restanțe

Se mai pot preda laboratoare, dar nota primită va fi maxim 5

Se poate re-susține examenul practic

Se poate re-susține examenul scris

Octombrie, 2013 Fundamentele programării - Introducere 8

Page 9: UNIVERSITATEA BABEŞ-BOLYAI Facultatea de …lauras/test/docs/school/FP/2013-2014/lectures/... · Data – o colecție de simboluri stocate (într-o anumită reprezentare) într-un

Dezvoltarea proceselor de programare

Ce este programarea?

Elementele de bază ale unui program Python

Un simplu proces de dezvoltare bazat pe funcționalități

Octombrie, 2013 Fundamentele programării - Introducere 9

Page 10: UNIVERSITATEA BABEŞ-BOLYAI Facultatea de …lauras/test/docs/school/FP/2013-2014/lectures/... · Data – o colecție de simboluri stocate (într-o anumită reprezentare) într-un

Dezvoltarea proceselor de programare Ce este programarea?

Hardware Computere (desktop, laptop, etc) și dispozitive înrudite

Software Programe sau sisteme care rulează pe un hardware

Limbaj de programare Notații și reguli pentru definirea sintaxei și semanticii

programelor

Python Un limbaj de programare de nivel înalt

Interpretatorul Python Un program care permite rularea/interpretarea unor alte

programe

Bibliotecile Python Subprograme și tipuri de date deja definite de alți

programatori

Octombrie, 2013 Fundamentele programării - Introducere 10

Page 11: UNIVERSITATEA BABEŞ-BOLYAI Facultatea de …lauras/test/docs/school/FP/2013-2014/lectures/... · Data – o colecție de simboluri stocate (într-o anumită reprezentare) într-un

Dezvoltarea proceselor de programare Ce este programarea?

Ce fac computerele? Stochează informații și date în

Memoria internă Memoria externă (hard, stick, CD, etc)

Operează Cu ajutorul procesorului

Comunică Prin tastatură, mouse, ecran Conexiuni de tip rețea

Informații și date Informații – interpretarea unor date

Numărul 123 Stringul „abc”

Data – o colecție de simboluri stocate (într-o anumită reprezentare) într-un computer 12 – 1100 „abc” – 97 98 99

Procesarea datelor și informațiilor Dispozitivele de intrare transformă informațiile în date Datele sunt stocate în memorie Dispozitivele de ieșire produc informații din date

Operații de bază ale procesoarelor În reprezentare binară Ex. AND, OR, NOT, XOR, etc.

Octombrie, 2013 Fundamentele programării - Introducere 11

Page 12: UNIVERSITATEA BABEŞ-BOLYAI Facultatea de …lauras/test/docs/school/FP/2013-2014/lectures/... · Data – o colecție de simboluri stocate (într-o anumită reprezentare) într-un

Dezvoltarea proceselor de programare Elementele de bază ale unui program Python

Exemplu

Elemente lexicale Un program Python poate fi alcătuit din mai multe linii de

cod Comentarii

încep cu # și țin până la sfârșitul liniei încep cu ’’’ și țin mai multe rânduri, până la un nou ’’’

Identificatori secvențe de caractere (litere, cifre, _) care încep cu o

literă sau cu _ Literali

notații pentru valorile constante sau pentru tipuri definite de utilizator

Octombrie, 2013 Fundamentele programării - Introducere 12

# takes two integers and prints the sum of them a = 3 b = 4 c = a + b print("The sum of ", a, " + ", b, " is ", c)

Page 13: UNIVERSITATEA BABEŞ-BOLYAI Facultatea de …lauras/test/docs/school/FP/2013-2014/lectures/... · Data – o colecție de simboluri stocate (într-o anumită reprezentare) într-un

Dezvoltarea proceselor de programare Elementele de bază ale unui program Python

Modelul de date

Toate datele unui program Python – obiecte

Un obiect are o identitate – adresa lui în memorie un tip – care determină valorile pe care le poate lua

obiectul respectiv, precum și operațiile posibile cu acel obiect

o valoare

Odată creat, identitatea și tipul obiectului nu mai pot fi modificate

Valoarea unor obiecte se poate modifica Obiecte mutabile Obiecte ne-mutabile

Octombrie, 2013 Fundamentele programării - Introducere 13

Page 14: UNIVERSITATEA BABEŞ-BOLYAI Facultatea de …lauras/test/docs/school/FP/2013-2014/lectures/... · Data – o colecție de simboluri stocate (într-o anumită reprezentare) într-un

Dezvoltarea proceselor de programare Elementele de bază ale unui program Python

Tipuri de date

Conținut

Domeniu – set de valori

Operații posibile

Tipologie

Numere - ne-mutabile

Secvențe – mutabile și ne-mutabile

Mulțimi finite și ordonate, indexate prin numere ne-negative

Dacă s este o secvență, atunci

len(s) – returnează numărul de elemente ale lui s

s[0], s[1], …, s[len(s)-1] – elementele lui s

Exemplu: s = [1, ‘a’, 23, “abc”]

Octombrie, 2013 Fundamentele programării - Introducere 14

Page 15: UNIVERSITATEA BABEŞ-BOLYAI Facultatea de …lauras/test/docs/school/FP/2013-2014/lectures/... · Data – o colecție de simboluri stocate (într-o anumită reprezentare) într-un

Dezvoltarea proceselor de programare Elementele de bază ale unui program Python

Tipuri de date numerice - ne-mutabile

int

Domeniu: întregi pozitivi și negativi

Operații: +, -, *, /

Literali: 1, 2

bool

Domeniu: adevărat sau false

Operații: logice (and, or, not,...)

Literali: True, False, 1, 0

float

Domeniu: numere reale în dublă precizie

Operații: +, -, *, /

Literali: 3.14, -0.25

Octombrie, 2013 Fundamentele programării - Introducere 15

Page 16: UNIVERSITATEA BABEŞ-BOLYAI Facultatea de …lauras/test/docs/school/FP/2013-2014/lectures/... · Data – o colecție de simboluri stocate (într-o anumită reprezentare) într-un

Dezvoltarea proceselor de programare Elementele de bază ale unui program Python

Tipuri de date secvențiale

Stringuri – ne-mutabile

Domeniu: șiruri de caractere

Operații: concatentare, căutare

Literali: „abc”

Octombrie, 2013 Fundamentele programării - Introducere 16

#concatenate a = "abc" b = "xybc" c = a + b print(c) #search n = c.find("bc") print(n) # n = 1 m = c.rfind("bc") print(m) # m = 5

Page 17: UNIVERSITATEA BABEŞ-BOLYAI Facultatea de …lauras/test/docs/school/FP/2013-2014/lectures/... · Data – o colecție de simboluri stocate (într-o anumită reprezentare) într-un

Dezvoltarea proceselor de programare

Elementele de bază ale unui program Python

Tipuri de date secvențiale

Liste – mutabile

Domeniu: secvențe de elemente (similare sau diferite ca tip) separate prin „,” și încadrate de „[ ]”

Operații

Creare (manuală, range)

Accesare (index, len) și modificare elemente

Eliminare (pop) și inserție (insert) de elemente

Feliere și încapsulare

Utilizare ca stive (append, pop)

Octombrie, 2013 Fundamentele programării - Introducere 17

Page 18: UNIVERSITATEA BABEŞ-BOLYAI Facultatea de …lauras/test/docs/school/FP/2013-2014/lectures/... · Data – o colecție de simboluri stocate (într-o anumită reprezentare) într-un

Dezvoltarea proceselor de programare Elementele de bază ale unui program Python

Tipuri de date secvențiale

Liste – mutabile

Octombrie, 2013 Fundamentele programării - Introducere 18

# create a = [1, 2, 'a'] print (a) x, y, z = a print(x, y, z) # indices: 0, 1, ..., len(a) - 1 print (a[0]) print ('last element = ', a[len(a)-1]) # lists are mutable a[1] = 3 print(a) # slicing print (a[:2]) b = a[:] print (b) b[1] = 5 print (b) a[len(a):] = [7, 9] print(a) a[:0] = [-1] print(a) a[0:2] = [-10, 10] print(a)

# lists as stacks stack = [1, 2, 3] stack.append(4) print (stack) print (stack.pop()) print (stack) # nesting c = [1, b, 9] print (c) #generate lists using range l1 = range(10) print (l1) l2 = range(0,10) print (l2) l3 = range(0,10,2) print (l3) l4 = range(9,0,-1) print (l4) #list in a for loop l = range(0,10) for i in l: print (i)

Page 19: UNIVERSITATEA BABEŞ-BOLYAI Facultatea de …lauras/test/docs/school/FP/2013-2014/lectures/... · Data – o colecție de simboluri stocate (într-o anumită reprezentare) într-un

Dezvoltarea proceselor de programare

Elementele de bază ale unui program Python

Tipuri de date secvențiale

Tuple – ne-mutabile

Domeniu: secvențe de valori (similare sau diferite ca tip) separate prin „,”

Operații

Creare (manuală – împachetare) și despachetare

Încapsulare

Tuplu cu 0 elemente și tuplu cu un singur element

Octombrie, 2013 Fundamentele programării - Introducere 19

# Tuples are immutable sequences # A tuple consists of a number of # values separated by commas # tuple packing t = 12, 21, 'ab' print(t[0]) # empty tuple (0 items) empty = () # sequence unpacking x, y, z = t print (x, y, z)

# tuple with one item singleton = (12,) print (singleton) print (len(singleton)) #tuple in a for t = 1,2,3 for el in t: print (el) # Tuples may be nested u = t, (23, 32) print(u)

Page 20: UNIVERSITATEA BABEŞ-BOLYAI Facultatea de …lauras/test/docs/school/FP/2013-2014/lectures/... · Data – o colecție de simboluri stocate (într-o anumită reprezentare) într-un

Dezvoltarea proceselor de programare Elementele de bază ale unui program Python

Tipuri de date secvențiale

Dicționare – ne-mutabile

Domeniu: mulțimi ne-ordonate de perechi (cheie, valoare) cu chei unice

Operații:

Creare

Accesarea valorii pentru o cheie dată

Adăugarea/modificarea/eliminarea unei perechi (cheie, valoare)

Verificarea existenței unie chei

Octombrie, 2013 Fundamentele programării - Introducere 20

#create a dictionary a = {'num': 1, 'denom': 2} print(a) #get a value for a key print(a['num']) #delete a key value pair del a['num'] print (a)

#set a value for a key a['num'] = 3 print(a) print(a['num']) #check for a key if 'denom' in a: print('denom = ', a['denom']) if 'num' in a: print('num = ', a['num'])

Page 21: UNIVERSITATEA BABEŞ-BOLYAI Facultatea de …lauras/test/docs/school/FP/2013-2014/lectures/... · Data – o colecție de simboluri stocate (într-o anumită reprezentare) într-un

Dezvoltarea proceselor de programare

Elementele de bază ale unui program Python

Variabile

Locații de memorie care stochează valori

Au nume, tip și valoare

Introducerea unei variabile într-un program – asignare

Expresii

O combinație de valori, constante, variabile, operatori și funcții care sunt interpretate conform regulilor de precedență, calculate și care produc o altă valoare

Exemple

Expresii numerice: 1+2

Expresii booleene: 1 < 2

Expresii de tip string: ”1”+”2”

Octombrie, 2013 Fundamentele programării - Introducere 21

Page 22: UNIVERSITATEA BABEŞ-BOLYAI Facultatea de …lauras/test/docs/school/FP/2013-2014/lectures/... · Data – o colecție de simboluri stocate (într-o anumită reprezentare) într-un

Dezvoltarea proceselor de programare

Elementele de bază ale unui program Python

Instrucțiuni

Operațiile de bază ale unui program

Tipologie

Asignări

Scop: (re)legarea numelor de valori și pentru a modifica valoarea unor obiecte mutabile

Legarea numelui: x = 1, s = [1, 2]

Re-legarea numelui: x = x + 2, s[0] = 3

Blocuri

Parte a unui program care este executată ca o unitate

Secvență de instrucțiuni

Identiicate prin indentarea liniilor de cod

Octombrie, 2013 Fundamentele programării - Introducere 22

Page 23: UNIVERSITATEA BABEŞ-BOLYAI Facultatea de …lauras/test/docs/school/FP/2013-2014/lectures/... · Data – o colecție de simboluri stocate (într-o anumită reprezentare) într-un

Dezvoltarea proceselor de programare

Elementele de bază ale unui program Python

Instrucțiuni

Atribuiri (asignări)

Condiționale

Octombrie, 2013 Fundamentele programării - Introducere 23

# takes two integers and prints the sum of them a = 3 b = 4 c = a + b print("The sum of ", a, " + ", b, " is ", c)

# takes two integers and prints the max of them a = 3 b = 4 if (a < b): c = b else: c = a print("The max of ", a, " and ", b, " is ", c)

Page 24: UNIVERSITATEA BABEŞ-BOLYAI Facultatea de …lauras/test/docs/school/FP/2013-2014/lectures/... · Data – o colecție de simboluri stocate (într-o anumită reprezentare) într-un

Dezvoltarea proceselor de programare Elementele de bază ale unui program Python

Instrucțiuni

De ciclare

for

while

Octombrie, 2013 Fundamentele programării - Introducere 24

# prints the elements of a sequence a = ['Mary', 'has', 'more', 'flowers'] for i in range(len(a)): print(i, a[i])

# prints the elements of a sequence a = ['Mary', 'has', 'more', 'flowers'] for w in a: print(w)

# computes the gcd of two numbers a = 42 b = 18 if a == 0: gcd = b; else: if b == 0: gcd = a else: while a != b: if a > b: a = a - b else: b = b - a gcd = a print("gcd = ", gcd)

Page 25: UNIVERSITATEA BABEŞ-BOLYAI Facultatea de …lauras/test/docs/school/FP/2013-2014/lectures/... · Data – o colecție de simboluri stocate (într-o anumită reprezentare) într-un

Dezvoltarea proceselor de programare

Cum se scriu programele?

Roluri în ingineria soft

Programator/dezvoltator

Scrie/dezvoltă programe pentru utilizatori

Client

Cel interesat/afectat de rezultatele unui proiect

Utilizator

Rulează programe pe computer

Procesul dezvoltării unui soft

include construirea, lansarea și întreținerea unui soft

indică pașii care trebuie efectuați și ordinea lor

Octombrie, 2013 Fundamentele programării - Introducere 25

Page 26: UNIVERSITATEA BABEŞ-BOLYAI Facultatea de …lauras/test/docs/school/FP/2013-2014/lectures/... · Data – o colecție de simboluri stocate (într-o anumită reprezentare) într-un

Dezvoltarea proceselor de programare Pași în rezolvarea unei probleme

Enunț pentru definirea problemei

Cerințe

Scenariu de utilizare a aplicației

Stabilirea funcționalităților și împărțirea lor pe iterații

Identificarea de activităţi (ale fiecărei funcţionalităţi) şi descrierea lor

Octombrie, 2013 Fundamentele programării - Introducere 26

Page 27: UNIVERSITATEA BABEŞ-BOLYAI Facultatea de …lauras/test/docs/school/FP/2013-2014/lectures/... · Data – o colecție de simboluri stocate (într-o anumită reprezentare) într-un

Dezvoltarea proceselor de programare Pași în rezolvarea unei probleme

Enunț pentru definirea problemei

Surtă descriere a problemei

Un profesor (client) are nevoie de o aplicație pentru studenții (utilizatori) care învață să găsească cel mai mic număr prim mai mic decât un număr natural n dat.

Cerințe

Definesc în detaliu ceea ce este necesar din perspectiva clientului, respectiv ce trebuie să facă aplicația

Stabilirea informaților de intrare și ieșire ale aplicației

Date de intrare: n – număr natural

Date de ieşire: cel mai mic număr prim mai mare decât n

Scenariu de utilizare a aplicației

Octombrie, 2013 Fundamentele programării - Introducere 27

Rulare 1 2 3 4

Intrări 5 0 11 -3

Ieşiri 7 2 13 Daţi un număr natural

Page 28: UNIVERSITATEA BABEŞ-BOLYAI Facultatea de …lauras/test/docs/school/FP/2013-2014/lectures/... · Data – o colecție de simboluri stocate (într-o anumită reprezentare) într-un

Dezvoltarea proceselor de programare Pași în rezolvarea unei probleme

Stabilirea funcționalităților și planificarea iterațiilor Funcționalitatea

definită ca o funcție client

exprimată în forma acțiune rezultat obiect

Acțiunea – o funcție pe care aplicația trebuie să o furnizeze

Rezultatul – este obținut în urma execuției funcției

Obiect – o entitate în care aplicația implementează funcția

poate fi implementată în câteva ore – complexitate redusă

F1: găsirea celui mai mic număr prim mai mic decât un număr natural n dat.

Iterația

O perioadă de timp în cadrul căreia se realizează o versiune stabilă și executabilă a unui produs, împreună cu documentația suport

Ajută la planificarea temporală a ansamblului de funcționalități

I1 = F1

Octombrie, 2013 Fundamentele programării - Introducere 28

Problema este simplă şi nu are decât o singură

funcţionalitate!

Page 29: UNIVERSITATEA BABEŞ-BOLYAI Facultatea de …lauras/test/docs/school/FP/2013-2014/lectures/... · Data – o colecție de simboluri stocate (într-o anumită reprezentare) într-un

Dezvoltarea proceselor de programare

Pași în rezolvarea unei probleme

Listă de activităţi (ale fiecărei funcţionalităţi) şi descrierea lor

Recomandări:

Definirea unei activități pentru fiecare operație

Definirea unei activități pentru interacțiunea Utilizator – Program (Interfața utilizator – user interface UI)

Definirea unei activități pentru operațiile UI

Determinarea dependențelor între activități

A1: verificarea calității de număr prim pentru o valoare dată

A2: găsirea celui mai mic număr prim mai mic decât un număr natural n dat

A3: implementarea inițializării unui număr, căutării celui mai mic nr prim mai mic decât n și furnizarea rezultatului

A4: implementarea UI

Octombrie, 2013 Fundamentele programării - Introducere 29

Page 30: UNIVERSITATEA BABEŞ-BOLYAI Facultatea de …lauras/test/docs/school/FP/2013-2014/lectures/... · Data – o colecție de simboluri stocate (într-o anumită reprezentare) într-un

Dezvoltarea proceselor de programare

Pași în rezolvarea unei probleme

Listă de activităţi (ale fiecărei funcţionalităţi) şi descrierea lor

Cazuri de testare

Specifică un set de date de intrare de test, condiții de execuție și rezultate așteptate necesare pentru evaluarea unei părți de program

A1: verificarea calității de număr prim pentru o valoare dată

Octombrie, 2013 Fundamentele programării - Introducere 30

Intrări Ieşiri

2 True

6 False

3 True

-2 False

1 False

Page 31: UNIVERSITATEA BABEŞ-BOLYAI Facultatea de …lauras/test/docs/school/FP/2013-2014/lectures/... · Data – o colecție de simboluri stocate (într-o anumită reprezentare) într-un

Dezvoltarea proceselor de programare

Pași în rezolvarea unei probleme

Listă de activităţi (ale fiecărei funcţionalităţi) şi descrierea lor

Implementare

A1: verificarea calității de număr prim pentru o valoare dată

Octombrie, 2013 Fundamentele programării - Introducere 31

# Description: verifies if the number n is prime # Data: n # Precondition:n - natural number # Results: res # Postcondition:res=FALSE, if n is not prime or res=TRUE, if n is prime if (n < 2): print("no ", n, " is not prime (is composed)") else: d = 2 isPrime = True while (d * d <= n) and (isPrime == True): if (n % d == 0): isPrime = False else: d = d + 1 if (isPrime == True): print("no ", n, " is prime") else: print("no ", n, " is not prime")

Page 32: UNIVERSITATEA BABEŞ-BOLYAI Facultatea de …lauras/test/docs/school/FP/2013-2014/lectures/... · Data – o colecție de simboluri stocate (într-o anumită reprezentare) într-un

Recapitulare

Ce este programarea?

Elementele de bază ale unui program Python

Un simplu proces de dezvoltare bazat pe funcționalități

Octombrie, 2013 Fundamentele programării - Introducere 32

Page 33: UNIVERSITATEA BABEŞ-BOLYAI Facultatea de …lauras/test/docs/school/FP/2013-2014/lectures/... · Data – o colecție de simboluri stocate (într-o anumită reprezentare) într-un

Cursul următor

Programare procedurală

Funcții

Vizibilitatea variabilelor

Transmiterea parametrilor

Cazuri de testare

Octombrie, 2013 Fundamentele programării - Introducere 33

Page 34: UNIVERSITATEA BABEŞ-BOLYAI Facultatea de …lauras/test/docs/school/FP/2013-2014/lectures/... · Data – o colecție de simboluri stocate (într-o anumită reprezentare) într-un

Materiale de citit şi legături utile

1. Limbajul Python http://docs.python.org/3/reference/index.html

2. Biblioteca standard Python http://docs.python.org/3/library/index.html

3. Tutorial Python http://docs.python.org/3/tutorial/index.html

4. Frentiu, M., H.F. Pop, Fundamentals of Programming, Cluj University Press, 2006, 220 pagini

Octombrie, 2013 Fundamentele programării - Introducere 34

Page 35: UNIVERSITATEA BABEŞ-BOLYAI Facultatea de …lauras/test/docs/school/FP/2013-2014/lectures/... · Data – o colecție de simboluri stocate (într-o anumită reprezentare) într-un

Informaţiile prezentate au fost colectate din diferite surse de pe internet, precum şi din cursurile de Fundamentele Programării ţinute în anii anteriori de către:

Lect. Dr. Adriana Guran – www.cs.ubbcluj.ro/~adriana

Lect. Dr. Istvan Czibula - www.cs.ubbcluj.ro/~istvanc

Lect. Dr. Andreea Vescan -www.cs.ubbcluj.ro/~avescan

Lect. Dr. Ioan Lazăr -www.cs.ubbcluj.ro/~ilazar

Octombrie, 2013 35 Fundamentele programării - Introducere