Programare în C

Previzualizare curs:

Extras din curs:

Un limbaj de programare reprezinta o interfata intre problema de rezolvat si programul de rezolvare.

Limbajul de programare, prin specificarea unor actiuni care trebuie executate eficient este apropiat

de masina. Pe de alta parte, el trebuie sa fie apropiat de problema de rezolvat, astfel incat solutia

problemei sa fie exprimata direct si concis.

Trecerea de la specificarea problemei la program nu este directa, ci presupune parcurgerea mai

multor etape:

. analiza si abstractizarea problemei. In aceasta etapa se identifica obiectele implicate in

rezolvare si actiunile de transformare corespunzatoare. Ca rezultat al acestei etape se creaza un

univers abstract al problemei (UP), care evidentiaza o multime de tipuri de obiecte, relatiile

dintre acestea si restrictiile de prelucrare necesare rezolvarii problemei.

. gasirea metodei de rezolvare acceptabile, precizand operatorii de prelucrare ai obiectelor din

UP.

. elaborarea algoritmului de rezolvare

. codificarea algoritmului

Problema

Program

de

rezolvare

Limbaj de programare

Calculator

apropiat de

problema

apropiat de

masina

Date

Rezultate

Fig.1.1. Rezolvarea unei probleme folosind calculatorul

Valeriu Iorga Programare in C

2

Limbajul C s-a impus in elaborarea programelor datorita: . usurintei de reprezentare a obiectelor cu caracter nenumeric . capacitatii de reprezentare a obiectelor dinamice . capacitatii de exploatare a caracteristicilor masinii de calcul pentru controlul strict al performantelor programului . asigurarii unei interfete transparente cu sistemul de operare al masinii utilizate. Limbajul C a fost creat de Dennis Ritchie si Brian Kernighan si implementat pe o masina DEC PDP 11, cu intentia inlocuirii limbajului de asamblare.. Limbajul are precursori directi limbajele BCPL (Richards) si B (Thompson). Limbajul este folosit ca mediu de programare pentru sistemul de operare UNIX. Limbajul a fost standardizat in 1983 si 1989. Limbajul C++ a fost dezvoltat de Bjarne Stroustrup pornind de la limbajul C, incepand din anul 1980. C++ imprumuta din Simula 67 conceptul de clasa si din limbajul Algol 68 - supraincarcarea operatorilor. Dintre noutatile introduse de C++ mentionam: mostenirea multipla, functiile membre statice si functiile membre constante, sabloanele, tratarea exceptiilor, identificarea tipurilor la executie, spatiile de nume, etc. Desi C++ este considerat o extensie a limbajului C, cele doua limbaje se bazeaza pe paradigme de programare diferite. Limbajul C foloseste paradigma programarii procedurale si structurate. Conform acesteia, un program este privit ca o multime ierarhica de blocuri si proceduri (functii). Limbajul C++ foloseste paradigma programarii orientate pe obiecte, potrivit careia un program este constituit dintr-o multime de obiecte care interactioneaza. Elementul constructiv al unui program C este functia. Un program este constituit dintr-o multime de functii, declarate pe un singur nivel (fara a se imbrica unele in altele), grupate in module program. O functie este o sectiune de program, identificata printr-un nume si parametrizata, construita folosind declaratii, definitii si instructiuni de prelucrare. Atunci cand este apelata, functia calculeaza un anumit rezultat sau realizeaza un anumit efect. Functia main() este prezenta in orice program C. Executia programului incepe cu main(). Functia main() poate intoarce un rezultat intreg (int) sau nici un rezultat (void). Numai in C este posibil sa nu specificam tipul rezultatului intors de functie, acesta fiind considerat in mod implicit int. /* program C pentru afisarea unui mesaj */ #include <stdio.h> main(){ printf("Acesta este primul program in C /n"); } Programul foloseste un comentariu, delimitat prin /* si */ care, prin explicatii in limbaj natural, creste claritatea programului. Comentariul este constituit dintr-o linie sau mai multe linii, sau poate apare in interiorul unei linii. Nu se pot include comentarii in interiorul altor comentarii. Linia #include <stdio.h> anunta compilatorul ca trebuie sa insereze fisierul antet stdio.h. Acest fisier contine prototipurile unei serii de functii de intrare si iesire folosite de majoritatea programelor C. Fisierele antet au prin conventie extensia .h. Fisierul de inclus este cautat intr-o zona standard de includere, in care sunt memorate fisierele antet ale compilatorului C, daca numele este incadrat intre paranteze unghiulare (< si >), sau cautarea se face in zona curenta de lucru, daca

