[LABORATOR DE PROGRAMARE C++] Aritoni Ovidiu. Algoritmi STL

Size: px
Start display at page:

Download "[LABORATOR DE PROGRAMARE C++] Aritoni Ovidiu. Algoritmi STL"

Transcription

1 Algoritmi STL 1. Prezentare generală 2. Clasificare: Algoritmi nechirurgicali ; Algoritmi chirurgicali ; Algoritmi de sortare; Algoritmi generali; 3. Algoritmi nechirurgicali (Non-mutating algorithms) Aceşti algoritmi după cum le spune şi numele sunt algoritmi care nu modifică variabilele sau structurile de date pe care le manipulează. În continuare este prezentată o listă de astfel de algoritmi, şi câteva exemple. for_each() - Efectuează o operaţie pentru fiecare element count() - Returneaza numarul de elemente count_if() - Returneaza numarul de elemente care se potrivesc cu un criteriu min_element()- Returneaza elemental cu valoarea ce mai mica max_element()- Returneaza elemental cu valoarea ce mai mare find() - Cauta primul element cu o valoare trecuta find_if() - Cauta primul element care se potriveste cu un criteriu search_n() - Cauta primele n elemente consecutive cu anumite proprietati search() - Cauta prima aparitie a unui subrang find_end() - Cauta ultima aparitie a unui subrang find_first_of() - Cauta primul element din mai multe posibile adjacent_find()-cauta 2 elemente adiacente care sunt egale(dupa un criteriu) equal() - Verifica daca 2 ranguri sunt egale mismatch() - Returneaza primul element din 2 secvente care difera 3.1 Count() Count() gaseste numărul de elemente în [prima, ultima), care sunt egale cu o valuare. Mai exact, prima versiune de count() returnează numărul de iteratori i în [prima, ultima), astfel încât * i == valoare. Cea de-a doua versiune a count() adaugă la n numărul de iteratori i în [prima, ultima), astfel încât * i == valoare. : int main() 1

2 int A[] = 2, 0, 4, 6, 0, 3, 1, -7 ; const int N = sizeof(a) / sizeof(int); cout << "Number of zeros: " << count(a, A + N, 0) << endl; 3.2 Equal #include <algorithm> bool mypredicate (int i, int j) return (i==j); int main () int myints[] = 34,14,62,56,123; vector<int> myvector (myints,myints+5); if (equal (myvector.begin(), myvector.end(), myints)) cout << "The contents of both sequences are equal." << endl; else cout << "The contents of both sequences differ." << endl; myvector[3]=81; if (equal (myvector.begin(), myvector.end(), myints, mypredicate)) cout << "The contents of both sequences are equal." << endl; else cout << "The contents of both sequences differ." << endl; 3.3 Find #include <string> int main() const string delarr[] = " ", "\t", "(", ")", "[", "]", "", "", ";", "<", ">", "=", "+", "-", "*", "&"; vector<string> delimiters(delarr,delarr + sizeof(delarr)/sizeof(delarr[0])); 2

3 string str = "&"; vector<string>::iterator it =find(delimiters.begin(), delimiters.end(), str); if (it!= delimiters.end()) cout << "Found delimiter" << endl; else cout << "No dice" << endl; 4. Algoritmi chirurgicali (Mutating algorithms) Spre deosebire de prima categorie de algoritmi aceştia pot modifica structura internă a datelor pe care le manipulează. În continuare este prezentată o listă de astfel de algoritmi, şi câteva studii de caz. 4.1 Rotate( ) copy() - Copiaza un rang incepand cu primul element copy_n() - Copiaza elemente de la un rang la altul copy _backward() -Copiaza un rang incepand de la ultimul element transform() - Modifica(si copiaza) elemente merge() - Uneste 2 ranguri swap_ranges()- Schimba elementele a 2 ranguri fill() - Schimba valuarea fiecarui element cu o valuare data fill_n() - Schimba n elemente cu o valuare data remove() - sterge dintr-un rang toate elementele care au valoarea egala cu o valuare data rotate() - Intershimba elementele intr-un rang reverse() - Inverseaza un rang replace() - Schimba valuarea fiecarui element dintr-un rang cu o valuare data Rotate roteste elementele într-un rang. Adica elementul din mijloc, este mutat pe prima pozitie, elementul indicat de mijloc + 1 este mutat în poziţia primul + 1, şi aşa mai departe. Un mod de a gândi la această operaţie este că schimba cele 2 ranguri: [prima,mijloc) şi [mijloc, ultima). Formal, pentru fiecare n a.i 0 <= n <ultima - prima, elementul * (prima + n) este alocat * (prima + (n + (ultima -mijloc))% (ultima - prima)). Rotate returnează primul + (ultima - mijloc). char alpha[] = "abcdefghijklmnopqrstuvwxyz"; rotate(alpha, alpha + 13, alpha + 26); printf("%s\n", alpha); // The output is nopqrstuvwxyzabcdefghijklm 4.2 Copy 3

4 #include <algorithm> int main () int myints[]=140,20,76,40,50,60,70; vector<int> myvector; vector<int>::iterator it; myvector.resize(7); copy ( myints, myints+7, myvector.begin() ); cout << "myvector contains:"; for (it=myvector.begin(); it!=myvector.end(); ++it) cout << " " << *it; 4.3 Swap #include <algorithm> int main () int x=10, y=20; // x:10 y:20 swap(x,y); // x:20 y:10 vector<int> first (4,x), second (6,y); // first:4x20 second:6x10 swap(first,second); // first:6x10 second:4x20 cout << "first contains:"; for (vector<int>::iterator it=first.begin(); it!=first.end(); ++it) cout << " " << *it; 5. Algoritmi de sortare sort() - Sorteaza toate elementele 4

