Sunteți pe pagina 1din 11

1. ISTORIA WINDOWS. CE ADUCE NOU WINDOWS.

Conceptele i fundamentele
GUI. Consecvena privind interfa cu utilizatorul. Avantajul oferit de
multitasking. Gestionarea memoriei. Interfaa grafic independent de dispozitiv.
Crearea sistemului de operare Windows a fost anunat de Microsoft Corporation
n noiembrie 1983, i doi ani mai trziu, n noiembrie 1985, a fost lansat versiunea
Windows 1.0. Versiunile lansate n urmtorii doi ani au fost actualizate i adaptate
pentru piaa internaional, furniznd noi drivere pentru alte plci video i
imprimante. Sistemul de operare Windows ofer avantaje semnificative fa de
mediul MS-DOS, att pentru utilizatori, ct i pentru programatori. Multe dintre
aceste avantaje sunt comune pentru utilizatori i pentru programatori, deoarece
sarcina dezvoltatorilor unui program este s ofere utilizatorilor lucruri de care
acetia au nevoie. Windows 95 face posibil acest lucru.
Windows este o interfa grafic cu utilizatorul (GUI - graphical user interface),
numit uneori i interfa vizual" sau mediu grafic cu ferestre"
Toate tipurile de interfee grafice cu utilizatorul folosesc elemente grafice afiate
ntr-o imagine de tip bitmap. Elementele grafice asigur o utilizare mai eficient a
spaiului de afiare, un mediu bogat din punct de vedere vizual pentru transferul de
informaii i posibilitatea de afiare a rezultatelor aa cum vor arta n realitate pe
hrtie

Windows reprezint un SO complet , integrat pe 32 bii i care se distinge prin:

faciliti de conectare n reea;


faciliti de protected-mode;
faciliti de multitasking i multithreading;

AVANTAJUL OFERIT DE MULTITASKING


Prin multitasking noi putem intelege executarea simultana a mai multor
taskuri.Traducerea corecta spune doar ca se executa mai multe taskuri fara a se
specifica simultaneitatea lor.
Avantajul multitaskingului ar fi ca el ne permite sa executam mai multe operatii de
care avem nevoie in acelasi timp, de aceea noi putem sa ne permitem comutarea
rapida de la un context la altul .

Gestionarea memoriei
Un sistem de operare nu poate s implementeze multitaskingul fr o gestionare
adecvat a memoriei. Pe msur ce noi programe sunt ncrcate n memorie i
altele vechi i ncheie execuia, memoria se poate fragmenta. Sistemul de operare

trebuie s aib posibilitatea s consolideze memoria liber. Pentru aceasta, sistemul


trebuie s poat muta blocuri de cod i de date n memorie.

Gestiunea memoriei are rolul de a decide cum trebuie organizat informaia pe cele dou
nivele i cand trebuie transferat informaia ntre acestea; tehnicile de gestiune a lucrrilor
(multiprogramare, multitasking, time-sharing,etc) implic existena unor metode eficiente
pentru gestiunea memoriei: tehnici de alocare dinamic i memoria virtual. Gestionarea
memoriei trebuie s asigure urmtoarele funcii: -organizarea informaiilor n memoria intern
(gestionarea informaiilor);
-evidena ocuprii memoriei interne;

-organizarea schimbului de informaii ntre memoria intern i memoria extern (gestionarea


schimbului de informaii);
asigurarea proteciei informaiilor memorate n memoria intern (protecia memoriei).

Interfaa grafic independent de dispozitiv


Interfata utilizator grafica (Graphical User Interface - GUI) permite utilizatorului sa
comunice cu aplicatia, folosind n acest scop obiecte grafice de pe ecran: ferestre,
butoane, casete de validare, meniuri etc. Actionarea asupra acestora se face
folosind tastatura sau dispozitive de intrare speciale, dintre care cel mai raspndit
este mouse-ul.
2 Apelurile de funcii. Arhitectura bazat pe mesaje. Procedura de

fereastr. WinMain i WndProc.


