Microsoft Word - CarteC.doc

Mărimea: px
Porniți afișarea la pagina:

Download "Microsoft Word - CarteC.doc"

Transcriere

1 Şiruri de caractere (2) Funcţiile pentru prelucrarea şirurilor de caractere din biblioteca string.h se referă la compararea a două şiruri, copiere de şiruri, determinarea lungimii şirurilor şi altele. Funcţia unsigned strlen (const char *s); returnează lungimea unui şir de caractere. Lungimea şirului este numărul de caractere proprii, care intră în compunerea şirului respectiv, fără caracterul NUL. Exemple: 1) char *const p = Acesta este un sir ; unsigned n; n = strlen (p); n = 18 şi reprezintă numărul caracterelor proprii din compunerea şirului spre care pointează p. 2) char tab [ ] = Acesta este un sir ; int n; n = strlen (tab); 3) int n; n = strlen ( Acesta este un sir ); Funcţia pentru copierea unui şir de caractere este: char *strcpy (char *dest, const char *sursa); Funcţia copiază şirul de caractere spre care pointează sursa în zona de memorie a cărei adresă de început este valoarea lui dest. Funcţia copiază şi caracterul NUL de la sfârşitul şirului. La revenire, funcţia returnează adresa de început a zonei în care s-a transferat şirul, adică valoarea lui dest. Această valoare este pointer spre caractere, deci tipul returnat este char*. 1

2 Parametrul sursă este declarat cu modificatorul const, deoarece funcţia nu are voie să modifice şirul care se copiază; în schimb, parametrul destinaţie nu este declarat cu modificatorul const, deoarece funcţia strcpy modifică zona spre care pointează destinaţia. Exemple: 1) char tab [ ] = Acest sir se copiaza ; char t [sizeof (tab)]; strcpy (t, tab); 2) char t [100]; strcpy (t, Acest sir se copiaza ); 3) char *p = Acest sir se copiaza ; char t [100]; char *q; q = strcpy (t, p); Se pot copia maxim n caractere ale unui şir dintr-o zonă de memorie în alta folosind funcţia: char *strncpy (char *dest, const char *sursa, unsigned n); Dacă n > lungimea şirului spre care pointează sursa, atunci toate caracterele şirului respectiv se transferă în zona spre care pointează dest; altfel se copiază numai primele n caractere ale şirului. În rest, acelaşi efect ca şi strcpy. Funcţia care concatenează două şiruri are următorul prototip: char *strcat (char *dest, const char *sursa); Funcţia copiază şirul de caractere din zona spre care pointează sursa, în zona de memorie care urmează imediat după ultimul caracter propriu al şirului spre care pointează dest. Ultimul caracter în şirul rezultat este NUL. Funcţia returnează valoarea lui dest (adresa şirului rezultat). Exemplu: 2

3 char tab1[100] = Limbajul C ; char tab2[ ] = este C incrementat ; strcat (tab1, ); strcat (tab1, tab2); Copierea unui subşir dintr-un şir în ali şir se poate realiza folosind funcţia: char *strncat (char *dest, const char *sursa, unsigned n); În acest caz se concatenează la sfârşitul şirului, spre care pointează dest, cel mult n caractere ale şirului spre care pointează sursa. Dacă n > lungimea şirului spre care pointează sursa, atunci se concatenează întregul şir, altfel numai primele n caractere ale acestuia. Compararea şirurilor este o altă operaţie des utilizată la şiruri. Ea poate fi realizată prin următoarele funcţii: int strcmp (const char *s1, const char *s2); int strncmp (const char *s1, const char *s2, unsigned n); int stricmp (const char *s1, const char *s2); Dacă sir1 este şirul de caractere spre care pointează s1 şi dacă sir2 este şirul de caractere spre care pointează s2, primul format al funcţiei de comparare returnează valoare negativă, dacă sir1 < sir2, zero, dacă sir1 = sir2 şi o valoare pozitivă, dacă sir1 > sir2. Facem observaţia că şirul s1<s2, dacă există un indice i astfel încât s1[i]<s2[i] şi s1[j]=s2[j], pentru orice j=0,1,2,,i-1. În cazul celui de-al doilea format, se compară cele două şiruri pe lungimea n. Dacă minimul dintre lungimile celor două şiruri este mai mic decât n, atunci funcţia strncmp realizează aceeaşi comparaţie ca şi funcţia strcmp. Dacă la o comparare de şiruri de caractere nu este necesar a se face distincţie între literele mari şi literele mici ale alfabetului, se poate folosi funcţia având prototipul în forma a treia prezentată anterior. 3

4 Exemplu: char *sir1 = ABC ; char *sir2 = abc ; int i; Apelul i = strcmp(sir1, sir2); returnează o valoare negativă, deoarece literele mari au coduri ASCII mai mici decât literele mici (A are codul 65, iar a are codul 97), deci ABC < abc. Iar, apelul i = stricmp(sir1, sir2); returnează 0. Funcţia având prototipul char *strchr(char * s, char c); returnează prima apariţie (adresa) a caracterului c în şirul s, respectiv NULL dacă c nu este în s. Funcţia char *strstr(char *s, char *ss); returnează poziţia primei apariţii a şirului ss în şirul s, respectiv NULL, dacă ss nu este în s. return contor; Funcţii care lucrează cu şiruri de caractere (completare curs ) Incluse in biblioteca <string> 4

