QReferate - referate pentru educatia ta.
Cercetarile noastre - sursa ta de inspiratie! Te ajutam gratuit, documente cu imagini si grafice. Fiecare document sau comentariu il poti downloada rapid si il poti folosi pentru temele tale de acasa.



AdministratieAlimentatieArta culturaAsistenta socialaAstronomie
BiologieChimieComunicareConstructiiCosmetica
DesenDiverseDreptEconomieEngleza
FilozofieFizicaFrancezaGeografieGermana
InformaticaIstorieLatinaManagementMarketing
MatematicaMecanicaMedicinaPedagogiePsihologie
RomanaStiinte politiceTransporturiTurism
Esti aici: Qreferat » Documente informatica

Baze de date - subiecte rezolvate atestat



BAZE DE DATE - SUBIECTE REZOLVATE ATESTAT



Subiectul nr.1



Sa se creeze o tabela cu structura Cod_numeric_personal, Numele, Data_angajarii, Data_nasterii si sa se introduca 8 articole cu date care sa corespunda cerintelor urmatoare:



a.  Sa se afiseze pe ecran toti angajatii cu o vechime mai mare de 10 ani;

b. Sa se afiseze toate persoanele a caror zi de nastere se sarbatoreste astazi.


Rezolvare.


Observatie Secventa urmatoare construieste tabela prin program. Ea nu mai apare in rezolvarea celorlalte subiecte, dar poate fi adaptata usor in functie de structura tabelei date. Tabela se construieste intr-o baza de date pentru a putea folosi nume de campuri lungi(mai mult de 10 caractere).


Cerinta a.


clear

create databases ate1

create table s1(cod_numeric_personal n(13),numele ;

c(12),data_angajarii d,data_nasterii d)

for i=1 to 8

append blank

@4,4 say[ cod-numeric..] get cod_numeric_personal

@5,4 say[ numele..] get numele

@6,4 say[ data-angajarii..] get data_angajarii

@7,4 say[ data-nasterii..] get data_nasterii

read

endfor

wait [Continuati d/n ?] to continua

do while (continua=[d])

append blank

@4,4 say[ cod-numeric..] get cod_numeric_personal

@5,4 say[ numele..] get numele

@6,4 say[ data-angajarii..] get data_angajarii

@7,4 say[ data-nasterii..] get data_nasterii

read

wait [Continuati d/n ?] to continua

enddo

clear

zi=day(date())

luna=month(date())

an=year(date())-10

limita=ctod(str(luna)+str(zi)+str(an))

clear

i=4

@i,5 say [Lista persoanelor cu o vechime mai mare de 10 ani]

@i+1,5 say replicate('-',75)

scan for data_angajarii<=limita

@i+2, 15 say numele

i=i+1

endscan

read time 5


Cerinta b.


clear

zi=day(date())

luna=month(date())

i=4

@i,5 say [Lista persoanelor a caror zi de nastere se sarbatoreste astazi]

@i+1,5 say replicate('-',95)

scan for day(data_nasterii)=zi and month(data_nasterii)=luna

@i+2, 15 say numele

@i+2 ,35 say data_nasterii

i=i+1

endscan


Subiectul nr.2


Sa se creeze o tabela cu structura Numar_bilet, Oras, Pret, Numar_vagon si sa se introduca 8 articole. Cerinte:

a. Sa se calculeze suma realizata in urma vanzarii tuturor biletelor inregistrate in tabela;

b.       Sa se afiseze pe ecran numarul de bilete vandute cu destinatia un anumit oras X, citit de la tastatura.



Rezolvare.


Cerinta a.


suma=0

scan

suma=suma+pret

endscan

clear

@4,4 say[Suma totala este:]+str(suma)

read time 5



Cerinta b.


clear

accept[Introduceti destinatia..] to orase

count for oras=orase to nrorase

@4,4 say[Numarul de bilete vandute:]+str(nrorase)


Subiectul nr.3


Sa se creeze o tabela cu structura Cod_caseta, Nume_film, Actor_principal, Tip. Sa se introduca in tabela minimum 8 articole, cu date care sa corespunda urmatoarelor cerinte:

a.   Sa se stearga din tabela toate filmele de tip HORROR;

b.       Sa se listeze pe monitor toate filmele in care joaca actorul RICHARD GERE.


Rezolvare.


Cerinta a


scan for tip=[HORROR]

delete

endscan

pack


Cerinta b.


i=4

clea

@i-1,5 say repl('-',103)

