Capitolul 8 Funcţii în limbajul C

Size: px
Start display at page:

Download "Capitolul 8 Funcţii în limbajul C"

Transcription

1 Obiectiv: stabilirea avantajelor pe care le aduce în programarea structurată folosirea funcţiilor. Activităţi: - Prezentarea funcţiilor definite de utilizator - Descrierea parametrilor formali şi a parametrilor actuali - Transmiterea parametrilor prin valoare şi transmiterea prin adresă (referinţă) 8.1 Prezentarea funcţiilor definite de utilizator O funcţie reprezintă o secvenţă de instrucţiuni care poate fi identificată şi apelată prin intermediul unui nume. Funcţiile sunt un element foarte important în orice limbaj de programare, deoarece uşurează foarte mult munca programatorului, eliminând necesitatea scrierii aceluiaşi cod de mai multe ori. De asemenea, prin folosirea funcţiilor programele pot fi structurate în blocuri, implicând o mai bună depanare şi modularizare a programelor respective. Utilizarea unei funcţii presupune două elemente distincte: - definirea funcţiei; - apelul funcţiei; Definirea unei funcţii reprezintă precizarea tipului returnat de funcţia respectivă, a argumentelor funcţiei şi a tipurilor acestora şi scrierea corpului funcţiei (instrucţiunile care vor fi executate când va fi apelată funcţia). Forma generală a unei funcţii este următoarea: tip_returnat nume_functie (tip_date1 arg1, tip_date2 arg2,..., tip_daten argn );... corpul_functiei;... Exemplu de definire de funcţie care returnează o valoare de tip întreg: int calcul (int a, int b) int c; c = a + b; // valoarea returnată de funcţie Exemplu de funcţie care nu primeşte nici un (argument) şi nu returnează nimic: void afisare (void) // sau void afisare () printf ( Functie care nu returnează nici o valoare... ; Apelarea unei funcţii constă în folosirea propriu-zisă a funcţiei, într-o altă funcţie. Apelarea se poate face atât în funcţia principală (main), cât şi într-o altă funcţie.

2 Returnarea unei valori de către o funcţie se face folosind instrucţiunea return înainte de încheierea funcţiei respective. De asemenea, instrucţiunea return se poate folosi şi pentru încheierea forţată a execuţiei unei funcţii. O funcţie poate returna orice valoare dintr-un tip de bază, cu excepţia unui tablou. Dacă funcţia nu returnează nici o valoare, atunci se consideră că returnează void (tipul vid). Atenţie! dacă nu se specifică nimic la tipul returnat de funcţie, compilatorul C consideră că funcţia respectivă returnează o valoare de tip întreg (va fi semnalat un avertisment (warning) Function should return a value) Exemplu: definirea şi apelarea unei funcţii care returnează o valoare întreagă: int calcul (int a, int b) int c; c = a + b; void main (void) int x, y, z; x = calcul (y, z); // apelarea funcţiei printf ( Rezultatul este %d, x); Exemplu: definirea şi apelarea unei funcţii care nu retunează nici o valoare: void afisare (void) printf ( Functie care nu returnează nici o valoare... ); int x, y, z; afisare (); // apelarea funcţiei Înainte de a fi folosită, o funcţie poate fi declarată. Declararea (precizarea prototiplui) unei funcţii este necesară doar dacă funcţia respectivă este declarată (în program) după ce a fost declarată funcţia main (), sau dacă se foloseşte o funcţie într-o altă funcţie, înainte ca prima să fie declarată. Declararea (prototipul) funcţiei afisare () definită anterior este următorul: void afisare (void); 8.2 Parametrii locali, parametrii formali şi parametrii actuali În utilizarea funcţiilor se pot deosebi două tipuri de parametri, în funcţie de specificul lor: - parametrii formali; - parametrii actuali; Variabilele care sunt declarate în interiorul unei funcţii se numesc variabile locale şi sunt accesibile doar în interiorul funcţiei respective. Valorile reţinute în aceşti parametrii se pierd odată cu ieşirea din blocul respectiv. Exemplu: funcţie pentru calculul minimului dintr-un şir de numere: 2

