Subiecte Pp 2014 Final

Post on 18-Aug-2015

220 views 4 download

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]).