@i,5 say [Cod caseta]

@i,20 say [Nume film]

@i,35 say [Actor principal]

@i,55 say [Tipul casetei]

@i+1,5 say replicate('-',103)

scan for actor_principal=[RICHARD GERE]

@i+2,2 say cod_caseta

@i+2,22 say nume_film

@i+2,35 say actor_principal

@i+2,57 say tip

i=i+1

endscan


Subiectul nr.4


Sa se creeze o tabela cu urmatoarea structura Cod_furnizor, Cod_material, Nume_material, Pret, Cantitate. Sa se introduca in tabela minimum 8 articole. Cerinte:

a.   Sa se afiseze toate ofertele pentru materialul X - dat de la tastatura, crescator, dupa pretul oferit;

b.       Sa se afiseze pretul total al materialelor oferite de furnizorul Y - citit de la tastatura.

Datele introduse in tabela trebuie sa corespunda cerintelor enuntate mai sus


Rezolvare


Observatie: inregistrarile care nu indeplinesc conditiile cerute sunt sterse temporar. Ele se deselecteaza prin instructiunea recall all.

Cerinta a.


clear

use s4

accept[ Numele materialului..] to tip

delete for nume_material<>tip

set deleted on

set order to pret

i=4

clea

@i-1,5 say repl('-',103)

@i,5 say [Cod furnizor]

@i,20 say [Cod material]

@i,35 say [Nume material]

@i,55 say [Pretul]

@i,65 say [Cantitate]

@i+1,5 say replicate('-',103)

scan

@i+2,5 say cod_furnizor

@i+2,23 say cod_material

@i+2,39 say nume_material

@i+2,53 say pret

@i+2,67 say cantitate

i=i+1

endscan

read time 5

recall all


Cerinta b.


clear

input [Introduceti codul furnizorului..] to cod

delete for cod_furnizor<>cod

set deleted on

p=0

scan

p=p+pret*cantitate

endscan

? [Suma calculata=],p

recall all




Subiectul nr.5


Sa se creeze o tabela cu structura: Nume_muncitor, Cod_atelier, Numar_piese_produse si sa se introduca 8 articole (un articol-un muncitor, codul unui atelier este un numar de la 1 la 9. Pot fi mai multi muncitori intr-un atelier si toti au nume diferite). Cerinte:

a.   Sa se afiseze numarul atelierelor din tabela;

b.       Sa se afiseze numarul de piese produse de fiecare atelier.

Rezolvare.

Cerinta a.


clear

select 1

use s5

index on cod_atelier tag ateliere unique

count to nratelier

@2,2 say [Numar ateliere:]+str(nratelier)

read time 5


Cerinta b.


clear

select 2

use s5 again

select 1

scan

atelier=cod_atelier

select 2

nrpiese=0

scan for cod_atelier=atelier

nrpiese=nrpiese+numar_piese_produse

ends

? [Atelierul],atelier,nrpiese

select 1

endscan


Subiectul nr.6


Sa se creeze o tabela cu structura: Nume_muncitor, Cod_atelier, Numar_piese_produse si sa se introduca 8 articole (un articol-un muncitor, codul unui atelier este un numar de la 1 la 9. Pot fi mai multi muncitori intr-un atelier si toti au nume diferite). Cerinte:

a.       Sa se afiseze codul atelierului din tabela cu cei mai multi muncitori;

b.      Sa se afiseze codurile atelierelor in care numarul de piese produse este mai mare decit o valoare data de la tastatura.



Rezolvare.


Observatie: cerinta b. s-a rezolvat cu instructiunea SQL  Select.


Cerinta a.


clear

note index on cod tag atel

set order to atel

maxi=0

k=0

c=cod

scan

if cod=c

k=k+1

else

if maxi<k

maxi=k

Clear

?[ Lista codurilor]

?c

else

if maxi=k

?c

endif

endif

k=1

c=cod

endif

endscan

if maxi=k

?c

endif


Read time 5

clear

( Rezolvare propusa de Bercea Teodor)



Cerinta b.


SELECT S6.cod_atelier, sum(numar_piese_produse) as total;

FROM ate6!s6;

GROUP BY S6.cod_atelier;

INTO TABLE coduri.dbf

input[ Limita de piese..] to numar

i=4

@i-1,5 say replicate('-',44)

@i,5 say [Cod atelier]

@i,19 say [Numar muncitori]

@i+1,5 say replicate('-',44)

scan for total>numar

@i+2,5 say cod_atelie

