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