5 stable_sort() - Sorteaza in timp ce mentine ordinea elementelor egale partial_sort()- Sorteaza pana cand primele n elemente sunt correct sortate partial_sort_copy() Copiaza elementele sortate nth_element()-sorteaza conform pozitie n partition() - Schimba pozitia elementelor astfel incat elementele care se potrivesc cu un criteriu sunt puse la inceput make_heap() - Converts a range into a heap push_heap() - Adds an element to a heap pop_heap() - Removes an element from a heap sort_heap() - Sorts the heap (it is no longer a heap after the call) 5.1 Merge( ) Merge combină două ranguri sortate [first1, last1) şi [first2, last2) într-un singur rang sortat. Adica, merge copiaza elementele de la [first1, last1) şi [first2, last2) în [rezultat, rezultat + (last1 - first1) + (last2 - first2)), astfel încât rangul rezultat este în ordine strict crescatoare. : int main() int A1[] = 1, 3, 5, 7 ; int A2[] = 2, 4, 6, 8 ; const int N1 = sizeof(a1) / sizeof(int); const int N2 = sizeof(a2) / sizeof(int); merge(a1, A1 + N1, A2, A2 + N2, ostream_iterator<int>(cout, " ")); // The output is " " 5.2 Sort ( ) #include <algorithm> bool myfunction (int i,int j) return (i<j); struct myclass bool operator() (int i,int j) return (i<j); myobject; int main () int myints[] = 32,71,12,45,26,80,53,33; vector<int> myvector (myints, myints+8); 5

6 vector<int>::iterator it; // using default comparison (operator <): sort (myvector.begin(), myvector.begin()+4); // using function as comp sort (myvector.begin()+4, myvector.end(), myfunction); // using object as comp sort (myvector.begin(), myvector.end(), myobject); // print out content: cout << "myvector contains:"; for (it=myvector.begin(); it!=myvector.end(); ++it) cout << " " << *it; 6. Algoritmi Generali accumulate() - Calculeaza suma, produsul inner_product() - Combina toate elementele a 2 ranguri adjacent_difference()- Combina fiecare element cu predecesorul sau partial_sum() C - Combina fiecare elemente cu toti predecesorii sai 6.1 Accumulate() Acumulate este o generalizare a sumei: calculeaza-o suma (sau alte câteva operatii binare) elementelor în intervalul [prima, ultima). int main() int A[] = 1, 2, 3, 4, 5; const int N = sizeof(a) / sizeof(int); cout << "The sum of all elements in A is " << accumulate(a, A + N, 0) << endl; cout << "The product of all elements in A is " << accumulate(a, A + N, 1, multiplies<int>()) << endl; 6.2 Power 6

7 int main() cout << "2 ** 30 = " << power(2, 30) << endl; 6.3 Adjacent Difference #include <numeric> #include <functional> #include <iterator> #if _MSC_VER > 1020 // if VC++ version is > 4.2 // std c++ libs implemented in std #endif typedef vector < int, allocator < int > > IntegerArray; typedef ostream_iterator < int, char, char_traits<char> > IntOstreamIt; void main () IntegerArray rgia; rgia.push_back(5661); // San Francisco to Berlin rgia.push_back(7456); // to Cairo rgia.push_back(10995); // to Calcutta rgia.push_back(17019); // to Cape Town rgia.push_back(24394); // to Hong Kong rgia.push_back(30376); // to London rgia.push_back(35758); // to Los Angeles copy(rgia.begin(),rgia.end(),itostream); IntegerArray rgdifferences(7); IntegerArray::iterator itdifferences = rgdifferences.begin(); adjacent_difference(rgia.begin(),rgia.end(),itdifferences); cout << "The adjacent differences are: "; copy(rgdifferences.begin()+1,rgdifferences.end(),itostream); IntegerArray rggt(6); IntegerArray::iterator itgt = rggt.begin(); adjacent_difference(rgdifferences.begin()+1, 7

8 rgdifferences.end(), itgt, less<int>()); cout << "Which adjacent distances are greater:" << endl << "(If you have [a,b,c], then you have [1,0] if a>b and b<=c)" << endl; copy(rggt.begin()+1,rggt.end(),itostream); 8

To use various types of iterators with the STL algorithms ( ). To use Boolean functions to specify criteria for STL algorithms ( 23.8).

To use various types of iterators with the STL algorithms ( ). To use Boolean functions to specify criteria for STL algorithms ( 23.8). CHAPTER 23 STL Algorithms Objectives To use various types of iterators with the STL algorithms ( 23.1 23.20). To discover the four types of STL algorithms: nonmodifying algorithms, modifying algorithms,

More information

Major Language Changes, pt. 1

Major Language Changes, pt. 1 C++0x What is C++0x? Updated version of C++ language. Addresses unresolved problems in C++03. Almost completely backwards compatible. Greatly increases expressiveness (and complexity!) of language. Greatly

More information

1. Să se determine de câte ori apare cifra c în scrierea în baza p a numărului n.

1. Să se determine de câte ori apare cifra c în scrierea în baza p a numărului n. Observatii: Codul de mai jos a fost realizat si testat pe pagina online: https://www.tutorialspoint.com/compile_pascal_online.php 1. Să se determine de câte ori apare cifra c în scrierea în baza p a numărului

More information

Rezolvare fişă de laborator Java Iniţiere în limbajul Java

