Limbaje de programare. Laborator Clasa, obiect, abstractizare Clasa : descrie tipul obiectelor dintr-un program; poate fi asociată cu un şablon
|
|
- Vicențiu Voinea
- 4 ani în urmă
- Vzualizari:
Transcriere
1 Limbaje de programare. Laborator Clasa, obiect, abstractizare Clasa : descrie tipul obiectelor dintr-un program; poate fi asociată cu un şablon pentru crearea şi iniţializarea obiectelor în memorie; Obiectul: (sau instanţa) entitate bine determinată, construit conform definiţiei unei clase căruia i s-a alocat un anumit spaţiu în memoria calculatorului. Asemenea variabilelor care au identificator şi tip, obiectele au şi ele un identificator şi un tip, tipul fiind definit de către programator cu ajutorul claselor. Convenţii de reprezentare schematica claselor: Exemplu: Clasa masina definiţia tipului; Obiectul m de tipul sau din clasa Masina cu caracteristicile effective. Clasa/Tipul Obiectelor Obiectul/Instanta m în memorie Masina m= new Masina() Instanţiere (new) m.culoare = verde ; m.putere=100; m.marca= Ford ; m.an_fabricatie=2009 m.accelereaza(90); culoare: verde putere: 100 marca: Ford an_fabricatie: 2009 porneste() { opreste(){ accelereaza(90){ ->70 franeaza(100)->90 schimbaviteza(2,3){ schimba_directia( stanga ){
2 2. Operatorul de atribuire La atribuirea intre 2 variabile referinte catre obiecte, se face copierea intre referinte, ambele variabile referind acelasi obiect. class Tank { int level; public class Assignment { Tank t1 = new Tank(); //obiectul t1 din clasa Tank Tank t2 = new Tank(); //obiectul t2 din clasa Tank t1.level = 9; t2.level = 47; //t1.level:9, t2.level:47 System.out.println("1: t1.level: " + t1.level + ", t2.level: " + t2.level); //referinta catre t1 va pointa catre obiectul t2 t1 = t2; System.out.println("2: t1.level: " + t1.level + ", t2.level: " + t2.level); //t1.level = 27 va schimba valoarea level din t2 - atribuirea de mai sus t1.level = 27; System.out.println("3: t1.level: " + t1.level + ", t2.level: " + t2.level); //observam ca t1.level si t2.level au aceiasi valoare 3. Aliasing La trimiterea unui obiect ca si argument intr-o metoda, se intampla Aliasing, adica atat variabila din metoda cat si cea din exterior vor arata catre acelasi obiect class Letter { char c; public class PassObject { static void f(letter y) { y.c = 'z'; Letter x = new Letter(); //creare obiect x din clasa Letter x.c = 'a'; System.out.println("1: x.c: " + x.c); //x.c are valoarea a f(x); //aliasing System.out.println("2: x.c: " + x.c); //x.c are valoare z - se trimite referinta la obiect ca si parametru si nu o copie a obiectului
3 4. Operatori pe String: + si += public class StringOperators { int x = 0, y = 1, z = 2; String s = "x, y, z "; System.out.println(s + x + y + z); System.out.print(x + " " + s); // conversie implicita a valorii x de la tipul int la string s += "(summed) = "; // echivalent cu s=s+"(summed)=" System.out.println(s + (x + y + z)); System.out.print("" + x); // Shorthand for Integer.toString()-metoda de conversie a int->string 5. Foreach selecteaza un element dintr-un array (vezi Eckel:Controlling Execution pag 93) import java.util.*; public class ForEachFloat { Random rand = new Random(47); //obiect ce genereaza numere random float f[] = new float[10]; // crearea arrayului de numere reale for(int i = 0; i < 10; i++) */ f[i] = rand.nextfloat(); // initializarea fiecarui element din array - parcurgere for(float x : f) //parcurgere vector f element cu element System.out.println(x); /*echivalent cu: for(int i=0;i<f.length;i++) * { * x=f[i]; System.out.println(x); * 6. Instructiuni pentru controlul fluxului programului (vezi Eckel:Controlling Execution pag 93) Scrieti un program care genereaza 25 de numere random intregi (clasa Random). Pentru fiecare din aceste numere utilizati o instructiune if-then-else pentru a testa daca numarul generat este mai mare, mai mic sau egal cu urmatorul numar intreg generat random. 7. Exercitii Creati un program care citeste ca si intrare un numar intreg si afiseaza toate numele lui Fibonacci cel mult egale cu numarul intreg citit la intrare. De exemplu, pentru valoarea 5 se afiseaza lista 1, 1, 2, 3, 5. Sirul lui Fibonacci: F n = F n-1 + F n-2, F 0 =0, F 1 =1, n=2,n.
4 8. Constructori metode speciale fara tip de return care initializeaza obiectele in momentul crearii lor cu new; Un constructor se apeleaza automat in momentul crearii unui obiect cu new. (vezi Eckel: Guaranteed initialization with the constructor pag 107) // Constructorii pot fi cu sau fara argumente. class Rock2 { Rock2(int i) { //constructor cu argumente System.out.println("Rock " + i + " "); public class SimpleConstructor2 { Rock2 obj; for(int i = 0; i < 8; i++) obj=new Rock2(i); //se creaza 8 obiecte din clasa Rock. //ca instantierea se face cu trimiterea argumentului i - asa cum o cere constructorul Rock2 //se vor afisa 8 mesaje - deoarece se va apela de 9 ori constructorul Rock2(int i) 9. Supraincarcarea metodelor intr-o clasa putem avea acelasi identifcator (nume) utilizat la definirea mai multor metode, dar fiecare metoda trebuie sa difere prin tipul a cel putin unui argument si sa aiba acelasi tip de return. //: initialization/overloading.java // Constructorii pot fi supraincarcati //metodele dintr-o clasa pot fi supraincarcate class Tree { int height; Tree() { //constructor implicit fara argumente System.out.println("Planting a seedling"); height = 0; Tree(int initialheight) { //acelasi constructor Tree supraincarcat cu un argument height = initialheight; System.out.println("Creating new Tree that is " + height + " feet tall"); //constructorii supraincarcati ofera flexibilitate in initialirea obiectelor void info() { //metoda info fara argumente cu tip de return void System.out.println("Tree is " + height + " feet tall"); void info(string s) { //metoda info cu argumente cu tip de return void System.out.println(s + ": Tree is " + height + " feet tall");
5 public class Overloading { for(int i = 0; i < 5; i++) { Tree t = new Tree(i); //instantiere utilizand constructorul supraincarcat cu un argument t.info(); //apel metoda info() fara argumente t.info("overloaded method"); //apel metoda info cu argument // Overloaded constructor: Tree t=new Tree(); //instantierea obiectului t prin constructorul fara argument 10. Utilizarea this //: initialization/leaf.java // Simple use of the "this" keyword. public class Leaf { //clasa Leaf int i = 0; //atribut in clasa Leaf Leaf increment() { //metoda ce returneaza un obiect de tip Leaf i++; return this; // se returneaza obiectul curent void print() { //metoda in clasa Leaf System.out.println("i = " + i); Leaf x = new Leaf(); //instantiere x.increment().increment().increment().print(); //3 apeluri ale metodei increment //fiecare apel al metodei increment schimba valoarea atributlui i si returneaza obiectul cu noua valoare //fiecare apel increment() returneaza un obiect de tip Leaf 11. Utilizarea finalize In programul de mai jos, se presupune ca o carte (Book) trebuie sa fie in mod necesar checkin inainte ca aceasta sa fie distrusă. Observam ca exista o carte pentru care nu se face checkin si la apelul fortat al garbage collectorului, va aparea mesajul de eroare din finalize. class Book { boolean checkedout = false; Book(boolean checkout) { //constructor cu argument checkedout = checkout; //initializeaza atributul checkedout cu valoarea trimisa prin argument
6 void checkin() { //metoda checkin checkedout = false; protected void finalize() { //utilizarea finalize in clasa Book //inainte de distrugerea obiectelor cu garbage collector se va apela metoda finalize() if(checkedout) //daca atributul checkedout e True - se afiseaza eroare System.out.println("Error: checked out"); // Normally, you ll also do this: // super.finalize(); // Call the base-class version public class TerminationCondition { Book novel = new Book(true); //creare obiect novel de tip Book // Proper cleanup: novel.checkin(); //dupa utilizare - se da checkin() - obiectul se poate sterge // Drop the reference, forget to clean up: new Book(true); //se creaza un nou obiect din clasa Book // Force garbage collection & finalization: System.gc(); //se apeleaza garbage collector - ce determina executia finalize() din clasa Book //pentru ca la cel de-al doilea obiect nu s-a apelat metoda checkin() - se va afisa mesajul de eroare // 12. Ordinea de initializare ordinea in care datele member/atributele sunt definite in clasa // When the constructor is called to create a // Window object, you ll see a message: class Window { Window(int marker) //constructor { System.out.println("Window(" + marker + ")"); class House { Window w1 = new Window(1); // (1) initializare (apelul constructorului Window din clasa Window) // se face inainte de apelul constructorului House() House() { //constructor in clasa House() // Show that we re in the constructor: System.out.println("House()"); w3 = new Window(33); // (4) reinitializare w3 dupa ce ultima initializare implicita a avut loc (pct. 3) Window w2 = new Window(2); // (2) initializare inainte de apelul constructorului House() void f() { System.out.println("f()"); // (3) ultima initializare implicita - inainte de apelul constructorului House()
7 Window w3 = new Window(3); public class OrderOfInitialization { //instantierea House (apelul constructorului House()) determina initializarea in ordinea de mai sus House h = new House(); h.f(); // Shows that construction is done 13. Initializarea static atributele statice se initializeaza o singura data; daca acestea au fost deja intializate, ele nu se reinitializeaza. class Bowl { Bowl(int marker) { //constructor in clasa Bowl System.out.println("Bowl(" + marker + ")"); void f1(int marker) { //metoda in clasa Bowl System.out.println("f1(" + marker + ")"); class Table { static Bowl bowl1 = new Bowl(1); //(init.1) membru static de tip Bowl in clasa Table Table() { //apelul constr. se face dupa initializarea atributelor statice din clasa System.out.println("Table()"); bowl2.f1(1); //apel catre f1 din constructor void f2(int marker) { //metoda in clasa Table System.out.println("f2(" + marker + ")"); static Bowl bowl2 = new Bowl(2); //(init. 2)membru static de tip Bowl in clasa Table class Cupboard { //initializarea membrilor non-statici se face dupa initializarea celor statici din clasa Bowl bowl3 = new Bowl(3); //membru non static de tip Bowl in Cupboard static Bowl bowl4 = new Bowl(4); //(init.3)membru static de tip Bowl in clasa CupBoard Cupboard() { //constructor in Cupboard System.out.println("Cupboard()"); bowl4.f1(2); void f3(int marker) { System.out.println("f3(" + marker + ")"); static Bowl bowl5 = new Bowl(5);//(init. 4) membru static
8 public class StaticInitialization { System.out.println("Creating new Cupboard() in main"); new Cupboard(); System.out.println("Creating new Cupboard() in main -!!!atributele statice nu mai sunt initializate"); new Cupboard(); //!!! la a doua instantiere se initializeaza doar atributele non-statice table.f2(1); cupboard.f3(1); static Table table = new Table(); static Cupboard cupboard = new Cupboard(); Astfel ordinea de initializare a a atributelor in clasa devine: Se initializeaza atributele/obiectele statice in ordinea in care apar in clasa, daca acestea nu au fost anterior initializate. Se initializeaza atributele/obiectele non-statice in ordinea in care apar in clasa. Cuvantul static se poate aplica numai atributelor din clase si nu variabilelor locale. Daca un atribut nu este initializat explicit, atunci Java asigura initializarea cu valoarea implicita a tipului (ex: Int: 0), pentru obiecte, aceasta fiind null. 14. Initializarea prin explicit static class Cup { Cup(int marker) { System.out.println("Cup(" + marker + ")"); void f(int marker) { System.out.println("f(" + marker + ")"); class Cups { static Cup cup1; static Cup cup2; static { // blocul static explicit de initializare cup1 = new Cup(1); cup2 = new Cup(2); Cups() { System.out.println("Cups()"); public class ExplicitStatic {
9 System.out.println("Inside main()"); Cups.cup1.f(99); // (1) //acces la membrii statici fara instantiere //initializarea statica se face si in acest caz - prin simpla referire //initializarea statica se face inainte de instantiere - la incarcarea clasei //static Cups cups1 = new Cups(); // (2) //static Cups cups2 = new Cups(); // (2) 15. Initializare non-statica mecanism denumit instance-initialization initializare la nivel de instanta //: initialization/mugs.java // Java "Instance Initialization." class Mug { Mug(int marker) { System.out.println("Mug(" + marker + ")"); void f(int marker) { System.out.println("f(" + marker + ")"); public class Mugs { Mug mug1; Mug mug2; { // bloc non-static de initializare - se face la fiecare instantiere cu new a clasei mug1 = new Mug(1); mug2 = new Mug(2); System.out.println("mug1 & mug2 initialized"); Mugs() { System.out.println("Mugs()"); Mugs(int i) { System.out.println("Mugs(int)"); System.out.println("Inside main()"); Mugs o1 = new Mugs(); //determina initializare a atributelor in o1 System.out.println("new Mugs() completed"); Mugs o2 = new Mugs(1); //determina reinitializarea atributelor in o2 (o1 raman neschimbate) System.err.println("new Mugs(1) completed"); //o1 si o2 sunt doua obiecte distincte (instante ale clasei Mugs) //a caror atribute non-statice pot lua valori diferite in fiecare obiect
10 16. Initializarea sirurilor de obiecte Creati un sir de obiecte de tip String si initializati fiecare obiect din sir. Tipariti sirul folosind un for. Creati o clasa care are un constructor cu un argument de tip String. In constructor, tipariti valoarea primita ca si argument. Creati un sir de referinte catre obiecte din clasa creata, dar fara a crea obiectele din sir. La executia programului, vedeti daca mesajul din constructor este tiparit. Initializati sirul cu obiecte din clasa creata.
Laborator 3
Laborator 3 Programare III săptămâna 8-12.10.2018 OBIECTIVE: - Folosirea modificatorilor unei clase (public, abstract, final) - Folosirea modificatorilor de acces în declaraţiile membrilor unei clase Noţiuni:
Mai multLaborator 4: Continuare Programare Orientată pe Obiecte Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 29 octombrie 2011
Laborator 4: Continuare Programare Orientată pe Obiecte Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 29 octombrie 2011 I. NOŢIUNI TEORETICE A. Suprascrierea metodelor O clasă derivată
Mai multIngineria Sistemelor de Programare
Ingineria Sistemelor de Programare Agregarea si Mostenirea mihai.hulea@aut.utcluj.ro 2019 Compozitia si agregarea Relatia dintre obiecte raspunde afirmativ la intrebarea are un/are o Exemple: Telefonul
Mai multMicrosoft Word _POO_Lab_1_Modificari_v01.htm
Laborator POO - 00 (draft) 00-00 / 0//00 00_POO_Lab Modificari_v0.htm POO Laborator Modificarea programelor Java. Studiu de caz: programul Salut.java. Varianta care utilizeaza un argument al programului
Mai multLaborator 9: Fire de execuţie Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 20 noiembrie 2011
Laborator 9: Fire de execuţie Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 20 noiembrie 2011 I. NOŢIUNI TEORETICE A. Ce este un fir de execuţie? Înainte de a defini conceptul de fir
Mai multPROGRAMARE ORIENTATA PE OBIECTE
Curs 2 Principiile Programării Orientate pe Obiecte Programare Orientată pe Obiecte Tehnici de programare Programarea procedurală Modul în care este abordată programarea, din punct de vedere al descompunerii
Mai multMicrosoft PowerPoint - ImplementareLimbaj [Read-Only] [Compatibility Mode]
Detalii de implementare. Declararea variabilelor, transmiterea parametrilor catre subprograme. Declararea variabilelor variabile globale -declarate in afara oricarei functii variabile locale -declarate
Mai multMicrosoft Word - CarteC.doc
Transmiterea parametrilor unei funcții Parametrii se transmit de la funcţia apelantă la funcţia apelată prin intermediul stivei. La apelul unei funcţii, pe stivă se crează o înregistrare de activare, care
Mai multDeclararea variabilelor
Platforma 3. 1 Instructiuni diverse Declararea variabilelor Tipuri de Date Tipul de dată al unui obiect/variabila specifica tipul informaţiei pe care acel obiect îl poate stoca. Exemplu: numere întregi,
Mai multLaborator 2: Instrucţiuni Java şi lucru cu şiruri de caractere Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 18 octombrie 2011
Laborator 2: Instrucţiuni Java şi lucru cu şiruri de caractere Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 18 octombrie 2011 I. NOŢIUNI TEORETICE A. Instrucţiuni condiţionale 1. Intrucţiunea
Mai multTop
PROGRAMARE ORIENTATĂ PE OBIECTE Tratarea excepțiilor O excepție este o eroare care poate să apară la rularea unui program. Exemple: încercarea de deschidere a unui fișier ce nu există depășirea limitelor
Mai multParadigme de Programare
Paradigme de Programare Conf. dr. ing. Andrei Olaru andrei.olaru@cs.pub.ro cs@andreiolaru.ro Departamentul de Calculatoare 2019 9 : 1 / 38 Cursul 9 Concluzie Paradigma Funcțională 9 : 2 / 38 Cursul 9:
Mai mult1 Lucrarea nr. 8 - Structuri de date de tip liste sortate O listă sortată reprezintă un aranjament al înregistrărilor din cadrul listei în funcţie de
1 Lucrarea nr. 8 - Structuri de date de tip liste sortate O listă sortată reprezintă un aranjament al înregistrărilor din cadrul listei în funcţie de o anumită valoare a unei chei. Pentru operaţiile asupra
Mai multProgramarea şi utilizarea calculatoarelor
Programare orientată pe obiecte # 10 JAVA Limbajul JAVA. Clasa String 2018 Adrian Runceanu www.runceanu.ro/adrian copyright@www.adrian.runceanu.ro Curs 10 Clasa String in Java 03.12.2018 Curs - Programare
Mai multPROGRAMARE OBIECT-ORIENTATA LABORATOR 1 INTRODUCERE IN CLASE SI OBIECTE Introducere teoretica Prin intermediul unei Clase ne dorim sa construim tipuri
PROGRAMARE OBIECT-ORIENTATA LABORATOR 1 INTRODUCERE IN CLASE SI OBIECTE Introducere teoretica Prin intermediul unei Clase ne dorim sa construim tipuri noi de date, inexistente pana in momentul acela in
Mai multPHP (II)
PHP şi MySQL Bazele de date sunt colecţii de date, aranjate într-o anumită formă Operaţii : - Crearea bazei de date; - Conectarea la baza de date; - Inserarea datelor in baza de date; - Ștergerea datelor
Mai multLimbaje de Programare Curs 6 – Functii de intrare-iesire
Limbaje de Programare Curs 6 Funcţii de intrare-ieşire Dr. Casandra Holotescu Universitatea Politehnica Timişoara Ce discutăm azi... 1 Citire formatată 2 Citirea şirurilor de caractere 3 Citirea unor linii
Mai multSUBPROGRAME
SUBPROGRAME Un subprogram este un ansamblu ce poate conţine tipuri de date, variabile şi instrucţiuni destinate unei anumite prelucrări (calcule, citiri, scrieri). Subprogramul poate fi executat doar dacă
Mai multLaborator 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
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 a două funcţii care au acelaşi nume În C++ acest lucru
Mai multproiectarea bazelor de date
Universitatea Constantin Brâncuşi din Târgu-Jiu Facultatea de Inginerie şi Dezvoltare Durabilă Departamentul de Automatică, Energie, Mediu şi Dezvoltare Durabilă Proiectarea bazelor de date Lect.dr. Adrian
Mai multE_d_Informatica_sp_MI_2015_bar_02_LRO
Examenul de bacalaureat naţional 2015 Proba E. d) Informatică Varianta 2 Filiera teoretică, profilul real, specializările: matematică-informatică matematică-informatică intensiv informatică Toate subiectele
Mai multDiapositive 1
Tablouri Operatii pe tablouri bidimensionale Lectii de pregatire pentru Admitere 09 / 03 / 2019 1 Cuprins Operatii pe tablouri bidimensionale 0. Tablouri unidimensionale scurta recapitulare 1.Tablouri
Mai multLaborator 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
Laborator 2 - Încapsularea Tema 2.1 Să se analizeze programul EX2.C Indicatii 2.1 A nu se uita de fisierul EX2.H Tema 2.2 Să se modifice funcţiile referitoare la cerc astfel încât parametrul CERC să fie
Mai multLimbaje de programare Pointeri. Alocare dinamică (continuare) 26 noiembrie 2012
Limbaje de programare Pointeri. Alocare dinamică (continuare) 26 noiembrie 2012 EROARE: lipsa iniţializării E o EROARE să folosim o variabilă neiniţializată int sum; for (i=0; i++ < 10; ) sum += a[i];
Mai multtehnologii web
Universitatea Constantin Brâncuşi din Târgu-Jiu Facultatea de Inginerie Departamentul de Automatică, Energie şi Mediu Tehnologii Web Lector univ. dr. Adrian Runceanu 1 Curs 7 Limbajul PHP (partea II) 2
Mai multLimbaje de Programare Curs 5 – Siruri de caractere
Limbaje de Programare Curs 5 Şiruri de caractere Dr. Casandra Holotescu Universitatea Politehnica Timişoara Ce discutăm azi... 1 Şiruri de caractere 2 Tipul pointer 3 Funcţii cu şiruri de caractere Şiruri
Mai multLucrarea nr. 4 - Algoritmi de sortare şi ordonare Breviar teoretic Un algoritm de sortare este o metoda prin care se aranjează elementele unui tablou
Lucrarea nr. 4 - Algoritmi de sortare şi ordonare Breviar teoretic Un algoritm de sortare este o metoda prin care se aranjează elementele unui tablou într-o ordine precisă. Cele mai folosite tipuri de
Mai multObject Oriented Programming
UNIVERSITATEA BABEŞ-BOLYAI Facultatea de Matematică şi Informatică Programare orientată obiect Curs 02 Laura Dioşan 2 POO Elemente de bază ale limbajului C++ Referinţe şi pointeri Vectori TAD-uri 3 Tipul
Mai multE_d_Informatica_sp_SN_2014_bar_10_LRO
Examenul de bacalaureat naţional 2014 Proba E. d) Informatică Varianta 10 Toate subiectele sunt obligatorii. Se acordă 10 puncte din oficiu. Timpul de lucru efectiv este de 3 ore. În rezolvările cerute,
Mai multPropunator: Morar Florin Colegiul National Silvania Zalau Discipina: Informatica Nivel liceal, cls. XII 1.Să se scrie în limbajul C/C++ definiţia comp
Propunator: Morar Florin Colegiul National Silvania Zalau Discipina: Informatica Nivel liceal, cls. XII 1.Să se scrie în limbajul C/C++ definiţia completă a subprogramului calcul, care primeşte prin intermediul
Mai multProiectarea Sistemelor Software Complexe
Proiectarea Sistemelor Software Complexe Curs 4 Arhitecturi de Sistem Software Bazate pe Tehnologii Middleware. Obiecte Distribuite. Rolul unui arhitect software este foarte asemănător cu cel al unui arhitect
Mai mult1
Laborator 3 Supraîncărcarea operatorilor (părțile II și III) 1. Supraîncărcarea operatorilor (părțile II și III) Exemplu 1: Consideram clasa sir, in care fiecare obiect retine adresa unui sir de caractere.
Mai multCURS
Capitolul Cuvinte-cheie SOAP, XML, REST, ASP.NET, client web, PHP, NuSOAP IH.12.1. Introducere Ce înseamnă serviciile web? Ele înseamnă invocarea la distanță a metodelor, prin web; limbaje și platforme
Mai multLaborator Activities În sistemul Android activitățile reprezintă echivalentul ferestrelor din Windows, fiind clase care extind clasa Activity. Spre de
Laborator Activities În sistemul Android activitățile reprezintă echivalentul ferestrelor din Windows, fiind clase care extind clasa Activity. Spre deosebire de alte sisteme, în Android ecranul este mereu
Mai multProcesarea Imaginilor - Laborator 1: Introducere în utilizarea bibliotecii OpenCV 1 1. Introducere în utilizarea bibliotecii OpenCV 1.1. Introducere S
Procesarea Imaginilor - Laborator 1: Introducere în utilizarea bibliotecii OpenCV 1 1. Introducere în utilizarea bibliotecii OpenCV 1.1. Introducere Scopul acestei lucrări de laborator este de a familiariza
Mai multProgramarea şi utilizarea calculatoarelor
Universitatea Constantin Brâncuşi din Târgu-Jiu Facultatea de Inginerie Departamentul de Automatică, Energie şi Mediu Programarea calculatoarelor Lect.dr. Adrian Runceanu Curs 3 Elemente introductive ale
Mai multC++ Probleme
Enunturi probleme 1. Se consideră un program care descrie organizarea personalului unei instituţii folosid claselor derivate. O clasă numită Angajat deţine date şi funcţii referitoare la un angajat al
Mai multParadigme de programare
Curs 4 Transparență referențială. Legare statică / dinamică. Modelul contextual de evaluare. Transparență referențială Cuprins Efecte laterale Transparență referențială 2 Efecte laterale Efecte laterale
Mai multSlide 1
STRUCTURI DE DATE Fundamente C/C++ EVALUARE SEMESTRU: 4 puncte Testare cunostinte: 1. Calculator (2 puncte) 2. Scris/Oral (2 puncte) 2 EVALUARE EXAMEN: 6 puncte Test cunostinte (pe calculator): 1 punct.
Mai multSubiectul 1
Subiectul 1 În fişierul Numere.txt pe prima linie este memorat un număr natural n (n
Mai multIntroducere în limbajul JavaScript
Introducere în limbajul JavaScript (III) HTML DOM (Document Object Model) DOM este un standard W3C (World Wide Web Consortium) care permite programelor și scripturilor accesarea dinamică a documentelor
Mai multALGORITMICĂ. Seminar 3: Analiza eficienţei algoritmilor - estimarea timpului de execuţie şi notaţii asimptotice. Problema 1 (L) Să se determine număru
ALGORITMICĂ. Seminar 3: Analiza eficienţei algoritmilor - estimarea timpului de execuţie şi notaţii asimptotice. Problema 1 (L) Să se determine numărul de operaţii efectuate de către un algoritm care determină
Mai multMicrosoft PowerPoint - Curs_SDA_9_RO_2019_v2.pptx
SDA (PC2) Curs 9 Liste / Grafuri / Arbori Iulian Năstac Lista dublu înlănțuită Recapitulare Într-o astfel de listă fiecare nod conţine doi pointeri: unul spre nodul următor şi unul spre nodul precedent.
Mai multPoo Laboratoare 1 Contents Laborator7 2 1 Colecţii de obiecte în Java Interfaţa Iterator Interfaţa C
Poo Laboratoare 1 Contents Laborator7 2 1 Colecţii de obiecte în Java 2 1.1 Interfaţa Iterator...................................... 2 1.2 Interfaţa Collection.................................... 2 1.3
Mai multMicrosoft PowerPoint - Curs_TPI_22_v01.ppt
UPB Facultatea ETTI Curs TPI an III RST 2009-2010 Tehnologii de Programare in Internet (TPI / RST) Titulari curs: Mihnea Magheti, Eduard-Cristian Popovici Suport curs: http://discipline.elcom.pub.ro/tpi/
Mai multSlide 1
Şiruri de caractere String, StringBuffer, StringTokenizer Clase, metode şi exemple Clasa String Crearea unui şir Constructorul implicit crează un şir vid: String s = new String(); String str = "abc"; este
Mai multMicrosoft Word - Raspunsul la niste provocari. Partea III..doc
Răspunsul la niște provocări. Partea a III-a. Re-citirea problemei cu alți ochelari Tiberiu Socaciu Preambulul Ca urmare a unei provocări primite pe pagina Proful de Mate de pe Facebook 1, de la un elev
Mai multPPSD
Modele paralele SPMD Modelul SPMD Comunicarea prin mesaje Message Passing Interface Modelul SPMD Modelul SPMD (Single Program Multiple Data) Acesta este un model adecvat calculatoarelor MIMD In cele ce
Mai multLimbaje de Programare Curs 8 – Fisiere
Limbaje de Programare Curs 8 Fişiere Dr. Casandra Holotescu Universitatea Politehnica Timişoara Ce discutăm azi... 1 Lucrul cu fişiere 2 Fişiere de tip text 3 Funcţii pentru cazuri de eroare 4 Fişiere
Mai multIngineria Sistemelor de Programare
Ingineria Sistemelor de Programare Cuprins Fire de executie Concurrency API (java.util.concurrent) Executia concurenta Concurenta prin intermediul proceselor si a firelor de executie http://www.javamex.com/tutorials/threads/how_threads_work.shtml
Mai multCurs 10
Ingineria Programării Design Patterns Modele de proiectare Curs Ovidiu Gheorghieş, ogh@infoiasi.ro Adriana Gheorghieş, adrianaa@infoiasi.ro Model View Controller Cel mai popular model de proiectare Dezvoltat
Mai multMicrosoft Word - PCLP2_Curs_4_2019.doc
12. Tipuri de date derivate direct - Tipul pointer Tipurile de date derivate direct sunt tipuri de date create pe baza unor tipuri de date existente. In limbajul C, un astfel de tip, nestructurat (simplu),
Mai multSlide 1
CURS 4 Structura generală a unui program C Program - ansamblu de instrucţiuni incluse în una sau mai multe funcţii, care specifică operaţiile ce trebuie efectuate asupra unor date pentru a fi prelucrate
Mai multProgramarea şi utilizarea calculatoarelor
Universitatea Constantin Brâncuşi din Târgu-Jiu Facultatea de Inginerie Departamentul de Automatică, Energie şi Mediu Programarea calculatoarelor Lect.dr. Adrian Runceanu Curs 6 Instrucţiunile limbajului
Mai multMicrosoft Word - Curs 7 - JavaScript.doc
Cursul 7 JavaScript - partea a II-a 1. Instrucţiunile trycatch şi throw 1.1. Instrucţiunea trycatch Este utilizată pentru a detecta eventualele erori dintr-o secvenţă de cod Blocul try conţine secvenţa
Mai multMicrosoft Word - lab4.doc
Lucrarea 4 Moştenire şi polimorfism Cuprins Relaţia de moştenire în Java...1 Reguli de vizibilitate în contextul relaţiei de moştenire...2 Constructorii şi moştenirea...4 Operatorul instanceof...4 Redefinirea
Mai multOperatorii in C Expresii Operatori aritmetici Operatori de asignare Operatori de incrementare si decrementare Operatori relationali Operatori logici O
Operatorii in C Expresii Operatori aritmetici Operatori de asignare Operatori de incrementare si decrementare Operatori relationali Operatori logici Operatii pe biti Operatorul conditional Operatori Logici
Mai multAnaliză statică Analiza fluxului de date 23 octombrie 2014
Analiză statică Analiza fluxului de date 23 octombrie 2014 Analiză statică: definiție O analiză a codului sursă (fără a executa programul), cu scopul de a determina proprietăți ale programului sursă. (in
Mai multMicrosoft PowerPoint - Curs_SDA_10_RO_2019_v1.pptx
SDA (PC2) Curs 10 Arbori Iulian Năstac Definiția 1: Arbori Recapitulare Arborele este un graf orientat, aciclic și simplu conex. Definiția 2: Un arbore este un ansamblu de structuri de date de natură recursivă
Mai multSlide 1
1 PROIECTAREA ALGORITMILOR Lect. univ. dr. Adrian Runceanu 1 Curs Alocarea dinamică de memorie în C++ Conţinutul cursului 1. Tipuri de date. Conceptul de pointer 3. Operatori specifici pointerilor 4. Aritmetica
Mai multL7
Lucrarea de laborator nr. 7 POINTERI 1. Conţinutul lucrării În lucrare se prezintă tipul pointer, operaţiile permise asupra pointerilor, modul de alocare şi eliberare dinamică a memoriei. 2. Consideraţii
Mai multMatrici și vectori în VBA În VBA, o matrice este un grup de variabile de același tip. De ce ar trebui să utilizați o matrice? Presupunem că ați vrut s
Matrici și vectori în VBA În VBA, o matrice este un grup de variabile de același tip. De ce ar trebui să utilizați o matrice? Presupunem că ați vrut să stocați douăzeci de nume de angajați în variabile
Mai multALGORITMII Ş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
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 far Mohammed ibn Musâ al- Khowârizmî în cartea sa intitulată
Mai multLaborator 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
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 blocurile anonime) care poate primi parametri şi poate
Mai multTema laborator TS.NET 2019 Vom simula (partial, in scop didactic) activitatea unui service auto. Pentru aceasta vom considera urmatoarele tipuri: Clie
Tema laborator TS.NET 2019 Vom simula (partial, in scop didactic) activitatea unui service auto. Pentru aceasta vom considera urmatoarele tipuri: Client - caracteristici pentru un client ClientId - intreg
Mai multLaborator 10 - Paradigme de Programare Corutine - suport nativ pentru paralelism în Kotlin Înainte de a trece la realizarea unei aplicații utilizând c
Laborator 10 - Paradigme de Programare Corutine - suport nativ pentru paralelism în Kotlin Înainte de a trece la realizarea unei aplicații utilizând corutinele în Kotlin este bine să se realizeze următorii
Mai multTablouri unidimensionale Problema 1 Să se determine mulţimea cifrelor unui număr natural n > 0, dat. Exemplu: n= Cifre = {1,2,3,7} Se cere să s
Tablouri unidimensionale Problema 1 Să se determine mulţimea cifrelor unui număr natural n > 0, dat. Exemplu: n=1723237 Cifre = {1,2,3,7 Se cere să se utilizeze subprograme care să comunice între ele şi
Mai multTablouri (continuare)
Vector Dinamic DYNAMIC ARRAY Observații 1. Un tablou este static: nu pot fi inserate sau şterse celule. 2. Vector - tablou unidimensional 3. Reprezentarea vectorilor este secvenţială, adică elementele
Mai mult9. Design patterns - Singleton, Factory, Observer Scopul acestui curs este familiarizarea cu folosirea unor pattern-uri des întâlnite în design-ul atâ
9. Design patterns - Singleton, Factory, Observer Scopul acestui curs este familiarizarea cu folosirea unor pattern-uri des întâlnite în design-ul atât al aplicațiilor, cât și al API-urilor - Singleton,
Mai multPropunator: Morar Florin Colegiul National Silvania Zalau Discipina: Informatica Nivel liceal, cls. XI 1.Fişierul text bac.in conţine cel mult 1000 de
Propunator: Morar Florin Colegiul National Silvania Zalau Discipina: Informatica Nivel liceal, cls. XI 1.Fişierul text bac.in conţine cel mult 1000 de numere naturale cu cel mult patru cifre fiecare, despărţite
Mai multMicrosoft Word - c6.doc
Proiectarea structurata top-down a programelor complexe Aplicatie Sa se scrie un program care citeste un fisier continand un text format din cuvinte si determina si afiseaza grupe de cuvinte, grupate in
Mai multMetode API - integrare FGO v.2.5 Cuprins ISTORIC VERSIUNI... 2 INTRODUCERE... 2 APELARE... 4 NOMENCLATOARE... 4 FACTURA... 5 EMITERE... 5 PRINT... 6 S
Metode API - integrare FGO v.2.5 Cuprins ISTORIC VERSIUNI... 2 INTRODUCERE... 2 APELARE... 4 NOMENCLATOARE... 4 FACTURA... 5 EMITERE... 5 PRINT... 6 STERGERE... 7 ANULARE... 7 ADAUGARE INCASARE... 8 STERGERE
Mai mult-
Structuri versus clase în C# În limbajul C++, după cum se ştie, diferenţele dintre clase şi structuri sunt nesemnificative (constau numai în modurile implicite de acces public/privat), dar această afirmaţie
Mai mult-
Cursul 6 Expresii în C/C++ (I) https://docs.microsoft.com/en-us/cpp/cpp/expressions-cpp După cum am văzut, într-un program de calcul scris în limbajul C/C++ prelucrarea datelor se realizează printr-o serie
Mai multAnaliză de flux de date 29 octombrie 2012
Analiză de flux de date 29 octombrie 2012 Analiză statică: definiţie O analiză a codului sursă (fără a executa programul), cu scopul de a determina proprietăţi ale programului sursă. (in principal corectitudinea,
Mai multMetode API - integrare FGO v.2.8 Cuprins ISTORIC VERSIUNI... 2 INTRODUCERE... 2 APELARE... 4 NOMENCLATOARE... 4 FACTURA... 4 EMITERE... 4 PRINT... 6 S
Metode API - integrare FGO v.2.8 Cuprins ISTORIC VERSIUNI... 2 INTRODUCERE... 2 APELARE... 4 NOMENCLATOARE... 4 FACTURA... 4 EMITERE... 4 PRINT... 6 STERGERE... 7 ANULARE... 7 ADAUGARE INCASARE... 7 STERGERE
Mai multInteligență artificială Laboratorul 8 Perceptronul și rețele de perceptroni în Scikit-learn Stanga :multimea de antrenare a punctelor 3d; Dreapta : mu
Perceptronul și rețele de perceptroni în Scikit-learn Stanga :multimea de antrenare a punctelor 3d; Dreapta : multimea de testare a punctelor 3d si planul de separare. In acest laborator vom antrena un
Mai multCurs 6 Gestiunea memoriei in C++ Alocare dinamica. Destructor. RAII. Rule of three. Tratarea excepțiilor exception safe code Moștenire Curs 5 Template
Curs 6 Gestiunea memoriei in C++ Alocare dinamica. Destructor. RAII. Rule of three. Tratarea excepțiilor exception safe code Moștenire Curs 5 Template (Programare generica) STL Standard Template Library
Mai multRZOLVARE EXERCITIU ZODII declare cursor distributie_zodie is select nume_zodie, count(*) distributie from zodiac z join utilizatori u on to_date(to_ch
RZOLVARE EXERCITIU ZODII declare cursor distributie_zodie is select nume_zodie, count(*) distributie from zodiac z join utilizatori u on to_date(to_char(u.data_nastere, 'DD-MM'), 'DD-MM') between to_date(z.data_inceput,
Mai multDeclaraţii. Instrucţiuni 19 octombrie 2005 Programarea calculatoarelor 2. Curs 3b Marius Minea
Declaraţii. Instrucţiuni 19 octombrie 2005 Declaraţii. Instrucţiuni 2 Domeniul de vizibilitate al identificatorilor Pt. orice identificator, compilatorul trebuie sǎ-i decidǎ semnificaţia Identificatorii
Mai multAlgoritmi genetici paraleli. Implementari Java. Continut laborator: 1. Obiectivul lucrarii. 2. Notiuni teoretice: 3. Cerinte laborator. 4. Tema. 1. Ob
Algoritmi genetici paraleli. Implementari Java. Continut laborator: 1. Obiectivul lucrarii. 2. Notiuni teoretice: 3. Cerinte laborator. 4. Tema. 1. Obiectivul lucrarii. Lucrarea de faţă are rolul de a
Mai multLucrarea nr. 9 - Liste dublu înlănţuite Breviar teoretic În cadrul elementelor studiate anterior s-a putut observa utilitatea listelor simplu înlănuit
Lucrarea nr. 9 - Liste dublu înlănţuite Breviar teoretic În cadrul elementelor studiate anterior s-a putut observa utilitatea listelor simplu înlănuite, a inserării unor elemente în cadrul listelor, a
Mai multIngineria Sistemelor de Programare
Ingineria Sistemelor de Programare Colectii de obiecte mihai.hulea@aut.utcluj.ro Introducere Stocarea grupurilor de obiecte utilizand array Instrument[] lista = new Instrument[2]; lista[0] = new Instrument("aa");
Mai multMicrosoft Word - O problema cu bits.doc
O problemă cu bits 1 Tiberiu Socaciu Enunţul Pe pagina Proful de Mate de pe Facebook 2 am primit de la un elev de clasa a IX-a următoarea provocare 3 : Vom oferi două soluţii, una folosind manipulări de
Mai multLaborator Fragments Un fragment reprezintă o porțiune dintr-un Activity. Într-un activity se pot combina mai multe fragmente ți un fragment se poate r
Laborator Fragments Un fragment reprezintă o porțiune dintr-un Activity. Într-un activity se pot combina mai multe fragmente ți un fragment se poate reutiliza în activități multiple. Un fragment poate
Mai multProceduri stocate Syntax: CREATE PROCEDURE <Name> type1,...] AS -- secventa de comenzi SQL GO O procedura stocata se ruleaza cu EXEC: EXEC <N
Proceduri stocate Syntax: CREATE PROCEDURE [@param1 type1,...] -- secventa de comenzi SQL O procedura stocata se ruleaza cu EXEC: EXEC Modificarea unei proceduri: ALTER PROCEDURE [@param1
Mai multParadigme de Programare
Paradigme de Programare Conf. dr. ing. Andrei Olaru andrei.olaru@cs.pub.ro cs@andreiolaru.ro Departamentul de Calculatoare 2019 1 : 1 / 38 Cursul 1 Introducere 1 : 2 / 38 Cursul 1: Introducere 1 Exemplu
Mai multUtilizare Internet
Curs 6 I. HTML si XHTML (recapitulare) 1 oră II CSS 2 ore III Baze de date, punct de vedere practic 1 oră IV Limbajul de interogare SQL 4 ore V PHP - HyperText Preprocessor 8 ore VI XML - Extended Mark-up
Mai multLogică și structuri discrete Relații. Funcții parțiale Marius Minea marius/curs/lsd/ 20 octombrie 2014
Logică și structuri discrete Relații. Funcții parțiale Marius Minea marius@cs.upt.ro http://www.cs.upt.ro/ marius/curs/lsd/ 20 octombrie 2014 Relații în lumea reală și informatică Noțiunea matematică de
Mai mult-
Programare Delphi Laborator 8. Temă Deschideţi un proiect nou de tip VCL Forms Application cu o singură formă pe care o dotaţi cu o componentă TImage cu numele img1 şi cu un TButton cu numele btnstart.
Mai multCursul 1 1. Introducere Corpul numerelor complexe Dezvoltarea istorică a gândirii matematice a urmărit îndeaproape evoluţia ideii de număr. Această ev
Cursul 1 1. Introducere Corpul numerelor complexe Dezvoltarea istorică a gândirii matematice a urmărit îndeaproape evoluţia ideii de număr. Această evoluţie, exprimată succint prin şirul de incluziuni
Mai multCurs 3 Permutari cu repetitie. Combinari. Algoritmi de ordonare si generare
Curs 3 Permutări cu repetiţie. Combinări. Algoritmi de ordonare şi generare Octombrie 2015 Cuprins Algoritmi de ordonare şi generare pentru permutări cu repetiţie Reprezentarea binară a submulţimilor Algoritmi
Mai multMetode API - integrare FGO v.3.0 Cuprins ISTORIC VERSIUNI... 2 INTRODUCERE... 2 APELARE... 4 NOMENCLATOARE... 4 FACTURA... 4 EMITERE... 4 PRINT... 6 S
Metode API - integrare FGO v.3.0 Cuprins ISTORIC VERSIUNI... 2 INTRODUCERE... 2 APELARE... 4 NOMENCLATOARE... 4 FACTURA... 4 EMITERE... 4 PRINT... 6 STERGERE... 7 ANULARE... 7 GETSTATUS... 8 ADAUGARE INCASARE...
Mai mult-
Laborator 3. Temă 1. Desenaţi şi coloraţi un pentagon regulat în vârfurile căruia se construiesc spre exterior triunghiuri echilaterale ca în figura următoare: 2. Desenul următor este trasat de metoda
Mai multAlgoritmi elementari Metode de căutare secvenţială binară Metode de ordonare metoda bulelor metoda inserţiei metoda selecţiei metoda numărării Intercl
Algoritmi elementari Metode de căutare secvenţială binară Metode de ordonare metoda bulelor metoda inserţiei metoda selecţiei metoda numărării Interclasare Analiza complexităţii unui algoritm Metode de
Mai multLaborator 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
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 blocurile anonime) care poate primi parametri şi poate
Mai multMetode de programare Proiectarea algoritmilor
Metode de programare Asist.univ.dr. Simona Elena Vârlan Structura curs 2 ore de curs ambele specializări, titular curs Simona Elena Vârlan (cabinet D213, vineri) 2 ore de laborator o dată la două săptămâni,
Mai multPowerPoint Presentation
Auto Id Middleware Preocupă-te de nevoile tale de business, de tehnologie ne ocupăm noi! Vrei să integrezi RFID și alte echipamente Auto Id în procesele tale de business? Concentrează-te pe logica de aplicație
Mai mult