Windows 95 asigur suportul pentru mai mult de o mie de apeluri de funcii pe care
le pot folosi aplicaiile. Toate funciile Windows importante sunt declarate n fiiere
antet. Principalul fiier antet se numete WINDOWS.H i include multe alte fiiere
antet. Aceste fiiere antet sunt furnizate de orice mediu de programare pentru
Windows 95, aa cum este, de pild, C. Fiierele antet sunt o parte important a
documentaiei Windows. n programele pentru Windows folosii apelurile de funcii
la fel cum folosii funciile de bibiotec C, cum ar fi strlen. Principala diferen este
faptul c n cazul funciilor C codul funciilor este legat direct de codul programului,
pe cnd codul funciilor Windows este stocat n fiiere din afara programului, numite
biblioteci cu legturi dinamice

Apelurile de funcii Windows


HELLOWIN apeleaz nu mai puin de 17 funcii Windows. Aceste funcii, mpreun cu o scurt descriere, sunt
prezentate n continuare, n ordinea apariiei n programul HELLOWIN:

LoadIcon - ncarc o pictogram care urmeaz s fie folosit de un program.


LoadCursor - ncarc un indicator pentru mouse, care urmeaz s fie folosit de
un program.

GetStockObject - obine un obiect grafic (n acest caz o pensul folosit pentru


desenarea fondului ferestrei).
RegisterClassEx - nregistreaz o clas de fereastr pentru fereastra
programului.
CreateWindow - creeaz o fereastr pe baza unei clase de fereastr.
ShowWindow - afieaz o fereastr pe ecran.
UpdateWindow - cere unei ferestre s se redeseneze.
GetMessage - preia un mesaj din coada de mesaje.
TranslateMessage - convertete unele dintre mesajele de la tastatur.
DispatchMessage - trimite un mesaj ctre o procedur de fereastr.
PlaySound - red un fiier de sunet.
BeginPaint - iniiaz o operaie de desenare a ferestrei.
GetClientRect - obine dimensiunile zonei client a ferestrei.
DrawText - afieaz un text.
EndPaint - ncheie o operaie de desenare.
PostQuitMessage - insereaz un mesaj de ncheiere n coada de ateptare.
DefWindowProc - execut operaiile prestabilite de prelucrare a mesajelor.

Arhitectura bazat pe mesaje


n Windows, atunci cnd utilizatorul redimensioneaz o fereastr, sistemul de
operare trimite programului un mesaj prin care i comunic noile dimensiuni ale
ferestrei. Programul poate apoi s modifice coninutul ferestrei, astfel nct acesta
s se adapteze la noile dimensiuni.
sistemul de operare trimite programului un mesaj" - adica Windows apeleaz o
funcie din program. Parametrii acestei funcii descriu mesajul respectiv. Aceast
funcie din programul Windows este cunoscut sub numele de procedur de
fereastr" (window procedure").

Procedura de fereastr-------Orice fereastr creat de un program are asociat o


procedur de fereastr. Procedura de fereastr este e funcie care se poate afla
chiar n program sau ntr-o bibliotec cu legturi dinamice (DLL). Windows trimite un
mesaj ctre o fereastr prin apelarea procedurii de fereastr. Procedura de fereastr
prelucreaz anumite informaii pe baza mesajului primit, apoi returneaz controlul
sistemului de operare.

WinMain i WndProc
Funcia WndProc returneaz o valoare LRESULT, definit ca un numr de tip LONG.
Funcia WinMain este de tipul WINAPI, iar funcia WndProc este de tipul CALLBACK.
Ambii identificatori sunt definii ca __stdcall, care definete o secven special de
apelare pentru apelurile de funcii dintre Windows i aplicaii.

WndProc - trateaza mesajele care vin de la sistemul de operare.Ea


mai determina continutul care va fi afisat in zona client al ferestrei si
modul cum fereastra va raspunde la ceea ce va face
utilizatorul.Deasemenea aceasta functie dupa ce se apeleaza functia
BeginPaint , invoca rutina GetClientRect.
WndProc- este o procedura de fereastra a ferestrei create de programul
Hello.... iar o procedura de fereastra nu reprezinta altceva decit un
mod de incapsulare a codului care raspunde intrarilor si afiseaza
elementele grafice pe ecran.
Funcia WinMain reprezint punctul de intrare n program. Aceasta este
echivalentul funciei main din programele scrise n limbajul C. Orice program pentru
Windows trebuie s aib o funcie WinMain.