3 int getmin (int n, int a[]) int min, i; // min, i - variabile locale min = a[0]; for (i = 1; i < n; i++) if (min > a[i]) min = a[i]; return min; Exemplu: funcţie pentru căutarea poziţiei unui număr într-un şir de numere întregi: int poz (int n, int a[], int nr_cautat) int poz, i; for (i = 0; i < n; i++) if (nr_cautat == a[i]) poz = i; return poz; Argumentele (parametrii) cu care este definită o funcţie sunt numiţi parametrii formali. După ce a fost definită funcţia, parametrii formali pot fi folosiţi în funcţia respectivă ca şi variabile locale obişnuite. Ei sunt numiţi formali deoarece funcţia nu va fi apelată cu parametrii respectivi, ci cu parametrii de tipurile respective (ei sunt precizaţi pentru a se cunoaşte prototipul funcţiei respective). Parametrii actuali sunt parametrii cu care se apelează propriu-zis o funcţie. În exemplul următor se pot observa cele două tipuri de parametrii: float medie (int a, int b) // a, b - parametrii formali float c; // c variabilă locală c = (a + b) / 2; int y, z; float x; // x, y, z - variabile locale x = calcul (y, z);// y, z - parametrii actuali printf ( Rezultatul este %f, x); 8.3 Transmiterea parametrilor prin valoare, transmiterea prin adresă În general, este necesară transmiterea valorilor calculate într-o funcţie, pentru a putea fi folosite într-o altă funcţie. Transmiterea valorilor se poate face în două moduri: - prin valoare; - prin adresă; 3

4 8.3.1 Transmiterea parametrilor prin valoare Transmiterea parametrilor prin valoare constă în copierea valorii unui argument într-un parametru formal al unei funcţii. În cazul transmiterii prin valoare, modificările efectuate asupra parametrului formal NU au efect asupra argumentului funcţiei. Transmiterea parametrilor prin valoare este cea mai folosită metodă de transfer din limbajul C. Exemplu: float medie (int a, int b) float c; c = (a + b) / 2; int y, z; float x; x = calcul (y, z); printf ( Rezultatul este %f, x); Transmiterea matricelor ca argumente pentru o funcţie reprezintă o excepţie de la regula de transmitere prin valoare a parametrilor. Dacă se foloseşte o matrice ca şi argument al unei funcţii, atunci funcţiei respective i se transmite adresa matricei respective (adresa primului element al matricei), iar funcţia respectivă poate acţiona asupra conţinutului matricei respective. Exemplu de transformare a unui şir de caractere în majuscule: void majuscule (char *sir) int i; for (i = 0; sir[i]; i++) sir[i] = toupper (sir[i]); printf ( %c, sir[i]); char sir1[50]; gets(sir1); majuscule (sir1); // apelarea funcţiei Exemplu de program care realizează citirea unei matrice de numere întregi: int citire (int tablou[]) /* funcţia are ca parametru tabloul de numere întregi care este iniţial gol 4

5 - elementele tabloului se păstrează şi la părăsirea funcţiei - funcţia returnează numărul de numere întregi introduse în tablou */ int i, nr; printf ("Numarul de elemente al tabloului:"); scanf("%d", &nr); for (i=0;i<nr;i++) printf("dati elementul %d >",i); scanf ("%d", &tablou[i]); return nr; int main(void) int n; int tab[20]; n=citire(tab); /* apelarea funcţiei de citire a tabloului de numere întregi */ Transmiterea parametrilor prin adresă În limbajul C există şi instrumente prin care se poate simula un transfer prin referinţă. Pentru a transfera un obiect V ca parametru prin referinţă, se transferă un pointer către V; parametrul formal va fi un pointer către valoarea obiectului V. Transmiterea parametrilor prin referinţă constă în copierea adresei unui argument într-un parametru. În funcţia în care se face apelarea, este folosită adresa respectivă pentru accesarea argumentului folosit efectiv la apelare. În transmiterea prin adresă, modificările efectuate asupra unui parametru formal afectează argumentul cu care se face apelarea funcţiei (parametrul actual). Pentru a folosi transmiterea prin referinţă, argumentele funcţiei trebuie declarate ca pointeri. Exemplu interschimbarea a două numere: void interschimba (int *a, int *b) //transmit prin adresă int c; c = *a; *a = *b; *b = c; int *x, *y; int z, w; x = &z; y = &w; // parametrii locali - pointeri // parametrii locali // z şi w sunt folosite pentru // iniţializarea celor doi pointeri printf ("Introd. valoarea primului numar: "); scanf ("%d", x); 5

