Professional Documents
Culture Documents
Introducere
Marius Minea
5 octombrie 2005
Introducere 2
Organizarea cursului
Evaluare
– 60% examen
1/2 parţial (30%), 1/2 final (30%)
– 40% activitate pe parcurs (laborator)
DA:
– ı̂nvǎţaţi materia dupǎ fiecare curs
– spuneţi ce e dificil de ı̂nţeles (şi cum aţi ı̂nvǎţa mai bine)
– veniţi la consultaţii ı̂n caz de nelǎmuriri
– ı̂nvǎţaţi ı̂mpreunǎ
Istoricul limbajului C
De ce folosim C ?
– produce un cod eficient (compact ı̂n dimensiune, rapid la rulare)
apropiat de eficienţa limbajului de asamblare
(fiind un limbaj relativ simplu, cu compilatoare mature)
– permite programarea la nivel scǎzut, apropiat de hardware
acces la reprezentarea binarǎ a datelor
mare libertate ı̂n lucrul cu memoria
foarte folosit ı̂n programarea de sistem, interfaţa cu hardware
Generalitǎţi şi comparaţii
– limbaj de programare structurat (funcţii, blocuri)
– limbaj de nivel mediu: tipuri, operaţii, instrucţiuni simple
fǎrǎ facilitǎţile complexe ale limbajelor de nivel (foarte) ı̂nalt
(nu: tipuri mulţime, concatenare de şiruri, etc.)
– slab tipizat ⇒ pericol mai mare de erori
conversii implicite şi explicite ı̂ntre tipuri, ex. char e tip ı̂ntreg, etc.
Programarea calculatoarelor. Curs 1 Marius Minea
Introducere 7
Comparatie PASCAL - C
Pascal C
Lexic
litere mari şi mici: la fel diferite!! (case sensitive)
Structura programului
declaratii ı̂n ordine: const, type, declaraţii ı̂n orice ordine
subprograme, program principal prog. principal = funcţia main
proceduri şi funcţii funcţii (pot returna şi nimic)
Tipuri
integer int
real float, double (precizii diferite)
boolean se foloseşte int (valori 0 şi 1)
Declaratii
var1, var2 : tip; tip var1, var2;
Tablouri
nume: array[min..max] of tip; tip nume[lung];
indici de la 0 la lung - 1
int main(void)
{
printf("hello, world!\n"); // tipǎreste un text
return 0;
}
– prima linie: obligatorie pentru orice program care citeşte sau scrie
= o directivǎ de preprocesare, include fişierul stdio.h care conţine
declaraţiile (NU implementarea) funcţiilor standard de intrare/ieşire
= informaţiile (nume, parametri) necesare compilatorului pt. a le folosi
– implementarea (cod obiect, compilat): ı̂ntr-o bibliotecǎ inclusǎ
(linkeditatǎ) la compilarea programului utilizator
– printf (“print formatted”): o funcţie standard
– N.B.: printf nu este o instrucţiune sau cuvânt cheie
– e apelatǎ aici cu un parametru şir de caractere
– şirurile de caractere: incluse ı̂ntre ghilimele duble "
– \n este notaţia pentru caracterul de linie nouǎ
Programarea calculatoarelor. Curs 1 Marius Minea
Introducere 12
Un prim calcul
int main(void)
{
int sum; // declarǎm o variabilǎ ^
ıntreagǎ
int a = 2, b; // o variabilǎ iniţializatǎ, alta nu
b = 3;
sum = a + b; // semnul de atribuire ^
ın C este =
return 0;
}
x = 5;
printf("Numarul x are valoarea: ");
printf("%d", x);
return 0;
}
scanf("%d", &x);
printf("%d", x);
return 0;
}
#include <stdio.h>
int main(void)
{
int a, b, sum;
int x, y;
scanf ("%d%d", &x, &y);
printf ("Suma lui %d şi %d este %d\n", x, y, x + y);
#include <stdio.h>
int main(void)
{
int x;
#include <stdio.h>
int fib(int n)
{
if (n <= 1) return 1;
else return fib(n-1) + fib(n-2);
}
int main(void)
{
int n;