3. Atributele contextului de dispozitiv. Salvarea contextului de


dispozitiv. Funciile LineTo, Polyline i PolylineTo, PolyPolyline, Arc,
PolyBezier i PolyBezierTo, Rectangle, Ellipse, RoundRect, Chord i
Pie.
a) Contextul de dispozitiv (prescurtat DC - device context) - este o structur
de date ntreinut intern de interfaa GDI. Fiecare context de dispozitiv este asociat
unui anumit dispozitiv de afiare, cum ar fi imprimanta, plotterul sau monitorul
video.O parte dintre valorile din contextul de dispozitiv sunt atribute grafice. Aceste
atribute definesc unele particulariti privind modul de lucru al unor funcii de
desenare din interfaa GDI. n cazul funciei TextOut, de exemplu, atributele
contextului de dispozitiv determin culoarea textului, culoarea fondului, modul de
mapare a coordonatelor x i y n zona client a ferestrei i fontul folosit de Windows
pentru afiarea textului.
Atributele contextului de dispozitiv controleaz caracteristicile textului afiat. De
exemplu, unul dintre atributele contextului de dispozitiv stabilete culoarea textului.
Culoarea prestabilit este negru. De asemenea, contextul prestabilit de dispozitiv
stabilete ca fondul s fie alb. Atunci cnd un program afieaz un text pe ecran,
Windows folosete aceast culoare de fond ca s umple spaiul dreptunghiular care
nconjoar fiecare caracter, spaiu numit caset caracter" (character box")

b)Salvarea contextului de dispozitiv - Variabila handle a contextului de


dispozitiv este eliberata de functia BeginPaint. In general aceasta este

salvata intr-o variabila numita hdc. In procedura de fereastra se defineste


aceasta variabila astfel : HDC hdc;
Tipul de date HDC este definit ca un ntreg fr semn, pe 32 de bii. Apelul
funciei EndPaint elibereaz variabila handle a contextului de dispozitiv.
c)Functiile :
Windows poate s deseneze linii drepte, linii eliptice (linii curbe, pe circumferina
unei elipse) i curbe Bezier. Cele apte funcii acceptate de Windows 95 pentru
desenarea liniilor sunt LineTo (linii drepte), Polyline i PolylineTo (o serie de linii
drepte conectate), PolyPolyline (mai multe linii poligonale), Arc (linii eliptice),
PolyBezier i PolyBezierTo

Functia Polyline foloseste ca punct de plecare pozitia curenta, si


stabileste ca pozitie curenta sfirsitul ultimei linii desenate.
Funcia LineTo este una dintre puinele funcii GDI care nu are nevoie de
dimensiunile complete ale obiectului ce urmeaz s fie desenat. Funcia LineTo
deseneaz o linie de la poziia curent" definit n contextul de dispozitiv pan la
punctul specificat la apelarea funciei (exclusiv acest punct). Poziia curent este
folosit ca punct de plecare i de alte funcii GDI. Dac apelai funcia LineTo fr s
stabilii mai nti poziia curent, funcia deseneaz o linie pornind din colul din
stnga-sus al zonei client. Dac dorii s desenai o linie din punctul (xStart, yStart)
pan n punctul (xEnd, yEnd) trebuie s apelai mai nti funcia MoveToEx ca s
stabilii ca poziie curent punctul (xStart, ySfart): ( MoveToEx (hdc, xStart, yStart, &pt) ;)
LineTo

(hdc, cxClient, cyClient) ;

Rectangle(hdc,xLeft,yTop,xRight,yBottom)(desenarea unui dreptunghi)


Ellipse (hdc, xLeft, yTop, xRight, yBottom) ;( ne permite desenarea elipsei)
RoundRect (hdc, xLeft, yTop, xRight, yBottom, xCornerEllipse, yCornerEllipse) ;
(Funcia pentru desenarea unui dreptunghi cu colurile rotunjite )
Functiile PolyBezier si PoluBezierTo se folosesc pentru trasarea uneia sau a mai
multor curbe Bezier conexe:
PolyBezier (hdc, pt, iCount) ;
sau instruciunea:

PolyBezierTo (hide, pt, iCount) ;

n ambele cazuri, pt este o matrice de structuri POINT. Pentru funcia


PolyBezier primele patru puncte specific (n aceast ordine) punctul de nceput,
primul punct de control, al doilea punct de control i punctul final al curbei Bezier.
Urmtoarele curbe Bezier au nevoie doar de trei puncte, deoarece punctul de
nceput al urmtoarei curbe Bezier este punctul de sfrit al primei curbe, i aa mai

departe. Parametrul iCount reprezint numrul de puncte din matrice, adic unu
plus de trei ori numrul curbelor pe care vrei s le desenai.
Funcia PolyBezierTo folosete poziia curent ca punct de nceput pentru prima
curb Bezier. Fiecare curb desenat are nevoie doar de trei puncte. La returnarea
funciei, poziia curent este punctul final al ultimei curbe desenate.
funciile Rectangle, Ellipse, RoundRect, Chord i Pie nu sunt tocmai nite funcii
de desenare a liniilor. Desigur, ele deseneaz i linii, dar i coloreaz zona nchis,
cu pensula curent de colorare a suprafeelor. n mod prestabilit, aceast pensul
are culoarea alb, aa c s-ar putea ca operaia s nu fie att de evident atunci
cnd ncercai pentru prima dat s utilizai aceste funcii. Dei, n sens strict,
funciile aparin unei alte seciuni din capitolul de fa, Desenarea suprafeelor
pline",
Funciile Arc, Chord i Pie primesc aceiai parametri:
Arc (hdc, xLeft, yTop, xRight, yBottom, xStart, yStart, xEnd, yEnd) ;
Chord (hdc, xLeft, yTop, xRight, yBottom, xStart, yStart, xEnd, yEnd) ;
Pie (hdc, xLeft, yTop, xRight, yBottom, xStart, yStart, xEnd, yEnd) ;

n cazul funciei Chord, Windows unete capetele arcului, iar n cazul funciei Pie,
unete capetele arcului cu centrul elipsei
PolyPolyline (mai multe linii poligonale),

4 BAZELE UTILIZARII CRONOMETRULUI


Cronometrul Windows este un dispozitiv de intrare, ce comunic periodic unei aplicaii trecerea
unui anumit interval de timp. Cronomestrul este mult mai util dect credei, i nu numai pentru
programele care afieaz ora, aa cum este ceasul afiat de Windows pe bara de taskuri. Iat cteva alte
utilizri sub Windows ale cronometrului, dei s-ar putea ca unele s nu fie att de evidente:

Multitaskingul - Dei Windows 95 este un mediu cu multitasking controlat, uneori este mult mai
eficient ca un program s returneze controlul sistemului de operare, imediat ce este posibil.
Dac programul trebuie s execute o operaie de durat, o poate mpri n operaii mai mici, pe
care s le prelucreze la primirea unui mesaj WMJTIMER. (Vom discuta mai multe despre acest
subiect n Capitolul 14.)

Actualizarea unui raport de stare - Un program poate s utilizeze cronometrul pentru afiarea
n timp real" a unor informaii care se schimb continuu, n funcie de resursele sistemului sau de
evoluia unei anumite operaii.

Implementarea unei caracteristici de autosalvare" - Cronometrul poate s aminteasc" unui


program Windows s salveze pe hard-disc documentul la care lucreaz utilizatorul, dup trecerea
unui anumit interval de timp.

nchiderea versiunilor demonstrative ale unui program - Unele versiuni demonstrative ale
programelor sunt proiectate astfel nct s-i ncheie execuia, de exemplu, dup trecerea a 30 de
minute de la lansare. Cronometrul poate s semnaleze unei astfel de aplicaii terminarea timpului
permis de rulare.

Deplasri succesive - Obiectele grafice dintr-un joc sau imaginile afiate succesiv de un
program de instruire asistat de calculator trebuie s fie prelucrate la anumite intervale de
timp. Folosirea cronometrului elimin inconsecvenele care pot aprea datorit diferenelor
dintre viteza de lucru a microprocesoarelor.