5 char *strtok(char *sir1,char *sir2); Efect: separă şirul sir1 în entităţi delimitate de unul sau mai multe caractere din şirul sir2 (acestea având rol de separatori). Apelul funcţiei se face prima dată sub forma strtok(sir1,sir2) - funcţia întoarce adresa primului caracter al primei entităţi - şi a doua oară sub forma strtok(null,sir2) şi funcţia întoarce adresa primului caracter al următoarei entităţi şi după el este adăugat caracterul nul. Când şirul iniţial nu mai conţine entităţi, intoarce adresa nulă. Exemplu: char linie[128], * cuv; char *sep=.,;\t\n // şir de caractere separator gets(linie); cuv=strtok (linie,sep); // primul cuvant din linie while ( cuv!=null) puts (cuv); cuv=strtok(0,sep); // urmatorul cuvant din linie In stdlib.h sunt declarate câteva funcţii folosite pentru extragerea unor numere dintr-un text (dintr-un sir de caractere) şi care ilustrează o altă soluţie pentru funcţii care primesc o adresă într-un şir, extrag un subşir şi modifică adresa în cadrul şirului (după subşirul extras). Este vorba de funcţiile: double strtod (char *s, char **p); - string to double long strtod (char *s, char **p); - string to long care extrag, la fiecare apel, un subşir care reprezintă un număr şi au două rezultate: valoarea numărului în baza zece şi adresa imediat următoare numărului extras în şirul analizat. Exemplu: char * str =" e-1 "; char * p = str; 5

6 double d; do d = strtod (p,&p); printf ("%lf\n", d); while (d!= 0); char *strupr(char *s) Efect: transformă un şir de caractere din litere mici în litere mari. Restul caracterelor rămân nemodificate. char *strlwr(char *s) Efect: transformă un şir de caractere din litere mari în litere mici. Restul caracterelor rămân nemodificate. Funcții incluse in biblioteca <stdlib.h> int atoi(char *s) Efect: transformă un şir de carcatere într-un întreg (int). Exemplu: int n; char *s= ; n=atoi(s); // va afisa 1234 long atol(char *s) Efect: transformă un şir de carcatere într-un întreg (long). double atof(char *s) Efect: transformă un şir de carcatere într-un număr real. Exemplu: float n; 6

7 char *s= ; n=atof(s); // va afisa char *itoa(int val, char *sir, int baza) Efect: transformă un numar întreg (int) într-un şir de caractere. Baza reprezintă baza in care este scris noul număr. Exemplu: int n=12345; char s[20]; itoa(n,s,10); // va afisa sirul char *ltoa(long val, char *sir, int baza) Efect: transformă un numar întreg (long) într-un şir de caractere. char *ultoa(unsigned long val, char *sir, int baza) Efect: transformă un numar întreg (unsigned long) într-un şir de caractere. Funcţii care lucrează cu caractere incluse in biblioteca <ctype.h>. Testează dacă un caracter primit ca parametru îndeplineşte o condiţie. Returnează 0 dacă acel caracter nu indeplineşte condiţia şi valoare diferită de 0 dacă o îndeplineşte. int isalnum(int c); Efect:testează dacă un caracter este literă sau cifră int isalpha(int c); Efect: testează dacă un caracter este literă 7

8 int isdigit(int c); Efect: testează dacă un caracter este cifră int islower(int c); Efect: testează dacă un caracter este literă mică int isupper(int c); Efect: testează dacă un caracter este literă mare int isspace(int c); Efect: testează dacă un caracter este spaţiu int isxdigit(int c); Efect: testează dacă un caracter este cifră în baza 16 int toupper(int c); Efect: transformă un caracter care este litera mică în literă mare int tolower(int c); Efect: transformă un caracter care este litera mare în literă mică Exemplu: 1. Pornind de la un şir citit de la tastatură, să se construiască şi să se tipărească: şirul care conţine cifrele din cel iniţial; şirul care conţine minusculele vocalelor din cel iniţial; şirul invers celui iniţial; să se verifice dacă şirul iniţial este palindrom. 8

9 #include <stdio.h> #include <conio.h> #include <string.h> #include <ctype.h> #define LUNGS 81 //variabile globale char sir[lungs],aux[lungs]; void constr1(void); void constr2(void); void constr3(void); int main( ) puts("*** sirul de prelucrat:"); gets(sir); constr1(); constr2(); constr3(); return 0; void constr1( ) int i,j; for (i=j=0;i<strlen(sir);i++) if(isdigit(sir[i])) // conditia echivalenta cu '0'<=sir[i]<='9' aux[j++]=sir[i]; aux[j]='\0'; printf("sirul de cifre:%s\n",aux); void constr2( ) int i,j; char c; 9

