Documente Academic
Documente Profesional
Documente Cultură
Preambul
Trainer
memIQ
Training arie, obiective
Organizatorice: pauz, foaie prezen
Prezentare, obiective individuale
Bibliografie
Introducere
1978 prima definiie
1983 ANSI C sintaxa
Unelte:
Eclipse + gcc
Visual Studio Express Edition
http://www.microsoft.com/visualstudio/eng/downloads#d-express-windows-8
Exemplu:
#include <stdio.h>
main() {
printf("hello, world\n");
}
Ciclul de dezvoltare
#include <stdio.h>
/* print Fahrenheit-Celsius table
for fahr = 0, 20, ..., 300 */
main() {
int fahr, celsius;
int lower, upper, step;
lower = 0; /* lower limit of temperature scale */
upper = 300; /* upper limit */
step = 20; /* step size */
fahr = lower;
while (fahr <= upper) {
celsius = 5 * (fahr-32) / 9;
printf("%d\t%d\n", fahr, celsius);
fahr = fahr + step;
}
}
}
Exerciiu: aplicai for pentru a tipri invers tabela
de temperaturi
Constante simbolice
#define MAX 10
Exerciii:
numrarea liniilor dintr-un fiier text
copiere cu compactare spaii
numrare cuvinte
Tablouri
int t[10];
Exerciii:
scriei un program C care elimin comentariile din
sursele C.
program pentru verificarea c parantezele sunt n
pereche i ordine corect - () {} []
Enumerri
enum boolean { NO, YES };
const calificator
Operatori aritmetici: / %
Operatori relaionali i logici
bool convenie pentru evaluarea expresiilor logice
Conversii de tip:
Implicite
Explicite cast
asignare - = += (a += b)
Expresii condiionale e1? e2: e3
Precedena i asociativitatea operatorilor
Tipuri ntregi endianess (low sau high)
Exerciii:
int htoi(char *nrHexa);
void itoa(char *buff, int cine);
Structuri de control
Blocuri { }
if
switch
while, for, do while
break, continue
goto, eticheta
Pointeri i tablouri
Operator &, *
NULL
Aritmetica pointerilor: p + i, p q
Pointeri ca argumente la funcii (ex. swap)
Tablou = adresa de nceput
a[i] --- *(a + i)
Comparare pointeri (n cadrul unui tablou)
Pointeri la char
char* msg = hello;
char msg[] = hello;
Ex: strcmp(), memcpy() de optimizat (transfer int)!
Tablouri de pointeri:
exerciiu sortare cuvinte
main(int argc, char *argv[])
Tablouri multidimensionale
char* var[] = {alb, verde}
char var[][10] = {alb, verde}
Pointeri la funcii
sortare generic
void qsort(void *v[], int left, int right, int (*comp)(void *, void *))
Structuri
Definire
struct point {
int x;
int y;
};
struct point pt;
struct { ... } x, y, z;
typedef
Argumente la funcii, valoare ntoars de funcie
Structuri ce se auto-refer (arbore binar)
creare, parcurgere arbore binar
Interpretor comenzi
Elemente:
Tabela de comenzi
Comand:
verb
handler
numr parametrii min & max
help
Interpretor - pai:
identificare cuvinte linie de comand
cutare comand
validare numr de parametrii
lansare handler
comada help cu parametru opional
State machine
Sisteme reactive
Descriere UML diagrame state machine
Implementare C:
switch-uri imbricate
tabele de funcii
Aplicaie