Multimedia - Programele pentru redarea CD-urilor audio, a sunetelor sau a secvenelor muzicale sunt
rulate de multe ori n fundal. Un program poate s utilizeze cronometrul pentru a determina ct a fost
redat din secvena audio i a actualiza corespunztor informaiile vizuale afiate

5 Care este punctul de intrare ntr-un program Windows


Funcia WinMain reprezint punctul de intrare n program. Aceasta este
echivalentul funciei main din programele scrise n limbajul C. Orice program pentru
Windows trebuie s aib o funcie WinMain

6 CE ADUCE NOU SISTEMUL DE OPERARE WINDOWS


Sistemul de operare Windows ofer avantaje semnificative fa de mediul MS-DOS,
att pentru utilizatori, ct i pentru programatori. Multe dintre aceste avantaje sunt
comune pentru utilizatori i pentru programatori, deoarece sarcina dezvoltatorilor
unui program este s ofere utilizatorilor lucruri de care acetia au nevoie. Windows
95 face posibil acest lucru.

7.Ce este notatia ungara ?


notaia ungar", o convenie de denumire a variabilelor intitulat astfel n onoarea
legendarului programator de la Microsoft, Charles Simonyi. Convenia este foarte
simpl - fiecare nume de variabil ncepe cu una sau mai multe litere mici care
specific tipul de date al variabilei. De exemplu, prefixul sz al variabilei szCmdLine
semnific ir de caractere terminat cu zero". Prefixul h al variabilelor hInstance i
hPrevInstance nseamn variabil handle"; prefixul i al variabilei iCmdShow
nseamn ntreg". i ultimii doi parametri ai funciei WndProc respect notaia
ungar, dei, aa cum am artat mai devreme, wParam ar fi trebuit s se numeasc
uiParam (de la unsigned integer"). Totui, deoarece aceti doi parametri se
definesc folosind tipurile de date WPARAM i LPARAM, am pstrat denumirile
originale.

8 Ce este o variabil handle i care este destinaia ei?


Variabila handle este de obicei un nr pe 32 biti, care face trimitere la un
obiect. Valoarea real a variabilei handle nu este important pentru program, dar
modulul Windows care o furnizeaz programului tie cum s l manipuleze pentru
trimiterea la obiect.

9 Ce este programare controlat de evenimente?

10. Ce este un device context


Device Context structura de date intretinuta intern de interfata GDI.O
parte din valorile din DC sunt atributele grafice , ce definesc careva
particularitati referitor la modul de lucru a unor functii de desenare din
interfata GDI.
11 Ce este multitaskingul controlat?
Prin multitasking noi putem intelege executarea simultana a mai multor taskuri.In
versiunile anterioare ale Windowsului era folosit multitaskingul necontrolat, ceea ce
insemna ca nu se folosea ceasul sistemului ca sa se aloce timpi de procesare a
diferitor programe ce rulau in sistem. Multitaskingul controlat insa permite aceasta
alocare a timpilor de procesare , ceea ce inseamna ca programele cedeaza voluntar
controlul , astfel incit alte programe sa isi poate si ele continua executia.In Windows
95 multitaskingul este controlat si programele se pot imparti in mai multe fire de
executie, care par sa ruleze in acelasi timp.

12 Ce facem dac cronometrul nu este accesibil?


Cronometrul Windows este un dispozitiv de intrare, ce comunic periodic unei aplicaii trecerea unui
anumit interval de timp. Programul specific sistemului de operare acest interval de timp, spunndu-i ceva
de genul: F-mi un semn la fiecare 10 secunde". Windows trimite periodic programului, mesaje
WM_TIMER prin care i semnaleaz trecerea intervalului de timp respectiv.
Dac nu este disponibil nici un cronometru, funcia SetTimer returneaz valoarea NULL. S-ar putea ca
programul s funcioneze la fel de bine i fr un cronometru, dar dac ntr-adevr avei nevoie de un
cronometru ,aplicaia nu are alt soluie dect s-i ncheie execuia. Dac apelai funcia SetTimer din
WinMain, putei s nchidei programul ieind din funcia WinMain cu valoarea de returnare FALSE.
S presupunem c avei nevoie de un cronometru cu durata de 1000 ms. Dup apelarea funciei
CreateWindow, dar nainte de intrarea n ciclul de tratare a mesajelor, putei s includei urmtoarea
instruciune:
if (!SetTimer (hwnd, 1, 1000, NULL)) return FALSE ;
Acesta este un mod neprietenos de nchidere a unui program.
Secvena de cod din exemplul urmtor afieaz o caset de mesaje atunci cnd funcia SetTimer nu
poate aloca programului un cronometru:
if (!SetTimer (hwnd, 1, 1000, NULL))
{
MessageBox (hwnd, "Too many clocks or timers!", "Program Name",
MB_ICONEXCLAMATION ] MB_OK);
return FALSE ;
}

