Analiza robusteţii implementării standardului HL7 - Info-TIC
Download
Report
Transcript Analiza robusteţii implementării standardului HL7 - Info-TIC
Informatica
Profesor : Teodora Scânteie
Cuprins
•
Algoritmul
1. Algoritmul
• Derivă din numele unui
matematician persan
• Reprezintă o metodă de
rezolvare a problemelor de
un anumit tip
• Rezolvă probleme din orice
domeniu
Date de intrare
ALGORITM
Date de ieşire
Proprietăţile caracteristice ale algoritmilor
•
NU există algoritmi pentru orice
problemă
• Pentru a fi algoritm secvenţa trebuie să
îndeplinească trei condiţii
1. Claritate – operaţia este unic
determinată, definită şi realizabilă
2. Generalitate – obţinem date de ieşire
pentru orice date de intrare
3. Finitudine – număr finit de paşi
Algoritm
• Algoritmul este constituit dintr-o
succesiune clară de operaţii realizabile,
care au ca scop obţinerea într-un timp
finit a rezultatelor unei probleme, pentru
orice set de date de intrare
Etapele rezolvării unei probleme
1. Analiza problemei – stabilire date de intrareieşire
2. Elaborarea unui algoritm de rezolvare
3. Implementarea într-un limbaj de programare
4. Verificarea corectitudinii algoritmului
- testarea programului – diverse seturi de
date
- nu garantează corectitudinea algoritmului
- corectitudinea necesită demonstraţie
Etapele rezolvării unei probleme
5. Analiza complexităţii algoritmului
- spaţiu de memorie ocupat
- timp de execuţie
Elaborarea algoritmilor nu este un proces
liniar
Date
Date de intrare
ALGORITM
Orice algoritm lucrează cu date:
de intrare
de ieşire
de manevră
Date de ieşire
Date
Clasificare
1. Constante – nu îşi modifică valoarea
2. Variabile – îşi modifică valoarea
Clasificare în funcţie de tip
1. Întregi ->10
2. Reale ->3.14
3. Logice ->fals
4. Şir de caractere -> ”un text”
Constante în limbajul C
Pentru a crea o constantă utilizăm
directiva #define
Variabile
sunt nume pe care programul le asociază cu
anumite locaţii din memorie
Pentru ca un algoritm să poată folosi o
variabilă, aceasta trebuie declarată
la începutul corpului
funcţiei,
tip nume_var1
înaintea
identificator
oricărei instrucţiuni
char
int
float
double
Variabile
Identificatorul este constituit dintr-o
succesiune de litere, cifre sau caracterul _
Corect
Program
Nume_Prenume
_unu
Incorect
Nume Prenume
a+b
2b
Tipurile variabilelor
Char – păstrează un singur caracter:A …Z
Int – păstrează numere întregi pozitive şi
negative
Float – păstrează numere reale
Double – pentru numere foarte mari sau
foarte mici
Variabile locale
Numele şi valorile lor sunt valabile doar în
cadrul funcţiei care conţine declaraţia
respectivelor variabile
Variabile globale
Numele, valorile şi existenţa lor sunt
recunoscute în întregul program
Regulă -> evitaţi utilizarea variabilelor
globale
Rezolvarea conflictelor dintre numele
variabilelor globale şi cele locale
Numele, valorile şi existenţa lor sunt
recunoscute în întregul program
Regulă -> evitaţi utilizarea variabilelor
globale
Funcţiile definite înaintea unei variabile
globale nu o pot accesa
Expresii
o expresie este constituită dintr-o succesiune de operanzi,
conectaţi prin operatori.
un operand poate fi o constantă, o variabilă, un apel de funcţie
sau o expresie încadrată între paranteze rotunde
evaluarea unei expresii presupune calculul valorii expresiei,
prin înlocuirea valorilor variabilelor care intervin ca operanzi în
expresie şi efectuarea operaţiilor specificate de operatori
evaluarea expresiei respectă regulile de bază învăţate la
matematică
Categorii de operatori
1.Operatori aritmetici
a) Multiplicativi :
* - înmulţire
/ - împărţire
% - restul împărţirii întregi
b) Aditivi – se pot aplica numai operanzilor numerici
+ (adunare)
- (scădere)
Categorii de operatori
Exemple:
Să considerăm următoarele declaraţii de variabile:
int a=3, b=5;
float x=2.5;
Expresie
b%2
x%2
Valoare
1
-
Observaţii
a/2
x/2
(a+b)/2
1
1.25
4
Câtul împărţirii întregi a lui a la 2
Restul împărţirii întregi a lui b la 2
Eroare! ’%’ se aplică numai operanzilor
întregi
Câtul împărţirii reale a lui x la 2
Media aritmetică între a şi b
Categorii de operatori
2. Operatori relaţionali
- sunt operatori binari şi desemnează relaţia de ordine
în care se găsesc cei doi operanzi
- < , >, <=, >=, ==(egal), != (inegalitate)
- se pot aplica doar operanzilor numerici, logici şi
caractere(codul ASCII)
- valoarea unei expresii relaţionale este întotdeauna de
tip logic
Expresie
Valoare
3>5
0
7<=3+12 1
Observaţii
Operanzii nu sunt în relaţia >
Operanzii sunt în relaţia <=
Categorii de operatori
Expresie
3==2+1
3!=2+1
Valoare
1
0
Observaţii
Operanzii sunt în relaţia ‘= =’
Operanzii nu sunt în relaţia ‘! =’
3. Operatori logici globali
Operator
!
&&
||
Denumire
Negaţia logică(not)
Conjucţie logică(şi)
Disjuncţie logică(sau)
Tip
Unar
Binar
Binar
Categorii de operatori
Exemple
Expresie
!(x%2)
(x>=a)&&(x<=b)
(x<a) || (x>b)
Valoare
1, daca x este par
0, daca x este impar
1, daca x este în
intervalul [a,b]
0, altfel
1, daca x nu este în
intervalul [a,b]
0, altfel
Categorii de operatori
4. Operatori de incrementare/decrementare
++ (operatorul de incrementare)
-- (operatorul de decrementare)
Sunt operatori unari care au ca efect mărirea sau
micşorarea valorii operandului cu 1
++a (forma prefixată)
a++(forma postfixată)
Categorii de operatori
Exemple
int a=3, b=5;
Expresie
a++
--x
int c=--a
int c=a--;
(a+b)++
float x=2.5;
Valoare
4
1.5
2
3
-
Observaţii
Se măreşte valoarea variabilei cu 1
Se micşorează valoarea variabilei cu 1
Variabila declarata c primeste valoarea 2
Variabila declarata c primeste valoarea 3
Eroare! Operatorii de
incrementare/decrementare nu pot fi aplicati
unei expresii