Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




Subiecte pentru atestat - an scolar 2003-2004 ~ proba SGBD ~

Informatica


Subiecte pentru atestat - an scolar 2003-2004

~ proba SGBD ~



Sa se construiasca o baza de date Olimp.dbf care contine datele referitoare la olimpiada de informatica, cu urmatoarea structura: Nume( Caracter, 20), Clasa (caracter, 5), Total_p (Numeric, 3), Scoala (Caracter, 15). Se cere:

a.      sa se afiseze elevii în ordine descrescatoare a mediilor obtinute (nume si medie);

b.      sa se afiseze elevii care nu au obtinut punctajul minim, ci 16416w2214q tit de la tastatura si elevii care au obtinut punctajul maxim;

c.       sa se afiseze clasamentul pe clase.

Rezolvare:

clear

set talk off

use olimp

&& pct-ul (a) elevii in ord descr a mediilor obtinute

sort to olimp1.dbf on total_p/d

use olimp1

browse fields nume,total_p

&& pct-ul (b) elevii care nu au obtinut pct min citit de la tastatura

x=0

input 'Dati punctajul minim= ' to x

browse fields nume for total_p<x nomodify

&&(b) elevii care au pct maxim

m=0

calculate max(total_p) to m

browse fields nume for total_p=m

&& (c) clasamentul pe clase

sort to olimp2 on clasa/a, total_p/d

use olimp2

browse

close databases

Sa se creeze o baza de date Examen.dbf, cu urmatoarea structura: Nume (C, 20), Clasa (C,5), Punctaj (N, 3), Varsta (N, 2). Se cere:

a.      sa se copieze intr-un alt fisier cu aceeasi structura elevii care au peste 50 puncte, elevi care vor fi stersi din baza de date initiala;

b.      sa se afiseze noile baze de date ordonate descrescator dupa punctaj;

c.       sa se afiseze numarul de elevi cu punctaj minim

Rezolvare:

clear

set talk off

use examen

recall all

&& (a) sa se copieze in alt fis examen1 elevii>50 pcte elevii copiati vor fi stersi din && baza initiala

copy to exam1.dbf for punctaj>50

use exam1.dbf

browse

use examen

delete for punctaj>50

browse

&& (b) sa se afis noile bd ordonate descr dupa punctaj

set delete on

use examen

sort to auxi on punctaj/d

use auxi.dbf

browse

use exam1

sort to aux1.dbf on punctaj/d

use aux1.dbf

browse

&& (c) nr de elevi cu punctaj minim

use examen

x=0

calculate min(punctaj) to x

y=0

count to y for punctaj=x

? 'nr elevi cu pct minim= '+str(x)+' este '+str(y)

close data

Sa se construiasca o baza de date Geograf.dbfcu urmatoarea structura: Continent (C, 10), Tara (C, 10), Capitala (C, 15), Suprafata (N, 5), Locuitori (N, 10). Se cere:

a.      sa se afiseze care este capitala si numarul de locuitori ai tarii X (x citita de la tastatura);

b.      sa se afiseze in ce continent se afla tara cu cei mai multi locuitori;

c.       sa se afiseze tarile dintr-un continent citit de la tastatura, ordonate crescator dupa suprafata.

Rezolvare:

clear

set talk off

use geograf.dbf

&& (a) capitala si nr locuitori ai tarii x (citit de la tastat)

x='  '

accept 'pt ce tara= ' to x

browse fields capitala,locuitori for tara=x

&& (b)sa se afis in ce continent se afla tara cu cei mai multi locuitori

y=0

calculate max(locuitori) to y

browse fields continent for locuitori=y

&&(c)sa se afis tarile dintr-un continent citit de la tast,ord crescator dupa supraf

z='  '

accept 'din ce continent= ' to z

sort to geogra1.dbf on suprafata/a

use geogra1.dbf

browse fields tara for z=continent

close databases

Fie baza de date Carti.dbf cu informatii dintr-o biblioteca structurata astfel: Titlu (C,25), Autor (C, 20), Domeniu (C, 15), Pret (N, 5), An_ap (N, 4). Se cere;

