Professional Documents
Culture Documents
(Limbajul C)
G. GRIGORAS
www.infoiasi.ro/~grigoras/Prog1/prog1.html
www.infoiasi.ro/~pc/
Curs 1- Cuprins
{
{
{
{
Bibliografie
Programare mic glosar
Limbaj natural vs. limbaj formal
Programarea ca proces
z
z
{
{
Exemplu
O trecere in revista a limbajului C
z
z
G. Grigoras
Rezolvarea problemei
Implementarea (scrierea programului)
Primul program
Expresii
Programare I - Limbajul C
Bibliografie I
{
{
{
G. Grigoras
Volumul I - Limbajul C
Volumul III - Limbajele C si C++ in Aplicatii
Programare I - Limbajul C
Bibliografie II (http://lib.info.uaic.ro/)
{
{
{
{
{
G. Grigoras
Programare I - Limbajul C
G. Grigoras
Programare I - Limbajul C
Glosar
o problema-solutie (problem-solving): formularea
prblemei, gasirea solutiei, exprimarea solutiei
o limbaj de nivel inalt (high-level language)
o limbaj de nivel scazut (low-level language,
machine language, assembly language)
o limbaj formal (formal language)
o limbaj natural (natural language)
o portabilitate (portability)
o interpretare (interpret)
o compilare (compile)
o cod sursa (source code)
o cod obiect (object code)
G. Grigoras
Programare I - Limbajul C
Glosar
o
o
o
o
o
o
o
o
o
o
G. Grigoras
Programare I - Limbajul C
G. Grigoras
ambiguitate
redundanta
literalness: limbajul natural foloseste idiom-uri,
metafore pe cand cel formal este exact
{
{
G. Grigoras
PROIECTAREA ALGORITMULUI
TESTARE MANUALA
G. Grigoras
Programare I - Limbajul C
10
Implementarea
COD
TESTARE COD
PROGRAM
G. Grigoras
Programare I - Limbajul C
11
Compilator
Fisier
sursa
COMPILATOR
Intrare
G. Grigoras
Fisier
obiect
Iesire
Programare I - Limbajul C
12
Editor de legaturi
Fis sursa 1
Fis sursa 2
Fis sursa n
LINKER
Fisier
executabil
Rutine (lib)
Intrare
G. Grigoras
Iesire
Programare I - Limbajul C
13
Intrare:
z
z
Iesire:
z
Exemplu:
y = bababaaaba (n = 10)
x = aba (m = 3)
Aparitiile lu x in y: 2, 4, 8 (sau 1, 3, 7)
bababaaaba
G. Grigoras
Programare I - Limbajul C
14
{
{
G. Grigoras
Programare I - Limbajul C
15
2.
x
y
3.
G. Grigoras
x
etc.
bababaaaba
1
aba
bababaaaba
123
aba
Programare I - Limbajul C
16
String-matching -Programul
#include <stdio.h>
void stringMatching(char *x, int m, char *y, int n){
int i, j;
for(j = 0; j <= n - m; ++j){
for(i = 0; i < m && x[i] == y[i + j]; ++i);
if(i >= m )
printf(" %d ", j+1);
}
}
int main(){
char *a = "aba", *b = "bababaaaba";
stringMatching(a, 3, b, 10);
return 0;
}
G. Grigoras
Programare I - Limbajul C
17
tipul
returnat
numele functiei
parametri
G. Grigoras
Programare I - Limbajul C
18
Se executa la
inceputul iteratiei
G. Grigoras
Corpul {} se executa
in aceste conditii
Programare I - Limbajul C
19
if(i >= m )
{
G. Grigoras
Programare I - Limbajul C
20
10
int main(){..}
{
G. Grigoras
Programare I - Limbajul C
21
G. Grigoras
a b a \0
b a b a b a a a b a \0
Programare I - Limbajul C
22
11
String-matching -Varianta
#include <stdio.h>
#include <string.h>
void stringMatching(char *x, int m, char *y, int n){
char *py;
for(py = y; *y != '\0'; ++y)
if(memcmp(x, y, m) == 0)
printf(" %d ", y - py);
}
int main(){
char *a = "aba", *b = "bababaaaba";
stringMatching(a, 3, b, 10);
return 0;
}
G. Grigoras
Programare I - Limbajul C
23
OBSERVATII
{
G. Grigoras
Programare I - Limbajul C
24
12
C - O trecere in revista
Un prim program C
#include <stdio.h>
int main(void)
{
printf(Salut!\n);
printf(Bine ati venit la cursul de
Programare!);
}
G. Grigoras
Programare I - Limbajul C
25
Un prim program C
{
G. Grigoras
26
13
Expresii
{
{
{
{
{
{
G. Grigoras
27
Expresii -continuare
{
Expresia de atribuire:
variabila = expresie
are ca valoare valoarea expresiei
din partea dreapta a semnului =
i=5
a = b = c = 25
max = a > b ? a : b
G. Grigoras
Programare I - Limbajul C
28
14
Declaratii
{
G. Grigoras
Programare I - Limbajul C
29
15