@i+2,25 say total

i=i+1

endscan

use


Subiectul nr.7


Sa se creeze o tabela cu structura: Nume_muncitor, Cod_atelier, Numar_piese_produse si sa se

introduca 8 articole (un articol-un muncitor, codul unui atelier este un numar de la 1 la 9. Pot fi mai multi muncitori intr-un atelier si toti au nume diferite). Cerinte:

a.   Se sterg articolele pentru care productia unui muncitor este mai mica decat o valoare data de la tastatura. Sa se afiseze numele acestora si codurile atelierelor din care faceau parte;

b.       Sa se afiseze numarul atelierelor ce au ramas cu cel mult doi muncitori in urma stergerii articolelor de la cerinta a).


Rezolvare.


Cerinta a.


clear

select 1

use s7

select 2

create table ateliere(cod_atelier n(8))

append from s7

index on cod_atelier tag atelier unique

select 1

i=4

clear

input[numarul minim de piese ] to piese

@i-1,5 say replicate([-],33)

@i,5 say [Nume muncitor]

@i,25 say [Cod atelier]

@i+1,5 say replicate([-],33)

scan for numar_piese_produse<piese

@i+2,8 say nume_muncitor

@i+2,23 say cod_atelier

i=i+1

delete

endscan

pack

read time 5


Cerinta b.


clear

select 2

contor=0

scan

atelier=cod_atelier

select 1

count for cod_atelier=atelier to numar

if numar<3

contor=contor+1

endif

select 2

endscan

@5,5 say [Numarul atelierelor cu cel mult 2 ;

angajati:]+str(contor)

select 1


Subiectul nr.8


Sa se creeze o tabela cu structura: Nume_muncitor, Cod_atelier, Numar_piese_produse, Salariul si sa se introduca 8 articole (un articol-un muncitor, codul unui atelier este un numar de la 1 la 9. Pot fi mai multi muncitori intr-un atelier si toti au nume diferite). Cerinte:

a.   Toti muncitorii ce au produs un numar de piese mai mare cu cel putin 10% decat o valoare citita de la tastatura vor avea salariul majorat cu 10%. Sa se afiseze salariile acestora (dupa marirea salariilor) si codul atelierelor din care faceau parte;

b.       Sa se afiseze suma totala necesara maririi salariilor de la cerinta a) si codul atelierului cu cei mai multi muncitori cu salarii marite.

Rezolvare.

Cerinta a.

clear

declare v[10]

for i=1 to 9

v[i]=0

endfor

clear

input [ Numarul de piese..] to piese

piese=int(piese*110/100)

sume=0

i=4

@i-1,5 say replicate([-],33)

@i,5 say [Salariul]

@i,18 say [Cod atelier]

@i+1,5 say replicate([-],33)


scan for numar_piese_produse>=piese

v[cod_atelier]=v(cod_atelier)+1

sume=sume+int(salariul*110/100)-salariul

replace salariul with int(salariul*110/100)

@i+2, 2 say salariul

@i+2,12 say cod_atelier

i=i+1

endscan

read time 5


Cerinta b.


clear

@5,5 say [Suma suplimentara=]+str(sume)

maxim=0

for i=1 to 9

if v[i]>maxim

maxim=v[i]

atelier=i

endif

endfor

@7,5 say [Codul atelierului . fruntas:]+str( atelier)


Subiectul nr.9


Sa se creeze o tabela cu structura: Nume_muncitor, Cod_atelier, Numar_piese_produse, Varsta si sa se introduca 8 articole (un articol-un muncitor, codul unui atelier este un numar de la 1 la 9. Pot fi mai multi muncitori intr-un atelier si toti au nume diferite). Cerinte:

a.   Pentru a putea lucra in strainatate, un muncitor trebuie sa aiba o varsta cel mult egala cu o valoare citita de la tastatura si sa produca un numar de piese cel putin egal cu o valoare data de la tastatura. Sa se afiseze numele celor ce indeplinesc ambele conditii si atelierele in care lucreaza acestia;

b.       Sa se afiseze numarul mediu de piese produse de toti cei selectati la prima cerinta.


Rezolvare.


Cerinta a.


clear

input[Varsta limita:] to ani

input[Numar minim de piese:] to piese

i=7

@i-1,5 say replicate([-],27)

@i,5 say [Nume muncitor]

@i,18 say[ Cod atelier]

@i+1,5 say replicate([-],27)

sume=0

numar=0

scan for varsta>=ani and numar_piese_produse>=piese

