Subiecte Pp 2014 Final

5
1 Subiectele pentru proba practică din cadrul examenului de Paradigme de Programare Sesiunea iunie 2014 Considerații generale cu privire la proba practică: La examen studentul va avea acces la cursurile de Paradigme de Programare și la documentația Java SE 6 care poate fi descărcată de la adresa: http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u25-doc-download- 355137.html. Biletul va fi compus din două subiecte din lista de mai jos. Combinația de două subiecte va fi generată în mod aleatoriu. Timpul de rezolvare pentru ambele subiecte va fi de 2 ore. Pentru a promova proba de laborator trebuie îndeplinite următoarele: - Măcar una din problemele de pe bilet trebuie rezolvată complet în decursul celor două ore. - Studentul trebuie să fie capabil să răspundă la întrebări cu privire la rezolvarea problemei. În cazul în care studentul primește o notă mai mică ca 5 la proba de laborator nu va mai susține proba teoretică, examenul considerându-se picat. Pentru studenții care au rezolvat o problemă complet se mai poate extinde cu maxim jumătate de ora examinarea practică în cazul în care mai au nevoie de timp ca să termine ce-a de-a doua problemă de pe bilet. Lista de subiecte 1. Creați o ierarhie de clase în C++ formată din clasa abstractă Mamifer cu atributele tip (evil,divine) și data nașterii, și metodele: mănâncă, merge la baie, hrănește animalele. Să se deriveze o clasă Bunica și clasele PisicaDeCartier, PisicaSiameza și PisicaEgipteana. Acestea din urma mai au metoda miauna unde se aplica polimorfismul și fiecare miaună diferit. Acțiunile în acest caz sunt implementate prin mesaje afișate la consolă. 2. Să se scrie un program ASM care calculează factorialul și suma . Procesorul țintă va fi x286. Variabilele vor fi definite numai în memorie cu vizualizarea rezultatului în emulator. 3. Să se scrie un program ASM care calculează suma elementelor unui vector de întregi. Variabilele vor fi definite numai în memorie cu vizualizarea rezultatului în emulator. 4. Să se implementeze în ASM ordonarea unui vector folosind metoda swap din curs. Variabilele vor fi definite numai în memorie cu vizualizarea rezultatului în emulator. Se vor prezenta și diagramele de clase de bază. 5. Să se implementeze în ASM ordonarea unui vector folosind metoda insertion sort. Variabilele vor fi definite numai în memorie cu vizualizarea rezultatului în emulator. Se vor prezenta și diagramele de clase de bază. 6. Să se implementeze în C++ folosind template o stiva cu rezervarea dinamică a memoriei. Se vor prezenta și diagramele de clase de bază. 7. Să se implementeze în C++ folosind template o lista circulară cu rezervarea dinamică a memoriei. Se vor prezenta și diagramele de clase de bază. 8. Să se implementeze în C++ folosind template o lista de numere complexe precum și operatori supraîncărcați ca în curs, cu rezervarea dinamică a memoriei. Se vor prezenta și diagramele de clase de bază. 9. Să se implementeze în C++ problema hambarului din curs la care se adaugă câteva reguli de interacțiune între elementele din hambar: instanțieri aleatoare ale unui număr și tip de animale se executa/interacționează în clasa Curte pe baza regulilor.

description

ac

Transcript of Subiecte Pp 2014 Final

