Documente Academic
Documente Profesional
Documente Cultură
CALCULATOARELOR
ntlnirea 2
19-11-2016, 10-12-2016
.l.dr.ing. Adriana ALBU
adriana.albu@aut.upt.ro
TABLOURI
Tablouri
Un tablou este o colecie de variabile de
acelai tip
Elementele tabloului sunt identificate
printr-un index de tip ntreg
n C indexul ncepe de la zero i este
scris ntre paranteze ptrate [ ]
Tablouri
Exist tablouri unidimensionale care se
declar astfel:
int v[20];
sau cu mai multe dimensiuni,
declarate astfel:
float mat_2d[20][5];
int mat_3d[20][5][3];
Fiecare index are propriul set de
paranteze ptrate
Tablouri unidimensionale
-
vectori v
0
2
1
-3
2
7
3
12
n-2 n-1
1 -9
tip nume[numr_de_elemente]
int v[10];
float note[50];
Pe ecran va
aprea:
v[0]=
v[1]=
v[2]=
.
.
.
v[n-1]=
for(i=0;i<n;i++)
printf("%d ", v[i]);
Tablouri bidimensionale
- matrice -
a
=
0
23
1
0
2
-1
3
-4
19
11
12
-7
Declarare:
int a[3][4];
Accesarea unui element:
a[2][0]=-7;
IRURI DE CARACTERE
Caractere
Declaraia: char c;
Funcii:
isupper(c);
islower(c);
mare
mic
iruri de caractere
Un ir de caractere este
o secven de caractere scris ntre
ghilimele
ncheiat prin caracterul '\0'
iruri de caractere
Limbajul C nu are un tip special pentru
irurile de caractere
irurile de caractere vor fi declarate ca
tablouri ale cror elemente au tipul
char:
char s[30]; //declararea unui string
iruri de caractere
citire/scriere
citire: scanf(), gets()
scriere: printf(), puts()
Exemple:
scanf("%s", string1);
(nu are nevoie de operatorul de adresare &)
printf("%s", string1);
Observaii:
scanf citete pn la spaiu
gets citete toate caracterele, inclusiv
spaiile, pn la linie nou (Enter)
iruri de caractere
Nu exist operatori pentru stringuri
Pentru a efectua diverse operaii asupra
irurilor de caractere se folosesc funciile
bibliotecii string.h
iruri de caractere
strcmp()
int strcmp(char *s1, char *s2)
utilizat pentru a compara dou stringuri
returneaz
O valoare negativ dac s1<s2
Zero dac s1=s2
O valoare pozitiv dac s1>s2
iruri de caractere
strcmp()
Exemplu:
char password[7]="Secret!";
char user_pass[10];
gets(user_pass);
if(strcmp(password, user_pass)==0)
printf("Password correct. Welcome to the
system");
else
printf("Invalid password");
FUNCII DEFINITE DE
UTILIZATOR
Funcii
Pentru a rezolva o problem complex
problema se mparte n sub-probleme mai
mici
se rezolv sub-problemele scriind funcii
Funcii void
Funcii void
#include <stdio.h>
void patrate(){
int i;
for(i=1;i<10;i++)
printf("%d\n", i*i);
}
void main(void){
patrate();
}
NOT: E nevoie de paranteze chiar dac nu
exist parametrii
Alte funcii
#include <stdio.h>
float findaverage(float a, float b){
//a,b = parametrii
formali
Funcii i variabile
O funcie poate avea contact cu lumea
exterioar prin intermediul argumentelor i
al variabilelor globale
Variabilele locale sunt declarate n interiorul
unei funcii. Acestea sunt create de fiecare
dat cnd funcia este apelat i sunt distruse
la ntoarcerea din funcie. Valorile transmise ca
argumente funciei pot fi de asemenea tratate
ca variabile locale
Variabilele globale nu i pierd valoarea la
prsirea unei funcii, ci o pstreaz, fiind
disponibil i altor funcii
Funcii exemplu
Cutarea minimului ntr-o matrice
problem rezolvat cu funcii definite de
utilizator (functii.c).
Funcii exemplu
Un
exemplu
cu
meniu
repetitiv
(meniu.c). Operaii asupra unui vector de
numere ntregi.
Tipul structur
Limbajul C ofer structura pentru a grupa
informaii care au tipuri diferite, dar sunt
relaionate din punct de vedere logic
O structur este definit utiliznd urmtorul
tipar:
struct nume_structura {
tip1 camp1;
tip2 camp2;
...
tipN campN;
} var1, ..., varN;
Structuri - exemplu
struct student{
int numar;
identificare */
char nume[26];
int varsta;
/*
float nota;
/*
};
/* Numarul de
/* Numele studentului */
Varsta studentului */
Nota studentului */
Structuri
Definirea unei structuri nu aloc
memorie pentru acea structur ci doar
definete un nou tip de dat
n continuare pot fi declarate variabile de
acest nou tip astfel:
struct student student1, student2;
Structuri
Pentru a accesa membrii unei variabile
de tip structur se folosete operatorul
.
student1.numar = 1234;
strcpy(student2.nume, "Dennis
RITCHIE");
Structuri - exemplu
struct.c
Informaiile despre o anumit persoan
(nume, adres, vrst, not) sunt citite de la
tastatur, reinute ntr-o structur i apoi
afiate prin intermediul structurii pe ecran
Structuri - exemplu
gestiune.c
Gestionarea unui tablou de structuri
Structura conine informaii despre persoane
(prenume, nume, vrst etc.)
Asupra tabloului se pot executa (repetitiv)
operaiile:
V mulumesc pentru
atenie