a.      determinati câte carti au aparut în anul x (x citit de la tastatura);

b.      sa se calculeze câte volume ale autorului z exista în biblioteca si sa se afiseze titlulrile si anul de aparitie pentru fiecare;

c.       sa se afiseze valoarea totala a cartilor din biblioteca.

Rezolvare:

clear

set talk off

&&(a) determ cate carti au aparut in anul x (citit de la tast)

x=0

input 'dati anul= ' to x

y=0

count to y for an_ap=x

? 'au aparut ' + str(y)

&&(b)cate volume ale autorului z exista in biblio si sa se afis titlurile si anul de

&& aparitie pt fiecare

z='  '

accept 'dati autorul= ' to z

v=0

count to v for autor=z

? 'nr volume pt autorul dat= '+str(v)

browse fields titlu,an_ap for autor=z

&&(c) sa se afiseze valoarea totala a cartilor din biblioteca

s=0

sum pret to s

? 'valoarea totala= '+str(s)

close databases

Pentru un hotel s-a creat o baza de date care contine urmatoarele informatii: numarul camerei (N, 3), prima zi de închiriere (D, 8), câte zile va fi închiriata camera (N, 2), un câmp care reflecta daca camera a fost sau nu închiriata (L, 1). Se cere:

a.      pentru un turist care a venit la hotel sa se afiseze numerele camerelor libere;

b.      daca nu exista camera libera sa se afiseze pe ce data se elibereaza prima camera;

c.       sa se numere câte camere sunt ocupate si sa se afiseze numarul lor.

Rezolvare:

clear

set talk off

use hotel5.dbf

&& (a) pt un turist sa se afis nr camerelor libere

x=0

count to x for ok=.F.

? 'nr camere libere= '+str(x)

&& (b)daca nu exista cam libera sa se afis pe ce data se elibereaza prima camera

if x=0

replace uzi with pzi + kzi for ok=.t.

sort to libere.dbf on uzi/a

use libere.dbf

s=dtoc(uzi)

? 'se eliber pe data de: ' + s

else

? 'avem camere libere'

endif 

&& (c) sa se numere cate camere sant ocupate si sa se afiseze nr lor

y=0

count to y for ok=.t.

? 'nr camere ocupate= '+ str(y)

browse fields nrc for ok=.t.

close databases

Se considera o baza de date Servicii.dbf cu urmatoarea structura: Nume, Zile_lucrate, Total, Bonus, Impozit (va fi initializat cu 0) care face referire la o societate de prestari servicii. Se cere:

a.      sa se afiseze toti angajatii, mentionând numele si salariul lor;

b.      sa se afiseze persoanele care au mai mult de 30 de zile efectuate, adaugându-se o suma bonus la total (suma va fi citita de la tastatura);

c.       sa se afiseze un tabel cu datele: nume, total, bonus, impozit; impozitul fiind calculat astfel: 18% pentru persoanele fara bonus si de 25% pentru persoanele cu bonus.

Rezolvare:

clear

set talk off

use servicii.dbf

&&(a) sa se afiseze toti angajatii, mentionand numele si salariul lor

browse fields nume,total

&& (b) sa se afis pers care au >30 zile efectuate, adaugandu-se o suma bonus la

&& total(citita de la tast)

s=0

input 'care va fi bonusul= ' to s

replace bonus with s for zile_lucr>30

browse fields nume,total,bonus for zile_lucr>30

&& (c) sa se afis un tabel cu: nume,total,bonus,impozit; impozitul fiind calc astfel:

&& 18% pt pers fara bonus si de 25% pentru pers cu bonus

replace impozit with 18/100*(total) for bonus=0

replace impozit with 25/100*(total+bonus) for bonus<>0

browse fields nume,total,bonus,impozit

close databases

Sa se creeze o baza de date Masini.dbf care contine informatii despre masinile dintr-un garaj astfel: denumire, tip, firma producatoare, data achizitiei, numar km parcursi. Se cere:

a.      sa se stearga din baza de date masinile care au mai mult de 600.000 km parcursi;

