Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Look up keyword or section
Like this
2Activity
0 of .
Results for:
No results containing your search query
P. 1
curs_c

curs_c

Ratings: (0)|Views: 196|Likes:
Published by Mark Scott

More info:

Published by: Mark Scott on May 23, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

11/10/2012

pdf

text

original

 
 
1
I
NTRODUCERE
 
Limbajul C este un limbaj de programare general, cu structuri de control
ş
i de datemoderne
ş
i cu un bogat set de operatori. Limbajul C nu este de nivel foarte înalt
ş
i nici nu estespecializat pentru anumite aplica
ţ
ii. Absen
ţ
a restric
ţ
iilor 
ş
i generalitatea sa îl fac foarteeficient
ş
i mai utilizat decît multe limbaje de programare mai puternice.Limbajul C a fost proiectat ini
ţ
ial de Dennis Ritchie în anul 1972
ş
i a fost destinat pentru scrierea sistemului de operare Unix. Acest sistem de operare, compilatorul C precum
ş
icele mai importante aplica
ţ
ii sînt scrise în C. Limbajul C este adecvat pentru scrierea desisteme de operare, compilatoare, editoare de texte
ş
i altele. Cu toate acestea, C poate fi folositîn orice domeniu, programele scrise în acest limbaj fiind foarte mici
ş
i rapide în raport cu altelimbaje de programare.Începînd cu explozia calculatoarelor personale pe plan mondial, limbajul C a devenit dince în ce mai popular, r 
ă
spîndindu-se dincolo de originile sale ca limbajul sistemului deoperare UNIX. În 1983 a fost stabilit un standard al limbajului, cunoscut
ş
i sub denumirea de
 standardul ANSI 
, care este respectat de majoritatea implement
ă
rilor limbajului pe diferitetipuri de calculatoare
ş
i sub diverse sisteme de operare. De remarcat faptul c
ă
nu toatecompilatoarele respect
ă
în totalitate standardul ANSI. Pe parcursul lucr 
ă
rii poate fi întîlnit
ă
demulte ori expresia “
rezultatul este nedefinit dac
ă 
…”. Aceasta înseamn
ă
c
ă
opera
ţ
ia care produce acest rezultat nu respect
ă
standardul ANSI
ş
i rezultatul este dependent deimplementarea limbajului (de compilator).Principala caracteristic
ă
a limbajului C este faptul c
ă
ofer 
ă
mijloace pentru a construi programe complexe pornind de la elemente simple. Limbajul C este considerat de unii programatori ca fiind de nivel sc
ă
zut în compara
ţ
ie cu alte limbaje ca
ş
i Pascal, Basic, Prologetc, deoarece pune la dispozi
ţ
ie mecanisme pentru utilizarea direct
ă
a resurselor hardware alecalculatorului gazd
ă
, cum ar fi utilizarea regi
ş
trilor, adresarea direct
ă
a oric
ă
rei loca
ţ
ii dememorie, utilizarea caracterelor în reprezentarea lor intern
ă
etc. Pe de alt
ă
parte, putemconsidera C
ş
i ca un limbaj de programare de nivel înalt, deoarece el are toate structurile decontrol care permit scrierea de programe structurate. În plus, spre deosebire de alte limbajecum ar fi Pascal, Basic etc., în C se pot scrie programe foarte compacte
ş
i eficiente, care potdeveni foarte greu de descifrat.Limbajul C nu ofer 
ă
nici o facilitate pentru a trata obiecte compuse cum ar fi
ş
iruri decaractere, mul
ţ
imi sau tablouri, considerate ca un întreg. Nu este definit
ă
nici o facilitate dealocare de memorie în afar 
ă
de defini
ţ
iile statice
ş
i de aloc
ă
rile din stiv
ă
, provenite printransmiterea parametrilor 
ş
i prin declararea de variabile locale func
ţ
iilor. De asemenea, în Cnu exist
ă
facilit
ăţ
i de I/O: nu exist
ă
instruc
ţ
iuni de tipul READ sau WRITE
ş
i nici metodeinterne limbajului pentru accesul fi
ş
ierelor. Toate aceste mecanisme de nivel înalt trebuieaccesate prin apel explicit de func
ţ
ii. Cu toate c
ă
absen
ţ
a tuturor acestor facilit
ăţ
i poate ar 
ă
taca o grav
ă
deficien
ţă
(de exemplu pentru a compara dou
ă
 
ş
iruri de caractere trebuie s
ă
apel
ă
mo func
ţ
ie), men
ţ
inerea limbajului la acest nivel sc
ă
zut are o serie de avantaje importante. Unuldintre acestea este acela c
ă
, deoarece C este un limbaj relativ mic, el poate fi descris u
ş
or 
ş
i poate fi înv
ăţ
at repede.
 
 
2Orice compilator C este înso
ţ
it de una sau mai multe biblioteci de func
ţ
ii, care ofer 
ă
 toate mecanismele pentru a putea scrie programe oricît de complexe. De