Rezolvare fişă de laborator Java Iniţiere în limbajul Java Rezolvare fişă de laborator Java Iniţiere în limbajul Java Ex 1: Scrie următorul program Java folosind JCreator apoi încercă să-l înţelegi. public class primulprg System.out.println("Acesta este primul

More information

Tipuri de date structurate

Tipuri de date structurate Tipuri de date structurate Problema 1 Să se citească un șir A de la tastatură, citirea șirului se termina la introducerea valorii 0. Să se construiască și să se tipărească șirul B de perechi (element,

More information

Fisiere text in Java.

Fisiere text in Java. Fisiere text in Java. Doru Anastasiu Popescu Prelucrarea fisierelor text in Java Aspecte teoretice: http://cursuri.cs.pub.ro/~poo/wiki/index.php/input/output http://upm.ro/intranet/ecalin/cd_educational/cd/javac/cap3.htm

More information

Alocarea memoriei în C sub Linux

Alocarea memoriei în C sub Linux Costel Aldea Alocarea memoriei în C sub Linux Sunt trei funcţii C standard care se pot folosi pentru a aloca memorie: malloc(), calloc(), si realloc(). Prototipurile lor, după cum sunt definite în stdlib.h:

More information

Lecture 21 Standard Template Library. A simple, but very limited, view of STL is the generality that using template functions provides.

Lecture 21 Standard Template Library. A simple, but very limited, view of STL is the generality that using template functions provides. Lecture 21 Standard Template Library STL: At a C++ standards meeting in 1994, the committee voted to adopt a proposal by Alex Stepanov of Hewlett-Packard Laboratories to include, as part of the standard

More information

Se cer 2 variante: una cu implementarea statica si a doua cu implementarea dinamica a structurilor de date necesare. Comentati variantele.

Se cer 2 variante: una cu implementarea statica si a doua cu implementarea dinamica a structurilor de date necesare. Comentati variantele. Lucrarea 1 SDA 03.04.2017 Sa se realizeze urmatoarele programe, in limbaj C: 1. Se primesc de la intrarea standard: un numar k si un sir infinit de numere naturale a i. Se afiseaza la iesirea standard,

More information

Fişiere in C++ Un fişier este o colecţie de date indicat printr-un nume şi o extensie. Numele este desparţit de extensie prin punct.

Fişiere in C++ Un fişier este o colecţie de date indicat printr-un nume şi o extensie. Numele este desparţit de extensie prin punct. Fişiere in C++ Un fişier este o colecţie de date indicat printr-un nume şi o extensie. Numele este desparţit de extensie prin punct. Avantajul lucrului cu fisiere este evident, datele rezultate în urma

More information

C++ Standard Template Library

C++ Standard Template Library C++ Standard Template Library CS 247: Software Engineering Principles Generic Algorithms A collection of useful, typesafe, generic (i.e., type-parameterized) containers that - know (almost) nothing about

More information

New Iterator Concepts

New Iterator Concepts New Iterator Concepts Author: David Abrahams, Jeremy Siek, Thomas Witt Contact: dave@boost-consulting.com, jsiek@osl.iu.edu, witt@styleadvisor.com Organization: Boost Consulting, Indiana University Open

More information

vector<int> second (4,100); // four ints with value 100 vector<int> third (second.begin(),second.end()); // iterating through second

vector<int> second (4,100); // four ints with value 100 vector<int> third (second.begin(),second.end()); // iterating through second C++ Vector Constructors explicit vector ( const Allocator& = Allocator() ); explicit vector ( size_type n, const T& value= T(), const Allocator& = Allocator() ); template vector (

More information

Probleme consultații 20 ianuarie 2018

Probleme consultații 20 ianuarie 2018 Algoritmi elementari Probleme consultații 20 ianuarie 2018 Problema 1: zerouri factorial Enunt Fiind dat un numar natural n, sa se determine numarul de cifre 0 cu care se termină factorialul numărului

More information

I/O and STL Algorithms

I/O and STL Algorithms CS193D Handout 21 Winter 2005/2006 February 29, 2006 I/O and STL Algorithms See also: Chapter 14, Chapter 22 I/O and STL Algorithms CS193D, 2/29/06 1 Raw Input and Output ostream::put(char ch); ostream::write(const

More information

Boost.Compute. A C++ library for GPU computing. Kyle Lutz

Boost.Compute. A C++ library for GPU computing. Kyle Lutz Boost.Compute A C++ library for GPU computing Kyle Lutz GPUs (NVIDIA, AMD, Intel) Multi-core CPUs (Intel, AMD) STL for Parallel Devices Accelerators (Xeon Phi, Adapteva Epiphany) FPGAs (Altera, Xilinx)

More information

Laborator 5 Instrucțiunile repetitive

Laborator 5 Instrucțiunile repetitive Laborator 5 Instrucțiunile repetitive Instrucțiunea for Instrucțiunea for permite repetarea unei secvențe de instrucțiuni atâta timp cât o condiție este îndeplinita. În plus, oferă posibilitatea execuției

More information

Error! Bookmark not defined.

Error! Bookmark not defined. SEMINAR 06 CONTENTS Enuntul Problemei... 1 Repository... 2 Memory... 2 XML... 3 GUI... 4 Forma Selectie... 4 Forma Programator... 5 Forma Tester... 6 Java... 7 Mecanismul de Transmitere al Evenimentelor

More information

Laborator 8 Java Crearea claselor de obiecte. Variabilele (campurile) clasei de obiecte

Laborator 8 Java Crearea claselor de obiecte. Variabilele (campurile) clasei de obiecte Laborator 8 Java Crearea claselor de obiecte. Variabilele (campurile) clasei de obiecte Probleme rezolvate: Scrieti, compilati si rulati toate exemplele din acest laborator: 1. Programul urmator (LotoConstante.java)

More information

Distributed Real-Time Control Systems. Lecture 16 C++ Libraries Templates

Distributed Real-Time Control Systems. Lecture 16 C++ Libraries Templates Distributed Real-Time Control Systems Lecture 16 C++ Libraries Templates 1 C++ Libraries One of the greatest advantages of C++ is to facilitate code reuse. If code is well organized and documented into

More information

STRUCTURI DE DATE SI ALGORITMI LABORATOR 2 STIVA I. ASPECTE TEORETICE

STRUCTURI DE DATE SI ALGORITMI LABORATOR 2 STIVA I. ASPECTE TEORETICE STIVA I. ASPECTE TEORETICE O stiva este o lista simplu inlantuita gestionata conform principiului LIFO (Last In First Out). Conform acestui principiu, ultimul nod pus in stiva este primul nod care este

More information

Parallelism in C++ J. Daniel Garcia. Universidad Carlos III de Madrid. November 23, 2018

Parallelism in C++ J. Daniel Garcia. Universidad Carlos III de Madrid. November 23, 2018 J. Daniel Garcia Universidad Carlos III de Madrid November 23, 2018 cbea J. Daniel Garcia ARCOS@UC3M (josedaniel.garcia@uc3m.es) 1/58 Introduction to generic programming 1 Introduction to generic programming

More information

Parallelism and Concurrency in C++17 and C++20. Rainer Grimm Training, Coaching and, Technology Consulting

Parallelism and Concurrency in C++17 and C++20. Rainer Grimm Training, Coaching and, Technology Consulting Parallelism and Concurrency in C++17 and C++20 Rainer Grimm Training, Coaching and, Technology Consulting www.grimm-jaud.de Multithreading and Parallelism in C++ Multithreading in C++17 Parallel STL The

More information

EL2310 Scientific Programming

EL2310 Scientific Programming Lecture 16: STL, C++1y (ramviyas@kth.se) Overview Overview Lecture 16: STL and C++1y Reminders Wrap up C++11 Reminders The help sessions and deadline C++ help session: Fri 24.10.2015, 15:00-17:00, Room

More information

Utilizarea formularelor in HTML

Utilizarea formularelor in HTML Utilizarea formularelor in HTML Formulare Un formular este constituit din elemente speciale, denumite elemente de control (controls), cum ar fi butoane radio, butoane de validare, câmpuri text, butoane

More information

Module 9. Templates & STL

Module 9. Templates & STL Module 9 Templates & STL Objectives In this module Learn about templates Construct function templates and class templates STL 2 Introduction Templates: enable you to write generic code for related functions

More information

Unifying Operator and Function-Object Variants of Standard Library Algorithms

Unifying Operator and Function-Object Variants of Standard Library Algorithms Unifying Operator and Function-Object Variants of Standard Library Algorithms Author: Douglas Gregor, Indiana University Document number: N2743=08-0253 Date: 2008-08-25 Project: Programming Language C++,

More information

Arbori. 5 aprilie Utilizarea şi programarea calculatoarelor. Curs 16

Arbori. 5 aprilie Utilizarea şi programarea calculatoarelor. Curs 16 Arbori 5 aprilie 2004 Arbori 2 Noţiunea de arbore. Terminologie Arborii ne permit sǎ structurǎm ierarhic o mulţime de elemente structura de directoare şi fişiere într-un calculator arborele genealogic

More information

1 Laborator 3: Liste Circulare si Liste Dublu Inlantuite

1 Laborator 3: Liste Circulare si Liste Dublu Inlantuite 1.1 Obiective În lucrare sunt prezentate principalele operaţii asupra listelor circulare simplu înlănţuite: crearea, inserarea unui nod, ştergerea unui nod şi ştergerea listei. În a ua parte vor fi prezentate

More information

Review of the Lectures 21-26, 30-32

Review of the Lectures 21-26, 30-32 Review of the Lectures 21-26, 30-32 1 The Final Exam Monday 11 December, BSB 337, from 8AM to 10AM 2 Examples of Questions recursion and memoization enumeration trees, binary search trees, Huffman codes

More information

Proiectarea Rețelelor 32. Controlul modelelor de trafic in retea prin alterarea atributelor BGP

Proiectarea Rețelelor 32. Controlul modelelor de trafic in retea prin alterarea atributelor BGP Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Proiectarea Rețelelor 32. Controlul modelelor de trafic in retea prin alterarea atributelor BGP De ce ebgp? De ce ibgp?

More information

Working Draft, Technical Specification for C++ Extensions for Parallelism, Revision 1

Working Draft, Technical Specification for C++ Extensions for Parallelism, Revision 1 Document Number: N3960 Date: 2014-02-28 Reply to: Jared Hoberock NVIDIA Corporation jhoberock@nvidia.com Working Draft, Technical Specification for C++ Extensions for Parallelism, Revision 1 Note: this

More information

GHID DE UTILIZARE A APLICAȚIEI MINISTRA PLAY PE SMART TV

GHID DE UTILIZARE A APLICAȚIEI MINISTRA PLAY PE SMART TV GHID DE UTILIZARE A APLICAȚIEI MINISTRA PLAY PE SMART TV TV Deschide aplicația Ministra Play din bara de jos a interfeței TV. Selectează aplicația Ministra Play utilizând cursorul telecomenzii. Apar 4

More information

Laborator 10. SGBD-ul MySQL (partea I)

Laborator 10. SGBD-ul MySQL (partea I) Laborator 10 SGBD-ul MySQL (partea I) 1. Introduceţi următoarea secvenţă PHP: $dbh = mysql_connect("localhost", "Costica", "mypass") or die("unable to connect to MySQL"); $selectdb = mysql_select_db('lucrudb');

More information

Data_Structures - Hackveda

Data_Structures - Hackveda Data_Structures - Hackveda ( Talk to Live Mentor) Become a Data Structure and Algorithm Professional - (Beginner - Advanced) Skill level: Beginner - Advanced Training fee: INR 15999 only (Topics covered:

More information

Scientific programming (in C++)

Scientific programming (in C++) Scientific programming (in C++) F. Giacomini INFN-CNAF School on Open Science Cloud Perugia, June 2017 https://baltig.infn.it/giaco/201706_perugia_cpp What is C++ C++ is a programming language that is:

More information

Ingineria Sistemelor de Programare. UML Diagrama Cazurilor de Utilizare 2016

Ingineria Sistemelor de Programare. UML Diagrama Cazurilor de Utilizare 2016 Ingineria Sistemelor de Programare UML Diagrama Cazurilor de Utilizare mihai.hulea@aut.utcluj.ro 2016 Introducere UML UML UML = Unified Modeling Language Dezvoltat in cadrul Object Management Group In

More information

Agenda. The main body and cout. Fundamental data types. Declarations and definitions. Control structures

Agenda. The main body and cout. Fundamental data types. Declarations and definitions. Control structures The main body and cout Agenda 1 Fundamental data types Declarations and definitions Control structures References, pass-by-value vs pass-by-references The main body and cout 2 C++ IS AN OO EXTENSION OF

More information

Laborator 4. Rezolvări

Laborator 4. Rezolvări Programare Delphi Exerciţiul 1. Quicksort cu pivotul pe stânga program Rezoli_1; {$APPTYPE CONSOLE} n = 13; Laborator 4. Rezolvări a: vector = (1, 51, 2, 4, 9, 100, 15, 6, 0, 8, 19, 10, 11); procedure

More information

Fisa de lucru șiruri de caractere 02

Fisa de lucru șiruri de caractere 02 Problema 01 Fisa de lucru șiruri de caractere 02 char s[100],s1[100]; strcpy(s1,s); strcpy(s1+x,""); Problema 02 char s[100]; coutx>>y; strcpy(s1,s+y);

More information

Laborator 1 Java. Citirea datelor de la tastatura si afisarea datelor pe ecran

Laborator 1 Java. Citirea datelor de la tastatura si afisarea datelor pe ecran Laborator 1 Java Citirea datelor de la tastatura si afisarea datelor pe ecran In limbajul Java nu exista instructiuni specializate pentru citirea/scrierea datelor. Aceste operatii se realizeaza prin intermediul

More information

Exceptions, Templates, and the STL

Exceptions, Templates, and the STL Exceptions, Templates, and the STL CSE100 Principles of Programming with C++, Fall 2018 (based off Chapter 16 slides by Pearson) Ryan Dougherty Arizona State University http://www.public.asu.edu/~redoughe/

More information

Siruri de caractere. 1.1 Folosirea şirurilor

Siruri de caractere. 1.1 Folosirea şirurilor Informatica clasa a X-a 1 Siruri de caractere 1.1 Folosirea şirurilor Cea mai comună utilizare a tabloului unidimensional în limbajul C/C++ este şirul (de caractere). Spre deosebire de multe alte limbaje

More information

Stiva - continuare. Implementare prin listă înlănţuită. Lect. dr. Gabriela Trimbitas

Stiva - continuare. Implementare prin listă înlănţuită. Lect. dr. Gabriela Trimbitas Stiva - continuare Implementare prin listă înlănţuită 1 head T O R head T O R head NEW head O D R head O R D O R Ştergerea/Inserarea unui nod într-o stivă 2 Acest cod implementează TAD STIVĂ prin listă

More information

Programming Languages Technical Specification for C++ Extensions for Parallelism

Programming Languages Technical Specification for C++ Extensions for Parallelism ISO 05 All rights reserved ISO/IEC JTC SC WG N4409 Date: 05-04-0 ISO/IEC DTS 9570 ISO/IEC JTC SC Secretariat: ANSI Programming Languages Technical Specification for C++ Extensions for Parallelism Warning

More information

Lenuta Alboaie Reţele de calculatoare

Lenuta Alboaie Reţele de calculatoare Programarea in retea - OOB- Lenuta Alboaie adria@info.uaic.ro 1 Cuprins Trimiterea si receptarea datelor in regim 2 Ideea: in timpul unei conexiuni cind sunt transmise date ( inband data ), si daca la

More information

Laborator 3 Java. Introducere in programarea vizuala

Laborator 3 Java. Introducere in programarea vizuala Laborator 3 Java Introducere in programarea vizuala 1. Pachetele AWT si Swing. 2. Ferestre 3.1. Introduceti urmatorul program JAVA: public class Pv public static void main(string args[ ]) JFrame fer=new

More information

Capitolul 4. Subnivelul Controlul Accesului la Mediu (MAC=Medium Access Control)

Capitolul 4. Subnivelul Controlul Accesului la Mediu (MAC=Medium Access Control) Capitolul 4 Subnivelul Controlul Accesului la Mediu (MAC=Medium Access Control) 1 The Channel Allocation Problem Static Channel Allocation in LANs and MANs Dynamic Channel Allocation in LANs and MANs Alocare

More information

1. Funcţii referitoare la o singură înregistrare (single-row functions)

1. Funcţii referitoare la o singură înregistrare (single-row functions) Laborator 4 Limbajul SQL 1. Funcţii referitoare la o singură înregistrare (single-row functions) 2. Funcţii referitoare la mai multe înregistrări (multiple-row functions) 1. Funcţii referitoare la o singură

More information

Laborator 5 Sisteme Lindenmayer. Temă

Laborator 5 Sisteme Lindenmayer. Temă Laborator 5 Sisteme Lindenmayer. Temă 1. Parcurgerea unui pătrat. Următorul L-sistem Alfabet=F,+,-; Producţii= F -> F-F+F+F+F-F-F-F+F, + -> +, - -> - Axioma= F generează, cu interpretările standard (F

More information

Concurrency and Parallelism with C++17 and C++20. Rainer Grimm Training, Coaching and, Technology Consulting

Concurrency and Parallelism with C++17 and C++20. Rainer Grimm Training, Coaching and, Technology Consulting Concurrency and Parallelism with C++17 and C++20 Rainer Grimm Training, Coaching and, Technology Consulting www.modernescpp.de Concurrency and Parallelism in C++ Concurrency and Parallelism in C++17 Parallel

More information

Type Aliases. Examples: using newtype = existingtype; // C++11 typedef existingtype newtype; // equivalent, still works

Type Aliases. Examples: using newtype = existingtype; // C++11 typedef existingtype newtype; // equivalent, still works Type Aliases A name may be defined as a synonym for an existing type name. Traditionally, typedef is used for this purpose. In the new standard, an alias declaration can also be used C++11.Thetwoformsareequivalent.

More information

la Microsoft Office Communicator pentru ca modificarea selecţiei dispozitivului telefonic să se actualizeze.

la Microsoft Office Communicator pentru ca modificarea selecţiei dispozitivului telefonic să se actualizeze. QUICK START GUIDE Plug-in de selec ie a telefonului pentru caracteristica de control al apelurilor din Microsoft Office Communicator pentru Cisco Unified Presence versiunea 7.0(3) Prezentare generală 2

More information

Sorting. Sorting. 2501ICT/7421ICTNathan. René Hexel. School of Information and Communication Technology Griffith University.

Sorting. Sorting. 2501ICT/7421ICTNathan. René Hexel. School of Information and Communication Technology Griffith University. 2501ICT/7421ICTNathan School of Information and Communication Technology Griffith University Semester 1, 2012 Outline 1 Sort Algorithms Many Sort Algorithms Exist Simple, but inefficient Complex, but efficient

More information

Aplicații JAVA. Lect.dr. Adrian Runceanu

Aplicații JAVA. Lect.dr. Adrian Runceanu Universitatea Constantin Brâncuşi din Târgu-Jiu Facultatea de Inginerie Departamentul de Automatică, Energie şi Mediu Aplicații JAVA Lect.dr. Adrian Runceanu Curs 6 Colecții în Java 01.04.2015 Curs - Aplicatii

More information

Programarea calculatoarelor

Programarea 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 10 05.05.2014 Programarea

More information

Probleme propuse pentru Testul de Laborator Semestrul I

Probleme propuse pentru Testul de Laborator Semestrul I Probleme propuse pentru Testul de Laborator Semestrul I Problema 1: Scrieti un program in C pentru rezolvarea ecuatiei de gradul 1 cu coeficienti reali. Valorile coeficientilor se citesc de la tastatura.

More information

Programarea calculatoarelor

Programarea 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 10 13.11.2013 Programarea

More information

Colectii de date PL/SQL(continuare)

Colectii de date PL/SQL(continuare) Colectii de date PL/SQL(continuare) 1. Metodele Colectiilor Metodele sunt: COUNT, DELETE, EXISTS, EXTEND, FIRST, LAST, LIMIT, NEXT, PRIOR si TRIM. Metodele colectiilor nu pot fi apelate in comenzi SQL.

More information

Curs practic de Java

Curs practic de Java Curs practic de Java Curs - Cristian Frăsinaru acf@infoiasi.ro Facultatea de Informatică Universitatea Al. I. Cuza Iaşi Internaţionalizarea Curs practic de Java p.1/1 Cuprins Introducere Clasa Locale Formatarea

More information

Rezolvarea exceptiilor

Rezolvarea exceptiilor PL/SQL SECTIUNE 6 Rezolvarea exceptiilor Entering an incorrect username and/or password Forgetting to include the @ in an email address Entering a credit card number incorrectly Entering an expiration

More information

Generic Programming with JGL 4

Generic Programming with JGL 4 Generic Programming with JGL 4 By John Lammers Recursion Software, Inc. July 2004 TABLE OF CONTENTS Abstract...1 Introduction to Generic Programming...1 How does Java support generic programming?...2 The

More information

Probleme la metoda Divide et Impera

Probleme la metoda Divide et Impera Probleme la metoda Divide et Impera 1. a) Calculaţi suma numerelor de la 1 la n, cu metoda D&I. b) Calculaţi produsul numerelor de la 1 la n, cu metoda D&I. c) Calculaţi suma numerelor dintre a şi b, cu

More information

Tehnici avansate de programare

Tehnici avansate de programare Tehnici avansate de programare Curs - Cristian Frăsinaru acf@infoiasi.ro Facultatea de Informatică Universitatea Al. I. Cuza Iaşi Adnotarea elementelor Tehnici avansate de programare p.1/1 Cuprins Ce sunt

More information

Baze de date Introducere în SQL instructor Varlan Simona. Interogarea Bazelor de Date

Baze de date Introducere în SQL instructor Varlan Simona. Interogarea Bazelor de Date Interogarea Bazelor de Date Procesul de interogare a bazelor de date înseamnă regăsirea unui subset de date după un anumit criteriu de căutare. Interogarea bazelor de date se face cu ajutorul limbajului

More information

Laborator 9. Programare orientată pe obiecte Laborator 9. 1) Să se realizeze o aplicaţie care să rezolve ecuaţii de gradul al doilea.

Laborator 9. Programare orientată pe obiecte Laborator 9. 1) Să se realizeze o aplicaţie care să rezolve ecuaţii de gradul al doilea. Laborator 9 1) Să se realizeze o aplicaţie care să rezolve ecuaţii de gradul al doilea. Interfaţa aplicaţiei va fi următoarea Casetelor text li se vor da denumirile: camp_a, camp_b, camp_c, rez. Evenimentului

More information

1.Pentru definiţia de mai jos a subprogramului f, ce se afişează ca urmare apeluluif(121,1)? void f(long n, int i) { if(n!=0) if(n%3>0) { cout<<i;

1.Pentru definiţia de mai jos a subprogramului f, ce se afişează ca urmare apeluluif(121,1)? void f(long n, int i) { if(n!=0) if(n%3>0) { cout<<i; 1.Pentru definiţia de mai jos a subprogramului f, ce se afişează ca urmare apeluluif(121,1)? void f(long n, int i) { if(n!=0) if(n%3>0) { cout

More information

Programarea calculatoarelor

Programarea calculatoarelor Limbajul C CURS 3 Instrucţiuni C continuare curs 2 Alte instrucţiuni C Instrucţiunea break >ieşire forţată din ciclu sau switch Salt după instrucţiunea din care a ieşit Instrucţiunea continue ->continuă

More information

CS11 Advanced C++ Fall Lecture 1

CS11 Advanced C++ Fall Lecture 1 CS11 Advanced C++ Fall 2006-2007 Lecture 1 Welcome! ~8 lectures Slides are posted on CS11 website http://www.cs.caltech.edu/courses/cs11 ~6 lab assignments More involved labs 2-3 week project at end CS

More information

Algorithm Efficiency & Sorting. Algorithm efficiency Big-O notation Searching algorithms Sorting algorithms

Algorithm Efficiency & Sorting. Algorithm efficiency Big-O notation Searching algorithms Sorting algorithms Algorithm Efficiency & Sorting Algorithm efficiency Big-O notation Searching algorithms Sorting algorithms Overview Writing programs to solve problem consists of a large number of decisions how to represent

More information

Programarea calculatoarelor. C++ Siruri de caractere # 10. Adrian Runceanu

Programarea calculatoarelor. C++ Siruri de caractere # 10. Adrian Runceanu Programarea calculatoarelor # 10 C++ Siruri de caractere 2016 Adrian Runceanu www.runceanu.ro/adrian Curs 10 21.11.2016 Programarea calculatoarelor 2 Capitolul 8. Şiruri de caractere 8.1. Formă generală.

More information

MODULE 35 --THE STL-- ALGORITHM PART III

MODULE 35 --THE STL-- ALGORITHM PART III MODULE 35 --THE STL-- ALGORITHM PART III My Training Period: hours Note: Compiled using Microsoft Visual C++.Net, win32 empty console mode application. g++ compilation example is given at the end of this

More information

Introducere in AutoCAD 3D

Introducere in AutoCAD 3D Introducere in AutoCAD 3D Eu obisnuiesc sa spun ca diferenta dintre AutoCAD 2D si AutoCAD 3D este doar de 15 minute deoarece totul se reduce doar la a intelege cum functioneaza acest 3D si sistemul de

More information

/ binary_search example #include <iostream> // std::cout #include <algorithm> // std::binary_search, std::sort #include <vector> // std::vector

/ binary_search example #include <iostream> // std::cout #include <algorithm> // std::binary_search, std::sort #include <vector> // std::vector Algorithm Searching Example find, search, binary search / binary_search example #include // std::cout #include // std::binary_search, std::sort #include // std::vector bool

More information

Curs 5. Programare Paralela si Distribuita. Forme de sincronizare - Java. Curs 5 - PPD 1

Curs 5. Programare Paralela si Distribuita. Forme de sincronizare - Java. Curs 5 - PPD 1 Curs 5 Programare Paralela si Distribuita Forme de sincronizare - Java Curs 5 - PPD 1 Monitor in Java Fiecare obiect din Java are un mutex care poate fi blocat sau deblocat in blocurile sincronizate: Bloc

More information

Lectures 19, 20, 21. two valid iterators in [first, last) such that i precedes j, then *j is not less than *i.

Lectures 19, 20, 21. two valid iterators in [first, last) such that i precedes j, then *j is not less than *i. Lectures 19, 20, 21 1. STL library examples of applications Explanations: The member function pop_back removes the last element of the controlled sequence. The member function pop_front removes the first

More information

Oferta speciala Vodafone

Oferta speciala Vodafone Oferta speciala Vodafone PERSOANA DE CONTACT S.N.A.P. MATEI MARIN 0722.615.321 Intre orele 08.30 15.00 Abonamente voce cu terminale in rate: 2 Red Connect Eco 7.5 Minute nelimitate in orice retea nationala

More information

Functors. Cristian Cibils

Functors. Cristian Cibils Functors Cristian Cibils (ccibils@stanford.edu) Administrivia You should have Evil Hangman feedback on paperless. If it is there, you received credit Functors Let's say that we needed to find the number

More information

Proprietati CSS pentru margini - BORDER

Proprietati CSS pentru margini - BORDER Proprietati CSS pentru margini - BORDER Property Values Description border border-bottom border-width border-bottom-width O proprietate pentru setarea celor 3 proprietati intr-o singura linie O proprietate

More information

primitive arrays v. vectors (1)

primitive arrays v. vectors (1) Arrays 1 primitive arrays v. vectors (1) 2 int a[10]; allocate new, 10 elements vector v(10); // or: vector v; v.resize(10); primitive arrays v. vectors (1) 2 int a[10]; allocate new, 10 elements

More information

Memorator funcţii predefinite C++ Funcţii matematice

Memorator funcţii predefinite C++ Funcţii matematice Funcţii matematice Funcţia Prototipul funcţiei Fişierul pow(x,y) double pow (double x,double y); long double pow ( long double x, long double y); float pow (float x,float y); double pow (double x, int

More information

PNI SmartCAM. versiune Android. - manual de utilizare-

PNI SmartCAM. versiune Android. - manual de utilizare- PNI SmartCAM versiune Android - manual de utilizare- Introducere: Acest manual se refera la instalarea si utilizarea aplicatiei PNI SmartCAM, software necesar monitorizarii atat camerei cu IP PNI 631W,

More information

COEN244: Class & function templates

COEN244: Class & function templates COEN244: Class & function templates Aishy Amer Electrical & Computer Engineering Templates Function Templates Class Templates Outline Templates and inheritance Introduction to C++ Standard Template Library

More information

Fișiere de comenzi (BAT) sub DOS

Fișiere de comenzi (BAT) sub DOS L3 Fișiere de comenzi (BAT) sub DOS Un fișier de comenzi este un fisier text care conține una sau mai multe comenzi si / sau directive care se execută succesiv, fară intervenția directă a utilizatorului.

More information

Şiruri de caractere System.String string Verbatim verbatim verbatim Exemplu

Şiruri de caractere System.String string Verbatim verbatim verbatim Exemplu Şiruri de caractere Pentru reprezentarea şirurilor de caractere, în limbajul C#, tipul de date utilizat este clasa System.String (sau aliasul string). Se definesc două tipuri de şiruri: regulate de tip

More information

TOTAL STATION ROTATION ERROR AND CORRECTION IN SINGULARCH

TOTAL STATION ROTATION ERROR AND CORRECTION IN SINGULARCH TOTAL STATION ROTATION ERROR AND CORRECTION IN SINGULARCH Alexandra Dutcon*, Jan Vladimir Pavel Pauliny-Toth** * 1 Decembrie 1918 University Alba Iulia, Doctoral School; Alexandra_dutcon@yahoo.com ** ADV

More information

Manual utilizare PNI SmartCAM (Versiune ios)

Manual utilizare PNI SmartCAM (Versiune ios) 1 Manual utilizare PNI SmartCAM (Versiune ios) 2 1. Descriere software PNI SmartCAM (versiune ios) este un instrument pentru administrarea camerelor prin retea, ce pot fi adaugate manual sau prin cautare

More information

Unit 1: Preliminaries Part 4: Introduction to the Standard Template Library

Unit 1: Preliminaries Part 4: Introduction to the Standard Template Library Unit 1: Preliminaries Part 4: Introduction to the Standard Template Library Engineering 4892: Data Structures Faculty of Engineering & Applied Science Memorial University of Newfoundland May 6, 2010 ENGI

More information

C++ Scope Resolution Operator ::

C++ Scope Resolution Operator :: C++ Scope Resolution Operator :: C++The :: (scope resolution) operator is used to qualify hidden names so that you can still use them. You can use the unary scope operator if a namespace scope or global

More information

STL: C++ Standard Library

STL: C++ Standard Library STL: C++ Standard Library Encapsulates complex data structures and algorithms CSC 330 OO Software Design 1 We ve emphasized the importance of software reuse. Recognizing that many data structures and algorithms

More information

Computational Physics

Computational Physics Computational Physics numerical methods with C++ (and UNIX) 2018-19 Fernando Barao Instituto Superior Tecnico, Dep. Fisica email: fernando.barao@tecnico.ulisboa.pt Computational Physics 2018-19 (Phys Dep

More information

PROBLEM 1 : (Trouble?: (14 pts)) Part A: (6 points) Consider the function Trouble below. int Trouble (const Vector<int> & numbers, int size) if (size

PROBLEM 1 : (Trouble?: (14 pts)) Part A: (6 points) Consider the function Trouble below. int Trouble (const Vector<int> & numbers, int size) if (size Test 2: CPS 6 50 Minute Exam March 31, 1999 Name (print): Lab # Honor Acknowledgment (signature): DO NOT SPEND MORE THAN 10 MINUTES ON ANY OF THE QUESTIONS! If you do not see the solution to a problem

More information

Operators. The Arrow Operator. The sizeof Operator

Operators. The Arrow Operator. The sizeof Operator Operators The Arrow Operator Most C++ operators are identical to the corresponding Java operators: Arithmetic: * / % + - Relational: < = >!= Logical:! && Bitwise: & bitwise and; ^ bitwise exclusive

More information

Suppose that you want to use two libraries with a bunch of useful classes and functions, but some names collide:

Suppose that you want to use two libraries with a bunch of useful classes and functions, but some names collide: COMP151 Namespaces Motivation [comp151] 1 Suppose that you want to use two libraries with a bunch of useful classes and functions, but some names collide: // File: gnutils.h class Stack {... ; class Some

More information

Tema 2 PL/SQL. 3. a. Creati o tabela numita emp_dup care să fie duplicata tabelei employees. Create table emp_dup as select * from employees

Tema 2 PL/SQL. 3. a. Creati o tabela numita emp_dup care să fie duplicata tabelei employees. Create table emp_dup as select * from employees Tema 2 PL/SQL 1. Ce va afişa acest bloc? fname varchar2(20); lname varchar2(15) default fernandez ; DBMS_OUTPUT.PUT_LINE(fname lname); a. Va printa fernandez. b. Va returna o eroare deoarece variabila

More information

1. The term STL stands for?

1. The term STL stands for? 1. The term STL stands for? a) Simple Template Library b) Static Template Library c) Single Type Based Library d) Standard Template Library Answer : d 2. Which of the following statements regarding the

More information

Pointers and Arrays CS 201. This slide set covers pointers and arrays in C++. You should read Chapter 8 from your Deitel & Deitel book.

Pointers and Arrays CS 201. This slide set covers pointers and arrays in C++. You should read Chapter 8 from your Deitel & Deitel book. Pointers and Arrays CS 201 This slide set covers pointers and arrays in C++. You should read Chapter 8 from your Deitel & Deitel book. Pointers Powerful but difficult to master Used to simulate pass-by-reference

More information

Lecture on pointers, references, and arrays and vectors

Lecture on pointers, references, and arrays and vectors Lecture on pointers, references, and arrays and vectors pointers for example, check out: http://www.programiz.com/cpp-programming/pointers [the following text is an excerpt of this website] #include

More information

Linked List using a Sentinel

Linked List using a Sentinel Linked List using a Sentinel Linked List.h / Linked List.h Using a sentinel for search Created by Enoch Hwang on 2/1/10. Copyright 2010 La Sierra University. All rights reserved. / #include

More information

Press Release Global Forum th & 20 th October Palace of the Parliament Bucharest, Romania

Press Release Global Forum th & 20 th October Palace of the Parliament Bucharest, Romania Press Release Global Forum 2009 19 th & 20 th October Palace of the Parliament Bucharest, Romania ITEMS International 16, rue Kléber F-92442 Issy-Les-Moulineaux FRANCE Tel: +33. (0)1.46.42.48.76 Fax: +33.

More information