10 for (i=j=0;i<strlen(sir);i++) if(c=tolower(sir[i]),c=='a' c=='e' c=='i' c=='o' c=='u') aux[j++]=c; aux[j]='\0'; printf("sirul de vocale:%s\n",aux); void constr3( ) int i,lung; for (i=0,lung=strlen(sir);i<lung;i++) aux[i]=sir[lung-1-i]; aux[i]='\0'; printf("sirul invers:%s\n",aux); if(strcmp(sir,aux)==0) puts("*** Este palindrom"); else puts("*** Nu este palindrom"); STRUCTURI ŞI TIPURI DEFINITE DE UTILIZATOR Definirea structurilor O structură este o colecţie de valori eterogene, stocate într-o zona compactă de memorie. Componentele unei structuri, denumite câmpuri, sunt identificate prin nume simbolice, denumite selectori. Câmpurile unei structuri pot fi de orice tip, simplu sau 10

11 derivat, dar nu void sau funcţie. Declararea structurilor se face folosind cuvântul cheie struct: struct nume_structura lista_câmpuri //declaratii de forma tip_câmpi nume_câmpi; lista_declaratori; //variabile de tip structura unde nume_structura sau lista_declaratori pot lipsi, dar nu simultan. Dacă se precizează nume_structura, atunci înseamnă că se face definirea tipului struct nume_structura, care poate fi apoi folosit pentru declararea de variabile, ca tip de parametri formali sau ca tip de rezultat returnat de funcţii. Exemple: 1. Definirea unei date de tip structură în care se precizează şi nume_structura şi lista_declaratori. struct coordonate float x,y; punct,*ppunct,puncte[20]; //variabile Pentru această dată mai pot fi definite şi alte varibile, după necesităţi: struct coordonate alt_punct=1,4.5, alte_puncte[10]=2,4,8,9,7, mai_multe_puncte[25]=1,2,3,4; Variabilele de tip structură se pot iniţializa la declarare; iar câmpurile neprecizate sunt implicit egale cu Exemplu de dată de tip structură în care lipseşte lista_declaratori. În acest caz variabilele de tip structură se vor declara separat de definirea structurii. 11

12 struct persoana char nume[20]; int varsta; ; struct persoana pers="ion Ionescu",21, *ppers, persoane[12]; 3. Definirea unei date de tip structură în care se precizează lista_declaratori, iar nume_structura lipseşte. struct char titlu[20],autor[15],editura[12]; int an_aparitie; carte,biblioteca[1000]; În acest caz declaraţiile de variabile pot fi făcute doar la definire. Un câmp al unei structuri poate fi de tip structura, dar nu aceeaşi cu cea definită. Totuşi, se poate declara în cadrul unei structuri un câmp pointer la structura definită. Acest tip de date va fi utilizat la implementarea listelor şi poartă numele de structuri recursive. Exemple: 1. struct persoana char nume[20]; struct int zi,an,luna data_nasterii; //Câmp de tip structura p; 12

13 2. struct nod_lista tip_info info; struct nod_lista * urm; //Câmp pointer la structura definita ; Numele unei structuri se depun într-un spaţiu de nume diferit de cel al numelor de variabile, de aceea se pot declara variabile şi tipuri structură cu acelaşi nume. Mai mult, se pot declara tipuri structuri care au nume de câmpuri identice. Nu este indicat a se utiliza astfel de declaraţii. Operaţii cu structuri Selectarea unui câmp al unei variabile structuri se realizează folosind operatorul selectie.. variabila_structura.nume_câmp Câmpul selectat se comportă ca o variabilă de acelaşi tip, deci i se pot aplica aceleaşi prelucrări ca oricărei variabile de tipul respectiv. Selecţia câmpurilor pentru variabila p de tip persoana declarată în exemplul precedent se realizează prin: p.nume //tablou de caractere p.nume[0] //primul caracter din nume p.nume[strlen(p.nume)-1] //ultimul caracter din nume p.data_nasterii.an p.data_nasterii.luna 13

14 p.data_nasterii.an Exemplu: Fie declaraţia de tip structură student cu câmpurile: nume, nr_student şi medie: struct student char *nume; int nr_student; float medie; ; pentru care declarăm două variabile : struct student temp, grupa[100]; Fie declarațiile: #define NR_STUDENTI 100 struct student char *nume; int nr_student; float medie; ; struct student temp, grupa [NR_STUDENTI]; În acest caz, putem avea instrucţiuni de asignare cum ar fi: temp.medie = 4.00; temp.nume = "Ionescu"; temp.nr_student = 1023; În continuare, scriem o funcţie care numără studenţii cu media 4.00: 14

15 int esec(struct student grupa[]) int i, contor = 0; for (i = 0; i < NR_STUDENTI; ++i) contor += grupa[i].medie == 4.00; return contor; Deoarece structurile se prelucrează frecvent prin intermediul pointerilor, a fost introdus operatorul ->, acesta combină operatorul de indirectare * cu operatorul de selecţie.. Cele două expresii de mai jos sunt echivalente: (*variabila_pointer).nume_câmp variabila_pointer->nume_câmp Pentru exemplul anterior, fie următoarele declaraţii şi asignări: struct student temp, *p = &temp; temp.medie = 10.00; temp.nume = "Ionescu"; temp.nr_student = 1204; Expresiile echivalente şi valorile corespunzătoare sunt următoarele: Expresie echivalentă Expresie Valoare temp.medie p -> medie temp.nume p -> nume Ionescu temp.nr_student p-> nr_student 1024 (*p).nr_student p-> nr_student 1024 Unei variabile de tip structură i se pot aplica operatorii de adresare şi de dimensiune: & și 15