ş
i limbajul C esteadaptat pe marea majoritate a calculatoarelor existente, el este independent de oricearhitectur 
ă
particular 
ă
a unui calculator,
ş
i, cu pu
ţ
in
ă
aten
ţ
ie, putem scrie u
ş
or programe portabile, care s
ă
func
ţ
ioneze identic pe calculatoare de tipuri diferite
ş
i sub sisteme deoperare diferite, cu modific
ă
ri minime în textul surs
ă
al programelor.Materialul de fa
ţă
î
ş
i propune s
ă
prezinte limbajul C standard, a
ş
a cum este implementat pe calculatoarele compatibile IBM-PC, f 
ă
ă
a sublinia în mod deosebit facilit
ăţ
ile oferite de uncompilator particular. Anumite facilit
ăţ
i ale limbajului sînt exemplificate pentru compilatorulMicrosoft Visual C
++
versiunea 6.0, în asemenea situa
ţ
ii precizîndu-se acest lucru în modexplicit. De men
ţ
ionat faptul c
ă
func
ţ
iile care fac parte din biblioteca standard a limbajuluisînt identice în
toate
implement
ă
rile limbajului C. Cele mai importante din aceste func
ţ
ii sîntdescrise în primele 7 capitole. Func
ţ
ia dat
ă
mai sus ca exemplu
nu
face parte din bibliotecastandard ANSI (ci UNIX)
ş
i este dependent
ă
de sistemul de operare. Cu modific
ă
ri minime (aacelor func
ţ
ii care nu respect
ă
standardul ANSI sau Unix), programele se pot adapta pentruorice implementare a limbajului C.În carte exist
ă
dou
ă
capitole care se refer 
ă
la interfa
ţ
a limbajului C cu sistemul deoperare MS DOS
ş
i aspecte ale program
ă
rii în Win32, care pot fi utilizate în Windows NT4.0, Windows 2000, Windows 95
ş
i Windows 98. Aceste interfe
ţ
e sînt foarte asem
ă
n
ă
toare cuinterfa
ţ
a cu sistemul de operare UNIX.O parte din func
ţ
iile existente în carte pot fi înlocuite cu func
ţ
ii din biblioteca standard alimbajului. În unele locuri (mai ales la început) am preferat scrierea func
ţ
iilor în loculutiliz
ă
rii celor de bibliotec
ă
, în scopul de a ilustra unele aspecte specifice program
ă
rii în C (înrealitate marea majoritate a func
ţ
iilor de bibliotec
ă
sînt scrise tot în C).În carte sînt incluse un num
ă
r destul de mare de probleme (peste 80!), multe din elefiind relativ simple, dar existînd
ş
i un num
ă
r de probleme de o complexitate mai mare. Îngeneral problemele se pot rezolva numai dup
ă
parcurgerea suficient de atent
ă
a materialuluiexpus. Cititorul care rezolv
ă
 
 singur 
 