@i+2,7 say nume_muncitor

@i+2,18 say cod_atelier

i=i+1

numar=numar+1

sume=sume+numar_piese_produse

endscan


Cerinta b.


medie=sume/numar

@i+10,5 say [Numarul mediu de piese:]

@i+10,28 say medie


Subiectul nr.10


Sa se creeze o tabela cu structura: Nume_muncitor, Cod_atelier, Numar_piese_produse, Numar_copii_minori si sa se introduca 8 articole (un articol-un muncitor, codul unui atelier este un numar de la 1 la 9. Pot fi mai multi muncitori intr-un atelier si toti au nume diferite). Cerinte:

a.   Sa se afiseze o lista cu muncitorii din fiecare atelier (codul atelierului si apoi toti muncitorii din acel atelier si la fel pentru fiecare atelier);

b.       Sa se afiseze numarul tuturor copiilor minori ai tuturor muncitorilor din tabela.



Rezolvare.


Observatie.


Se deschide tabela in doua zone de lucru si se creaza un index unic intr-una dintre zone, pentru a obtine lista atelierelor. Pentru a obtine suma copiilor se foloseste functia  sum.


Cerinta a.


clear

select 1

use s10 again

select 2

use s10 again

index on cod_atelier tag atelier unique

scan

atelier=cod_atelier

select 1

i=4

@i,5 say[Atelierul ]+str(atelier)

scan for cod_atelier=atelier

@i+4,5 say nume_muncitor

i=i+1

endscan

select 2

read time 4

clear

endscan


Cerinta b.


set talk off

select 1

sum(numar_copii_minori) to copii

@15,5 say[ Numar total de copii]+str(copii)



Subiectul nr.11



Sa se creeze o tabela cu structura: Nume_muncitor, Cod_atelier, Numar_piese_produse si sa se introduca 8 articole (un articol-un muncitor, codul unui atelier este un numar de la 1 la 9. Pot fi mai multi muncitori intr-un atelier si toti au nume diferite). Cerinte:

a.   Sa se afiseze numarul mediu de piese produse de un muncitor (numar total piese / numar muncitori);

b.       Sa se afiseze numarul mediu de piese produse in fiecare atelier (numar total piese / numar ateliere).


Observatie.

Se obtine lista atelierelor ca  la problema precedenta. Pentru calcularea mediei se foloseste functia avg in instructiunea calculate.


Rezolvare.


Cerinta a.


select 1

use s11

clear

calculate avg(numar_piese_produse) to medie

@5,5 say [Media pieselor]

@5,19 say medie

read time 4

clear

select 2

use s11 again

index on cod_atelier tag atelier unique

scan

atelier=cod_atelier

select 1

piese=0

numar=0

scan for cod_atelier=atelier

piese=piese+numar_piese_produse

numar=numar+1

endscan

medie=piese/numar

@5,5 say [Atelierul]+str(atelier)

@7,5 say [Media pe atelier]

@7,24 say medie

select 2

read time 4

clear

endscan



Subiectul nr.12


Sa se creeze o tabela cu structura: Nume_muncitor, Cod_atelier, Numar_piese_produse si sa se

introduca 8 articole (un articol-un muncitor, codul unui atelier este un numar de la 1 la 9. Pot fi mai multi muncitori intr-un atelier si toti au nume diferite). Cerinte:

a.   Sa se stearga articolele referitoare la muncitorii ce produc un numar de piese mai mai mic decat un numar dat de la tastatura si sa se depuna intr-o tabela noua (cu structura: Nume_muncitor, Numar_piese), apoi sa se sorteze alfabetic noua tabela dupa campul Nume_muncitor si sa se afiseze sortata;

b.       Sa se afiseze tabela initiala, dupa transferul precizat la cerinta a).

Rezolvare.


Cerinta a.


select 1

use s12 again

clear

input [Limita de piese..] to piese

select 2

create table elimin(nume_muncitor c(13);

,numar_piese_produse n(4))

select 1

scan for numar_piese_produse<piese

n=nume_muncitor

p=numar_piese_produse

delete

select 2

append blank

replace nume_muncitor with n

replace numar_piese_produse with p

select 1

endscan

pack

select 2

use elimin agai

index on nume_muncitor tag nume

i=4

@i-1,5 say replicate([-],45)

@i,5 say [Nume muncitor]

@i,22 say [Numar de piese]

@i+1,5 say replicate([-],45)

scan

@i+2,5 say nume_muncitor