1 Subiectele pentru proba practic din cadrulexamenului de Paradigme de ProgramareSesiunea iunie 2014 Consideraii generale cu privire la proba practic: La examen studentul va avea acces la cursurile de Paradigme de Programare ila documentaia Java SE 6 care poate fi descrcatdelaadresa:http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u25-doc-download-355137.html. Biletul va fi compus din dou subiecte din lista de mai jos. Combinaia de dou subiecte va fi generat n mod aleatoriu. Timpul de rezolvare pentru ambele subiecte va fi de 2 ore. Pentru a promova proba de laborator trebuie ndeplinite urmtoarele: -Mcar una din problemele de pe bilet trebuie rezolvat complet n decursul celor dou ore. -Studentul trebuie s fie capabil s rspund la ntrebri cu privire la rezolvarea problemei. ncazulncarestudentulprimeteonotmaimicca5laprobadelaboratornuvamaisusineprobateoretic, examenul considerndu-se picat. Pentrustudeniicareaurezolvatoproblemcompletsemaipoateextindecumaximjumtatedeoraexaminarea practic n cazul n care mai au nevoie de timp ca s termine ce-a de-a doua problem de pe bilet. Lista de subiecte 1.CreaioierarhiedeclasenC++formatdinclasaabstractMamifercuatributeletip(evil,divine)idata naterii,imetodele:mnnc,mergelabaie,hrneteanimalele.SsederivezeoclasBunicaiclasele PisicaDeCartier, PisicaSiameza i PisicaEgipteana. Acestea din urma mai au metoda miauna unde se aplica polimorfismul i fiecare miaun diferit. Aciunile n acest caz sunt implementate prin mesaje afiate la consol. 2.S se scrie un program ASM care calculeaz factorialul i suma