b.      sa se afiseze masinile achizitionate într-un anumit an citit de la tastatura;

c.       sa se afiseze baza de date ordonata alfabetic dupa denumire.

Rezolvare:

clear

set talk off

use masini.dbf

&& (a) sa se stearga masinile > 600000 km parcursi

delete for nrkm>600000

&& pack

&& in continuare nu tin cont de ce sterg

set delete on

browse

&& (b) sa se afiseze masinile achizitionate intr-un anumit an citit de la tastatura

x=0

input 'Dati anul dorit= ' to x

browse for year(data)=x

&& (c)sa se afiseze baza de date ordonata alfabetic dupa denumire

sort to masini1.dbf on denumire/a

use masini1

browse

close databases

Se considera o baza de date Metro.dbf cu urmatoarele câmpuri: produs, firma producatoare, data expirarii, pret productie, pret vanzare, T.V.A., cantitate. Se cere:

a.      sa se calculeze pentru toate produsele valoarea T.V.A.

b.      sa se afiseze produsele expirate, dupa care sa se sterga din baza de date;

c.       sa se afiseze toate produsele care necesita o comanda urgenta la producator: produse care sunt în cantitatea zero.

Rezolvare:

clear

set talk off

use metro.dbf

recall all

&&(a) sa se calc pt toate prod val TVA

x=0

input 'dati procent T.V.A.= ' to x

replace all tva with pret_p*x/100

browse

&&(b) sa se afiseze prod expirate,dupa care sa se stearga din bd

d=date()

browse fields produs for data_exp<d

delete for data_exp<d

browse

&& pack

&&(c) sa se afis toate prod care necesita o comanda urgenta la producator:cantitatea=0

browse fields produs,firma for cantitate=0

close databases

Se considera doua baze de date Elevi.dbf (Clasa (C, 3), Nume (C, 20), Media (N, 5.2)) si Adrese.dbf (Nume (C, 20), Adresa (C, 40)). Se cere:

a.      sa se afiseze pentru un elev citit de la tastatura: clasa, adresa si media;

b.      sa se afiseze baza de date cu elevii ordonati descrescator dupa medii;

c.       sa se elimine elevii corigenti (din ambele baze de date).

Rezolvare:

clear

set talk off

use elevi.dbf

&& (a) sa se afis pt un elev citit de la tast: clasa,adr si med

x='  '

accept 'pt ce elev afisez datele: ' to x

list fields clasa,media for nume=x

use adrese.dbf

list adresa for nume=x

&& (b) sa se afis baza de date cu elevii ord descr dupa medii

use elevi.dbf

sort to elevi1.dbf on media/d

use elevi1

browse

&& (c) sa se elimine elevii corigenti (din ambele baze de date)

select 1

use elevi.dbf

select 2

use adrese.dbf

select 1

scan for media<5

delete

x=nume

select 2

delete for nume=x

select 1

endscan 

browse

select 2

browse

close data

Se da o baza de date Material.dbf (CodM (N, 6), DenM (C, 15);) si un fisier Furnizor.dbf (CodF (N, 6), DenF(C, 15), AdresaF (C, 20), CodM (N, 6), PretM (N, 7.2)). Se cere:

a.      sa se afiseze toti furnizorii unui material citit de la tastatura;

b.      sa se realizeze suma tuturor preturilor din baza de date furnizor;

c.       sa se tipareasca baza de date furnizor ordonata alfabetic dupa denumirea furnizorului.

Rezolvare:

clear

set talk off

use material.dbf

&&(a) sa se afis toti furnizorii unui material citit de la tast

x='  '

y=0

accept 'dati material= ' to x

use material.dbf

scan for denm=x

y=codm

endscan

use furnizor.dbf

browse fields denf for y=codm

&&(b) sa se realizeze suma tuturor preturilor din bd furnizor

use furnizor.dbf

s=0.0

sum pretm to s

? 'suma preturilor= '+str(s)

&&(c) sa se tipareasca bd furnizor ordonata alfabetic dupa denumirea furnizorului

sort to furniz1.dbf on denf/a