@i+2,22 say numar_piese_produse

i=i+1

endscan

read time 6


Cerinta b.


select 1

clear

@i-1,5 say replicate([-],45)

@i,5 say [Nume muncitor]

@i,22 say [Cod atelier]

@i,34 say [Numar de piese]

@i+1,5 say replicate([-],45)

scan

@i+2,5 say nume_muncitor

@i+2,20 say cod_atelier

@i+2,36 say numar_piese_produse

i=i+1

endscan


Subiectul nr.13


Sa se creeze o tabela cu structura: Nume_muncitor, Cod_atelier, Numar_piese_produse si sa se

introduca 8 articole (un articol-un muncitor, codul unui atelier este un numar de la 1 la 9. Pot fi mai multi muncitori intr-un atelier si toti au nume diferite). Cerinte:

a.   Se citeste de la tastatura un cod de atelier existent in tabela. In acel atelier se angajeaza un muncitor nou pentru care se introduc date de la tastatura. Campul Numar_piese se va completa cu valoarea 0.  Sa se afiseze apoi numarul minim necesar de piese pe care noul venit trebuie sa le produca astfel incat productia medie a acelui atelier sa nu scada;

b.       Se citeste de la tastatura un nume de muncitor si un cod de atelier. Daca muncitorul figureaza in acel atelier din tabela, atunci sa i se schimbe codul atelierului sau cu un alt cod dat (existent in tabela) de la tastatura (se muta de la un atelier la altul). Daca acel muncitor nu figureaza in atelierul dat, atunci se va da un mesaj.


Rezolvare.


Cerinta a.


clear

input [Introduceti codul atelierului..] to atelier

numar=0

piese=0

scan for cod_atelier=atelier

numar=numar+1

piese=piese+numar_piese_produse

endscan

medie=piese/numar+1


append blank

@4,4 say[ nume-muncitor..] get nume_muncitor

replace cod_atelier with atelier

replace numar_piese_produse with 0

read

@8,5 say [Numarul minim este]+str(medie)


read time 5


Cerinta b.


clear

accept [Introuceti numele..] to num

input [Introuceti codul atelierului..] to c

locate for nume_muncitor=num and cod_atelier=c

if found()

input [Introduceti codul noului atelier..] to codnou

replace cod_atelier with codnou

else

wait window [Muncitorul nu figureaza in atelier !!]

endif



Subiectul nr.14


Sa se creeze o tabela cu structura: Nume_muncitor, Cod_atelier, Numar_piese_produse si sa se introduca 8 articole (un articol-un muncitor, codul unui atelier este un numar de la 1 la 9. Pot fi mai multi muncitori intr-un atelier si toti au nume diferite). Cerinte:

a.   Muncitorul/muncitorii cu numar maxim de piese produse se va / se vor transfera la alt loc de munca. Sa se afiseze in ordine alfabetica numele celor transferati;

b.       Sa se afiseze numarul mediu de piese produse de catre cei ramasi in vechile ateliere.


Rezolvare.


Cerinta a


select 1

use s14 again

clear

select 2

create table maximi(nume_muncitor c(13))

select 1

calculate max(numar_piese_produse) to maxim

scan for numar_piese_produse=maxim

nume=nume_muncitor

delete

select 2

append blank

replace nume_muncitor with nume

select 1

endscan

select 2

index on nume_muncitor tag nume

clear

i=4

@i,5 say [Muncitori transferati]

scan

@i+2,5 say nume_muncitor

i=i+1

endscan

read time 5


Cerinta b.


clear

select 1

set deleted on

piese=0

numar=0

scan

piese=piese+numar_piese_produse

numar=numar+1

endscan

medie=int(piese/numar)

@5,4 say [Media este]+str(medie)

endif



Subiectul nr.15


Sa se creeze o tabela cu structura: Cod_material, Pret_unitar, Cantitate, Stoc_necesar si sa se introduca 8 articole (un articol-un produs dintr-un depozit; cantitate = existentul in depozit; stoc_necesar = cantitatea minima necesara in depozit; valoarea unui produs = cantitatea * pret_unitar). Cerinte:

a.   Sa se afiseze codurile produselor pentru care cantitatea existenta este mai mica decat stocul necesar. Pentru fiecare dintre aceste produse se va afisa ce cantitate trebuie adaugata pentru a se realiza o cantitate egala cu acel stoc_ necesar;

b.       Sa se afiseze codurile produselor ce au cantitate mai mare cu cel putin 20% decat stoc_necesar, in ordinea codurilor


