lab1 paca
TRANSCRIPT
-
8/20/2019 Lab1 paca
1/14
Proiectarea Asistata deCalculator pentru Avionica
PACA
LABORATOR 1
-
8/20/2019 Lab1 paca
2/14
Introducere in limbajul C, C++, C#
Scurt istoric•Limbajul C a fost inventat de catre Dennis Ritchie in anii ‘! pe un calculator pe care rula sistemul deoperare "#$%& Limbajul C s'a de(voltat in urma revolutiei pro)ramarii structurate din anii *+!& $nainte depro)ramarea structurata, pro)ramele erau )reu de scris si de inteles din cau(a lo)icii& O masa incalcitade salturi, apelui si reveniri, )reu de urmarit era cunoscuta sub numele de cod spa)hetti& Datoritasinta-ei sale concise si usor de utili(at, in anii ‘.!, limbajul C a devenit cel mai raspandit limbajstructurat&•Limbajul C are insa limitele sale& "na dintre acestea o repre(inta incapacitatea de a lucra cu pro)ramemari& Limbajul C ridica o bariera atunci cand pro)ramul atin)e o anumita dimensiune&•Limbajul C/ a fost de(voltat de o echipa restransa de in)ineri de la 0icrosoft, echipa din care s'aevidentiat Anders ejlsber) 2autorul limbajului Turbo Pascal si membru al echipei care a proiectatBorland Delphi3& A fost lansat publicului in iunie 4!!! si o5cial in primavara anului 4!!4 Desi limbajuleste creat de 0icrosoft, acesta nu este destinat doar platformelor 0icrosoft& Compilatoare C/ e-ista sipentru alte sisteme precum Linu- sau 0acintosh& Creat ca instrument de de(voltare pentruarhitectura T, limbajul ofera o modalitate facila si e5cienta de a scrie pro)rame pentru sistemul7indo8s, internet, componente soft8are etc&•C/ deriva din doua dintre cele mai de succes limbaje de pro)ramare9 C si C::& De asemenea, limbajuleste o ;ruda< apropiata a limbajului =ava&C/ este un limbaj simplu, cu circa .! de cuvinte cheie si 14 tipuri de date prede5nite& 6l permite
pro)ramarea structurata, modulara si orientata obiectual, conform perceptelor moderne ale pro)ramariiprofesionale&Principiile de ba(a ale pro)ramarii orientate pe obiecte 2$#CAP>"LAR6, 0O>T6#$R6, POL$0OR?$>03 suntelemente fundamentale ale pro)ramarii C/& $n mare, limbajul mosteneste sinta-a si principiile depro)ramare din C::& >unt o serie de tipuri noi de date sau functiuni diferite ale datelor din C::, iar inspiritul reali(arii unor secvente de cod si)ure 2safe3, unele functiuni au fost adau)ate 2de e-emplu,interfete si dele)ari3, diversi5cate 2tipul struct3, modi5cate 2tipul strin)3 sau chiar eliminate 2mostenireamultipla si pointerii catre functii3& "nele functiuni 2cum ar 5 accesul direct la memorie folosind pointeri3au fost pastrate, dar secventele de cod corespun(atoare se considera @nesi)ure@&
-
8/20/2019 Lab1 paca
3/14
Arhitectura platformei0icrosoftT
-
8/20/2019 Lab1 paca
4/14
Trasaturi ale platformei T Dezvoltarea multilimbaj: Deoarece e-ista mai multe limbaje pentru aceasta platforma, este mai usor deimplementat parti speci5ce n limbajele cele mai adecvate& #umarul limbajelor curent implementate este maimare decat 1!&
Independenta de procesor si de platforma9 Odata scrisa si compilata, orice aplicatie T 2al careimana)ement este facut de catre CLR3 poate 5 rulata pe orice platforma& Aplicatia este i(olata de particularitatilehard8are sau ale sistemului de operare&
Manaementul automat al memoriei9 Problemele de tipul memor leaa)e nu mai trebuie sa preocupepro)ramatoriiE overhead'ul indus de catre mecanismul de )arba)e collection este suportabil, 5ind implementat nsisteme mult mai timpurii&
! Suportul pentru versionare9 Daca o aplicatie a fost de(voltata si testata folosind anumite componente,instalarea unei componente de versiune mai noua nu va atenta la buna functionare a aplicatiei n discutie9 celedoua versiuni vor coe-ista pasnic&
Sprijinirea standardelor desc"ise9 #u toate dispo(itivele rulea(a sisteme de operare 0icrosoft sau folosescprocesoare $ntel& Din aceasta cau(a orice este strans le)at de acestea este evitat&
Distribuirea usoara9 Actualmente instalarea unei aplicatii sub 7indo8s nseamna copierea unor 5siere nniste directoare anume, modi5carea unor valori n re)istri, instalare de componente CO0, etc& De(instalareacompleta a unei aplicatii este in majoritatea ca(urilor o utopie& Aplicatiile T, datorita metadatelor si reFectariitrec de aceste probleme& >e doreste ca instalarea unei aplicatii sa nu nsemne mai mult decat copierea 5sierelor
necesare ntr'un director, iar de(instalarea aplicatiei sa se faca prin ster)erea acelui director& Ar"itectura distribuita9 #oua 5loso5e este de a asi)ura accesul la servicii 7eb distribuiteE acesteaconlucrea(a la obtinerea informatiei dorite& Platforma T asi)ura suport si unelte pentru reali(area acestuitip de aplicatii&
Interoperabilitate cu codul unmanaed$: Codul ;unmana)ed< se refera la cod care nu se aFa n totalitatesub controlul CLR& 6l este rulat de CLR, dar nu bene5cia(a de CT> sau )arba)e collection& 6ste vorba de apelurilefunctiilor din DLL'uri, folosirea componentelor CO0, sau folosirea de catre o componenta CO0 a unei componenteT& Codul e-istent se poate folosi n continuare&
Securitate: Aplicatiile ba(ate pe componente distribuite cer automat securitate&
-
8/20/2019 Lab1 paca
5/14
Crearea aplicatiilor consolaPentru a reali(a aplicatii consola in mediul de de(voltare Gisual>tudio, trebuie sa instalam o versiune a acestuia, eventual de la
adresa9 https:// www.visualstudio.com/downloads/download-visual-studio-vsDupa lansarea aplicatiei, din meniul ?ile se ale)e optiunea#e8Project, apoi ale)em ConsoleAplication, modi5cand numeleaplicatiei in caseta #ame&
https://www.visualstudio.com/downloads/download-visual-studio-vshttps://www.visualstudio.com/downloads/download-visual-studio-vs
-
8/20/2019 Lab1 paca
6/14
• La crearea unei aplicatii consola se )enerea(a un 5sier cu e-tensia &c 2de la C3, &cpp 2dela C::3 sau &cs& 2de la C Sharp3&
• 6-emplu de cod sursa )enerat in C/ este9
usin) >stemEusin) >stem&Collections&HenericEusin) >stem&LinIEusin) >stem&Te-tEnamespace 6-emplu1Jclass Pro)ram
Jstatic void 0ain2strin)K ar)s3
Jstrin) nume M ;Cristinatart Debu))in) &*3E' rulare pas cu pas 2>tep $nto & si >tep Over &3E' rulare rapida pana la linia marcata ca punct de intrerupere 2To))le Breapoint &-
pe linia respectiva si apoi >tart Debu))in) &'3& $ncetarea urmarii pas cu pas 2>tpDebu))in) S"ift+&*3 permite iesirea din modul depanare si revenirea la modul normal
de lucru& Toate optiunile si rulare si depanare se )asesc in meniul Debug al mediului depro)ramare&
Crearea aplicatiilor consola
-
8/20/2019 Lab1 paca
7/14
Structura unui proramC#
usin) >stemEnamespace >alutJ class Pro)ram
J static void 0ain23 J Console&7riteLine2;>alut@3E N NN
$n C/, simpli5cat vorbind, un pro)ram poate 5 privit ca avand mai multe @straturi@9avem cod in interiorul metodelor, care, la randul lor, se aFa in interiorul claselor, aFate in
interiorul namespaces'urilor& O aplicatie C/ este formata din una sau mai multe clase,)rupate in spatii de nume .namespaces/& 6ste obli)atoriu ca doar una din aceste clasesa contina @un punct de intrare@ si anume metoda 2functia3 Main&' Clasa .class/, in termeni simpli5cati, repre(inta principalul element structural si deor)ani(are in limbajele orientate spre obiecte, )rupand date cat si functii care prelucrea(arespectivele date&' Spatiul de nume .0amespaces/: din ratiuni practice pro)ramele mari sunt divi(ate inmodule, de(voltate separat, de mai multe persoane& Din acest motiv, e-ista posibilitatea dea aparea identi5catori cu acelasi nume& Pentru a evita erori furni(ate din acest motiv, in1Q limbajul C:: introduce notiunea si cuvantul cheie namespace1 ?iecare multime dede5nitii dintr'o librarie sau pro)ram este )rupata intr'un spatiu de nume, e-istand astfelposibilitatea de a avea intr'un pro)ram de5nitii cu nume identic, dar situate in alte spatii denume&
linia : este o directiva care speci5ca faptul ca se vor folosi clase incluse in spatiul de nume S2stem& $n
ca(ul nostru se va folosi clasa ConsoleElinia 3: spatiul nostru de numeElinia 4: orice pro)ram C/ este alcatuit din una sau mai multe claseE
-
8/20/2019 Lab1 paca
8/14
Sinta7a limbajului
Comentarii
8 comentariu pe un rand prin folosirea 99& Tot ce urmea(a dupa caracterele 99 sunt considerate, din acel loc pana la
sfarsitul randului, drept comentarii&6-emplu9 Acesta este un comentariu pe un sin)ur rand
8 comentariu pe mai multe randuri prin folosirea 9 si 9& Orice te-t cuprins intre simbolurile mentionate mai sus seconsidera a 5 comentariu& >imbolurile 9 repre(inta inceputul comentariului, iar 9 sfarsitul respectivului comentariu&6-emplu9 S Acesta este uncomentariu care seintinde pe mai multe randuri S
8 creare document in format ;M) folosind 999& %0L a fost proiectat in scopul transferului de date intre aplicatii pe$nternet&
Nume
Prin nume dat unei variabile, clase, metode etc& intele)em o succesiune de caractere care indeplinesc urmatoarele reuli:' numele trebuie sa inceapa cu o litera sau cu unul dintre caracterele @@ si @U@E' primul caracter poate 5 urmat numai de litere, cifre sau un caracter de subliniereE' numele care repre(inta cuvinte cheie nu pot 5 folosite in alt scop decat acela pentru care au fost de5niteE' cuvintele cheie pot 5 folosite in alt scop numai daca sunt precedate de
-
8/20/2019 Lab1 paca
9/14
Primul pro)ram in C/&usin) >stemEnamespace >alutJ class >alut
J static void 0ain23 J Console&7riteLine2@>alutari si felicitari pentru primulpro)ram in C/@3E Pastram fereastra deschisa in modul debu) Console&7riteLine2@Apasati orice tasta pentru a iesi@3E Console&ReadVe23E N NN
A5sarea unuimesaj
pe ecran in C/
6-emple
-
8/20/2019 Lab1 paca
10/14
Primul pro)ram in C::&
/include @stdaf-&h@
/include @conio&h@
int main23
Jprintf2@>alutari si felicitari pentru primul pro)ram in
CWn@3E
Pastram fereastra deschisa in modul debu)
printf2@Apasati orice tasta pentru a iesiWn@3E
)etch23Ereturn !E
N
A5sarea unuimesaj
pe ecran in C
6-emple
-
8/20/2019 Lab1 paca
11/14
6-emple
A5sarea cu X (ecimalea constantei P$ in C/
usin) >stemEusin) >stem&Collections&HenericEusin) >stem&Te-tE
namespace 6-emplu1Jclass Pro)ramJstatic void 0ain2strin)K ar)s3J
Console&7riteLine2@Galoarea constantei matematice P$ esteJ!9/&////N@, 0ath&P$3EConsole&ReadVe23ENNN
-
8/20/2019 Lab1 paca
12/14
6-emple
Aplicatie de a5sare tabel ?ahrenheit'Celsius pentru fahrM !,4!,&&&Y!!
/include @stdaf-&h@/include @conio&h@int main23J
int fahr, celsiusE
int prim, ultim, pasEprimM!E limita inferioara a scariiultim MY!!E limita superioarapasM4!E pasulfahrM primE8hile 2fahrZM ultim3J celsius MQ S 2fahr'Y43E
printf2@[dWt[dWn@, fahr, celsius3EfahrMfahr:pasEN )etch23Ereturn !E
N
A5sarea tabel
?ahrenheit'Celsius in C
-
8/20/2019 Lab1 paca
13/14
6-emple
/include @stdaf-&h@/include @conio&h@int main23J
Foat fahr, celsiusEFoat prim, ultim, pasE
primM!E limita inferioara a scariiultim MY!!E limita superioarapasM4!E pasulfahrM primE8hile 2fahrZM ultim3J celsius MQ S 2fahr'Y43E
printf2@[Y&!fWt[+&1fWn@, fahr, celsius3EfahrMfahr:pasEN )etch23Ereturn !E
N
A5sarea tabel
?ahrenheit'Celsius in C
Aliniere prin format
-
8/20/2019 Lab1 paca
14/14
Transformarea unui nrde secunde in ore, min
si secunde \ in C/
usin) >stemEusin) >stem&Collections&HenericE
usin) >stem&Te-tE
namespace 6-emplu4Jclass Pro)ramJstatic void 0ain2strin)K ar)s3Jint sec, h, m, sEConsole&7rite2;nr& >ecunde9