Sunteți pe pagina 1din 25

PROGRAMARE ORIENTAT OBIECT

Curs 1

Structura cursului
Competene
Bibliografie
Principalele tehnici de programare
Limbajul C++, tipuri de date

Structura cursului

Limbajul de programare C++


Principii POO i suportul oferit de limbajul C++

Abstractizare
Motenire
Polimorfism

STL

Competene obinute la finalul cursului

Asimilarea tehnicii de programare pe obiecte


Limbajul de programare C++

Evaluare

Activitate de laborator 10%, minim nota 5 pentru a


intra in examen
Medie teste de laborator (2 teste anunate) 30%,
nota obtinuta nu condiioneaz intrarea n examen
Examen (practic C++ fr Java) 60%
Proiect 1 punct n plus la nota final

Nota final:

N = L x 0.1 + T x 0.3 + E x 0.6 + (E >= 8) x P x 0.1

Verificare cunotine teoretice n caz de incertitudine


(rotunjire n plus sau n minus)

Bibliografie

Programarea orientat pe
obiecte, Claudia Botez

Bibliografie

Programarea orientat pe
obiecte, Claudia Botez
Lucrri de laborator,
Programarea orientat pe
obiecte, Claudia Botez

Bibliografie

Programarea orientat pe
obiecte, Claudia Botez
Lucrri de laborator,
Programarea orientat pe
obiecte, Claudia Botez
The C++ programming
language fourth edition,
Bjarne Stroustrup

Bibliografie

Programarea orientat pe
obiecte, Claudia Botez
Lucrri de laborator,
Programarea orientat pe
obiecte, Claudia Botez
The C++ programming
language fourth edition,
Bjarne Stroustrup
Programming principles
and practice using C++,
Bjarne Stroustrup

Bibliografie

Programarea orientat pe
obiecte, Claudia Botez
Lucrri de laborator,
Programarea orientat pe
obiecte, Claudia Botez
The C++ programming
language fourth edition,
Bjarne Stroustrup
Programming principles
and practice using C++,
Bjarne Stroustrup
Effective C++, third
edition, Scott Meyers

Bibliografie

The C++ programming


language fourth edition,
Bjarne Stroustrup
Programming principles
and practice using C++,
Bjarne Stroustrup
Effective C++, third
edition, Scott Meyers
Inside the C++ object
model, Stanley B.
Lippman

Bibliografie

Object-Oriented
Programming with ANSI-C,
Axel Schreiner

Principalele tehnici de programare

Activitatea de proiectare, codificare, testare i


documentare a programelor se numete activitate de
programare.

definirea general a problemei


n aceast faz se realizeaz schema logic conceptual de
rezolvare a problemei, se structureaz datele de intrare/ieire i
se stabilesc algoritmii de calcul;

stabilirea logicii programelor


Aceast faz const n descrierea algoritmilor n pseudocod sau
utiliznd scheme logice

codificarea i testarea programelor


Acum, se scrie textul surs ntr-un limbaj, de obicei de nivel nalt
i se testeaz programul cu date de test;

Principalele tehnici de programare

implementarea i exploatarea programelor

Programele sunt date n exploatare i se fac eventualele


adaptri. Programele pot fi eventual mpachetate n biblioteci
utilizator;

documentarea programelor
partea I-a: documentaia tehnic, care cuprinde: definirea
problemei, schema conceptual, logica problemei, textul
surs, i datele de test.
partea II-a: documentaia de operare

Tehnici de programare

Monolitic
Procedural
Modular
Programrii pe obiecte

Tehnica programarii monolitice

Toat problema este rezolvat de la cap la coad


ntr-un singur program (funcie)

Dezavantaje

Dificultate n depistarea erorilor (n programe mari)


Dificultate n ntreinere
Codul nu poate fi reutilizat

Tehnica programarii procedurale

Nevoia de a reutiliza codul deja scris


Secvena de instruciuni organizate n sensul
rezolvrii unei probleme se numete procedur sau
subprogram sau subrutin

Procedura nu ntoarce nimic


Funcia poate ntoarce o valoare sau nu (void)

Utilizare procedur/funcie proces de


abstractizare realizat pe baza parametrilor

la definirea unei proceduri/funcii se lucreaza cu parametri


formali
la apelul unei proceduri/funcii se lucreaz cu parametri
reali, efectivi sau actuali

Tehnica programarii procedurale

Procesul de abstractizare prin intermediul


parametrilor se numete abstractizare procedural

Utilizatorul nu trebuie sa tie dect tipul parametrilor


a i b i tipul valorii returnate

Tehnica programarii modulare

Definiia lui Bjarne Stroustrup, spune c un modul


este un set de proceduri nrudite mpreun cu datele
pe care le manevreaz.

De multe ori datele unui modul sunt ascunse, adic


accesul la ele este limitat, fiind protejate. De fapt
accesul la aceste date este indirect, prin procedurile
modulului (mai ales n programarea orientat pe
obiecte).

Tehnica programarii modulare

Fiecare modul se gsete ntr-un fiier surs, deci


este o unitate de compilare. Prin urmare, modulele
se compileaz separat, rezultnd din fiecare cte un
modul obiect, care apoi se leag ntr-un program
executabil, de ctre editorul de legturi.

Tehnica programarii modulare


Fiiere header (antet)

mprirea unui program mare n mai multe module


se face respectnd condiia ca orice modul s fie
compilat independent. Acest lucru se ntmpl dac
orice nume este utilizat numai dup ce a fost
declarat.

Legturile ntre module se realizeaz prin


intermediul funciilor i al variabilelor globale, pentru
care definiia apare ntr-un fiier, iar n celelalte
fiiere n care sunt folosite, ele sunt doar declarate.

Tehnica programarii modulare


Ce pot conine fiierele header
1) declaraii de funcii:
void ff(int);
extern void eroare (char *);
2) declaraii de variabile:
extern int i;
extern double f;
3) definiii de tipuri, enumerri:
typedef int lungime;
struct complex {
double re, im;
;
enum stare OFF, ON;

struct complex {
double re, im;programarii modulare
Tehnica
;
Ce stare
potOFF,
conine
fiierele header
enum
ON;
4) definiii de constante, dar nu masive
const char ESC = \ x1B;
5) directive preprocesor
#include <stdio.h>
#define MAX 100
6) definiii de funcii inline, specifice limbajului C++
inline int increment (int i)
{
return ++i;
}

Tehnica programarii modulare


Ce nu pot conine fiierele header
1) definiii de variabile globale
int i = 100;
double f;
2) definiii de funcii, care nu sunt inline:
void eroare (char *mesaj)
{
printf ("\n %s\n", mesaj);
}
3) definiii de masive (tablouri):
const int cifre [] = {0,1,2,3,4,5,6,7,8,9};
Utilizare
Un singur fiier antet
Mai multe fiiere antet

Tehnica programarii modulare


Compilarea condiionat
Fis.h
#ifndef __CONST__H
#define __CONST__H
extern int i;
void ff(int);
//...............continutul fisierului
#endif

Fis.h
#pragma once
extern int i;
void ff(int);
//...............continutul fisierului

Tipuri de date C++

char, unsigned char, signed char (1 octet)


short [int], unsigned short [int] (2 octei)
int, unsigned [int] (4 octei)
long [int], unsigned long [int] (4 octei)
long long [int] (8 octei)
float (4 octei)
double, long double (8-10 octei)
bool (1 octet)

S-ar putea să vă placă și