16 sizeof. O variabilă structură poate fi iniţializată la declarare prin precizarea între a valorilor câmpurilor; cele neprecizate sunt implicit 0. O variabilă structură poate fi copiată în altă variabilă de acelaşi tip. Cu declaraţiile de mai sus, avem : printf("%d %d\n",sizeof(pers),sizeof(struct persoana)); ppers=&pers; persoane[0]=*ppers; O variabilă structură nu poate fi citită sau scrisă direct, ci prin intermediul câmpurilor. Funcţiile pot avea parametrii de tip structură, iar tipul rezultatului returnat de o funcţie poate fi structură. Exemple: 1. Să se proiecteze o structură de date pentru reprezentarea numerelor complexe şi să se scrie funcţii care realizează: operaţii de calcul al modului unui număr complex, afişarea numerelor complexe, adunarea şi înmulţirea numerelor complexe reprezentate astfel: struct complex float coef_real; float coef_imag; ; #include <stdio.h> #include <math.h> struct complex float x, y; ; 16

17 struct complex nr1,nr2,nr; float modul(struct complex z) float m; m=sqrt(z.x*z.x+z.y*z.y); return m; void scrie(struct complex z) printf("a+bi=%f + i*(%f) \n",z.x,z.y); void aduna(struct complex z1,struct complex z2,struct complex *z) (*z).x=z1.x+z2.x; z->y=z1.y+z2.y; /* alta funcţie de adunare struct complex adu(struct complex z1,struct complex z2) struct complex c; c.x=z1.x+z2.x; c.y=z1.y+z2.y; return c; */ struct complex inmultire(struct complex z1, struct complex z2) struct complex c; c.y=z1.x*z2.y+z1.y*z2.x; c.x=z1.x*z2.x-z1.y*z2.y; 17

18 return c; int main() printf("coef.real="); scanf("%f",&nr1.x); printf("coef.imag="); scanf("%f",&nr1.y); scrie(nr1); printf("modulul = %g\n",modul(nr1)); printf("coef.real=");scanf("%f",&nr2.x); printf("coef.imag=");scanf("%f",&nr2.y); scrie(nr2); printf("modulul = %g\n",modul(nr2)); printf("suma \n"); aduna(nr1,nr2,&nr); scrie(nr); // nr=adu(nr1,nr2); scrie(nr); printf("produs \n"); nr=inmultire(nr1,nr2); scrie(nr); return 0; 2. Se citesc informaţii despre n studenţi ce conţin nume, nota1, nota2, nota3 și nota4. Să se afişeze: - studenţii în ordine alfabetică şi mediile lor; - studenţii în ordinea descrescătoare a mediilor #include <stdio.h> #include <string.h> 18

19 struct STUDENT char nume[40]; int note[4]; float media; s[100]; int n; void citire(struct STUDENT []); void ordalfa(struct STUDENT []); void ordmedie(struct STUDENT []); void afis(struct STUDENT []); int main() citire(s); afis(s); printf("afisare alfabetica\n"); ordalfa(s); afis(s); printf("afisare in ordinea mediilor \n"); ordmedie(s); afis(s); printf("hello world!\n"); return 0; void citire(struct STUDENT s[]) int i,j; do printf("nr. studenti="); scanf("%d",&n); while (n<1 n>100); for(i=0;i<n;i++) printf("informatii pentru studentul %d \n",i+1); printf("numele : "); scanf("%40s",s[i].nume); // gets(s[i].nume); fflush(stdin); s[i].media=0; for(j=0;j<4;j++) printf("nota %d =",j+1); scanf("%d",&s[i].note[j]); s[i].media+=s[i].note[j]; s[i].media/=4; 19

20 void ordalfa(struct STUDENT s[]) int i,ind; struct STUDENT aux; do ind=0; for(i=0;i<n-1;i++) if (strcmp(s[i].nume,s[i+1].nume)>0) aux=s[i]; s[i]=s[i+1]; s[i+1]=aux; ind=1; while(ind); void ordmedie(struct STUDENT s[]) int i,ind; struct STUDENT aux; do ind=0; for(i=0;i<n-1;i++) if (s[i].media<s[i+1].media s[i].media==s[i+1].media &&strcmp(s[i].nume,s[i+1].nume)>0) aux=s[i]; s[i]=s[i+1]; s[i+1]=aux; ind=1; while(ind); void afis(struct STUDENT s[]) int i; for(i=0;i<n;i++) printf("%40s are media %f\n",s[i].nume,s[i].media); 20