6 printf ("Introd. valoarea pentru al doilea numar: "); scanf ("%d", y); interschimba (x, y); // apelarea funcţiei interschimba (&z, &w); // apel recomandat al funcţiei printf ("Nr. interschimbate sunt %d si %d", *x, *y); getch (); 8.4 Probleme rezolvate Exemplu 1 - modificarea unui număr întreg, transmis prin adresă, într-o funcţie: void incrementare_număr (int *nr) (*nr)++; int n=0; incrementare_număr (&n); printf ( Numarul este: %d, n); Exemplu 2 - definirea şi folosirea unei funcţii care citeşte un şir de caractere şi îl returnează: void citire_sir (char *sir) gets (sir); char sir1[50]; citire_sir (sir1); printf ( Sirul introdus este: %s, sir1); Exemplu 3 - declararea şi folosirea unei funcţii care citeşte şi returnează o dată calendaristică. #include <string.h> void citire_data (int *zi, int *luna, int *an) printf ( Introduceti ziua: ); scanf ( %d, zi); printf ( Introduceti luna: ); 6

7 scanf ( %d, luna); printf ( Introduceti anul: ); scanf ( %d, an); int *a, *b, *c; int x, y, z; a = &x; b = &y; c = &z; //iniţializarea pointerilor citire_data (a, b, c); printf ( Data citita este: %d %d %d, *a, *b, *c); 8.5 Probleme propuse 1. Să se realizeze un program care, folosind un meniu, să calculeze ariile mai multor figuri geometrice, fiecare arie fiind calculată folosind câte o funcţie. 2. Să se realizeze un program care să rezolve o ecuaţie de gradul 2 cu coeficienţii citiţi de la tastatură, folosind o funcţie care să returneze două valori - rădăcinile, şi să precizeze dacă are sau nu rădăcini reale). 3. Să se realizeze un program care să determine dacă un număr citit de la tastatură este prim, utilizând o funcţie definită de utilizator. 4. Să se scrie un program care determină toate numerele prime mai mici sau egale cu un număr N dat de la tastatură. 5. Să se scrie un program în C care să permită prin intermediul unui meniu interactiv următoarele acţiuni: - Introducere număr în tabloul de numere (toate numerele din tablou trebuie să fie diferite) - Afişare numere - Şterge un număr din tablou - Ieşire 6. Să se scrie un program în C care să permită prin intermediul unui meniu interactiv următoarele acţiuni: - Adăugare elev (elevul este identificat prin nume) - Afişare elevi - Căutare după nume - Sortare alfabetică după nume - Ieşire 7

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

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

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

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

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

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

8. Tablouri. 8.1 Tipuri de dată simple şi tipuri de dată structurate

8. Tablouri. 8.1 Tipuri de dată simple şi tipuri de dată structurate 8. Tablouri Tablourile (arrays) reprezintă un tip important de structură de date şi sunt colecţii de obiecte de acelaşi tip reunite sub un singur nume. Uneori este necesar să referim anumite variabile

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

Lucrarea nr. 2. Funcţii şi structuri în C++

Lucrarea nr. 2. Funcţii şi structuri în C++ Lucrarea nr. 2 Funcţii şi structuri în C++ Pe măsură ce programele cresc in complexitate şi dimensiune, ele trebuiesc împărţite în fragmente mai mici şi mai uşor de gestionat numite funcţii. Funcţiile

More information

Proiectarea bazelor de date. PL/SQL Proceduri în PL/SQL(partea II-a) # 9. Adrian Runceanu

Proiectarea bazelor de date. PL/SQL Proceduri în PL/SQL(partea II-a) # 9. Adrian Runceanu Proiectarea bazelor de date # 9 PL/SQL Proceduri în PL/SQL(partea II-a) 2016 Adrian Runceanu www.runceanu.ro/adrian Curs 9 Proceduri în PL/SQL Proiectarea bazelor de date 2 Cuprins Proceduri în PL/SQL

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

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

Îmbunătăţiri aduse în limbajul C++ facilităţilor standard ale limbajului C (cele care nu ţin de conceptele programării orientate obiect).

Îmbunătăţiri aduse în limbajul C++ facilităţilor standard ale limbajului C (cele care nu ţin de conceptele programării orientate obiect). Îmbunătăţiri aduse în limbajul C++ facilităţilor standard ale limbajului C (cele care nu ţin de conceptele programării orientate obiect). Supraîncărcarea numelui de funcţii (overloading) In C nu este permisa

