Sunteți pe pagina 1din 11

sdfsaasd **********s PB3 *s3 a) CREATE TABLE s3(nr_bilet N(5),oras C(15),pret N(7),nr_vag N(2)) APPEND SET TALK OFF

SET HEADINGS ON CLEAR CLOSE ALL USE s3 CALCULATE SUM(pret)to x ?"Suma realizata in urma vanzarii biletelor este: ",x ? WAIT *b) CLEAR accept "Introduceti destinatia" to o CALCULATE CNT() TO c FOR ALLTRIM(UPPER(o))=ALLTRIM(UPPER(oras)) ?"Nr de bilete cu destinatia ",o," este:",c WAIT ******** PB4 CREATE TABLE S2(cod_f N(4),cod_m N(4),nume_m C(15),pret N(7),cantitate N(3)) SET TALK OFF SET HEADINGS off CLOSE ALL CLEAR USE s2 IN 1 SELECT 1 accept "introduceti numele materialului" to x SORT TO oferta ON pret FOR ALLTRIM(UPPER(nume_m))=ALLTRIM(UPPER(x)) USE oferta IN 2 SELECT 2 ?"Ofertele pt materialul "+x+" sunt :" ?"cod_furnizor pret cantitate" LIST FIELDS cod_f,pret,cantitate WAIT "apasati o tasta pt continuare" CLEAR SELECT 1 input "cod_f" to y CALCULATE SUM(pret*cantiate)TO v FOR cod_f=y ? ?"valoarea totala a materialelor oferite de furnizorul ",STR(y),"este: ",v WAIT "apasa o tasta pt continuare"

********** PB5 CREATE TABLE s4(n_mun C(30),c_atelier N(1), nr_piese N(10)) SET TALK OFF SET HEADINGS ON CLOSE ALL

append USE s4 IN 1 CLEAR DIMENSION nr_p_atelier[9] FOR i=1 TO 9 nr_p_atelier[i]=0 ENDFOR SCAN nr_p_atelier[c_atelier]=nr_p_atelier[c_atelier]+nr_piese ENDSCAN nr_ateliere=0 FOR i=1 TO 9 IF nr_p_atelier[i]>0 nr_ateliere=nr_ateliere+1 ENDIF ENDFOR ?"nr de ateliere este:",STR(nr_ateliere,3) WAIT "apasati o tasta pt continuare" ?"nr de piese din fiecare atelier este: " ? ?"codul atelierului nr piese" FOR i=1 TO 9 IF nr_p_atelier[i]>0 ?SPACE(10),STR(i,1),SPACE(10),nr_p_atelier[i] ENDIF ENDFOR ? WAIT "apasati o tasta pentru a continua"

********** PB6 CREATE TABLE s5(n_mun C(30),c_atelier N(1), nr_piese N(10)) SET TALK OFF SET HEADINGS ON CLOSE ALL USE s5 IN 1 append CLEAR DIMENSION nr_muncitori[9],nr_p_atelier[9] FOR i=1 TO 9 nr_muncitori[i]=0 nr_p_atelier[i]=0 ENDFOR SCAN nr_muncitori[c_atelier]=nr_muncitori[c_atelier]+1 nr_p_atelier[c_atelier]=nr_p_atelier[c_atelier]+nr_piese ENDSCAN max=0 FOR i=1 TO 9 IF nr_muncitori[i]>max max=nr_muncitori[i] ENDIF ENDFOR ?"atelierele care contin nr maxim de muncitori ",STR(max,3),"sunt: " FOR i=1 TO 9

IF nr_muncitori[i]=max ?STR(i,2) ? ENDIF ENDFOR WAIT "apasati o tasta pentru continuare" input "nr de piese introduse de la tastatura este" to np l=5 FOR i=1 TO 9 IF nr_p_atelier[i]>np @ l,5 say "atelierul"+str(i,2) l=l+1 ENDIF ENDFOR wait

********* PB7 *s7 CLOSE ALL CLEAR IF (FILE("s7.dbf")=.F.) CREATE TABLE s6(n_mun C(30), c_atelier N(1), nr_piese N(10)) APPEND ENDIF USE s7 IN 1 SET TALK OFF SET HEADINGS ON val1=0 INPUT "Productia minima = " to val1 DELETE FOR nr_piese<val1 i=0 SCAN FOR DELETED()=.T. ? n_mun,c_atelier EndScan Accept "Do you really want to delete them? Write yes or no: " to sir IF ALLTRIM(UPPER(sir))="YES" PACK ELSE RECALL ALL ENDIF *c) DIMENSION nr_mun[9] FOR i=1 TO 9 nr_mun[i]=0 ENDFOR scan nr_mun[c_atelier]=nr_mun[c_atelier]+1 ENDscan FOR i=1 TO 9 IF nr_mun[i]>0 AND nr_mun[i]<=2 ?SPACE(10),i ENDIF