. Procesorul int va fi x286. Variabilele vor fi definite numai n memorie cu vizualizarea rezultatului n emulator. 3.S se scrieun program ASMcarecalculeaz suma elementelor unuivector de ntregi.Variabilele vorfidefinite numai n memorie cu vizualizarea rezultatului n emulator. 4.SseimplementezenASMordonareaunuivectorfolosindmetodaswapdincurs.Variabilelevorfidefinite numai n memorie cu vizualizarea rezultatului n emulator. Se vor prezenta i diagramele de clase de baz. 5.SseimplementezenASMordonareaunuivectorfolosindmetodainsertionsort.Variabilelevorfidefinite numai n memorie cu vizualizarea rezultatului n emulator. Se vor prezenta i diagramele de clase de baz. 6.SseimplementezenC++folosindtemplateostivacurezervareadinamicamemoriei.Sevorprezentai diagramele de clase de baz. 7.SseimplementezenC++folosindtemplateolistacircularcurezervareadinamicamemoriei.Sevor prezenta i diagramele de clase de baz. 8.S se implementeze n C++ folosind template o lista de numere complexe precum i operatori suprancrcai ca n curs, cu rezervarea dinamic a memoriei. Se vor prezenta i diagramele de clase de baz. 9.Sse implementeze nC++problemahambaruluidincurs lacareseadaugctevaregulideinteraciunentre elementele din hambar: instanieri aleatoare ale unui numr i tip de animale se executa/interacioneaz n clasa Curte pe baza regulilor. 2 10.SseimplementezenJavafolosindinterfeeostivacurezervareadinamicamemoriei.Sevorprezentai diagramele de clase de baz. 11.SseimplementezenJavafolosindinterfeeolistacircularcurezervareadinamicamemoriei.Sevor prezenta i diagramele de clase de baz. 12.S se implementeze n Java aplicaia ceasului digital dup modelul din curs. 13.SseimplementezenJava,folosindoricaredinceledoumetodeprezentatelacurs,unprogramcares implementezefuncionareaautomatuluiprezentatmai jospringrafulsudefluena.Se vorprezentaidiagramelede clase de baz. 14.SsescrieoaplicaienJavacaredefineteoclasNumrtorcare,laschimbareavalorii,genereazun evenimentCounterEvent.AcestevenimentvafireceptatdeoclasReceptorcare,laapariiaevenimentelor,afieaz valoarea numrtorului. Se vor prezenta i diagramele de clase de baz. 15.SsescrieoaplicaieJavafolosindAWTcareafieazofereastravndocasetatextitreibutoaneavnd etichetele 1,2,3. La apsarea butoanelor n caseta text s apar eticheta butonului apsat. Se vor prezenta i diagramele de clase de baz. 16.SsescrieoaplicaieJavafolosindSwingcareafieazofereastravndocasetatextitreibutoaneavnd etichetele 1,2,3. La apsarea butoanelor n caseta text s apar eticheta butonului apsat. Se vor prezenta i diagramele de clase de baz. 17.SsescrieoaplicaieJavafolosindSwingcareseruleazntr-ofereastrilaapsareamouse-uluinzona ferestrei s apar o eticheta care s conin coordonatele apsrii mouse-ului. Se vor prezenta i diagramele de clase de baz. 18.SsescrieoaplicaieJavafolosindAWTcareseruleazntr-ofereastrilaapsareamouse-uluinzona ferestrei s apar o eticheta care s conin coordonatele apsrii mouse-ului. Se vor prezenta i diagramele de clase de baz. 19.SsescrieoaplicaieJavacareimplementeaznmodgraficfolosindunCanvasjoculspnzurtoarea.Seva folosiundicionarcuzececuvintedefinitinternsaupreluatdintr-unfiier.Sevorprezentaidiagrameledeclasede baz. 20.SsescrieoaplicaieJavacareimplementeaznmodgraficfolosindunJPaneljoculspnzurtoarea.Seva folosiundicionarcuzececuvintedefinitinternsaupreluatdintr-unfiier.Sevorprezentaidiagrameledeclasede baz. 21.S se scrie o aplicaie Java care implementeaz n AWT un editor de tip Notepad (avem unde edita, bare de scroll i butoane control). Se vor prezenta i diagramele de clase de baz. 22.SsescrieoaplicaieJavacareimplementeaznSwinguneditordetipNotepad(avemundeedita,barede scroll i butoane control). Se vor prezenta i diagramele de clase de baz. 23.Porninddelafabricadeformeprezentatncurs,sseconstruiascnJavaofabricdenavespaiale:una ptrat, una triunghi i una cerc care s fie desenate pe Canvas. Se vor prezenta i diagramele de clase de baz. 3 24.Porninddelafabricadeformeprezentatancurs,sseconstruiascnJavaofabricadenavespaialeuna ptrat, una triunghi i una cerc care s fie desenate pe JPanel. Se vor prezenta i diagramele de clase de baz. 25.Pornind de la fabrica de forme prezentata n curs, s se implementeze n Java pentru o nav ptrat desenat n Canvas, o fabrica de foc n care S se obin trei tipuri de foc: linear (mitraliera), blast (o minge de foc) i rachete (mai multe linii). Se vor prezenta i diagramele de clase de baz. 26.Pornind de la exemplul din curs, s se creeze i s se testeze n Java (cu aciuni modelate prin mesaje consol) un Adapter ntre clasa Bunica i oricare din clasele Pisica, Caine i Purcel. Se vor prezenta i diagramele de clase de baz. 27.S se creeze n Java o aplicaie pentru rezervarea unei camera de hotel. Camerele (cu atributele i operatorii lor) sunt obiecte i sunt reinute ntr-un vector. Cu AspectJ se va implementa un flux suplimentar (dup modelul din curs) de tratarealisteideateptarencazdecererederezervarecarenupoatefisatisfcutimediat.Sevorprezentai diagramele de baz. 28.S se creeze n Java o aplicaie pentru rezervarea unei camera de hotel. Camerele (cu atributele i operatorii lor) sunt obiecte i sunt reinute ntr-un vector. Cu AspectJ se va implementa un flux suplimentar (dup modelul din curs) de tratarepliiurmtoruluiserviciusuplimentar:consumdinbarulcamereicndsegenereaznotadeplat.Sevor prezenta i diagramele de baz. 29.S se creeze n Java o aplicaie pentru rezervarea unei camera de hotel. Camerele (cu atributele i operatorii lor) sunt obiecte i sunt reinute ntr-un vector. Cu AspectJ se va implementa un flux suplimentar (dup modelul din curs) de tratarepliiurmtoruluiserviciusuplimentar:plataserviciiSPAcndsegenereaznotadeplat.Sevorprezentai diagramele de baz. 30.SseimplementezeunprogramJavacarevaimplementaunschedulerpentruthreadpool(fermadefirede execuie) n conformitate cu algoritmul FCFS prezentat la curs. 31.Pornind de la exemplul de buffer implementat cu productor-consumator din curs (cu eliminarea blocajului) S se implementeze n Java o coad folosit n transmiterea i recepia de iruri de caractere ntre mai multe thread-uri (un fel de chat unde fiecare client este pe cte un thread). 32.SseconstruiascnJavaunpooldethread-uricaresfacnitecalculesimple(gensume,inducie.etc)s pun n eviden hazardul de curse (vezi n curs). 33. SseimplementezenJavauncalcul

