Documente Academic
Documente Profesional
Documente Cultură
PENTRU ATESTATUL
PROFESIONAL LA
INFORMATICĂ
1
SUBIECTE FOXPRO
5
d) Să se afişeze pe ecran numărul de bilete vândute cu
destinaţia un anumit oraş X, citit de la tastatură;
Rezolvare:
create cfr
use cfr
b) calculate sum(pret) to x
? 'Suma:'+str(x,10,2)
c) calculate max(pret) to y
list fields oras_dest for pret=y
d) accept 'Dati orasul:' to z
count to n for oras_dest=z
? 'Nr. de bilete:'+str(n)
7
10. Sa se creeze tabela BAC.dbf cu informatii despre
rezultatele obtinute la examenul de bacalaureat. Tabela are
urmatoarea structura: nume (C15), prenume(C15),
nota_probaA(N 5,2), nota_probaB(N 5,2), nota_probaC(N
5,2), nota_probaD(N 5,2), nota_probaE(N 5,2),
nota_probaF(N 5,2),MEDIE(N 5,2). Se cere:
a) Să se adauge minim 10 înregistrări în baza de date;
b) Afisarea elevilor in ordinea descrescatoare a mediilor
c) Sa se listeze elevii admisi (medie>=6) si elevii
respinsi (medie<6)
d) Sa se stearga logic elevii care nu au medie de trecere
(<6)
Rezolvare:
create bac
use bac
replace all media with (n_probaa + n_probab + n_probac +
n_probad + n_probae + n_probaf)/6
b) sort to bac1 on medie/d
use bac1
list
c) ? 'Elevii admisi:'
list fields nume, prenume for (n_probaa>=5) .and.
(n_probab>=5) .and. (n_probac>=5) .and. (n_probad>=5) .and.
(n_probae>=5) .and. (n_probaf>=5) .and. (medie>=6)
? 'Elevii respinsi:'
list fields nume, prenume for (n_probaa<5) .or. (n_probab<5)
.or. (n_probac<5) .or. (n_probad<5) .or. (n_probae<5) .or.
(n_probaf<5) .or. (medie<6)
d) delete for medie<6
list
10
14. Evidenţa camerelor unui hotel este realizată prin
intermediul unei baze de date CAMERE cu structura: Nrc (
N4 ), Nrpat ( N1), Preţ (N8), Telefon (L), Televizor (L),
Data (D), Nrzile (N3), unde Nrc reprezintă numărul
camerei, Data reprezintă data închirierii camerei, Nrzile
reprezintă numărul de zile pentru care a fost închiriată
camera, iar Preţ , preţul pentru o noapte.
Se cere:
a) să se introducă în baza de date minim 10 înregistrări;
b) să se afişeze numărul camerelor care au telefon şi
televizor;
c) preţul mediu al camerelor cu 2 paturi;
d) câştigul pe care l-ar obţine hotelul pe luna iulie dacă ar
avea toate camerele ocupate;
Rezolvare:
create camere
use camere
b) count to x for telefon=.T. .and. televizor=.T.
? 'Nr. camerelor:'+str(x)
c) calculate avg(pret) for nrpat=2 to y
? 'Pretul mediu:'+str(y,10,2)
d) calculate sum(pret) for month(data)=7 to z
? 'Castigul:'+str(z)
11
b) să se completeze câmpul Bursa ştiind că regulile de
calcul sunt următoarele:
- dacă media este peste 9.50 atunci elevul obţine bursa de
merit în valoare de 300000 lei pe lună;
- dacă media este între 9 şi 9.50 , atunci elevul obţine bursa
de studiu în valoare de 150000 lei pe lună;
- dacă elevul are media mai mică decât 9.00 el nu primeşte
bursă;
c) să se afişeze numărul elevilor care obţin bursă;
d) să se afişeze clasa sau clasele care au cel mai mare venit
obţinut din burse;
Rezolvare:
create elevi
use elevi
b) replace all bursa with 300000 for media>=9.50
replace all bursa with 150000 for (media>=9.00) .and.
(media<9.50)
c) count to x for media>=9.00
? 'Nr.elevilor:'+str(x)
d)
set talk off calculate sum(bursa) to y
close all while x=clasa
clear if y>maxim
use elevi maxim=y
sort to elevi1 on clasa/a c=x
use elevi1 endif
go top enddo
maxim=0 ? 'Clasa:'+c+'are venitul
c=clasa maxim de:'+str(maxim)
do while .not. eof() use
x=clasa
12
16. Fie baza de date MEDICAL.DBF care contine despre
bolnavii internati in sectia de pedriatie a unui spital.
Concepeti structura acesteia, astfel incat sa se poata
raspunde cu usurinta la urmatoarele cerinte:
a) Să se introducă minim 10 înregistrări în baza de date;
b) Care sunt bolnavii cu varsta de 10 ani?
c) Afisati primii trei si ultimii trei pacienti inscrisi in baza
de date;
d) Listati continutul bazei de date;
Rezolvare:
create medical
use medical
b) list fields nume for varsta=10
c) ? 'Primii trei:'
go top
list next 3
? 'Ultimii trei:'
go bottom
skip -2
list rest
d) list all
15
d) Se citeşte de la tastatură numele unui elev. Să se
afişeze vârsta, media generală şi poziţia pe care se află în
baza de date elevul găsit.
Rezolvare:
create elevi
use elevi
b) replace all bursier with .T. for media>=9.50
list
c) list fields nume, data_n for varsta>=18 .and. bursier=.F.
d) accept 'Dati numele:' to x
list fields varsta, media for nume=x
Rezolvare:
create locuinta
use locuinta
b) list fields adresa for year(data_c)>2000 .and.
mod(nr_camere,2)=0
c) input 'a=' to a
16
input 'b=' to b
list fields adresa, nr_camere for pret>=a .and. pret<=b
d) calculate avg(pret) to x
count to y for pret=x
? 'Nr. locuintelor:'+str(y)
18
25. Fie baza de date FARMACIE (
Denumire_medicament(C20), Cantitate(N5),Pret(N5)). Se
cere:
a) Sa se introduca minim 10 inregistrari in baza de date;
b) Listati medicamentele existente in farmacie;
c) Care este pretul asprinei?
d) Afisati care este medicamentul cel mai scump;
Rezolvare:
create farmacie
use farmacie
b) list fields denumire_m
c) list fields pret for denumire_m='aspirina'
d) calculate max(pret) to x
list fields denumire_m for pret=x
26. Sa se construiasca baza de date care contin datele
referitoare la examenul de bacalaureat. Structura acestei
baze va fi: Nume(C20), Clasa(C4), Media (N5,2). Se cere:
a) Sa se introduca minim 10 inregistrari in baza de date;
b) Sa se afiseze primii doi elevi promovati cu cele mai
mari medii;
c) Sa se afiseze media generala a elevilor admisi;
d) Sa se afiseze elevii respinsi;
Rezolvare:
create bac
use bac
b) sort to bac1 on media/d
use bac1
go top
list next 2
c) calculate avg(media) to x for media>=6
? 'Media:'+str(x,5,2)
19
d) list fields nume for media<6
22