More information

Tablouri de date. Tablouri unidimensionale(siruri de date sau vectori)

Tablouri de date. Tablouri unidimensionale(siruri de date sau vectori) Tablouri de date Tablouri unidimensionale(siruri de date sau vectori) I. Operaţii asupra şirurilor de date monodimensionale Definiţie Tablou = succesiune de locaţii de memorie recunoscute prin acelaşi

More information

Nivelul inferior de prelucrare a fişierelor

Nivelul inferior de prelucrare a fişierelor INTRĂRI ŞI IEŞIRI Operaţiile de I/E în limbajul C se realizează prin intermediul unor funcţii din biblioteca standard a limbajului. Majoritatea operaţiilor de I/E se realizează în ipoteza că datele sunt

More information

PROGRAMARE ORIENTATĂ PE OBIECTE

PROGRAMARE ORIENTATĂ PE OBIECTE Universitatea Constantin Brâncuşi din Târgu-Jiu Facultatea de Inginerie Departamentul de Automatică, Energie şi Mediu PROGRAMARE ORIENTATĂ PE OBIECTE Lector dr. Adrian Runceanu 03.01.2014 1 Curs 15 Limbajul

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

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

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

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

CURS 7. Pointeri. - specifice limbajelor de asamblare

CURS 7. Pointeri. - specifice limbajelor de asamblare CURS 7 Pointeri - tipuri speciale de variabile sau constante care au ca valori adrese ale unor alte variabile sau constante (adrese ale unor locaţii de memorie) - permit calcule cu adrese - specifice limbajelor

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

Operatori. Comentarii. Curs 1

Operatori. Comentarii. Curs 1 Operatori atribuirea: = operatori matematici: +, -, *, /, % Este permisa notatia prescurtata de forma lval op= rval (ex: n += 2) Exista operatorii pentru autoincrementare si autodecrementare (post si pre)

More information

LUCRAREA NR. 6 POINTERI

LUCRAREA NR. 6 POINTERI LUCRAREA NR. 6 POINTERI Un pointer este o variabilă care păstrează adresa unui obiect de tip corespunzător. Forma generală pentru declararea unei variabile pointer este: tip * nume_variabila; unde tip

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

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

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

Sintaxa definińiei unei funcńii este: tip_rez nume_funcńie (<lista_parametri>) { <declarańii locale> secvenńă de instrucńiuni }

Sintaxa definińiei unei funcńii este: tip_rez nume_funcńie (<lista_parametri>) { <declarańii locale> secvenńă de instrucńiuni } Laboratorul 10. FUNCłII ÎN C/C++ Introducere În limbajul C++ (similar cu limbajul C standard) programul este o colecńie de module distincte numite funcńii, structura generală a programului fiind:

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

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

Laborator 4 Java Colectii

Laborator 4 Java Colectii Laborator 4 Java Colectii Scrieti, compilati si rulati toate exemplele din acest laborator: 1. Urmatorul exemplu foloseste diferite clase de colectii si adauga cate un element in aceste colectii import

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

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

Variabile predefinite

Variabile predefinite Php(2) Variabile predefinite Variabile predefinite $GLOBALS = pot fi accesate toate variabilele globale care sunt accesibile scriptului PHP curent $_SERVER = contine o serie de variabile ale caror valori

More information

Capitolul IB.03. Funcţii de intrare/ieşire în limbajul C

Capitolul IB.03. Funcţii de intrare/ieşire în limbajul C Capitolul Cuvinte-cheie Funcţii de intrare/ieşire caractere, funcţii de intrare/ieşire şiruri de caractere, citire/scriere cu format IB.03.1 Funcţii de intrare/ieşire în C În limbajul C, nu există instrucţiuni

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

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

Laborator 1 Recursivitate

Laborator 1 Recursivitate Recursivitate 1. Fie ecuaţia x - Sx + P = 0 cu S, P R si x1, x rădăcinile ecuaţiei. Să se calculeze Sn=, n N. n n x 1 x Căutăm relaţia de recurenţă pentru Sn, ştiind că x1, respectiv x sunt rădăcinile

More information

Introducere în C B. Kernighan, D. Richie-Limbajul C 1. Despre C. Primul program