13 Ce prezint procedura unei ferestre?


Orice fereastr creat de un program are asociat o procedur de fereastr.
Procedura de fereastr este e funcie care se poate afla chiar n program sau ntr-o
bibliotec cu legturi dinamice (DLL). Windows trimite un mesaj ctre o fereastr
prin apelarea procedurii de fereastr. Procedura de fereastr prelucreaz anumite
informaii pe baza mesajului primit, apoi returneaz controlul sistemului de operare.
Procedura de fereastra- mai este si un mod de incapsulare a codului care raspunde
intrarilor(de la tastatura/mouse) si afiseaza elementele grafice pe ecran,facind acest
lucru prin prelucrarea mesajelor trimise catre fereastra.

81. Arhitectura .NET Framework. Compilarea programelor. De ce


am alege .NET?
.NET este un cadru (Framework) de dezvoltare software unitar care permite
realizarea, distribuirea i rularea aplicaiilor desktop Windows i aplicaiilor WEB.
Tehnologia .NET pune laolalt mai multe tehnologii (ASP, XML, OOP, SOAP, WDSL,
UDDI) i limbaje de programare (VB, C++, C#, J#) asigurnd, totodat, att
portabilitatea codului compilat ntre diferite calculatoare cu sistem Windows, ct i
reutilizarea codului n programe, indiferent de limbajul de programare utilizat.
Componenta .NET Framework este format din compilatoare, biblioteci i alte
executabile utile n rularea aplicaiilor .NET. Fiierele corespunztoare se afl, n
general, n directorul C:\WINDOWS\Microsoft. NET\Framework\V2.0. (corespunztor
versiunii instalate)
Un program scris ntr-unul dintre limbajele .NET conform Common Language
Specification (CLS) este compilat n Microsoft Intermediate Language (MSIL sau IL).
Codul astfel obinut are extensia "exe", dar nu este direct executabil, ci respect
formatul unic MSIL. CLR include o main virtual asemntoare cu o main Java,
ce execut instruciunile IL rezultate n urma compilrii. Maina folosete un
compilator special JIT (Just In Time). Compilatorul JIT analizeaz codul IL
corespunztor apelului unei metode i produce codul main adecvat i eficient. El
recunoate secvenele de cod pentru care s-a obinut deja codul main adecvat,
permind reutilizarea acestuia fr recompilare, ceea ce face ca, pe parcursul
rulrii, aplicaiile .NET s fie din ce n ce mai rapide. Faptul c programul IL produs

de diferitele limbaje este foarte asemntor are ca rezultat interoperabilitatea ntre


aceste limbaje. Astfel, clasele i obiectele create ntr-un limbaj specific .NET pot fi
utilizate cu succes n altul.
n plus, CLR se ocup de gestionarea automat a memoriei (un mecanism
implementat n platforma .NET fiind acela de eliberare automat a zonelor de
memorie asociate unor date devenite inutile Garbage Collection). Ca un element
de portabilitate, trebuie spus c .NET Framework este implementarea unui standard
numit
Common
Language
Infrastructure
(http://www.ecmainternational.org/publications/standards/Ecma-335.htm ), ceea ce permite rularea
aplicaiilor .NET, n afar de Windows, i pe unele tipuri de Unix, Linux, Solaris, Mac
OS X i alte sisteme de operare (http://www.mono-project.com/Main_Page ).
De ce am alege .NET?
n primul rnd pentru c ne ofer instrumente pe care le putem folosi i n alte
programe, ofer acces uor la baze de date, permite realizarea desenelor sau a altor
elemente grafice. Spaiul de nume System.Windows.Forms conine instrumente
(controale) ce permit implementarea elementelor interfeei grafice cu utilizatorul.
Folosind aceste controale, putei proiecta i dezvolta rapid i interactiv, elementele
interfeei grafice. Tot .NET v ofer clase care efectueaz majoritatea sarcinilor
uzuale cu care se confrunt programele i care plictisesc i fur timpul
programatorilor, reducnd astfel timpul necesar dezvoltrii aplicaiilor

82.

Introducere n C#. Caracterizare. Crearea aplicaiilor consol

Limbajul C# a fost dezvoltat de o echip restrns de ingineri de la Microsoft,


echip din care s-a evideniat Anders Hejlsberg (autorul limbajului Turbo Pascal i
membru al echipei care a proiectat Borland Delphi). C# este un limbaj simplu, cu
circa 80 de cuvinte cheie i 12 tipuri de date predefinite. El permite programarea
structurat, modular i orientat obiectual, conform perceptelor moderne ale
programrii profesioniste. Principiile de baz ale programrii orientate pe obiecte
(NCAPSULARE, MOTENIRE, POLIMORFISM) sunt elemente fundamentale ale
programrii C#. n mare, limbajul motenete sintaxa i principiile de programare
din C++. Sunt o serie de tipuri noi de date sau funciuni diferite ale datelor din C+
+, iar n spiritul realizrii unor secvene de cod sigure (safe), unele funciuni au fost
adugate (de exemplu, interfee i delegri), diversificate (tipul struct), modificate
(tipul string) sau chiar eliminate (motenirea multipl i pointerii ctre funcii).
Unele funciuni (cum ar fi accesul direct la memorie folosind pointeri) au fost
pstrate, dar secvenele de cod corespunztoare se consider nesigure.

Crearea aplicaiilor consol

Pentru a realiza aplicaii consol n mediul de dezvoltare Visual Studio, trebuie s


instalm o versiune a acestuia. Dup lansarea aplicaiei, din meniul File se alege
opiunea NewProject apoi alegem ConsoleApplication, modificnd numele aplicaiei
n caseta Name.
Cnd creai o aplicaie consol, se genereaz un fiier cu extensia .cs. Extensia cs
provine de la C Sharp. Redenumirea lui se poate realiza din fereastra Solution
Explorer, pe care o putei afia cu ajutorul combinaiei de taste Ctrl+W,S sau din
meniul View.

83.

Structura unui program C#. Sintaxa limbajului.

O aplicaie C# este format din una sau mai multe clase, grupate n spaii de nume
(namespaces). Este obligatoriu ca doar una din aceste clase s conin un punct de
intrare (entry point), i anume metoda (funcia) Main.
Clasa (class), n termeni simplificai, reprezint principalul element structural i de
organizare n limbajele orientate spre obiecte, grupnd date ct i funcii care
prelucreaz respectivele date.
Spaiul de nume (Namespaces): din raiuni practice, programele mari, sunt
divizate n module, dezvoltate separat, de mai multe persoane. Din acest motiv,
exist posibilitatea de a aprea identificatori cu acelai nume. Pentru a evita erori
furnizate din acest motiv, n 1955 limbajul C++ introduce noiunea i cuvntul cheie
namespace. Fiecare mulime de definiii dintr-o librrie sau program este grupat
ntr-un spaiu de nume, existnd astfel posibilitatea de a avea ntr-un program
definiii cu nume identic, dar situate n alte spaii de nume. n cazul n care, ntr-o
aplicaie, unele clase sunt deja definite, ele se pot folosi importnd spaiile de nume
care conin definiiile acestora. Mai menionm faptul c un spaiu de nume poate
conine mai multe spaii de nume.
Sintaxa limbajului
Ca i limbajul C++ cu care se nrudete, limbajul C# are un alfabet format din litere
mari i mici ale alfabetului englez, cifre i alte semne. Vocabularul limbajului este
format din acele simboluri cu semnificaii lexicale n scrierea programelor: cuvinte
(nume), expresii, separatori, delimitatori i comentarii.