ENDFOR Release all CLEAR *********** PB8 &&... se initializeaza tabelul.... input "Valoarea introdusa de la tastatura= " to val1 s=0 &&suma totala cod=0 &&codul atelierului cu cei mai multi muncitorii cu salarii marite DIMENSION atelier[9] FOR i=1 TO 9 atelier[i]=0 ENDFOR SCAN IF nr_piese/10>val1 replace salarii WITH (salarii*11/10) s=s+salarii*(11/10) atelier[c_atelier]=atelier[c_atelier]+1 ?SPACE(3),n_mun,SPACE(5),salarii ENDIF Endscan *b) FOR i=1 TO 9 IF cod<atelier[i] cod=atelier[i] ENDIF ENDFOR APPEND BLANK replace salarii WITH s replace c_atelier WITH cod BROWSE CLOSE ALL CLEAR RELEASE ALL ************ PB9 CLOSE ALL CLEAR IF (FILE("s9.dbf")=.F.) CREATE TABLE s9(n_mun C(30), c_atelier N(1), nr_piese N(10),varsta N(2)) APPEND ENDIF USE s9 IN 1 SET TALK OFF SET HEADINGS off *a) STORE 0 to v,piese input "Varsta maxima = " to v input "Nr minim de piese = " to piese LIST for varsta<=v AND nr_piese>=piese WAIT "apasati o tasta pt continuare" CLEAR *b) CALCULATE AVG(nr_piese) FOR varsta<=v AND nr_piese>=piese TO a

?"nr mediu de piese produse de toti cei selectati la prima cerinta: ",a wait MESSAGEBOX("Programul s-a terminat") ********** PB10 CLOSE ALL CLEAR IF (FILE("s10.dbf")=.F.) CREATE TABLE s10(n_mun C(30), c_atelier N(1), nr_piese N(10),nr_copii N( 2)) APPEND ENDIF USE s10 IN 1 SET TALK OFF SET HEADINGS ON FOR i=1 to 9 LIST for c_atelier=i ? ENDFOR CALCULATE SUM(nr_copii) TO copii ?"Nr de copii minori ai tuturor muncitorilor : ",copii ********* PB11 CLOSE ALL CLEAR IF (FILE("s11.dbf")=.F.) CREATE TABLE s11(n_mun C(30), c_atelier N(1), nr_piese N(10)) APPEND ENDIF USE s11 IN 1 SET TALK OFF SET HEADINGS ON CALCULATE SUM(nr_piese) TO piese COUNT TO nr ?"Nr mediu de piese produse de un muncitor : ",piese/nr ? s=0 FOR i=1 TO 9 SCAN if(c_atelier=i) s=s+1 EXIT endif ENDSCAN ENDFOR ?"Nr mediu de piese produse de un atelier : ",piese/s WAIT "apasati o tasta pt continuare" ************ PB12 CLOSE ALL CLEAR

IF (FILE("s12.dbf")=.F.) CREATE TABLE s12(n_mun C(30), c_atelier N(1), nr_piese N(10)) APPEND ENDIF USE s12 IN 1 SET TALK OFF SET HEADINGS ON input "numarul minim de piese: " to nr DELETE FOR nr_piese<nr SORT TO s12_new ON n_mun /A FOR DELETED()=.T. *Pack browse ******** PB13 CLOSE ALL CLEAR IF (FILE("s13.dbf")=.F.) CREATE TABLE s13(n_mun C(30), c_atelier N(1), nr_piese N(10)) APPEND ENDIF USE s13 IN 1 SET TALK OFF SET HEADINGS ON CALCULATE SUM(nr_piese) TO piese COUNT TO nr cod=0 nume=" " @ 5,10 say "cod atelier: " get cod picture '9' valid cod <10 @ 6,10 say "Nume: " get nume picture "xxxxxxxxx" READ clear IF nume!=" " APPEND BLANK replace n_mun WITH nume replace c_atelier WITH cod replace nr_piese WITH 0 ENDIF ?"Nr minim necesar de piese pe care noul venit trebuie sa le produca",piese/nr WAIT "apasati o tasta" *b) cod=0 ok=.F. @ 5,10 say "Nume: " get nume picture "xxxxxxxxx" @ 6,10 say "cod atelier: " get cod picture '9' valid cod <10 READ SCAN IF nume=ALLTRIM(n_mun) ok=.T. replace c_atelier WITH cod ENDIF ENDSCAN IF ok=.F. MESSAGEBOX("Muncitorul nu figureaza") ENDIF

********** PB14 CLOSE ALL CLEAR IF FILE("s14.dbf")=.F. CREATE TABLE s14(n_mun C(30), c_atelier N(1), nr_piese N(10)) APPEND ENDIF maxim=0 USE s14 IN 1 SET TALK OFF SET HEADINGS off *a) SCAN IF nr_piese>=maxim maxim=nr_piese ENDIF ENDSCAN INDEX ON n_mun TAG nr_piese ascending FOR nr_piese=maxim LIST *b) a=0 b=0 CALCULATE AVG(nr_piese) TO a FOR nr_piese!=maxim COUNT TO b ?"nr mediu de piese",a/b ********** PB15 CLOSE ALL CLEAR IF FILE("s15.dbf")=.F. CREATE TABLE s15(cod_m N(3), pret_u N(5), cantitate N(5),stoc N(5)) APPEND ENDIF USE s15 IN 1 SET TALK OFF SET HEADINGS off *a) ?" cod cantitate necesara" LIST cod_m," ",stoc-cantitate for cantitate<stoc *b) INDEX on cod_m TAG cod_m ?" index cod" LIST cod_m for cantitate>stoc+1/5*stoc ********* PB16 CLOSE ALL CLEAR IF FILE("s16.dbf")=.F. CREATE TABLE s16(cod_m N(3), pret_u N(5), cantitate N(5),stoc N(5)) APPEND

ENDIF USE s16 IN 1 ORDER cod_m SET TALK OFF SET HEADINGS off *a) input "cod material: " to cod input "cantitate: " to cant find cod LOCATE FOR cod=cod_m IF FOUND()=.T. AND cant<cantitate ?"cantitate ramasa ",cantitate-cant ? IF cantitate-cant<stoc MESSAGEBOX("cantitatea este mai mica decat stocul necesar") endif ELSE MESSAGEBOX("produsul nu a fost gasit") ENDIF *b) input "cod material: " to c input "cantitate: " to k GO top LOCATE FOR c=cod_m find c IF FOUND()=.T. replace cantitate WITH cantitate+k ELSE input "pret: " to p input "stoc: " to s GO BOTTOM APPEND BLANK replace cod_m WITH c replace cantitate WITH k replace pret_u WITH p replace stoc WITH s ENDIF ************ PB17 CLOSE ALL CLEAR IF FILE("s17.dbf")=.F. CREATE TABLE s17(nume C(20),titlu C(40),nr_exemp N(3),data_imp D(5)) APPEND ENDIF USE s17 IN 1 SET TALK OFF SET HEADINGS off *a) a=0 b=0 maxim=0 num="" num_max="" SCAN b=RECNO() num=nume

a=0 DO while EOF()=.F. IF num=ALLTRIM(nume) a=a+1 ENDIF SKIP 1 ENDDO GO b SKIP 1 IF maxim<a maxim=a num_max=num ENDIF ENDSCAN ?"Autorul cu cele mai multe titluri",num_max RELEASE ALL *b) minim=1000 num="" SCAN IF minim>nr_exemp AND MONTH(data_imp)=MONTH(DATE()) minim=nr_exemp num=nume ENDIF ENDSCAN ?"autorul cu cele mai putine carti solicitate este ",num ********** PB18 CLOSE ALL CLEAR IF FILE("s18.dbf")=.F. CREATE TABLE s18(nume C(20),salariu N(10),nr N(2),nr_zile N(2)) APPEND ENDIF USE s18 IN 1 SET TALK OFF SET HEADINGS off *a) maxim=0 num="" SCAN IF nr_zile>maxim maxim=nr_zile num=nume ENDIF ENDSCAN ?"numele angajatului cu cele mai multe zile de concediu medical este : ",num *b) CALCULATE AVG(salariu) FOR nr>=1 AND nr_zile>0 TO a ?"salariu mediu:",a ********* PB19 CLOSE ALL CLEAR IF FILE("s19.dbf")=.F. CREATE TABLE s19(nume C(20),n_pacient C(20),diag C(50),data_c D)

APPEND ENDIF USE s19 IN 1 SET TALK OFF SET HEADINGS off *a) accept "Nume medic:" to num count for MONTH(data_c)=month(DATE()) AND UPPER(ALLTRIM(num))=UPPER(ALLTRIM(nume )) TO nr ?"nr pacienti consultati de ",num," este:",nr *b) a=0 b=0 maxim=0 diagnostic="" diag_max="" SCAN b=RECNO() diagnostic=diag a=0 DO while EOF()=.F. IF diagnostic=ALLTRIM(diag) a=a+1 ENDIF SKIP 1 ENDDO GO b SKIP 1 IF maxim<a maxim=a diag_max=diagnostic ENDIF ENDSCAN ?"diagnosticul cel mai frecvent este:",diag_max *********** PB20 CLOSE ALL CLEAR IF FILE("s20.dbf")=.F. CREATE TABLE s20(nume C(20),clasa N(2),promovat L) APPEND ENDIF USE s20 IN 1 SET TALK OFF SET HEADINGS ON *a) DIMENSION a[13] FOR i=1 TO 13 a[i]=0 ENDFOR scan IF promovat=.T. a[clasa]=a[clasa]+1 ENDIF ENDSCAN maxim=0 cls=""

FOR i=1 TO 12 IF maxim<a[i] maxim=a[i] cls=i ENDIF ENDFOR ?"clasa cu cel mai mare procent de promovabilitate este: ",cls *b) input "clasa: " to cls LIST for cls=clasa AND promovat=.F.

S-ar putea să vă placă și