Introducere în C B. Kernighan, D. Richie-Limbajul C 1. Despre C. Primul program B. Kernighan, D. Richie-Limbajul C 1. Despre C. Primul program 2. Variabile şi expresii aritmetice 3. Instrucțiunea for 4. Constante simbolice 5. Citirea şi scrierea caracterelor 6. Tablouri 7. Funcții

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

Gestionarea memoriei dinamice. Tablouri şi şiruri de caractere. Conversii de date. Operaţii de intrare / ieşire

Gestionarea memoriei dinamice. Tablouri şi şiruri de caractere. Conversii de date. Operaţii de intrare / ieşire Lucrarea 3 Gestionarea memoriei dinamice. Tablouri şi şiruri de caractere. Conversii de date. Operaţii de intrare / ieşire Cuprins Simbolul this...1 Colectorul de reziduuri (Garbage Collector)...4 Transmiterea

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

Birotică Profesională. Cursul 12

Birotică Profesională. Cursul 12 Birotică Profesională Cursul 12 Sumar Visual Basic for Applications (VBA) Tipuri de date Structuri de control Funcţii si proceduri Obiecte si colecţii VBA Mediu de programare destinat in special realizării

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

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

Instructiuni de control

Instructiuni de control Instructiuni de control Introducerea caracterelor de la tastatura Instructiuni de selectie (if, switch) Instructiuni repetitive (for, while, dowhile, foreach) Instructiuni de salt (break, continue, goto,

More information

JavaScript - Intorducere. Și nu numai...

JavaScript - Intorducere. Și nu numai... JavaScript - Intorducere Și nu numai... Ce facem azi Nu o sa va vină să credeți. Pe foaia albă vă scrieți numele și prenumele ȘI Povestim despre JavaScript Exemple de aplicare discutii și surprize mici

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

Proiectarea bazelor de date

Proiectarea 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

More information

Programare orientată obiect

Programare orientată obiect UNIVERSITATEA BABEŞ-BOLYAI Facultatea de Matematică şi Informatică Programare orientată obiect Curs 01 Laura Dioşan 2 Conţinut Introducere Programare structurată la nivel inferior Programare structurată

More information

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

1. Citirea datelor de la tastatura si afisarea datelor pe ecran Laborator 6 Java 1. 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

More information

Cunoașterea și înțelegerea conceptelor specifice programării orientate obiect. Abilități de programare în limbajele de programare C și C++

Cunoașterea și înțelegerea conceptelor specifice programării orientate obiect. Abilități de programare în limbajele de programare C și C++ Programare orientată obiect Obiective Cunoașterea și înțelegerea conceptelor specifice programării orientate obiect Abilități de programare în limbajele de programare C și C++ Obiectivele specifice: Scrierea

More information

Programarea calculatoarelor

Programarea calculatoarelor Programarea calculatoarelor #3 C++ Elemente introductive ale limbajului C++ 2016 Adrian Runceanu www.runceanu.ro/adrian Curs 3 Elemente introductive ale limbajului C++ 02.11.2016 Curs - Programarea calculatoarelor

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

Utilizarea AG pentru rezolvarea problemelor de optimizare cu un singur obiectiv

Utilizarea AG pentru rezolvarea problemelor de optimizare cu un singur obiectiv Utilizarea AG pentru rezolvarea problemelor de optimizare cu un singur obiectiv Enuntarea problemei de optimizare Problema de optimizare cu un singur obiectiv, cu constrangeri: Gaseste vectorul x 1 2 supusa

More information

Programarea Calculatoarelor. Cursul 1: Concepte introductive. Tipuri de date. Funcții de intrare/ieșire

Programarea Calculatoarelor. Cursul 1: Concepte introductive. Tipuri de date. Funcții de intrare/ieșire Programarea Calculatoarelor Cursul 1: Concepte introductive. Tipuri de date. Funcții de intrare/ieșire Ion Giosan Universitatea Tehnică din Cluj-Napoca Departamentul Calculatoare Cadre didactice Curs Ion

More information

Programarea Aplicațiilor Windows curs 1

Programarea Aplicațiilor Windows curs 1 Programarea Aplicațiilor Windows curs 1 Lect. dr. Cristian CIUREA Departamentul de Informatică și Cibernetică Economică Academia de Studii Economice București cristian.ciurea@ie.ase.ro 1 Agenda 1. Structură

More information

AppOBP > PrOBPT > class Timp import java.text.decimalformat;

AppOBP > PrOBPT > class Timp import java.text.decimalformat; AppOBP > PrOBPT > class Timp import java.text.decimalformat; public class Timp { private int hour; // 0-23 private int minute; // 0-59 private int second; // 0-59 // constructorul Timp initializeaza fiecare

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

Şirurile de caractere sunt de fapt succesiuni de caractere. Am învăţat deja să memorăm succesiuni de caractere cu ajutorul tablourilor.

Şirurile de caractere sunt de fapt succesiuni de caractere. Am învăţat deja să memorăm succesiuni de caractere cu ajutorul tablourilor. 3. Şiruri de caractere 3.1. Declararea şi memorarea vectorilor de caractere Şirurile de caractere sunt de fapt succesiuni de caractere. Am învăţat deja să memorăm succesiuni de caractere cu ajutorul tablourilor.

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

1. C şi C++ un tur de orizont.

1. C şi C++ un tur de orizont. 1. C şi C++ un tur de orizont. 1.1. Structura unui program C foarte simplu Un limbaj de programare reprezintă o interfaţă între problema de rezolvat şi programul de rezolvare. Limbajul de programare, prin

More information

Cursul 12. Shell scripting. 13, 19 decembrie 2011

Cursul 12. Shell scripting. 13, 19 decembrie 2011 Cursul 12 12 Shell scripting 13, 19 decembrie 2011 Moto Back off, or I'll replace you with a small shell script. 19.12.2011 2 Securitate defense in depth privilegii weakest link resurse riscuri parole

More information

CONFIGURAREA UNUI SERVER IRC IN LINUX. Bica Bogdan *

CONFIGURAREA UNUI SERVER IRC IN LINUX. Bica Bogdan * CONFIGURAREA UNUI SERVER IRC IN LINUX Bica Bogdan * In this exemple i show how to configure an irc server based on ircd dameon named ircu.this is the main file name ircd.conf and the most important.configure

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

Laborator 3 Aplicatii Java

Laborator 3 Aplicatii Java Laborator 3 Aplicatii Java 1. Programarea vizuala Scrieti, compilati si rulati toate exemplele din acest laborator: 1. Fisierul se numeste testschimbareculori.java: import java.awt.*; import java.awt.event.*;

More information

GDB. Rulare gdb. Comenzi de bază GDB GDB. GDB poate fi folosit în două moduri pentru a depana programul:

GDB. Rulare gdb. Comenzi de bază GDB GDB. GDB poate fi folosit în două moduri pentru a depana programul: GDB GDB Rulare gdb GDB poate fi folosit în două moduri pentru a depana programul: rulându-l folosind comanda gdb folosind fişierul core generat în urma unei erori grave (de obicei segmentation fault) Cea

More information

SECTION 5 L1 - Group By and Having Clauses

SECTION 5 L1 - Group By and Having Clauses SECTION 5 L1 - Group By and Having Clauses Clauza Group By 1. SELECT department_id, AVG(salary),MAX(salary) 2. SELECT job_id, last_name, AVG(salary) GROUP BY job_id; ORA-00979: not a GROUP BY expression

More information

Programare orientată pe obiecte. 1. Clase şi obiecte (continuare) 2. Tablouri

Programare orientată pe obiecte. 1. Clase şi obiecte (continuare) 2. Tablouri Programare orientată pe obiecte 1. Clase şi obiecte (continuare) 2. Tablouri // Autor : Fred Swartz import javax.swing.*; public class KmToMiles { Metode: cum funcţionează un apel private static double

More information

POINTERI (III) 1. Alocarea dinamică a memoriei

POINTERI (III) 1. Alocarea dinamică a memoriei Cursul 13 POINTERI (III) 1. Alocarea dinamică a memoriei 1.1. Necesitatea alocării dinamice. Ne punem problema utilizării într-un program C a unui număr foarte mare de date de tip double, de exemplu, date

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

Ş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

Thread-uri. Continut. Thread-uri 1

Thread-uri. Continut. Thread-uri 1 Thread-uri Continut 1 Prezentare teoretică 1.1 Introducere 1.1.1 Diferente dintre thread-uri şi procese 1.2 Avantajele thread-urilor 1.3 Tipuri de thread-uri 1.3.1 Kernel Level Threads 1.3.2 User Level

More information

Programare Orientată pe Obiecte în limbajul Java

Programare Orientată pe Obiecte în limbajul Java Curs 4 Programare Orientată pe Obiecte în limbajul Java Programare Orientată pe Obiecte Cuprins Tipul enumerare Clase imbricate Clase şi metode abstracte Excepţii Tipuri de date enumerare enum public class

More information

Problema apropiat de problema. Limbaj de programare. masina. Program de rezolvare. Calculator. Rezultate

Problema apropiat de problema. Limbaj de programare. masina. Program de rezolvare. Calculator. Rezultate 1. Un tur de orizont în limbajul C. 1.1. Structura unui program C foarte simplu Un limbaj de programare reprezintă o interfaţă între problema de rezolvat şi programul de rezolvare. Limbajul de programare,

More information

Proiectarea bazelor de date

Proiectarea bazelor de date Proiectarea bazelor de date #3 PL/SQL Funcţii SQL, operatori şi vizibilitatea variabilelor 2016 Adrian Runceanu www.runceanu.ro/adrian Curs 3 Funcţii SQL, operatori şi vizibilitatea variabilelor în PL/SQL

More information

J. Introducere in limbajul Java

J. Introducere in limbajul Java Curs POO-2006 (draft) 2006-2007 1/34 10/22/2006 2006_Intro_Java_v01.htm J. Introducere in limbajul Java J.1. Etapele dezvoltarii programelor Java si instrumentele folosite Programele sunt dezvoltate (concepute,

More information

1. Clase. Abstractizarea datelor

1. Clase. Abstractizarea datelor 1. Clase. Abstractizarea datelor Vom face în cursul de Programarea calculatoarelor şi limbaje de programare II o introducere în programarea orientată pe obiecte, cu aplicaţii în limbajul de programare

More information

Proiectarea bazelor de date

Proiectarea bazelor de date Universitatea Constantin Brâncuşi din Târgu-Jiu Facultatea de Inginerie Departamentul de Automatică, Energie şi Mediu Proiectarea bazelor de date Lect.univ.dr. Adrian Runceanu 03.03.2013 Proiectarea bazelor

More information

13. Java si XML Fisiere XML în aplicatii Java... XML si orientarea pe obiecte... Utilizarea unui parser SAX... Utilizarea unui parser DOM...

13. Java si XML Fisiere XML în aplicatii Java... XML si orientarea pe obiecte... Utilizarea unui parser SAX... Utilizarea unui parser DOM... CUPRINS 1. Java ca limbaj de programare cu obiecte Diferente între limbajele Java si C................................... Tipuri clasã si tipuri referintã....................................... Structura

More information

Curs 3 Clase și obiecte. Limbajul de programare C++ Programare orientată obiect

Curs 3 Clase și obiecte. Limbajul de programare C++ Programare orientată obiect Curs 3 Clase și obiecte Limbajul de programare C++ Programare orientată obiect Limbajul de programare C++ Urmașul limbajului C apărut în anii 80, dezvoltat de Bjarne Stroustrup Bibliografie: B. Stroustup,

More information

Proiectarea bazelor de date

Proiectarea bazelor de date Universitatea Constantin Brâncuşi din Târgu-Jiu Facultatea de Inginerie Departamentul de Automatică, Energie şi Mediu Proiectarea bazelor de date Lect.univ.dr. Adrian Runceanu 19.03.2013 Proiectarea bazelor

More information

Programare orientată obiect Limbajul C++

Programare orientată obiect Limbajul C++ Programare orientată obiect Limbajul C++ Evoluția limbajelor de programare Cod mașină programul în format binar, executat direct de processor Limbaj de asamblare instrucțiuni in format binar înlocuit cu

More information

Proiectarea bazelor de date

Proiectarea bazelor de date Universitatea Constantin Brâncuşi din Târgu-Jiu Facultatea de Inginerie Departamentul de Automatică, Energie şi Mediu Proiectarea bazelor de date Lect.univ.dr. Adrian Runceanu 11-Mar-13 Proiectarea bazelor

More information

Dynamic binding vs static binding. Programare Orientată pe Obiecte

Dynamic binding vs static binding. Programare Orientată pe Obiecte Dynamic binding vs static binding Programare Orientată pe Obiecte Ce va afişa următorul program? class TestEgal{ public boolean equals ( TestEgal other ) { System.out.println( "In equals din TestEgal"

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

Avantaje. 2. permite o foarte bună portabilitate a programelor. 3. permite programarea structurată (modulară)

Avantaje. 2. permite o foarte bună portabilitate a programelor. 3. permite programarea structurată (modulară) CURS 3 Limbajul C - dezvoltat între anii 1969-1973 (D.M.Ritchie), o dată cu dezvoltarea sistemului de operare Unix. (Ken Thompson & D.M.Ritchie); - 1972 - anul "naşterii" limbajului C. - 1973 - elementele

More information

Elemente de bază ale limbajului C++

Elemente de bază ale limbajului C++ Elemente de bază ale limbajului C++ 1. Vocabularul limbajului Elementele de bază ale limbajului, numite şi entităţi sintactice sau atomi lexicali, fac parte din următoarele categorii : cuvinte rezervate

More information

Proiectarea Rețelelor 1. Componentele hardware ale unui sistem de calcul

Proiectarea Rețelelor 1. Componentele hardware ale unui sistem de calcul Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Proiectarea Rețelelor 1. Componentele hardware ale unui sistem de calcul Integrated IS-IS 25 Noiembrie 2010 Proiectarea

More information

Universitatea Constantin Brâncuşi din Târgu-Jiu. Aplicații JAVA. Lect.dr. Adrian Runceanu

Universitatea Constantin Brâncuşi din Târgu-Jiu. Aplicații JAVA. Lect.dr. Adrian Runceanu Universitatea Constantin Brâncuşi din Târgu-Jiu Aplicații JAVA Lect.dr. Adrian Runceanu Curs 4 Applet-uri în Java 10.03.2016 Curs - Aplicatii Java 2 Applet-uri în Java 1. Ce este un applet? 2. Crearea

More information

Lucrarea 5 Fire de Execuţie în Java. Mecanisme de Sincronizare.

Lucrarea 5 Fire de Execuţie în Java. Mecanisme de Sincronizare. Lucrarea 5 Fire de Execuţie în Java. Mecanisme de Sincronizare. În această lucrare vor fi prezentate mecanismele Java pentru programarea concurentă. Fire de Execuţie Există două moduri în care pot fi create

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

Lucrarea nr.9 SUPRAÎNCĂRCAREA OPERATORILOR

Lucrarea nr.9 SUPRAÎNCĂRCAREA OPERATORILOR Lucrarea nr.9 SUPRAÎNCĂRCAREA OPERATORILOR Ca şi în C, limbajul C++ are posibilitatea supraîncărcării funcţiilor şi operatorilor. Mai exact, unei funcţii (metode) i se conferă posibilitatea de a înţelege

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

Lucrarea nr.8 CLASE IMBRICATE

Lucrarea nr.8 CLASE IMBRICATE Lucrarea nr.8 CLASE IMBRICATE În C++ se poate include declaraţia unei clase în interiorul altei clase. Clasa declarată în interiorul alteia se numeşte clasă imbricată (nested class) şi permite evitarea

More information

Operații de intrare/ieșire în C++

Operații de intrare/ieșire în C++ Operații I/O în limbajul C++ Operații de intrare/ieșire în C++ Mihai Gabroveanu Limbajul C++ moștenește de la C funcțiile de I/O Dezavantaj: permit manipularea doar a tipurilor de bază Limbajul C++ introduce

More information

Limbaje de tipul 3. Gramatici regulate Automate finite. Expresii regulate. Deterministe Nedeterministe. a, a, ε, E 1.E 2, E 1 E 2, E 1*, (E 1 )

Limbaje de tipul 3. Gramatici regulate Automate finite. Expresii regulate. Deterministe Nedeterministe. a, a, ε, E 1.E 2, E 1 E 2, E 1*, (E 1 ) Curs 7 1 Limbaje de tipul 3 Gramatici regulate Automate finite Deterministe Nedeterministe Expresii regulate a, a, ε, E 1.E 2, E 1 E 2, E 1*, (E 1 ) 2 Istoric Paşii compilării Analiza lexicală Descriere

More information

Vulnerabilitati Web si securizarea acestora v1.0

Vulnerabilitati Web si securizarea acestora v1.0 Vulnerabilitati Web si securizarea acestora v1.0

More information

Ingineria Sistemelor de Programare

Ingineria Sistemelor de Programare Ingineria Sistemelor de Programare Interfete grafice (Swing) mihai.hulea@aut.utcluj.ro 2017 Scurt istoric AWT: Abstract Windowing Toolkit import java.awt.* Swing Java FX Swing Demo Libraria Swing Swing

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