cu4thread-urisimultanecarefiecarecalculeazpeunsubinterval folosind modelul master/slave. 34.S se proceseze n Java calculul

simultan pentru 4 valori diferite ale lui n luate dintr-o coad de ctre 4 task-uri diferite (model peer). 35.SserealizezenJavaoprocesaredupmodelpipelineaunuitabloudentregi.Primulthreaddinpipe nmuletetoateelementelevectoruluiVcuoconstantalpha,urmtorulthreaddinpipe vaordonavectorul,iarfinal ultimul thread l va afia n coordonate x i y. 36.S se implementeze n Java mai multe cozi de thread-uri (care execut n bucla calcule matematice complicate) cu prioriti diferite i s se implementeze mecanismul de prevenire a nfometrii (cel de mbtrnire). 37.Pentrusincronizareaunorthread-uri,sseimplementezenJavaprotocolulcusimularealimitriiprioritii (highest locker). 38.S se scrie n Java un program simplu cu thread-uri (pornind de la exemplul din curs) care s foloseasc att lock-ul pe instan ct i cel static. 39.Pe baza exemplului de la curs (sursa modulului de simulator clc: openbookproject.net/py4fun/logic/logic.py), s se implementeze n Python calculul funciei din figura: 4 40.Pe baza exemplului de la curs (sursa modulului de simulator clc: openbookproject.net/py4fun/logic/logic.py), s se implementeze n Python calculul funciei din figura: 41. Pe baza exemplului de la curs (sursa modulului de simulator clc: openbookproject.net/py4fun/logic/logic.py), s se implementeze n Python calculul funciei din figura: 42.Folosind exemplul din curs, s se implementeze n Python urmtorul automat finit: 43.S se creeze un program Python care primete un fiier oarecare (exe, dll, doc etc) la intrare iproduce ntr-un fiier text cu acelai nume un hash cu md5 peste el. 44.Pebazaexemplului(folosindTCP)dincurs.SserealizezenPythonoaplicaiedechatsimpluntredoi parteneri. 45.Propuneiiscrieiunprogrampentruoreprezentarepentrudreptunghi,ptraticerccaostructuraProlog. (De exemplu un dreptunghi poate fi reprezentat de patru puncte) 5 46.Fieurmtoarele:big(bear).big(elephant).small(cat).brown(bear).black(cat).gray(elephant).dark(Z):- black(Z).dark(Z):-brown(Z).ncaredinceledouacazuriPrologtrebuiesmunceascmaimultnaintedeagsi rspunsul ? ?- big(X), dark(X). sau?- dark(X), big(X). 47.S se scrie un program Prolog pentru implementarea urmtorului automat: 48.S se scrie un program Prolog care s poat gsi ultimul element dintr-o list (?- my_last(X,[a,b,c,d]). X = d). 49.S se scrie un program Prolog care s poat elimina duplicatele dintr-o list fr a schimba ordinea acestora (?- compress([a,a,a,a,b,c,c,a,a,d,e,e,e,e],X). X = [a,b,c,a,d,e]). 50.SsescrieunprogramPrologcarespoateliminafiecarealn-leaelementdintr-olist(?- drop([a,b,c,d,e,f,g,h,i,k],3,X). X = [a,b,d,e,g,h,k]).