use furniz1.dbf

browse

close databases

11. Pentru evidenta biletelor de calatorie vândute la o casa de bilete, fiecare bilet se înregistreaza într-o tabela care are urmatoarea structura: nr_bilet N(6), destinatie C(20), clasa C(1), pret N(10), nr_tren C(6), data_emiterii D. Se cere:

a. vizualizarea tuturor biletelor vândute pentru o destinatie specificata.

b. sa se ordoneze baza de date dupa destinatie;

c. afisarea sumei totale încasate din biletele vândute într-o perioada calendaristica specificata.

Rezolvare:

clear

set talk off

use bilete.dbf

&&(a) vizualiz tuturor biletelor vandute pt o destinatie specificata

x='  '

accept 'pt ce destinatie= ' to x

browse for destinatie=x

&&(b) sa se ordoneze bd dupa destinatie

sort to bilete1.dbf on destinatie/a

use bilete1.dbf

browse

&&(c) afis sumei totale incasate din biletele vandute intr-o perioada calendaristica

&& specificata

accept 'de la ce data= ' to data_i

datai=CTOD(data_i)

accept 'pana la ce data= ' to data_f

dataf=ctod(data_f)

s=0

scan

if (data_em>datai) .and. (data_em<dataf)

s=s+pret

endif

endscan

? 'suma totala= '+str(s) 

close databases

12. Pentru evidenta ocuparii camerelor unui hotel, se organizeaza o tabela cu urmatoarea structura: nr_camera N(3), nume C(30), telefon L, televizor L, nr_paturi N(3), nr_zile N(3), pret N(8). Se cere:

a. sa se vizualizeze situatia tuturor camerelor ocupate din hotel;

b. vizualizarea persoanelor care au solicitat o camera pentru o perioada de mai mult de 10 zile si pretul platit de acestia

c. eliminarea din tabela a informatiilor despre o camera specificata prin numarul sau

Rezolvare:

clear

set talk off

use hotel.dbf

&& (a) sa se vizualizeze situatia tuturor cam coupate din hotel

browse for nume=' '

&& (b) vizualiz pers nrz>10 si pretul platit de acestia

browse fields nume,nr_zile,pret for nr_zile>10

&& (c) eliminarea unei camere specif prin nr sau

y=0

input 'ce camera doriti sa eliminati= ' to y

delete for nr_camera=y

&& pack

browse

close data

13. Pentru evidenta persoanelor arondate unui medic de familie, se organizeaza o tabela "PERSOANE.DBF" cu urmatoarea structura: cod_numeric C(13), nume C(30), data_nasterii D, adresa C(40). Fiecare consultatie a unui pacient este memorata în tabela "REGISTRU.DBF", care are urmatoarea structura: cod_numeric C(13), diagnostic C(40), data_consultatiei D. Se cere:

a. introducerea datelor unei persoane care solicita o înscrierea la medicul de familie

b. vizualizarea persoanelor arondate la medicul de familie care au fost consultate cel putin o data

în decursul lunii curente

c. eliminarea din tabela a unei persoane specificate prin codul numeric personal. Odata cu

eliminarea persoanei vor fi eliminate din tabela "REGISTRU.DBF" toate înregistrarile aferente

persoanei în cauza.

Rezolvare:

clear

set talk off

use persoane.dbf

&&(a) introd datelor unei pers care solicita inscrierea la medicul de familie

append

&&(b) vizualiz pers arondate la medicul de fam care au fost consultate cel putin odata && in decursul lunii curente

use persoane.dbf in 1

use registru.dbf in 2

d=date()

select 2

scan for month(data_cons)=month(d)

x=cod_n

select 1

list nume for cod_n=x

select 2

endscan 

&&(c) elim din tabela a unei pers specif prin codul num pers odata cu elimin pers vor fi && eliminate din tabela registru.dbf toate inreg aferente pers in cauza

use persoane.dbf in 1

use registru.dbf in 2

y='  '

accept 'ce cod elimin= ' to y

select 1

scan for cod_n=y

delete

select 2

delete for cod_n=y

select 1