Valeriu Iorga Programare in C

3

fisierul este incadrat intre ghilimele("). Fisierele antet sunt foarte utile in cazul functiilor standard de biblioteca; fiecare categorie de functie standard are propriul fisier antet. Valoarea intoarsa de functia main() este in mod obisnuit 0, avand semnificatia ca nu au fost intalnite erori, si se asigura prin instructiunea return 0. Instructiunea printf() serveste pentru afisarea la terminal (pe ecran) a unor valori formatate. Fata de limbajul C, care este considerat un subset, limbajul C++ permite: abstractizarea datelor, programarea orientata pe obiecte si programarea generica. 1.2. Cateva elemente necesare scrierii unor programe C foarte simple. 1.2.1. Directiva define. Directiva #define nume text este o macrodefinitie. Prelucrarea acesteia, numita macroexpandare, inlocuieste fiecare aparitie a numelui prin textul asociat. O aplicatie o reprezinta creerea de constante simbolice. De exemplu: #define PI 3.14159 #define mesaj "Bonjour madame" #define MAX 100 O constanta simbolica astfel definita nu poate fi redefinita prin atribuire. 1.2.2. Tipuri. Fiecarui nume i se asociaza un tip, care determina ce operatii se pot aplica acelui nume si cum sunt interpretate acestea. De exemplu: char c=.a.; /*c este variabila caracter initializata cu ,,a. */ int f(double); /*f functie de argument real cu rezultat intreg */ 1.2.3. Definitii si declaratii de variabile, O valoare constanta se reprezinta textual (este un literal) sau printr-un nume - constanta simbolica. O variabila este un nume (identificator) care desemneaza o locatie de memorie in care se pastreaza o valoare. O variabila se caracterizeaza asadar prin: nume (adresa), tip si valoare, atributul valoare putand fi modificat. De exemplu: int n, p; char c; float eps; O variabila poate fi initializata la declararea ei. De exemplu: float eps=1.0e-6; Initializarea se face numai o data, inaintea executiei programului. Variabilele externe si statice sunt initializate implicit la 0. Pentru o variabila automatica (declarata in interiorul unui bloc), pentru care exista initializare explicita, aceasta este realizata la fiecare intrare in blocul care o contine. O definitie este o constructie textuala care asociaza unui nume o zona de memorie (un obiect) si eventual initializeaza continutul zonei cu o valoare corespunzatoare tipului asociat numelui. 1.2.4. Atribuirea. Atribuirea simpla este de forma:variabila = expresie si are ca efect modificarea valorii unei

Download gratuit

Documentul este oferit gratuit,
trebuie doar să te autentifici in contul tău.

Structură de fișiere:
  • Programare in C
    • 1caprogramarecurs01.pdf
    • 1caprogramarecurs02.pdf
    • 1caprogramarecurs03.pdf
    • 1caprogramarecurs04.pdf
    • 1caprogramarecurs05.pdf
    • 1caprogramarecurs06.pdf
    • 1caprogramarecurs07.pdf
    • 1caprogramarecurs08.pdf
    • 1caprogramarecurs09.pdf
    • 1caprogramarecurs10.pdf
    • 1caprogramarecurs11.pdf
    • 1caprogramarecurs12.pdf
    • 1caprogramarecurs13.pdf
    • 1caprogramarecurs14.pdf
Alte informații:
Tipuri fișiere:
pdf
Diacritice:
Da
Nota:
10/10 (1 voturi)
Nr fișiere:
14 fisiere
Pagini (total):
117 pagini
Imagini extrase:
130 imagini
Nr cuvinte:
37 511 cuvinte
Nr caractere:
201 580 caractere
Marime:
5.25MB (arhivat)
Publicat de:
Miron Gradinaru
Nivel studiu:
Facultate
Tip document:
Curs
Domeniu:
Electronică
Tag-uri:
Programare in C, Valeriu Iorga
Predat:
Facultatea de Electronica, Telecomunicatii si Tehnologia Informatiei , Universitatea Politehnica Bucuresti din Bucuresti
Specializare:
Tehnologii si sisteme de telecomunicatii
Materie:
Electronică
An de studiu:
I
Profesorului:
Valeriu Iorga
Sus!