Rezolvare.


Cerinta a.


clear

i=4

@i-1,5 say replicate([-],33)

@i,5 say [Cod material]

@i,18 say[Cantitate necesara]

@i+1,5 say replicate([-],33)


scan for cantitate<stoc_necesar

@i+2,5 say cod_material

@i+2,18 say str(stoc_necesar-cantitate)

i=i+1

endscan


read time 11

Cerinta b.


clear

index on cod_material tag cod

i=4

@i,5 say [Codul materialului]

scan

if cantitate>int(stoc_necesar*120/100)

@i+2,8 say cod_material

endif

i=i+1

endscan




Subiectul nr.16


Sa se creeze o tabela cu structura: Cod_material, Pret_unitar, Cantitate, Stoc_necesar si sa se introduca 8 articole (un articol-un produs dintr-un depozit; cantitate = existentul in depozit; stoc_necesar = cantitatea minima necesara in depozit; valoarea unui produs = cantitatea * pret_unitar). Cerinte:

a.   Se citesc de la tastatura un cod de material si o cantitate. Daca acel produs este in tabela si daca se poate livra (cantitatea din depozit este cel putin egala cu cea citita), atunci sa se afiseze cantitatea ramasa in depozit dupa livrare. Daca acea cantitate ramasa in depozit este mai mica decat stocul_necesar, se va da un mesaj. Daca nu exista acel produs, sau nu e in cantitatea dorita, se va da un alt mesaj;

b.       Se citesc de la tastatura un cod de material ( c ) si o cantitate (k). Daca acel cod corespunde unui produs existent, atunci se va mari pentru el cantitatea existenta in depozit cu valoarea k. Daca nu exista, atunci se va adauga un nou articol cu campurile pret_unitar si stoc_necesar citite de la tastatura.

Rezolvare.


Cerinta a.


define window geam from 2,2 to 15,33 ;

color r*/gr+ font [arial],14

clear

input [Introduceti codul materialului ] to cod

locate for cod_material=cod

if not found()

wait window [Materialul solicitat nu se vinde in acest magazin !]

else

input [Introduceti cantitatea solicitata ] to cant


if cantitate>=cant

replace cantitate with cantitate-cant

wait window [Cantitatea ramasa:]+str(cantitate)

if cantitate<stoc_necesar

for i=1 to 4

activate window geam

@3,3 say [Stoc insuficient !!]

read time 1/2

deactivate window geam

read time 1/2

endfor

endif

else

wait window [Nu dispunem de intreaga cantitate solicitata !]

endif

endif

read time 1


Cerinta b.


clear

input [Introduceti codul materialului ] to c

input [Introduceti cantitatea ] to k

locate for cod_material=c

if found()

replace cantitate with cantitate+k

else

append blank

clear

@5,5 say [Introduceti pretul..] get pret_unitar

@6,5 say [introduceti stocul necesar..] get stoc_necesar

read

replace cod_material with c

replace cantitate with k

endif

read time 2

clear

select 1




Subiectul nr.17


Sa se creeze o tabela cu structura: Nume_autor, Titlu, Nr_exemplare_imprumutate, Data_imprumut si sa se introduca cel putin 8 articole. Cerinte:

a.   Sa se afiseze numele autorului cu cele mai multe titluri;

b.       Sa se afiseze numele autorului cu cele mai putine carti solicitate pentru imprumut in luna curenta.


Rezolvare.


Cerinta a.


set talk off

clear

calculate max(nr_exemplare_imprumutate) to maxi

scan for nr_exemplare_imprumutate=maxi

],nume_autor

endscan

read time 5


Cerinta b


clear

calculate min(nr_exemplare_imprumutate) to maxi

scan for nr_exemplare_imprumutate=maxi

],nume_autor

endscan



Subiectul nr.18


Sa se creeze o tabela cu structura: Nume_angajat, Salariu, Numar_copii_minori, Numar_zile_concediu_medical si sa se introduca cel putin 8 articole. Un articol reprezinta un angajat din intreprindere. Cerinte:

a.   Sa se afiseze numele angajatului cu cele mai multe zile de concediu medical;

b.       Sa se afiseze salariul mediu al celor ce au avut concediu medical si care au cel putin un copil minor.



Rezolvare.


Cerinta a.


set talk off

clear

calculate max(numar_zile_concediu_medical) to maxi

clear

i=4

@i-1,5 say replicate([-],44)

@i,5 say [Numele angajatului]

