PROBLEMA: Fie o bază de date CINEMA.dbf cu următoarele câmpuri: codfilm, numefilm, productie, regie, anul, gen, scenariu, premii, cu principalele producţii cinematografice de la 1950 până în 2001 şi o bază ACTORI.dbf, cu următoarele câmpuri: nume, datan, sex, codfilm, natio, cu informaţii despre stelele filmului. Se cer: a. Sa se facă o procedură de înregistrare a unui film care se includă şi o metodă de codificare; b. Afişarea primului film cronologic al fiecărui gen; c. Afişarea ţărilor ale căror producţii au fost înregistrate în baza de date; d. Afişarea filmelor produse în ITALIA în anul 1994; e. Lista filmelor pe genuri; f. Regizorii cu producţii cinematografice din România după revoluţie; g. Premiile pe care le-a obţinut un film citit de la tastatură; h. Afişarea scenariştilor pe genuri cinematografice după 1990; i. Vârsta lui Tom Cruise; j. Actorii care au jucat în filmul: „Pe aripile vântului”; k. Lista actriţelor care n-au depăşit 30 de ani pe naţionalităţi; l. Primii 5 veterani ai filmului românesc.
REZOLVARE: (modi comm filme) clear set talk off set exact off w=1 do while w=1 @ 2,10 say 'Optiunile..... ' @ 4,4 say '( Apasati CAPS LOCK-ul ca sa mearga programul. Mi-a fost lene sa-l mai modific )' @ 7,2 say '1... Introducerea unui nou film.' @ 8,2 say '2... Afisarea primului film cronologic al fiecarui gen.' @ 9,2 say '3... Tarile care fac parte din baza.' @ 10,2 say '4... Afisarea filmelor produse in Italia in 1994.' @ 11,2 say '5... Lista filmelor pe genuri.' @ 12,2 say '6... Regizorii din Romania de la 1990 pana in prezent.' @ 13,2 say '7... Premiile pe care le-a luat un film cautat.' @ 14,2 say '8... Scenaristii pe genuri cinematrografice dupa 1990.' @ 15,2 say '9... Ce varsta are Tom Cruise...'
@ 16,2 say '10... Ce actori au jucat in filmul "Pe aripile vantului"...' @ 17,2 say '11... Lista actritelor care n-au depasit 30 de ani pe nationalitati.' @ 18,2 say '12... Primii 5 veterani ai filmului romanesc.' input 'Ce optiune doriti...?' to x do case case x=1 do nou case x=2 clear do crono wait case x=3 clear do tari wait case x=4 clear do italy wait case x=5 clear do genuri wait case x=6 clear do regrom wait case x=7 clear do filmales wait case x=8 clear do listascenaristi wait case x=9 clear do tom wait case x=10 clear do pearipi wait case x=11 clear do actrite wait
case x=12 clear do veterani wait endcase clear @ 2,2 say 'Continuam cu optiunile?... (D=1 / N=0)' get w read clear enddo return
PROCEDURE NOU r=1 do while r=1 clear use cinema s = reccount()+1 go bottom insert blank replace codfilm with s @ 2,2 say 'Dati numele filmului...' get numefilm @ 3,2 say 'Productie... 'get productie @ 4,2 say 'Regia...' get regia @ 5,2 say 'Anul...' get anul @ 6,2 say 'Genul filmului... 'get gen @ 7,2 say 'Scenaristul filmului... 'get scenariu @ 8,2 say 'Premiile primite...' get premii n=0 @ 9,2 say 'Cati actori au jucat?'get n read clear use actori for i=1 to n go bottom insert blank replace codfilm with s ? 'Actorul',i @ 3,2 say 'Numele...'get nume @ 4,2 say 'Sexul (m/f)...'get sex @ 5,2 say 'Data nasterii...' get datan @ 6,2 say 'Nationalitatea...' get natio read
clear endfor @ 10,4 say 'Continuam cu introducerea filmelor?...(D=1 / N=0)...' get r read clear enddo return PROCEDURE CRONO use cinema sort to cine2 on gen, anul use cine2 g=gen do while not eof() ? 'Primul film al genului ',g,' a fost ',numefilm do while g=gen skip enddo g=gen enddo use return PROCEDURE TARI use cinema sort to cine1 on productie use cine1 ? 'Tarile sunt urmatoarele:' p=productie do while not eof() ? ' ',p do while p=productie skip enddo p=productie enddo return PROCEDURE ITALY use cinema ? ' Filmele produse in Iatlia in anul 1994 sunt:...' for i=1 to reccount() go i if (productie = 'ITALIA') .and. (anul=1994) ?' ', numefilm endif
endfor return PROCEDURE GENURI use cinema sort to cine3 on gen, numefilm use cine3 ge=gen do while not eof() ? ' Genul ',ge do while ge=gen ?' ', numefilm skip enddo WAIT ge=gen enddo return PROCEDURE REGROM use cinema ? ' Regizorii filmelor produse in Romania dupa 1989 sunt:...' for i=1 to reccount() go i if (productie = 'ROMANIA') .and. (anul>1989) ? ' ',regia endif endfor return PROCEDURE FILMALES nf=' ' @ 2,2 say 'Numele filmului dorit...' get nf READ @ 4,2 SAY 'Premiile filmului cerut sunt urmatoarele:' use cinema for i=1 to reccount() go i if numefilm = nf ?' ',premii endif endfor return
PROCEDURE LISTASCENARISTI use cinema sort to cine4 on gen, scenariu use cine4 ge=gen do while not eof() ? ' Genul ',ge do while ge=gen ?' ', scenariu skip enddo WAIT ge=gen enddo return PROCEDURE TOM use actori for i=1 to reccount() go i if nume = 'TOM CRUISE' ? ' TOM CRUISE are varsta de... ',year( date() ) - year(datan), ' de ani.' endif endfor return
PROCEDURE PEARIPI use cinema for i=1 to reccount() go i if numefilm = 'PE ARIPILE VANTULUI' cod=codfilm endif endfor use actori ? ' In filmul PE ARPILE VANTULUI au jucat urmatorii actori: ' for i=1 to reccount() go i if codfilm=cod ?' ',nume
endif endfor return PROCEDURE ACTRITE use actori sort to act1 on natio use act1 ? ' Lista actritelor care n-au 30 de ani pe nationalitati: ' for i=1 to reccount() go i if (year(datan)>1971) .and. (sex= 'F') ?' ',nume, ' in varsta de ',year(date())-year(datan),' ani.' endif endfor return
PROCEDURE VETERANI use actori sort to acti on datan/D, nume for natio = 'ROMANA' use acti ? ' Actorii veterani romani sunt: ' if reccount()>5 for i=1 to 5 go i ? nume endfor else list nume endif return