21 Declaraţii de tip (Typedef) În limbajul C se poate atribui un nume unui tip, indiferent dacă el este un tip predefinit sau unul utilizator, folosind o construcţie de forma: typedef tip nume_tip; unde tip este un tip predefinit sau un tip utilizator; iar nume_tip este numele care se atrinuie tipului definit de tip. După ce s-a atribuit un nume unui tip, numele respectiv poate fi utilizat pentru a declara date de acel tip, exact la fel cum se utilizează în declaraţii cuvântul cheie ale tipurilor predefinite: int, char, float, etc. Exemple: 1. typedef int INTREG ; Declaraţia INTREG x ; este identică cu int x ; 2. typedef int CULOARE; CULOARE rosu, verde, albastru; 3. typedef char * string; typedef int lungime; typedef float vector[10]; typedef double (*PFD)(double); După aceste redenumiri, putem face declaraţiile: lungime l1, l2; string s1 = "abc", s2 = "xyz"; 21

22 vector x; PFD f; Aceste declaraţii sunt echivalente cu: int l1, l2; char * s1 = "abc", s2 = "xyz"; float x[10]; double (*f)(double); /* pointer la o funcţie ce returnează tipul "double" */ 4. typedef struct data_calenadaristica int zi; char luna[15]; i int an; DC; Declaraţia DC data_nasterii, data_angajarii; este identică cu struct data_calenadaristica data_nasterii, data_angajarii; Un caz particular al tipului întreg este tipul enumerare. Pentru declararea tipurilor enumerare se foloseste cuvântul rezervat enum. Tipul enumerare declară date simbolice, cărora li se asociază coduri numerice de tip întreg, astfel: enum nume_tip lista_constante_simbolice nume_tip poate lipsi din declaraţie. Acesta va implica denumirea mulţimii, enumerarea elementelor (numite enumeratori), ca elemente ale mulţimii. Exemplu: enum zile luni, marti, miercuri, joi, vineri, sambata, duminica; Aceasta declaraţie creeaza tipul utilizator enum zile. Cuvântul rezervat enum 22

23 este urmat de identificatorul "zile". Enumeratorii sunt identificatorii luni, marti, miercuri, joi, vineri, sambata, duminica. Acestea sunt constante de tip int. Prin convenţie, primul este 0, apoi restul sunt incrementaţi. Declararea variabilelor de tip enum zile se face astfel: enum zile zi1, zi2; Variabilele zi1 şi zi2 pot lua ca valori elemente ale acestui tip. De exemplu, zi1 = miercuri; va asigna variabilei zi1 valoarea miercuri. Instrucţiunea if (zi1 == zi2)... va testa dacă valoarea variabilei zi1 este egală cu valoarea variabilei zi2. Enumeratorii pot fi iniţializaţi. De asemenea, putem declara variabilele în timpul definirii tipului enum. 23

Microsoft Word - CarteC.doc

Microsoft 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 mult

Limbaje de Programare Curs 5 – Siruri de caractere

Limbaje 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 mult

L7

L7 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 mult

SUBPROGRAME

SUBPROGRAME 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 mult

Limbaje de Programare Curs 6 – Functii de intrare-iesire

Limbaje 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 mult

LUCRAREA NR

LUCRAREA NR LUCRAREA NR. 5 TIPURI DE DATE STRUCTURATE În C există două categorii de tipuri de date structurate: tablourile şi structurile. Un tablou este o colecţie omogenă de valori de acelaşi tip identificate printr-un

Mai mult

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

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 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 mult

Microsoft Word - CarteC.doc

Microsoft Word - CarteC.doc Introducere în limbajul de programare C - C este un limbaj de programare ale cărui caracteristici sunt economia de expresie, structuri moderne de control al fluxului şi de date, precum şi un set bogat

Mai mult

Microsoft Word - PCLP2_Curs_4_2019.doc

Microsoft 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 mult

Object Oriented Programming

Object 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 mult

Operatorii 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 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 mult

E_d_Informatica_sp_MI_2015_bar_02_LRO

E_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 mult

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

Microsoft 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 mult

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

Mai mult

Programarea şi utilizarea calculatoarelor

Programarea ş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 mult

Microsoft PowerPoint - Curs_SDA_4_RO_2019_v2.pptx

Microsoft PowerPoint - Curs_SDA_4_RO_2019_v2.pptx Curs SDA (PC2) Curs 4 Structuri de date (continuare) Iulian Năstac 10. Funcţii pentru alocarea dinamică a memoriei (Recapitulare) Alocarea dinamică este caracteristica prin care un program poate obţine

Mai mult

Laborator 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 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 mult

SIRURI DE CARACTERE in C++ O constanta de tip sir de caractere de declara intre doua caractere. In memoria interna, o constanta de acest tip este reti

SIRURI DE CARACTERE in C++ O constanta de tip sir de caractere de declara intre doua caractere. In memoria interna, o constanta de acest tip este reti SIRURI DE CARACTERE in C++ O constanta de tip sir de caractere de declara intre doua caractere. In memoria interna, o constanta de acest tip este retinuta sub forma unui vector de caractere. Fiecare componenta

Mai mult

Microsoft PowerPoint - Curs_SDA_9_RO_2019_v2.pptx

Microsoft 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 mult

E_d_Informatica_sp_SN_2014_bar_10_LRO

E_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 mult

Slide 1

Slide 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 mult

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

Limbaje 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 mult

Propunator: 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 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 mult

Microsoft Word - CarteC.doc

Microsoft Word - CarteC.doc INSTRUCŢIUNILE LIMBAJULUI C (2) Instrucţiuni repetitive Instrucţiunea while Instrucţiunea while are formatul: while(expresie) Expresie DA Instrucţiune NU Instrucţiunea while produce în primul rând evaluarea

