lab1 paca

Upload: camelia-lupu

Post on 07-Aug-2018

214 views

Category:

Documents


0 download

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