Tipuri de date abstracte 30 noiembrie 2005 Programarea calculatoarelor 2. Curs 9 Marius Minea

Documente similare
Preprocesorul C Funcţii cu numǎr variabil de argumente 6 decembrie 2005 Programarea calculatoarelor 2. Curs 10 Marius Minea

Declaraţii. Instrucţiuni 19 octombrie 2005 Programarea calculatoarelor 2. Curs 3b Marius Minea

Microsoft Word - CarteC.doc

Paradigme de Programare

Limbaje de Programare Curs 6 – Functii de intrare-iesire

Paradigme de programare

Microsoft PowerPoint - Curs_SDA_4_RO_2019_v2.pptx

Slide 1

E_d_Informatica_sp_MI_2015_bar_02_LRO

Slide 1

Object Oriented Programming

Laborator 3

Laborator 2 - Încapsularea Programare Orientată pe Obiecte Tema 2.1 Să se analizeze programul EX2.C Indicatii 2.1 A nu se uita de fisierul EX2.H Tema

Analiză statică Analiza fluxului de date 23 octombrie 2014

Microsoft Word - PCLP2_Curs_4_2019.doc

Laborator 2 Incompatibilităţi/Diferenţe între C şi C++ Completări C++ Supraîncărcarea (redefinirea) numelui de funcţii În C nu este permisă existenţa

Microsoft Word - CarteC.doc

Microsoft PowerPoint - ARI_R_c9-10_IP_part2 [Compatibility Mode]

Microsoft PowerPoint - ImplementareLimbaj [Read-Only] [Compatibility Mode]

L7

Microsoft PowerPoint - Curs_SDA_9_RO_2019_v2.pptx

Slide 1

Programarea calculatoarelor. Note de curs Marius Minea 1 Introducere în programarea în C 1.1 Funcţii în limbajul C Calcule şi funcţii La origine, rolu

SUBPROGRAME

Analiză de flux de date 29 octombrie 2012

Slide 1

PROGRAMARE ORIENTATA PE OBIECTE

Microsoft PowerPoint - Curs_SDA_10_RO_2019_v1.pptx

Programarea şi utilizarea calculatoarelor

LUMINIŢA SCRIPCARIU

Microsoft Word - c6.doc

Caraivan George-Alexandru Grupa 431A Interfața driver-kernel la Linux Introducere Deși pentru unii dintre noi acest lucru poate fi o supriză, cei mai

Limbaje de Programare Curs 5 – Siruri de caractere

Platformăde e-learning și curriculăe-content pentru învățământul superior tehnic Sisteme de operare 13. Planificarea proceselor

E_d_Informatica_sp_SN_2014_bar_10_LRO

Procesarea Imaginilor - Laborator 1: Introducere în utilizarea bibliotecii OpenCV 1 1. Introducere în utilizarea bibliotecii OpenCV 1.1. Introducere S

Microsoft Word - 2 ES RO.doc

Limbaje de programare Pointeri. Alocare dinamică (continuare) 26 noiembrie 2012

PPSD

tehnologii web

Metode de programare Proiectarea algoritmilor

Laborator 9: Fire de execuţie Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 20 noiembrie 2011

Microsoft Word - Raspunsul la niste provocari. Partea III..doc

Limbaje de Programare Curs 8 – Fisiere

Anexa nr. 2 FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituţia de învăţământ superior UNIVERSITATEA DE VEST TIMISOARA 1.2 Facultatea FIZICA 1.3 De

Microsoft Word - BD4_Curs11.doc

Prezentul Raport ilustrează statistici comparative privind calitatea serviciilor de acces la internet, pentru anul 2014, din perspectiva parametrilor

7. Alinierea robustă a densităţilor de puncte 3D Măsurarea distanţei dintre diferite forme geometrice 3D Estimarea rotaţiei şi a translaţiei optime în

Poo Laboratoare 1 Contents Laborator7 2 1 Colecţii de obiecte în Java Interfaţa Iterator Interfaţa C

LUCRAREA NR

Rezolvare model de subiect practic P2 Programarea Calculatoarelor sesiunea iunie 2017

GHERCĂ MAGDA CASA CORPULUI DIDACTIC BRĂILA PORTOFOLIU EVALUARE INFORMATICĂ ȘI TIC PENTRU GIMNAZIU CLASA A V-A Neamț SERIA 1 GRUPA 1 CURSANT: GHERCĂ G