@i+1,5 say replicate([-],44)

scan for numar_zile_concediu_medical=maxi

@i+2,14 say  nume_angajat

i=i+1

endscan

read time 3


Cerinta b.


clear

calculate avg(salariu) for numar_zile_concediu_medical>0 and ;

numar_copii_minori>0 to med

@5,5 say [Salariul mediu]

@5,22 say med



Subiectul nr.19


Sa se creeze o tabela cu structura: Nume_medic, Nume_pacient, Diagnostic, Data_consultului, si sa se introduca cel putin 8 articole. Un articol reprezinta un pacient dintr-o policlinica (un consult - un articol). Cerinte:

a.   Sa se afiseze numarul pacientilor consultati in luna curenta de catre un medic al carui nume se introduce de la tastatura;

b.       Sa se afiseze diagnosticul cel mai frecvent pus in luna curenta.



Rezolvare.


Cerinta a.


use s21 again

clear

set exact on

delete for not(month(data_consultului)=month(date())and ;

year(data_consultului)=year(date()))

accept [Nume medic..] to nume

count for nume_medic=nume to tot

@5,5 say [Numarul de pacienti:]+str(tot)

read time 3

clear


Cerinta b.


alter table s21 add column total n(3)

select 2

use s21 again

index on diagnostic tag diag unique

scan

d=diagnostic

select 1

count for diagnostic=d to sume

select 2

replace total with sume

endscan

calculate max(total) to maxi

i=4

@i-1,5 say replicate([-],44)

@i,5 say [diagnosticul cel mai frecvent]

@i+1,5 say replicate([-],44)

scan for total=maxi

@i+2,14 say  diagnostic

i=i+1

endscan

recall all



Subiectul nr.20


Sa se creeze o tabela cu structura: Nume_elev, Clasa, Promovat si sa se introduca cel putin 8 articole. Un articol reprezinta un elev dintr-o clasa a unei scoli. Cerinte:

a.   Sa se afiseze clasa cu cel mai mare procent de promovabilitate.

b.       Sa se afiseze numele elevilor nepromovati dintr-o clasa data de la tastatura.

Rezolvare.


Cerinta a.


clear

set talk off

alter table s23 add column total n(5,2)

select 2

use s23 again

index on clasa tag clasa unique

scan

cl=clasa

select 1

count for clasa=cl and promovat to sume

count for clasa=cl to numar

select 2

replace total with sume/numar

endscan

calculate max(total) to maxi

i=4

@i-1,5 say replicate([-],44)

@i,5 say [Clasa cu cel mai mare procent]

@i+1,5 say replicate([-],44)

scan for total=maxi

@i+2,15 say clasa

i=i+1

endscan

select 1

read time 3

clear


Cerinta b.


accept [Introduceti clasa:] to cl

i=4

@i-1,5 say replicate([-],46)

@i,5 say [Elevii nepromovati din clasa ]+cl

@i+1,5 say replicate([-],46)

scan for clasa=cl and not promovat

@i+2,15 say nume_elev

i=i+1

endscan


Subiectul nr.21


Sa se creeze o tabela cu urmatoarea stuctura:Cod_aliment, Den_aliment, Calorii in care introduceti minimum 8 articole. Cerinte:

a.   Sa se adauge la sfarsitul tabelei 3 inregisrari noi;

b.       Sa se afiseze o lista avand campurile: den_aliment, calorii, in ordinea descrescatoare a caloriilor.



Rezolvare.


Cerinta a.


clear

@2,2 say [Se introduc 3 noi inregistrari]

for i=1 to 2

append blank

@4,4 say[ cod aliment..] get cod_aliment

@5,4 say[ den aliment..] get den_aliment

@6,4 say[ calorii..] get calorii

read

endfor


Cerinta b.


clear

index on calorii tag k descending

set talk off

i=4

@i-1,5 say replicate([-],44)

@i,5 say [Denumire aliment]

@i,26 say [Calorii]

@i+1,5 say replicate([-],44)

scan

@i+2,5 say den_aliment

@i+2,27 say calorii

i=i+1

endscan



Subiectul nr.22


Sa se creeze la nivel de intreprindere o tabela cu urmatoarea stuctura: Nume, Cod_pers, Adresa, Salariul in care introduceti minimum 8 articole. Cerinte:

a.   Sa se modifice adresa angajatului al carui nume a fost citit de la tastatura;

b.       Sa se afiseze salariul mediu pe intreprindere.



Rezolvare.