endscan 

select 1

browse

select 2

browse

close databases

14. Pentru gestionarea produselor dintr-o magazie se utilizeaza o tabela cu urmatoarea structura: cod_produs N(4), denumire C(15), um C(4), cantitate N(6), pret_unitar N(7). Se cere:

a. afisarea tuturor produselor existente în magazie, în ordinea crescatoare a codurilor.

b. afisarea tuturor produselor care se gasesc într-o cantitate cuprinsa între doua limite date de la

tastatura

c. realizarea unei tabele cu aceeasi structura cu tabela data, dar care sa contina acele materiale

din magazie care au pretul unitar mai mare decât pretul mediu al tuturor produselor din magazie.

Rezolvare:

clear

set talk off

use magazin

&& (a) afis tut prod existente in mag, in ord cresc a codurilor

sort to maga1 on cod_p/a

use maga1

browse

&& (b) afis tut prod care se gasesc intr-o cant cuprinsa intre 2 limite date de la tast

lim1=0

lim2=0

input 'dati cantitatea limita 1= ' to lim1

input 'dati cantitatea limita 2= ' to lim2

browse for (cantitate>lim1) .and. (cantitate<lim2)

&& (c) reliz unei tabele cu aceeasi struct cu tab data,dar care sa contina acele

&& materiale din mag care au pretul unitar > pretul mediu al tuturor prod

x=0.0

average pret_u to x

? x

copy to maga2 for pret_u >x

use maga2

browse

close data

15. O agenda contine urmatoarele date structurate în tabela "AGENDA.DBF": nume C(20), data_nasterii D,

locul_nasterii C(10), adresa C(30), telefon N(6). Se cere:

a. eliminarea din tabela a informatiilor despre o persoana specificata prin numele sau

b. afisarea persoanelor nascute intr-o anumita luna pentru o localitate data.

c. cautarea unei persoane dupa numarul de telefon si afisarea datelor sale.

Rezolvare:

clear

set talk off

use agenda

recall all

&&(a)elimin din tabela a informatiilor despre o pers specif prin numnele sau

x='  '

accept 'ce pers elimin= ' to x

delete for nume=x

browse

&&(b)afis pers nascute intr-o anumita luna pt o local data

y='  '

accept 'localitate= ' to y

z=0

input 'din ce luna= ' to z

browse fields nume for (month(data_n)=z) .and. (locul_n=y)

&&(c) cautarea pers dupa nr de tel si afisarea datelor sale

nr=0

input 'ce nr tel caut= ' to nr

browse for telefon=nr

close data

16. Într-o unitate militara se pastreaza situatia angajatilor într-o baza de date cu numele ARMATA cu urmatoarea structura : NUME, GRAD, INDICE, SALAR. Se cere:

a. calculul numarului de ofiteri angajati;

b. afisarea mediei salariului din unitatea militara;

c. cautarea unei persoane angajate si afisarea informatiilor despre ea.

Rezolvare:

clear

set talk off

use armata

&&(a)calculul nr de ofiteri angajati

x=0

count to x for grad='ofiter'

nr ofiteri = '+ str(x)

&&(b)afisarea mediei salarului din unit militara

med=0.0

average salar to med

? ' salar mediu= '+str(med)

&& med cu zecimale

? med

&&(c)cautarea unei pers angajate si afis inform despre ea

y='  '

accept 'ce pers caut= ' to y

browse for nume=y

close data

17. Într-un spital se pastreaza evidenta bolnavilor într-o baza de date cu numele SPITAL cu urmatoarea structura BOLNAV, SECTIE, NRZILE, PLATA.Construiti o aplicatie care sa corespunda urmatoarelor cerinte:

a. calculul mediei nr de zile de spitalizare la fiecare sectie în parte

b. calculul sumei de bani obtinuta de spital de la toti bolnavii

c. afisarea bolnavului cu perioada de spitalizare cea mai lunga

Rezolvare:

clear

set talk off

use spital

&&(a) calc mediei nr de zile de spitaliz la fiecare sectie in parte

sort to spital1 on sectie/a