MINISTERUL EDUCAŢIEI, CULTURII ŞI CERCETĂRII AL REPUBLICII MOLDOVA UNIVERSITATEA DE STAT ALECU RUSSO DIN BĂLŢI FACULTATEA DE ŞTIINŢE REALE, ECONOMICE

PowerPoint Presentation

Laborator 1 suport teoretic Mediul de dezvoltare Eclipse GLOSAR - Aplicaţie: program obţinut în urma aplicării operației BUILD asupra unui proiect (ve

ALGORITHMICS

Microsoft Word - _arbori.docx

Microsoft Word - lab4.doc

Operatorii in C Expresii Operatori aritmetici Operatori de asignare Operatori de incrementare si decrementare Operatori relationali Operatori logici O

Microsoft PowerPoint - Curs_SDA_3_RO_2019_v2.pptx

Laborator 7: PROIECTAREA BAZELOR DE DATE SUBPROGRAME in PL/SQL (partea I - proceduri) Un subprogram este un bloc PL/SQL cu nume (spre deosebire de blo

Microsoft Word - Curs_08.doc

Curs 2 Programare modulară în C - Funcții Test driven development, Code Coverage - Module Programare modulara, TAD - Gestiunea memoriei in C/C++ Curs

Instructiuni licenta - 2

Ingineria Sistemelor de Programare

Proceduri stocate Syntax: CREATE PROCEDURE <Name> type1,...] AS -- secventa de comenzi SQL GO O procedura stocata se ruleaza cu EXEC: EXEC <N

Metode de sortare - pregătire admitere - Conf.dr. Alexandru Popa Lect. dr. Andrei Pătraşcu Universitatea din Bucureşti 1

Microsoft Word - unitati de invatare 11liceu-12 sam

Testarea programelor orientate pe obiecte 21 noiembrie 2011 Marius Minea

Settlement participant system

Top

ASDN

Generarea semnalelor standard 1 Scopul lucrării Familiarizarea cu modul de generare şi reprezentare în mediul Matlab a semnalelor de test, considerate

Subiectul 1

FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituţia de învăţământ Universitatea Babeş-Bolyai Cluj-Napoca superior 1.2 Facultatea Facultatea de Mate

Laborator 4: Continuare Programare Orientată pe Obiecte Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 29 octombrie 2011

C++ Probleme

ALGORITMII ŞI REPREZENTAREA LOR Noţiunea de algoritm Noţiunea de algoritm este foarte veche. Ea a fost introdusă în secolele VIII-IX de către Abu Ja f

Raport tehnic şi ştiinţific final privind implementarea proiectului PN-III-P2-2.1-PED Acronim: ForVer Răzvan Diaconescu Decembrie Rez

COMISIA EUROPEANĂ Bruxelles, C(2017) 7845 final ANNEX 1 ANEXĂ la REGULAMENTUL DE PUNERE ÎN APLICARE AL COMISIEI privind normele detaliate r

-

Ghid privind raportările referitoare la decontarea internalizată conform articolului 9 din regulamentul privind depozitarii centrali de titluri de val

Carrier Pidgeon Protocol

Lucrarea nr

Laborator 8: PROIECTAREA BAZELOR DE DATE SUBPROGRAME in PL/SQL (partea II - functii) Un subprogram este un bloc PL/SQL cu nume (spre deosebire de bloc

Minicurs CCS C / Aplicatia1 1.Programul CCS C Compiler. Instalare.Creare proiect. Descarcati ultima versiune a programului de

Utilizarea Internetului in Afaceri FSEGA, UBB Lect.univ.dr. Daniel Mican LABORATOR 3. Achizitionarea domeniilor web si a

Lab6LCD

NORMĂ pentru aplicarea Ghidului ESMA privind raportările referitoare la decontarea internalizată conform articolului 9 din regulamentul privind depozi

INSTITUTUL DE DEZVOLTARE A SOCIETĂŢII INFORMAŢIONLE

Microsoft Word - User Manual in Romania-revised_YAMATO_.doc

Transmisia datelor multimedia in retele de calculatoare <Titlu Lucrare>

OPERATII DE PRELUCRAREA IMAGINILOR 1

1

Laborator 2: Instrucţiuni Java şi lucru cu şiruri de caractere Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 18 octombrie 2011

manual_ARACIS_evaluare_experti_v4

PĂMÂNTUL CA PLANETĂ Prof. MIHAELA MIHINDA Şcoala Gimnazială Mihail Kogălniceanu Sebeş ABSTRACT: Earth planet. The material developed is aimed at a gen

proiectarea bazelor de date

Transcriere:

Tipuri de date abstracte 30 noiembrie 2005

Tipuri de date abstracte 2 Programe compuse din mai multe fişiere Implicit, obiectele declarate la nivel de fişier sunt unice într-un program (douǎ declaraţii ale aceluiaşi identificator în fişiere diferite reprezintǎ acelaşi obiect, v. curs 3). obiectul va fi definit într-un singur fişier, declarat în toate fişierele ce-l utilizeazǎ. Declaraţii care nu sunt definiţii: pentru variabile: cu specificatorul extern pentru funcţii, doar prototipul (antetul), nu şi corpul funcţiei Fazele compilǎrii: compilarea în fişiere obiect.c ->.o (cod maşinǎ, dar conţine încǎ nume de variabile în loc de adrese fixe) editarea de legǎturi (linkeditarea): referinţele la un identificator (simbol) din toate fişierele obiect înlocuite prin aceeaşi adresǎ Obiectele cu specificatorul static nu sunt vizibile în afara fişierului acelaşi identificator poate fi refolosit pentru obiecte diferite

Tipuri de date abstracte 3 Structurarea programelor din mai multe fişiere câte un fişier pentru porţiunile de cod care formeazǎ o entitate logicǎ cu un minim de interacţiune (fǎrǎ variabile globale nenecesare, etc.) declaraţiile de tipuri, funcţii şi variabile ce trebuie exportate se pun într-un fişier antet.h acesta e inclus de fiecare fişier.c care îl necesitǎ pentru a nu include/declara în duplicat, se poate încadra în #ifndef FISIERULMEU_H #define FISIERULMEU_H /* aici vine continutul propriu-zis */ #endif chiar dacǎ fişierul.h e inclus repetat (din mai multe locuri), conţinutul sǎu e prelucrat doar o datǎ (când identificatorul ales nu e definit)

Tipuri de date abstracte 4 Tipuri de date abstracte TDA = un model matematic cu un set de operaţii asupra lui o structurǎ de date + funcţii care opereazǎ pe ea noţiunea de clasǎ din programarea orientatǎ pe obiecte Pentru implementarea TDA în C: în fişierul.h se declarǎ minimul necesar pentru a putea compila programul (pentru structuri, adesea doar un typedef pt. pointer la tip) şi declaraţii de funcţii care manipuleazǎ tipul respectiv structura tipului şi definiţiile funcţiilor: ascunse în implementare (.c) typedef struct node *list_t; /* ^ın fişierul.h */ typedef struct node { /* ^ın fişierul.c cu implementarea */ int info; /* sau/şi alte c^ampuri */ struct node *nxt; } node_t; /* tip vizibil doar ^ın fişierul.c */ utilizatorul, care include doar fişierul.h nu are acces la structura internǎ a tipului (node_t); accesul e permis doar prin funcţii care citesc sau modificǎ componentele unei variabile de acest tip (ca şi pt. FILE)

Tipuri de date abstracte 5 Tipuri de date abstracte (cont.) Spre programarea orientatǎ pe obiecte: încapsulare: fǎrǎ acces direct la reprezentarea TDA, componentele sale sunt accesate doar prin funcţii funcţiile au de regulǎ ca prim parametru obiectul pe care opereazǎ (sau pointer la el) similar cu metodele apelate pentru un obiect Decizii de proiectare: ce operaţii cǎ fie incluse dacǎ se transmit obiecte sau doar pointeri la obiecte (pointerii sunt necesari pentru funcţii care modificǎ obiectul) dacǎ rezultatul unei operaţii e returnat (eventual alocat dinamic), sau depus într-un obiect specificat (deja alocat) transmis ca parametru dacǎ funcţia returneazǎ un obiect, sau un cod de succes/eroare (şi obiectul e depus la adresa datǎ de un pointer parametru) Vezi exemplul de cod pentru liste de intregi