Note Cerinta a.


clear

accept[ Introduceti numele ] to n

locate for nume= n

if found()

@4,5 say [Modificati adresa:]

@ 5,5 say adresa get adresa

read

else

wait window [Persoana nu figureaza in tabela !!]

endif

read time 3

clear


note Cerinta b.


set talk off

calculate avg(salariul) to med

@ 5,5 say [Salariul mediu este:]+str(med)



Subiectul nr.23


Sa se creeze o tabela cu rezultatele sportivilor la Campionatul European de fotbal in care introduceti minimum 8 articole. Sructura tabelei este urmatoarea: Nume_sportiv, Tara,  Goluri_marcate. Cerinte:

a.   Sa se afiseze numarul tarilor participante;

b.       Sa se afiseze numele sportivilor, numarul de goluri marcate ale unei tari citite de la tastatura.


Rezolvare.


Cerinta a.


clear

index on tara tag tari unique

count to numar

@5,5 say[Numarul tarilor participante:]+str(numar)

read time 3


Cerinta b..


clear

set order to

accept [Introduceti tara:] to tari

i=4

@i-1,5 say replicate([-],48)

@i,5 say [Numele jucatorului]

@i,26 say [Numar goluri]

@i+1,5 say replicate([-],44)


scan for tara=tari

@i+2,11 say nume_sportiv

@i+2,27 say tara

i=i+1

endscan


Subiectul nr.24


Un depozit aprovizioneaza cu produse mai multe magazine. Sa se creeze o tabela cu urmatoarea structura: Cod_produs, Data_livrare, Pret_unitar, Cantitate, Unitate_masura, Cod_magazin in care introduceti minimum 8 articole. Cerinte:

a.   Pentru o data_livrare Y (citita de la tastatura) sa se afiseze toate codurile magazinelor si produsele cu care au fost aprovizionate;

b. Sa se determine produsul cel mai solicitat in data_livrare X (citita de la tastatura) si sa se afiseze valoarea totala obtinuta prin vanzarea lui.


Rezolvare.


Cerinta a.


clear


note alter table s27 add column total n(2)

input [Introduceti data calendaristica] to d

clear

i=4

@i-1,5 say replicate([-],44)

@i,5 say [Cod magazin]

@i,21 say [Cod produs]

@i+1,5 say replicate([-],44)


scan for data_livrare=d


@i+2,10 say cod_magazin

@i+2,25 say cod_produs

i=i+1

endscan

read time 3


Cerinta  b


clear

select 2

use s27 again

delete for data_livrare <> d

set deleted on

index on cod_produs tag cod unique

scan

c=cod_produs

sele 1

count for cod_produs=c to numar

sele 2

replace total with numar

endscan

calculate max(total) to maxi

i=4

@i-1,5 say replicate([-],44)

@i,5 say [Cod produs]

@i+1,5 say replicate([-],44)

scan for total=maxi

@i+2,15 say cod_produs

i=i+1

endscan


Subiectul nr.25


Un magazin se aprovizioneaza cu produse de la mai multe depozite. Creati tabela cu urmatoarea structura: Cod_produs, Cantitate, Pret_unitar, Unitate_masura, Cod_depozit, Data_aprovizionare in care introduceti minimum 8 articole. Cerinte:

a.   Pentru un produs dat, afisati cantitatea cu care s-a aprovizionat magazinul in luna X (citita de la tastatura);

b.       Afisati valoarea totala a marfurilor transferate de la un depozit cu codul Z (citit de la tastatura).



Rezolvare.


Cerinta a.



clear

input [Introduceti luna..] to l

input [Introduceti anul..] to a

cant=0

input [Produs..] to k

scan for month(data_aprovizionare)=l and;

year(data_aprovizionare)=a and cod_produs=k

cant=cant+cantitate

endscan

@5,6 say [Cantitatea totala]+str(cant)

wait


Cerinta b.


clear

input[Introduceti cod depozit] to z

suma=0

scan for cod_depozit=z

suma=suma+pret_unitar*cantitate

endscan

@6,7 say[valoare totala]+str(suma)



Nu se poate descarca referatul
Acest document nu se poate descarca

E posibil sa te intereseze alte documente despre:


Copyright © 2024 - Toate drepturile rezervate QReferat.com Folositi documentele afisate ca sursa de inspiratie. Va recomandam sa nu copiati textul, ci sa compuneti propriul document pe baza informatiilor de pe site.
{ Home } { Contact } { Termeni si conditii }