toate
problemele este imposibil s
ă
nu se descurce în oriceîmprejurare în limbajul C.Forma de prezentare a limbajului C poate surprinde, ea bazîndu-se pe comentarea unor  programe. Dac
ă
la început este prezentat tot programul
ş
i apoi se fac comentariile pe baza lui, pe m
ă
sur 
ă
ce studiul limbajului progreseaz
ă
, sînt prezentate dintr-un program doar acele p
ă
ţ
icare sînt necesare pentru în
ţ
elegerea no
ţ
iunilor expuse. Astfel programul este alc
ă
tuit din maimulte fragmente (în general func
ţ
ii complete), iar o func
ţ
ie care a fost prezentat
ă
anterior estereluat
ă
numai dac
ă
are modific
ă
ri. Cititorul este invitat s
ă
fac
ă
din toate fragmentele de program un program întreg care s
ă
func
ţ
ioneze, în acest fel fiind sigur c
ă
a în
ţ
eles no
ţ
iunilerespective. Pentru a u
ş
ura munca de c
ă
utare a unei func
ţ
ii, la sfîr 
ş
it este inclus un index cutoate func
ţ
iile prezentate.Cartea se adreseaz
ă
tuturor celor care vor s
ă
se ini
ţ
ieze în studiul limbajului C, precum
ş
i celor care cunosc limbajul, dar poate c
ă
vor g
ă
si în aceast
ă
carte unele aspecte care din p
ă
cate sînt tratate mai superficial în alte c
ă
ţ
i similare din literatura noastr 
ă
de specialitate.Pentru a putea parcurge cartea, se presupune c
ă
cititorul are cuno
ş
tiin
ţ
e de baz
ă
privind programarea, cum ar fi no
ţ
iunile de variabil
ă
, instruc
ţ
iuni, cicluri, func
ţ
ii, stiv
ă
, recursivitateetc., precum
ş
i no
ţ
iuni despre sistemele de operare MS-DOS, Windows NT 4.0, Windows 95
ş
i Windows 98 (execu
ţ
ia unui program, no
ţ
iuni despre fi
ş
iere
ş
i opera
ţ
ii care se pot efectua cuacestea, no
ţ
iunea de microprocesor etc.). Este de preferat ca limbajul C s
ă
nu fie primul limbajcu care cititorul face cuno
ş
tin
ţă
, deoarece este ceva mai dificil de st
ă
 pînit, în sensul c
ă
 dintr-un program C se poate face cu calculatorul aproape orice (chiar 
ş
i lucruri mai pu
ţ
in pl
ă
cute…). De aceea este recomandat ca înainte de a studia acest
ă
carte, cititorul s
ă
cunoasc
ă
 
 
 
3
ş
i un alt limbaj, de preferin
ţă
Pascal (de obicei Pascal este primul limbaj de programareînv
ăţ
at). În carte se fac dese referiri la limbajul Pascal pentru a sublinia diferen
ţ
ele fa
ţă
de Csau pentru a scoate în eviden
ţă
avantajele limbajului C fa
ţă
de Pascal.Materialul expus în lucrare, cu excep
ţ
ia capitolelor referitoare la interfa
ţ
a cu sistemelede operare, pot fi utilizate pentru orice implementare a limbajului C în orice sistem de operare.Marea majoritate a func
ţ
iilor standard de bibliotec
ă
se g
ă
sesc în toate implement
ă
rilelimbajului C. În cazul în care sînt utilizate func
ţ
ii de bibliotec
ă
specifice unei anumiteimplement
ă
ri a limbajului C, acest lucru este precizat (în general am omis utilizarea unor asemenea func
ţ
ii, dar în capitolele referitoare la interfa
ţ
a cu sistemele de operare acest lucrunu a fost posibil).Oradea, 1999
 

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->