use spital1

total to grup on sectie

use grup

scan

? sectie + , ,

?? nrzile/nr

endscan

&&(b)calc sumei de bani obtinuta de spital de la toti bolnavii

y=0

sum plata to y

? 'suma= ' + str(y)

&&(c)afis bolnavului cu perioada de spitaliz cea mai lunga

z=0

calculate max(nrzile) to z

? 'perioada de spitaliz maxima= ' + str(z)

close data

18. Sa se scrie un program care sa tina evidenta abonatilor telefonici din judeul Maramures.

Programul va crea baza de date necesara (nume, prenume, localitate, adresa, nrtelefon).

a. sa afiseze numarul de telefon si adresa unui abonat introdus de la tastatura

b. sa se afiseze abonatul telefonic (nume, prenume, adresa) pentru un numar de telefon introdus

de la tastatura.

c. sa se stearga abonatii dintr-o anumita localitate data de la tastatura.

Rezolvare:

clear

set talk off

use abtel

&& (a) nr de tel si adresa unui abonat introd de la tastatura

x='  '

y='  '

accept 'Dati nume = ' to x

accept 'Dati prenume ' to y

browse fields nrtelefon,adresa for (nume=x) and (prenume=y)

&& (b) sa se afiseze abonatul tel (nume,pren,adr) pt un nr tel introd de la tastatura && de ex nr=111111

z=0

input 'Ce numar cautati= ' to z

browse fields nume,prenume,adresa for nrtelefon=z

&& (c) sa se stearga abonatii dintr-o localit data de la tast

v='  '

accept 'din ce localitate stergem= ' to v

delete for localitate=v

&& pack

browse

close databases

19. Sa se scrie un program care sa gestioneze cursantii înscrisi la o scoala de soferi. (nume, prenume, nr. total ore de conducere , punctaj realizat la testul scris final, data când s-a realizat punctajul ). Se cere:

a. sa se afiseze toti cursantii care au efectuate cel putin 28 de ore de conducere.

b. sa se afiseze toti cursantii care trebuie sa repete cursul teoretic. (au obtinut mai putin de 22 de

puncte la testul final)

c. sa se afiseze toti cursantii care nu au terminat orele de practica. (nu au cel putin 28 de ore de

conducere.

Rezolvare:

clear

set talk off

use soferi

&&(a) sa se afis toti cursantii care au efectuat cel putin 28 ore de conducere

browse fields nume,prenume,nrore for nrore>=28

&&(b)sa se afis toti cursantii care tb sa repete cursul teoretic<22 pcte la test final

browse fields nume,prenume,punctaj for punctaj <22

&&(c)sa se afis toti cursantii care nu au terminat orele de practica

&& nu au cel putin 28 ore de conducere

browse fields nume,prenume,nrore for nrore<28

close data

20. Sa se scrie un program care sa rezolve problema serviciului pe scoala a elevilor. (nume_elev, prenume elev, clasa, data când se va efectua serviciul). Se cere:

a. sa se listeze toti elevii care sunt de servici pe scoala pentru o data citita de la tastatura

b. pentru un elev citit de la tastatura sa se afiseze data în care este de servici pe scoala

c. sa se afiseze lista elevilor de serviciu in ordine alfabetica.

Rezolvare:

clear

set talk off

use scoala

&&(a)sa se listeze toti elevii care sunt de servici pe scoala

&& pt o data citita de la tastatura (ex 03.03.2004)

x=0

y=0

z=0

input 'dati luna = ' to x

input 'dati zi = ' to y

input 'dati anul = ' to z

browse for (month(data)=x) .and. (day(data)=y) .and. (year(data)=z)

&&(b)pt un elev citit de la tast sa se afis data in care este de servici pe scoala

n='  '

p='  '

accept 'nume elev = ' to n

accept 'prenume elev= ' to p

browse for (nume=n) .and. (prenume=p)

&&(c)sa se afis lista elevilor de serviciu in ordine alfabetica

sort to scoala1 on nume/a,prenume/a

use scoala1

browse

close data


Document Info


Accesari: 1811
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )