subiecte fox pro clasa a 12 a

22
1 SUBIECTE REZOLVATE PENTRU ATESTATUL PROFESIONAL LA INFORMATICĂ

Upload: aninu-alin

Post on 13-Jul-2016

145 views

Category:

Documents


7 download

DESCRIPTION

Subiecte pentru atestatul la informatica din clasa a 12 a.30 de probleme cu cerinta si rezolvareExemplarul este facut pentru copiute la dimensiuni: 6.4 x 9 cm

TRANSCRIPT

Page 1: Subiecte Fox Pro Clasa a 12 a

1

SUBIECTE REZOLVATE

PENTRU ATESTATUL

PROFESIONAL LA

INFORMATICĂ

Page 2: Subiecte Fox Pro Clasa a 12 a

2

SUBIECTE FOXPRO

1. Sa se construiasca o baza de date cu principalele

productii cinematografice din secolul XX, cu urmatoarea

structura: Nume_film (C30), Gen(C20), Tara (C10), An (N4), Regizor (C20).

a) Sa se adauge minim 10 inregistrari in baza de date;

b) Care sunt filmele produse in Romania in anul 2000?

c) Cate filme de comedie au fost propuse in Romania

inainte de 1989?

d) Afisati lista filmelor regizate de regizorul Popescu

Dan;

Rezolvare: create cinema

use cinema

b) list fields nume_film for tara='Romania' . and. an=2000

c) count to x for gen='comedie' .and. tara='Romania' .and.

an<1989

? 'Numarul de filme:'+str(x)

d) list fields nume_film for regizor='Popescu Dan'

2. Fie baza de date ABONAT.DBF care contine informatii

despre abonatii unei televiziuni prin cablu, cu urmatoarea

structura : Nume (C20), NrPrograme (N4), PretLuna(N6), Achitat(L1):

a) Sa se adauge minim 10 inregistrari in baza de date;

b) Afisati continutul bazei de date;

c) Listati numele abonatilor care nu si-au achitat factura;

d) Afisati suma totala care ar trebui incasata de la toti

abonatii;

Rezolvare: create abonat

Page 3: Subiecte Fox Pro Clasa a 12 a

3

use abonat

b) list all

c) list fields nume for achitat=.F.

d) calculate sum(pretluna) to x

? 'Pret total:'+str(x)

3. Fie baza de date ORAS.DBF cu urmatoarea structura: NumeOras (C30), Judet (C20), NrLocuitori(N7).

a) Sa se adauge minim 10 inregistrari in baza de date;

b) Afisati continutul bazei de date;

c) Afisati orasele din judetul Calarasi;

d) Afisati orasul cu cel mai mare numar de locuitori;

Rezolvare: create oras

use oras

b) list all

c) list fields numeoras for judet='Calarasi'

d) calculate max(nrloc) to x

list fields numeoras for nrloc=x

4. Se consideră baza de date „cărţi.dbf” cu următoarea

structură: TITLU(C,20), AUTOR(C,20), NR_PAG(N,3), DATA_AP(D,8), reprezentând titlul, autorul, numărul de

pagini şi data apariţiei a unei cărţi.

a) Să se adauge minim 10 înregistrări în baza de date.

b) Să se afişeze titlul cărţilor scrise de un autor al cărui

nume se citeşte de la tastatură.

c) Să se afişeze titlul şi autorul pentru cărţile cu cele mai

multe pagini din baza de date.

d) Să se elimine din baza de date toate cărţile apărute în anul 2000 şi care au un număr impar de pagini.

Rezolvare: create carti

Page 4: Subiecte Fox Pro Clasa a 12 a

4

use carti

b) accept 'Dati autorul:' to x

list fields titlu for autor=x

c) calculate max(nr_pag) to y

list fields titlu, autor for nr_pag=y

d) delete for year(data_ap)=2000 .and. mod(nr_pag,2)=1

list

pack

5. Se consideră baza de date „echipa.dbf” cu următoarea

structură: NUME_E(C,20), NUME_A(C,20),

DATA_I(D,8), NR_JUCĂTORI(N,2), CUPA(L,1),

reprezentând numele unei echipe de fotbal, numele

antrenorului, data când a fost înfiinţată, numărul total de

jucători şi dacă a câştigat sau nu vreodată cupa..

a) Să se adauge minim 10 înregistrări în baza de date.:

b) Să se determine numărul echipelor înfiinţate înainte de

anul 1980 şi care nu au câştigat niciodată cupa. c) Se citeşte de la tastatură un număr natural. Să se afişeze

numele echipei şi al antrenorului pentru echipele care au un

număr de jucători egal cu valoarea citită.

d) Să se elimine din baza de date ultimele două echipe.

Rezolvare: create echipa

use echipa

b) count to x for year(data_i)<1980 .and. cupa=.F.

? 'Nr echipelor este:'+str(x)

c) input 'Dati numarul de jucatori:' to y

list fields nume_e,nume_a for nr_juc=y

d) go bottom

skip -1

delete rest

list

pack

Page 5: Subiecte Fox Pro Clasa a 12 a

5

6. Se consideră baza de date „prăjituri.dbf” cu următoarea structură: NUME(C,20), PRET(N,3), GREUTATE(N,4),

DATA_P(D,8), reprezentând numele unei prăjituri, preţul şi

greutatea acesteia şi data de producţie a prăjiturii.

a) Să se adauge minim 10 înregistrări în baza de date.

b) Să se afişeze numele şi greutatea prăjiturilor al căror

preţ nu depăşeşte o valoare dată, citită de la tastatură.

c) Să se determine preţul mediu al prăjiturilor produse în

ultimele 3 luni ale anului 2006. d) Să se afişeze în ordine crescătoare în funcţie de preţ

numele prăjiturilor care au greutatea un număr impar.

Rezolvare: create prăjituri

use prajituri

b) input 'Dati pretul:' to x

list fields nume,greutate for pret<=40

c) calculate avg(pret) for month(data_p)>=10 .and.

year(data_p)=2006 to x

? 'Pretul mediu:'+str(x,10,2)

d) sort to prajituri1 on pret/a for mod(greutate,2)=1

use prajituri1

list

7. Să se creeze o tabelă CFR.DBF cu structura Nr_bilet,

Oras_destinatie, Pret şi să se introducă 10 articole. Să se

scrie un program FoxPro prin care:

a) Să se adauge minim 10 înregistrări în baza de date; b) Să se calculeze suma realizată în urma vânzării tuturor

biletelor înregistrate în tabelă;

c) Sa se afiseze orasul destinatie cel mai indepartat , in

functie de pretul cel mai mare;

Page 6: Subiecte Fox Pro Clasa a 12 a

6

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)

8. Să se creeze o tabelă MEDIC.DBF cu structura:

Nume_medic, Nume_pacient, Diagnostic, Data_consultului, şi să se introducă 10 articole. Un articol

reprezintă un pacient dintr-o policlinică (un consult - un

articol). Să se scrie un program FoxPro prin care:

a) Să se adauge minim 10 înregistrări în baza de date;

b) Să se afişeze numărul pacienţilor consultaţi în luna

curentă de către un medic al cărui nume se introduce de la

tastatură;

c) Să se afişeze diagnosticul cel mai frecvent reţinut în tabelă.

d) Sa se afiseze diagnosticul pentru un pacient al carui

nume il citim de la tastatura;

Rezolvare: create medic

use medic

b) accept 'Dati numele:' to x

count to y for nume_medic=x

? 'Numarul pacientilor:'+str(y)

c)

Page 7: Subiecte Fox Pro Clasa a 12 a

7

set talk off

close all

clear

use medic

sort to medic1 on diagnostic/a

use medic1

go top

frecventa=0

d=diagnostic

do while .not. eof()

x=diagnostic

count to y while diagnostic=x

if y>frecventa

frecventa=y

d=x

endif

enddo

?

'diagnostic:'+d+'frecventa:'+str

(frecventa)

use

d) accept 'Dati numele:' to z

list fields diagnostic for nume_p=z

9. Sa se creeze tabela SALARIAT.dbf cu informatii

despre angajatii unei firme. Tabela are urmatoarea

structura:nume(C15), functia(C20), salariu(N7). Se cere:

a) Să se adauge minim 10 înregistrări în baza de date;

b) Sa se afiseze informatiile despre toti angajatii firmei

c) Sa se afiseze salariul maxim si numele

persoanei(persoanelor) care au salariu maxim d) Sa se afiseze salariul mediu pe firma

Rezolvare: create salariat

use salariat

b) list all

c) calculate max(salariu) to x

? 'Salariul maxim:'+str(x)

list fields nume for salariu=x

d) calculate avg(salariu) to y

? 'Salariul mediu:'+str(y,10,2)

Page 8: Subiecte Fox Pro Clasa a 12 a

8

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

11. Sa se creeze tabela OLIMP.dbf cu informatii despre

elevii care au fost premiati in cadrul olimpiadele

Page 9: Subiecte Fox Pro Clasa a 12 a

9

scolare.Tabela are urmatoarea structura: nume (C15),

prenume (C15), olimpic(L), premiat(L), premiu(N1). Se

cere:

a) Să se adauge minim 10 înregistrări în baza de date;

b) Lista elevilor participanti la olimpiadele scoalre

c) Care sunt elevii care au obtinut premii

d) Ce premiu a obtinut un elev al carui nume se introduce

de la tastatura

Rezolvare: create olimp

use olimp

b) list fields nume, prenume for olimpic=.T.

c) list fields nume, prenume for premiat=.T.

d) accept 'Dati numele:' to x

accept 'Dati prenumele:' to y

list fields premiu for nume=x .and. prenume=y

12. Fie baza de date SITUAŢIE , cu următoarea structură:

Nume (C20), Clasa (C4), Abs (N2), Nota1 (N 5 2 ), Nota2

(N 5 2 ), Nota3 (N 5 2 ), Media (N 5 2 ), Nrcorig (N 2 ) cu situaţia elevilor unei şcoli.

Se cere:

a) să se introducă în baza de date minim 10 înregistrări;

b) afişaţi toţi elevii corigenţi;

c) înlocuiţi câmpul Media cu formula

(Nota1+Nota2+Nota3)/3;

d) să se afişeze cel mai bun şi cel mai slab elev;

Rezolvare: create situatie

use situatie

b) list fields nume for nrcorig>0

c) replace all media with (nota1+nota2+nota3)/3

Page 10: Subiecte Fox Pro Clasa a 12 a

10

list

d) calculate max(media) to x

? 'Cel mai bun:'

list fields nume for media=x

calculate min(media) to y

? 'Cel mai slab:'

list fields nume for media=y

13. La un service auto evidenţa pieselor de schimb se ţine

în baza de date PIESE cu structura: Nume_piesă (C15), Preţ

(N 10), Cantitate (N 7), Manopera (N10). Se cere:

a) să se introducă în baza de date minim 10 înregistrări;

b) afişaţi primele cinci piese dintre cele mai scumpe

existente în service;

c) cât ar câştiga firma dacă ar monta toate piesele pe

maşini;

d) să se ordoneze baza de date descrescător după cantitate

Rezolvare: create piese

use piese

b) sort to piese1 on pret/d

use piese1

go top

list next 5

c) use piese

calculate sum(pret*cantitate+manopera) to x

? 'Castig:'+str(x)

d) sort to piese2 on cantitate/d

use piese2

list

Page 11: Subiecte Fox Pro Clasa a 12 a

11

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)

15. La secretariatul unui liceu situaţia la învăţătură la sfârşitul primului semestru al unui an şcolar este reţinută în

baza de date ELEVI cu structura: Nume (C20), Clasa (C5),

Media (N 5 2 ), Bursa (N 6 ), unde câmpul Bursa iniţial nu

conţine date.

Se cere:

a) să se introducă minim 10 înregistrări în baza de date;

Page 12: Subiecte Fox Pro Clasa a 12 a

12

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

close all

clear

use elevi

sort to elevi1 on clasa/a

use elevi1

go top

maxim=0

c=clasa

do while .not. eof()

x=clasa

calculate sum(bursa) to y

while x=clasa

if y>maxim

maxim=y

c=x

endif

enddo

? 'Clasa:'+c+'are venitul

maxim de:'+str(maxim)

use

Page 13: Subiecte Fox Pro Clasa a 12 a

13

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

17. La un concurs international s-a construit o baza de date

MISS.DBF cu urmatoarea structura: Nume (C30), Tara (C20), Inaltimea (N3), Greutatea (N2), Profesia (C20),

LocOcupat(N2).

a) Să se introducă minim 10 înregistrări în baza de date;

b) Listati continutul bazei de date;

c) Listati toate persoanele cu inaltimea 185(cm);

d) Listati ocupantele locurilor 1, 2, 3 stiind ca nu pot fi

mai multe ocupante ale aceluiasi loc;

Page 14: Subiecte Fox Pro Clasa a 12 a

14

Rezolvare: create miss

use miss

b) list

c) list fields nume for inaltimea=185

d) sort to miss1 on lococupat/a

use miss1

go top

list next 3

18. Să se creeze o tabelă MUNCITOR.DBF cu structura

Nume_muncitor, Cod_atelier, Numar_piese_produse . Să se

scrie un program FoxPro prin care:

a) Să se introducă minim 10 înregistrări în baza de date;

b) Să se afişeze numărul atelierelor din tabelă;

c) Să se afişeze numărul de piese produse de fiecare

atelier; d) Sa se afiseze numele muncitorilor care au realizat un

numar maxim de piese.

Rezolvare: create muncitor

use muncitor

b) și c)

set talk off

close all

clear

use muncitor

sort to muncitor1 on cod_a/a

use muncitor1

list

go top

nr=0

do while .not. eof()

x=cod_a

calculate sum(n_piese) to y

while x=cod_a

? 'Nr. de piese produse de

atelierul: '+x+' este:'+str(y)

nr=nr+1

enddo

? 'Nr. de ateliere:'+str(nr)

use

Page 15: Subiecte Fox Pro Clasa a 12 a

15

d) calculate max(n_piese) to x

list fields nume_m for n_piese=x

19. Fie baza de date ATLETISM.DBF care contine

informatii despre sportivii participanti la un concurs de

atletism, cu urmatoarea structura: Nume (C20), Varsta

(N2), TipProba (C20), Lococupat(N2).

a) Să se introducă minim 10 înregistrări în baza de date;

b) Afisati continutul bazei de date ;

c) Afisati atletii participanti la proba de alergare de viteza;

d) Afisati atletii care au ocupat locul I la proba de maraton;

Rezolvare: create atletism

use atletism

b) list all

c) list fields nume for tipproba='alergare de viteza'

d) list fields nume for tipproba='maraton' .and. lococupat=1

20. Se consideră baza de date „elevi.dbf” cu următoarea structură: NUME(C,20), DATA_N(D,8), VÂRSTA(N,2),

MEDIA(N,5,2), BURSIER(L,1), reprezentând numele, data

naşterii, vârsta, media generală a unui elev şi dacă acesta

este bursier sau nu.

a) Să se adauge minim 10 înregistrări în baza de date,

lăsând câmpul BURSIER necompletat.

b) Să se completeze câmpul BURSIER cu valoarea

corespunzătoare astfel: Un elev este declarat bursier dacă

media generală a sa este mai mare sau egală cu 9,50. c) Să se afişeze numele şi data naşterii pentru elevii

majori care nu sunt bursieri.

Page 16: Subiecte Fox Pro Clasa a 12 a

16

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

21. Se consideră baza de date „locuinţă.dbf” cu următoarea

structură: ADRESĂ(C,20), NR_CAMERE(N,2),

DATA_C(D,8), PREŢ(N,6), reprezentând adresa, numărul

de camere, data când a fost construită şi preţul unei

locuinţe.

a) Să se adauge minim 10 înregistrări în baza de date.

b) Să se afişeze adresa locuinţelor construite după anul

2000 şi care au un număr par de camere. c) Se citesc de la tastatură două numere naturale a şi b,

a<=b. Să se afişeze adresa şi numărul de camere pentru

locuinţele al căror preţ se află în intervalul [a,b].

d) Să se afişeze numărul locuinţelor care au preţul egal cu

preţul mediu al tuturor locuinţelor din baza de date.

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

Page 17: Subiecte Fox Pro Clasa a 12 a

17

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)

22. Plecând de la baza de date GEOGRAF cu următoarea

structură: Continent (C 10), Ţara (C10), Capitala (C10),

Suprafaţa (N 5 km2), Locuitori (N10)., se cere:

a) să se introducă minim 10 înregistrări în baza de date; b) care este capitala unei anumite ţări dorite de utilizator;

c) continentul, capitala şi numele ţării cu cea mai mare

suprafaţă;

d) ordonaţi baza de date descrescător după numărul de

locuitori;

Rezolvare: create geograf

use geograf

b) accept 'Dati tara:' to x

list fields capitala for tara=x

c) calculate max(suprafata) to y

list fields continent, capitala, tara for suprafata=y

d) sort to geograf1 on locuitori/d

use geograf1

list

23. Fie baza de date PRODUSE , cu următoarea structură:

Produs (C20), Codprod (N7), Codmagazin (n7), Pret (N10), Cantitate (N4) , Valoare (N12) cu produsele vândute de un

magazin en-gross.

Se cere:

a) să se introducă minim 10 înregistrări în baza de date;

Page 18: Subiecte Fox Pro Clasa a 12 a

18

b) să se înlocuiască câmpul Valoare ( iniţial vid ) cu

formula Preţ*Cantitate ;

c) să se afişeze baza de date sortată crescător după câmpul

Codmagazin;

d) să se afişeze toate produsele care au un anumit preţ X

citit de la tastatură;

Rezolvare: create produse

use produse

b) replace all valoare with pret*cantitate

list

c) sort to produse1 on codmagazin/a

use produse1

list

d) input 'Dati pretul:' to x

list fields produs for pret=x

24. Fie baza de date AUTOMOBIL.DBF cu structura:

Denumire (C20) , An_fab (D) , Culoare (C10). Se cere:

a) Sa se introduca minim 10 inregistrari;

b) Care sunt automobilele fabricate in anul 2000?

c) Care sunt automobilele de culoare rosie? d) Listati continutul bazei de date;

Rezolvare: create automobil

use automobil

b) list fields denumire for year(an_fab)=2000

c) list fields denumire for culoare='rosu'

d) list all

Page 19: Subiecte Fox Pro Clasa a 12 a

19

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)

Page 20: Subiecte Fox Pro Clasa a 12 a

20

d) list fields nume for media<6

27. Pentru baza de date SCOLARA care retine mediile de

pe cele doua semestre ale fiecarui elev dintr-o clasa si care

are structura: Nume (C20), MS1 (N4,2), MS2 (N4,2), Sa se

scrie un program care: a) Sa se introduca minim 10 inregistrari in baza de date;

b) Sa afiseze numele si cele doua medii, precum si media

anuala a fiecarui elev;

c) Sa marcheze pentru stergere elevii corigenti (care au pe

unul dintre semestre media<5) si sa se precizeze numarul

lor;

d) Sa se afiseze media generala a clasei.

Rezolvare: create scolara

use scolara

b) list fields nume, ms1, ms2, (ms1+ms2)/2

c) delete for ms1<5 .or. ms2<5

count to x for ms1<5 .or. ms2<5

? 'Nr. de elevi corigenti:'+str(x)

d) calculate avg((ms1+ms2)/2) to y

? 'Media:'+str(y,5,2)

28. Informatiile despre salariatii unei firme se retin intr-o

baza de date SALARIATI.DBF cu structura: Nume (C20),

Functia (C20), Salariul (N7). Se cere sa se realizeze un

program care sa permita :

a) Sa se introduca minim 10 inregistrari in baza de date;

b) Sa se afiseze continutul bazei de date;

c) Care este numele persoanelor cu salariul maxim;

d) Care este salariul mediu pe unitate?

Rezolvare:

Page 21: Subiecte Fox Pro Clasa a 12 a

21

create salariati

use salariati

b) list all

c) calculate max(salariul) to x

list fields nume for salariul=x

d) calculate avg(salariul) to y

? 'Salariul mediu:'+str(y,10,2)

29. Se considera tabela STUDENTI.DBF care are structura:

Nume C(20), Cod_curs C(3), Denum_curs C(10), Nota

N(2). Se cere:

a) Sa se introduca minim 10 inregistrari in tabela;

b) Sa se afiseze continutul bazei.

c) Sa se afiseze cati studenti au promovat (au nota

>=5);

d) Sa se afiseze numele si prenumele studentilor

inscrisi la un curs al carui cod este citit de la tastatura, daca nu exista acel curs se va afisa mesaj.

Rezolvare: create studenti

use studenti

b) list all

c) count to x for nota>=5

? 'Nr. de studenti:'+str(x)

d) set talk off

close all

clear

accept 'Dati codul:' to y

list fields nume for cod_curs=y

locate for cod_curs=y

if not found()

? ‘Nu exista’

endif

Page 22: Subiecte Fox Pro Clasa a 12 a

22

use

30. Se consideră baza de date CĂRŢI ce conţine informaţii

despre toate cărţile dintr-o bibliotecă astfel: Cota_carte

(C8), Titlu (C25), Autor (C25), Domeniu (C20), An_apar

(N4), editura (C15), Preţ (N5). Se cere să se afişeze pe ecran:

a) să se introducă în baza de date minim 10 înregistrări;

b) câte cărţi au intrat în bibliotecă în anul X citit la intrare;

c) valoarea totală a cărţilor din bibliotecă;

d) să se şteargă din baza de date toate cărţile editurii X

citită de la tastatură;

Rezolvare: create carti

use carti

b) input 'Dati anul:' to x

count to y for an_apar=x

? 'Nr. de carti:'+str(y)

c) calculate sum(pret) to z

? 'Valoarea totala:'+str(z)

d) accept 'Dati editura:' to x

delete for editura=x

pack