Documente Academic
Documente Profesional
Documente Cultură
C PDF
C PDF
Trainer
memIQ
Training – arie, obiective
Organizatorice: pauză, foaie prezență
Prezentare, obiective individuale
Bibliografie
fahr = lower;
while (fahr <= upper) {
celsius = 5 * (fahr-32) / 9;
printf("%d\t%d\n", fahr, celsius);
fahr = fahr + step;
}
}
Tipuri de bază: char (ASCI), short, int, long,
float, double
Înlocuiți int cu float
Specificatori de tip: %d, %6d, %f, %6f, %.2f,
%6.2f
Structura de control for
for(i = 0; i < 10; i++) {
…
}
Exercițiu: aplicați for pentru a tipări invers tabela
de temperaturi
Constante simbolice
#define MAX 10
Intrări/ieșiri caracter – biblioteca standard C
stream
Exemplu:
#include <stdio.h>
main() {
int c;
c = getchar();
while (c != EOF) {
putchar(c);
c = getchar();
}
}
Exerciții:
numărarea liniilor dintr-un fișier text
copiere cu compactare spații
numărare cuvinte
Tablouri
int t[10];
Exercițiu: histogramă a lungimii cuvintelor
Funcții
return-type function-name(parameter declarations, if any)
{
declarations
statements
}
return expresie;
Pasarea parametrilor unei funcții se face prin
valoare – de verificat!
Pasarea unui tablou ca parametru
Exercițiu: calcul minim pentru un tablou de
întregi
Șiruri de caractere – terminare prin null
Exercițiu: program care inversează un șir de
caractere
Variabile
Variabile globale, locale
Vizibilitatea variabilelor
Declararea variabilelor – înainte de a fi folosite
Exerciții:
scrieți un program C care elimină comentariile din
sursele C.
program pentru verificarea că parantezele sunt în
pereche și ordine corectă - () {} []
Tipuri, operatori și expresii
Variabile și constante
Tipuri predefinite: char, int, float, double
sizeof() – operator evaluat la compilare
Calificator long, short aplicat la int; long la
double
Calificator signed, unsigned – aplicat la char &
intregi
limits.h, float.h
Constante
sufix l u, f
prefix 0, 0x
‘x’ – caracter; ‘\ooo’, ‘\xhh’, secvențe escape (‘\n’)
“sir caractere”
Enumerări
enum boolean { NO, YES };
const – calificator
Operatori aritmetici: / %
Operatori relaționali și logici
bool – convenție pentru evaluarea expresiilor logice
Conversii de tip:
Implicite
Explicite – cast
Operatorii ++, -- (prefix, postfix)
Operatori pe biți: & | ^ << >> ~
Ex: setare/ regăsire biți dintr-un registru
Rotire conținut întreg – rotateL(unsigned int x, int no)ș
Împachetare/despachetare numere pe 12 biți
asignare - = += (a += b)
Expresii condiționale e1? e2: e3
Precedența și asociativitatea operatorilor
Tipuri întregi – endianess (low sau high)
Exerciții:
int htoi(char *nrHexa);
void itoa(char *buff, int cine);
Structuri de control
Blocuri { }
if
switch
while, for, do – while
break, continue
goto, eticheta
Funcții și structura programului
Mecanism de apel funcție
Surse multiple, fișiere header
Variabile statice, funcții statice
Variabile register, volatile
Valori implicite
Recursivitate; exemplu calcul factorial
preprocesor
macro-uri: MAX(A,B) ((A)>(B))? (A): (B)
Funcții cu număr variabil de parametrii (stdarg.h)
void out(char *fmt, ...) {
va_list args;
va_start(args, fmt);
vsprintf(buffer, fmt, args);
va_end(args);
....
}
Sisteme reactive
Descriere UML – diagrame state machine
Implementare C:
switch-uri imbricate
tabele de funcții
Aplicație