Mai mult

Subiectul 1

Subiectul 1 Subiectul 1 În fişierul Numere.txt pe prima linie este memorat un număr natural n (n

Mai mult

Microsoft PowerPoint - Curs_SDA_3_RO_2019_v2.pptx

Microsoft PowerPoint - Curs_SDA_3_RO_2019_v2.pptx Curs SDA (PC2) Curs 3 Pointeri (continuare) Structuri de date Iulian Năstac Pointeri (Recapitulare) Un pointer este o variabilă care conţine o adresă din memorie, unde se află valoarea altei variabile.

Mai mult

Laborator 3

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 mult

Programarea şi utilizarea calculatoarelor

Programarea ş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 mult

Slide 1

Slide 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 mult

Scrieţi pe foaia de examen răspunsul pentru fiecare dintre cerinţele următoare

Scrieţi pe foaia de examen răspunsul pentru fiecare dintre cerinţele următoare Scrieţi pe foaia de examen răspunsul pentru fiecare dintre cerinţele următoare. 1. În declararea alăturată, câmpurile x şi y ale înregistrării pot memora coordonatele carteziene ale unui punct din planul

Mai mult

Microsoft PowerPoint - Curs_SDA_10_RO_2019_v1.pptx

Microsoft 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 mult

Paradigme de programare

Paradigme 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 mult

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

ALGORITMII ŞI REPREZENTAREA LOR Noţiunea de algoritm Noţiunea de algoritm este foarte veche. Ea a fost introdusă în secolele VIII-IX de către Abu Ja f 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 mult

Grile si probleme siruri de caractere in C++ ŞIRURI DE CARACTERE Itemii următori sunt preluaţi din variantele de bacalaureat În secvenţa de i

Grile si probleme siruri de caractere in C++ ŞIRURI DE CARACTERE Itemii următori sunt preluaţi din variantele de bacalaureat În secvenţa de i Grile si probleme siruri de caractere in C++ ŞIRURI DE CARACTERE Itemii următori sunt preluaţi din variantele de bacalaureat 2009. 1. În secvenţa de instrucţiuni de mai jos, variabila s memorează un şir

Mai mult

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

Laborator 2 - Încapsularea Programare Orientată pe Obiecte Tema 2.1 Să se analizeze programul EX2.C Indicatii 2.1 A nu se uita de fisierul EX2.H Tema 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 mult

Laborator 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 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 mult

Logică și structuri discrete Limbaje regulate și automate Marius Minea marius/curs/lsd/ 24 noiembrie 2014

Logică și structuri discrete Limbaje regulate și automate Marius Minea   marius/curs/lsd/ 24 noiembrie 2014 Logică și structuri discrete Limbaje regulate și automate Marius Minea marius@cs.upt.ro http://www.cs.upt.ro/ marius/curs/lsd/ 24 noiembrie 2014 Un exemplu: automatul de cafea acțiuni (utilizator): introdu

Mai mult

Microsoft Word - O problema cu bits.doc

Microsoft 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 mult

Limbaje de Programare Curs 8 – Fisiere

Limbaje 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 mult

ALGORITMICĂ. 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ă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 mult

Programarea şi utilizarea calculatoarelor

Programarea ş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 mult

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

Programarea calculatoarelor. Note de curs Marius Minea 1 Introducere în programarea în C 1.1 Funcţii în limbajul C Calcule şi funcţii La origine, rolu 1 Introducere în programarea în C 1.1 Funcţii în limbajul C Calcule şi funcţii La origine, rolul programelor e de a efectua în principal calcule matematice. Discutăm de aceea structura programelor făcând

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 mult

Top

Top 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 mult

Microsoft Word - c6.doc

Microsoft 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 mult

Slide 1

Slide 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 mult

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

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 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 mult

Slide 1

Slide 1 STRUCTURI DE DATE Lista simpla Lista dubla LISTA LINIARA Lista liniara: Colectie de elemente denumite noduri; Relatie de ordine rezultata din pozitia nodurilor; Elemente de acelasi tip structura omogena;

Mai mult

PHP (II)

PHP (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 mult

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

Tipuri de date abstracte 30 noiembrie 2005 Programarea calculatoarelor 2. Curs 9 Marius Minea Tipuri de date abstracte 30 noiembrie 2005 Tipuri de date abstracte 2 Programe compuse din mai multe fişiere Implicit, obiectele declarate la nivel de fişier sunt unice într-un program (douǎ declaraţii

Mai mult

Laborator 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 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 mult

Declararea variabilelor

Declararea 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 mult

Diapositive 1

Diapositive 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 mult

Managementul Resurselor Umane

Managementul Resurselor Umane Universitatea Politehnica București Catedra de Calculatoare Laborator 4 Cereri SQL Autori Conf. Dr. Ing. Alexandru Boicea Ș.L. Dr. Ing. Ciprian-Octavian Truică Cuprins Cereri SQL Cereri simple 10.03.2019

Mai mult

Logică ș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/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

PRELEGERE XIII PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE Noţiunea de funcţie - continuare VI. Funcţii recursive O funcţie se poate activa n

PRELEGERE XIII PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE Noţiunea de funcţie - continuare VI. Funcţii recursive O funcţie se poate activa n PRELEGERE XIII PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE Noţiunea de funcţie - continuare VI. Funcţii recursive O funcţie se poate activa nemijlocit pe ea însăşi de un număr nedeterminat de

Mai mult

Metode de programare Proiectarea algoritmilor

Metode 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 mult

Microsoft Word _POO_Lab_1_Modificari_v01.htm

Microsoft 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 mult

Procesarea 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 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 mult

tehnologii web

tehnologii 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 mult

Analiză de flux de date 29 octombrie 2012

Analiză 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 mult

Aggregating Data

Aggregating Data Subinterogări. Subinterogări multi-row. Formatarea rezultatelor unei interogări Obiective Prin parcurgerea acestui referat studentul va dobândi cunoştinţele necesare: identificării funcţiilor grup disponibile;

Mai mult

Curs 3 Permutari cu repetitie. Combinari. Algoritmi de ordonare si generare

Curs 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 mult

Paradigme de Programare

Paradigme 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 mult

Microsoft Word - Algoritmi genetici.docx

Microsoft Word - Algoritmi genetici.docx 1.1 Generalităţi Algoritmii genetici fac parte din categoria algoritmilor de calcul evoluționist și sunt inspirați de teoria lui Darwin asupra evoluției. Idea calculului evoluționist a fost introdusă în

Mai mult

ALGORITHMICS

ALGORITHMICS CURS 2: Descrierea algoritmilor în pseudocod =Exemple= 1 Structura Descrierea unor algoritmi simpli Specificarea și utilizarea subalgoritmilor 2 Exemplu 1 Considerăm un tabel cu informații despre studenți

Mai mult

Tablouri 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= 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 mult

1. a. Să se scrie un algoritm care să afişeze toate numerele de patru cifre care au cifra sutelor egală cu o valoare dată k, şi cifra zecilor cu 2 mai

1. a. Să se scrie un algoritm care să afişeze toate numerele de patru cifre care au cifra sutelor egală cu o valoare dată k, şi cifra zecilor cu 2 mai 1. a. Să se scrie un algoritm care să afişeze toate numerele de patru cifre care au cifra sutelor egală cu o valoare dată k, şi cifra zecilor cu 2 mai mare decât cifra sutelor. b. Se consideră algoritmul

Mai mult

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

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 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 mult

Algoritmi 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 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 mult

1

1 Contents 1 Automate finite... 2 1.1 Probleme cu AF... 2 1.2 Structuri de date pentru automate finite... 4 2 Gramatici si limbaje; gram. indep. de context... 5 2.1 Limbaje... 5 2.2 Gramatici si limbaje...

Mai mult

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

Metode de sortare - pregătire admitere - Conf.dr. Alexandru Popa Lect. dr. Andrei Pătraşcu Universitatea din Bucureşti 1 Metode de sortare - pregătire admitere - Conf.dr. Alexandru Popa Lect. dr. Andrei Pătraşcu Universitatea din Bucureşti 1 Cuprins Problema sortării Algoritmul de sortare prin interschimbare (Bubble sort)

Mai mult

Microsoft Word - Software pentru ordonarea multirang a componentelor unei colectivitati.doc

Microsoft Word - Software pentru ordonarea multirang a componentelor unei colectivitati.doc Software pentru ordonarea multirang a componentelor unei colectivităţi S e prezintă un algoritm pentru dispunerea elementelor unei colectivităţi în raport cu mai multe criterii şi un software aferent,

Mai mult

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

Microsoft 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 mult

Microsoft Word - Lab1a.doc

Microsoft Word - Lab1a.doc Sisteme de numeraţie şi coduri numerice 1.1. Sisteme de numeraţie 1.2. Conversii generale între sisteme de numeraţie 1.3. Reprezentarea numerelor binare negative 1.4. Coduri numerice 1.5. Aplicaţii In

Mai mult

Analiză statică Analiza fluxului de date 23 octombrie 2014

Analiză 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 mult

1. Operatii cu matrici 1 Cerinte: Sa se realizeze functii pentru operatii cu matrici patratice (de dimensiune maxima 10x10). Operatiile cerute sunt: A

1. Operatii cu matrici 1 Cerinte: Sa se realizeze functii pentru operatii cu matrici patratice (de dimensiune maxima 10x10). Operatiile cerute sunt: A 1. Operatii cu matrici 1 Sa se realizeze functii pentru operatii cu matrici patratice (de dimensiune maxima 10x10). Operatiile cerute sunt: A+B (adunare), aa (inmultire cu scalar), A-B scadere), AT (Transpusa),

Mai mult

Slide 1

Slide 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 mult

Lab6LCD

Lab6LCD LABORATOR 6 - Interfaţă pentru afişor cu cristale lichide (LCD), partea II-a Scopul lucrării În laboratorul anterior s-au implementat funcţiile rd_lcdreg(char vrs), wr_lcdreg(char vrs, char data), void

Mai mult

PCLPII-C16(9)

PCLPII-C16(9) Programarea Calculatoarelor și Limbaje de Programare - Curs 16 Despre proiect ce s-a studiat? ce se va studia? proiectul tema date de intrare conţinut date de ieşire C9(16)-1 Ce s-a studiat? Instrucţiuni

Mai mult

PROGRAMARE ORIENTATA PE OBIECTE

PROGRAMARE 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 mult

Microsoft Word - Curs_08.doc

Microsoft Word - Curs_08.doc Partea a II-a. Proiectarea bazelor de date Capitolul 6. Tehnici de proiectare şi modele În capitolele precedente s-au analizat modele de baze de date şi limbaje, presupunând în cele mai multe cazuri că

Mai mult

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

Declaraţ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 mult

Capitole Speciale de Informatică Curs 2: Determinarea vocabularului de termeni şi a listelor de postări 4 octombrie 2018 Reamintim că listele de indec

Capitole Speciale de Informatică Curs 2: Determinarea vocabularului de termeni şi a listelor de postări 4 octombrie 2018 Reamintim că listele de indec Capitole Speciale de Informatică Curs 2: Determinarea vocabularului de termeni şi a listelor de postări 4 octombrie 2018 Reamintim că listele de indecşi inversaţi se construiesc în 4 paşi: 1. Se colectează

Mai mult

Adresarea memoriei Modurile de adresare constituie un instrument principal pentru reprezentarea în memorie a imaginii datelor, aşa cum este ace

Adresarea memoriei Modurile de adresare constituie un instrument principal pentru reprezentarea în memorie a imaginii datelor, aşa cum este ace 174 12 Adresarea memoriei Modurile de adresare constituie un instrument principal pentru reprezentarea în memorie a imaginii datelor, aşa cum este aceasta văzută de programatorul în limbaj de nivel înalt.

Mai mult

PowerPoint-Präsentation

PowerPoint-Präsentation Universitatea Transilvania din Braşov Laboratorul de Vedere Artificială Robustă şi Control Metode Numerice Curs 01 Introducere Gigel Măceșanu 1 Cuprins Obiectivele cursului Organizare: Structura cursului

Mai mult

1

1 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 mult

C++ Probleme

C++ 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 mult

Microsoft Word - Curs1.docx

Microsoft Word - Curs1.docx 1. REPREZENTAREA INFORMAȚIILOR ÎN CALCULATOR 1.1. CONCEPTUL DE DATĂ ȘI INFORMAȚIE Datele desemnează elementele primare, provenind din diverse surse, fără o formă organizată care să permită luarea unor

Mai mult

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

Preprocesorul C Funcţii cu numǎr variabil de argumente 6 decembrie 2005 Programarea calculatoarelor 2. Curs 10 Marius Minea Preprocesorul C Funcţii cu numǎr variabil de argumente 6 decembrie 2005 Preprocesorul C. stdarg.h 2 Preprocesorul C extensii (macro-uri) pentru scrierea mai concisǎ a programelor preprocesorul efectueazǎ

Mai mult

1. Găsiți k numerele cele mai apropiate într-un şir nesortat Dându-se un şir nesortat și două numere x și k, găsiți k cele mai apropiate valori de x.

1. Găsiți k numerele cele mai apropiate într-un şir nesortat Dându-se un şir nesortat și două numere x și k, găsiți k cele mai apropiate valori de x. 1. Găsiți k numerele cele mai apropiate într-un şir nesortat Dându-se un şir nesortat și două numere x și k, găsiți k cele mai apropiate valori de x. Date de intrare: arr [] = {10, 2, 14, 4, 7, 6}, x =

Mai mult

PROGRAMARE 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 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 mult

CURS

CURS 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 mult

Modelarea si Simularea Sistemelor de Calcul

Modelarea si Simularea Sistemelor de Calcul Modelarea şi Simularea Sistemelor de Calcul Generarea de numere aleatoare ( lab. 5) Numim variabilă aleatoare acea funcţie X : (Ω, δ, P) R, care în cazul mai multor experimente efectuate în condiţii identice

Mai mult

Backtracking_2018

Backtracking_2018 Facultatea de Matematică și Informatică Lecții de pregătire Admitere 2019 Rezolvarea problemelor folosind metoda backtracking Exemplu: ieșirea din labirint 2 Exemplu: aranjarea a n regine 3 Exemplu: rezolvarea

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

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

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 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 mult

I

I METODA VECTORIALĂ ÎN GEOMETRIE prof. Andrei - Octavian Dobre Această metodă poate fi descrisă după cum urmează: Fiind dată o problemă de geometrie, după explicitarea şi reprezentarea grafică a configuraţiei

Mai mult

Concurs online de informatică Categoria PROGRAMARE Secţiunea 5-6 avansaţi PROBLEMA puncte DANS De 1 Iunie - Ziua Copilului se organizează un spe

Concurs online de informatică Categoria PROGRAMARE Secţiunea 5-6 avansaţi PROBLEMA puncte DANS De 1 Iunie - Ziua Copilului se organizează un spe PROBLEMA 1 DANS De 1 Iunie - Ziua Copilului se organizează un spectacol de dans cu şi pentru copii. Acesta este programat să se desfăşoare în intervalul orar 10.30-12.00. În spectacol se înscriu n trupe

Mai mult