|
Subiecte posibile la programare - FOX
I. Sa se creeze baza de date angajati.dbf cu urmatoarele campuri: NUME (C15), DATA_NAST(D8), SEXUL(L1), ADRESA(M4), TELEFON(N10), STUDII(C10), DATA_ANGAJ(D8), SAL_BRUT(N4).
Rezolvare: create angajati.dbf
1. Sa se adauge o inregistrare goala la sfarsit.
Rezolvare: goto bottom
append blank
2. Sa se vizualizeze baza de date sub forma de tabel.
Rezolvare: browse
3. Sa se inlocuiasca salariul angajatului "Ionescu" cu valoarea 1100.
Rezolvare(program p3.prg):
use angajati.dbf
locate for nume="Ionescu"
if found()=.T.
replace sal_brut with 1100
else
wait window " Nu e in baza de date."
endif
browse
use
4. Sa se afiseze pe ecran toti angajatii barbati din baza de date.
Rezolvare: list for sexul=.T.
5. Sa se afiseze pe ecran toti angajatii cu salariul brut mai mare sau egal cu 700.
Rezolvare: list for sal_brut>=700
6. Sa se afiseze pe ecran numai campurile nume si sal_brut cu tot cu valori.
Rezolvare: list nume,sal_brut
7. Sa se afiseze pe ecran toti angajatii incadrati inainte de dara 03/25/05.
Rezolvare: list for data_angaj<
8. Sa se afiseze sub forma de tabel numai coloanele nume, studii si sal_brut, apoi sa se revina la afisarea intregului tabel.
Rezolvare: set fields to angajati.nume,angajati.studii,angajati.sal_brut
browse
set fields off
browse
9. Sa se sorteze baza de date dupa nume crescator in baza de date angajsort1.dbf (comanda) apoi sa se deschida noua baza de date si sa se vizualizeze sub forma de tabel.
Rezolvare: sort to angajsort1.dbf on nume /A
use
use angajsort1.dbf
browse
10. Sa se sorteze baza de date angajati.dbf dupa sal_brut descrescator in baza de date numita angajsort2.dbf (comanda) apoi sa se deschida noua baza de date si sa se vizualizeze sub forma de tabel.
Rezolvare: sort to angajsort2.dbf on sal_brut /D
use
use angajsort2.dbf
browse
11. Sa se calculeze media aritmetica a salariului brut pentru toti angajatii.
Rezolvare: average angajati.sal_brut
Sau calculate avg(angajati.sal_brut)
12. Sa se afle si sa se afiseze cel mai mare salariu brut si cel mai mic salariu brut.
Rezolvare: calculate max(angajati.sal_brut)
calculate min(angajati.sal_brut)
13. Sa se calculeze media salariului brut pentru fiecare categorie de studii. Se va folosi o baza de date auxiliara aux.dbf pentru totaluri pe fiecare categorie de studii. (program)
Rezolvare: modify structure *pentru a adauga campurile nr(N(3)) si medief(N(5.2))
program p13.prg:
use
use angajati.dbf
replace nr with 1 all
total on angajati.studii to aux.dbf fields angajati.nr,angajati.sal_brut
use
use aux.dbf
scan
replace aux.medief with aux.sal_brut/aux.nr
endscan
set fields to aux.studii,aux.medief
browse
14. Sa se steaga logic apoi fizic inregistrarea nr.3 din baza de date angajati.dbf.
Rezolvare: goto record 3
delete
pack
15. Sa se stearga logic ultima inregistrare din baza de date angajati.dbf.
Rezolvare: goto bottom
delete
16. Sa se listeze toti angajatii de la litera A.
Rezolvare: list for nume="A"
17. Sa se stearga (logic) persoanele a caror nume incepe cu litera T; sa se vizualizeze baza de date.
Rezolvare: delete for nume="T"
browse
18. Sa se calculeze suma valorilor din coloana sal_brut intr-o variabila z si sa se afiseze pe ecran .
Rezolvare: sum angajati.sal_brut to z
?z
19. Sa se calculeze raportul 2/3 cu 3 zecimale si sa se afiseze la linia1, coloana3 rezultatul.
Rezolvare: @1,3 say 2/3 picture '99.999'
20. Sa se citeasca doua valori pentru doua variabile a si b apoi sa se afiseze pe ecran care dintre cele doua valori citite e mai mare (program).
Rezolvare(program p20.prg):
set talk off
clear
a=0
b=0
@4,10 say 'primul numar' get a
@5,10 say' al doilea numar' get b
read
if a>b
?'primul numar e mai mare'
else
if a=b
?'numere egale'
else
?'al doilea numar e mai mare'
endif
endif
II. Sa se creeze baza de date studenti.dbf cu urmatoarele campuri: NUME (C15), DATA_NAST(D8), SEXUL(L1), TELEFON(N10), CAMINIST(L1), ABSENTE_AN(N3), MEDIE_AN(N5.2), AN_STUDII(N1), FACULTATE(C4).
Rezolvare: create studenti.dbf
1. Sa se adauge o inregistrare goala la sfarsit.
Rezolvare: goto bottom
append blank
2. Sa se vizualizeze baza de date sub forma de tabel.
Rezolvare: browse
3. Sa se inlocuiasca valoarea din campul facultate cu FB a studentului "Ionescu".
Rezolvare(program p3.prg):
use studenti.dbf
locate for nume="Ionescu"
if found()=.T.
replace facultate with "FB"
else
wait window " Nu e in baza de date."
endif
browse
use
4. Sa se afiseze pe ecran toate studentele din baza de date.
Rezolvare: list for sexul=.F.
5. Sa se afiseze pe ecran toti studentii caministi.
Rezolvare: list for caminist=.T.
6. Sa se afiseze pe ecran numai campurile nume si facultate.
Rezolvare: list nume,facultate
7. Sa se afiseze pe ecran toti studentii cu medie_an mai mare sau egala cu 8.50.
Rezolvare: list for medie_an>=8.50
8. Sa se afiseze sub forma de tabel numai coloanele nume, an_studii si medie_an, apoi sa se revina la afisarea intregului tabel.
Rezolvare: set fields to studenti.nume,studenti.an_studii,studenti.medie_an
browse
set fields off
browse
9. Sa se sorteze baza de date dupa nume crescator in baza de date studsort1.dbf (comanda) apoi sa se deschida noua baza de date si sa se vizualizeze sub forma de tabel.
Rezolvare: sort to studsor1.dbf on nume /A
use
use studsor1.dbf
browse
10. Sa se sorteze baza de date studenti.dbf dupa medie descrescator in baza de date numita studsort2.dbf (comanda) apoi sa se deschida noua baza de date si sa se vizualizeze sub forma de tabel.
Rezolvare: sort to studsor2.dbf on medie_an /D
use
use studsor2.dbf
browse
11. Sa se calculeze media aritmetica a mediei pe an pentru toti studentii.
Rezolvare: average studenti.medie_an
Sau calculate avg(studenti.medie_an)
12. Sa se afle si sa se afiseze cea mai mare medie si cea mai mica medie.
Rezolvare: calculate max(studenti.medie_an)
calculate min(studenti.medie_an)
13. Sa se calculeze suma absentelor pentru fiecare facultate, apoi sa se faca media lor pe fiecare facultate. Se va folosi o baza de date auxiliara aux.dbf pentru totaluri pe fiecare facultate. (program)
Rezolvare: modify structure *pentru a adauga campurile nr(N(3)) si medief(N(5.2))
program p13.prg:
use
use studenti.dbf
replace nr with 1 all
total on studenti.facultate to aux1.dbf fields studenti.nr,studenti.absente_an
use
use aux1.dbf
scan
replace aux1.medief with aux1.absente_an/aux1.nr
endscan
set fields to aux1.facultate,aux1.medief
browse
14. Sa se stearga logic apoi fizic inregistrarea nr.2 din baza de date studenti.dbf.
Rezolvare: goto record 2
delete
pack
Sau:delete record 2
pack
15. Sa se stearga logic prima inregistrare din baza de date studenti.dbf.
Rezolvare: goto top
delete
16. Sa se listeze toti studentii de la litera B.
Rezolvare: list for nume="B"
17. Sa se stearga (logic) persoanele a caror nume incepe cu litera C; sa se vizualizeze baza de date.
Rezolvare: delete for nume="C"
browse
18. Sa se calculeze suma valorilor din coloana absente intr-o variabila z si sa se afiseze pe ecran .
Rezolvare: sum studenti.absente_an to z
?z
Sau: calculate sum(studenti.absente_an) to z
?z
19. Sa se calculeze raportul 9/3 cu 3 zecimale si sa se afiseze la linia 3, coloana 5 rezultatul.
Rezolvare: @3,5 say 9/3 picture '99.999'
20. Sa se citeasca doua valori pentru doua variabile a si b apoi sa se afiseze pe ecran care dintre cele doua valori citite e mai mica (program).
Rezolvare(program p20.prg):
set talk off
clear
a=0
b=0
@4,10 say 'primul numar' get a
@5,10 say' al doilea numar' get b
read
if a<b
?'primul numar e mai mic'
else
if a=b
?'numere egale'
else
?'al doilea numar e mai mic'
endif
endif