Fox Pro Neintensiv

Subiectul nr. 1
Se da fisierul de date
Elevi.dbf
Nr_matricol
Nume
Adresa
Clasa
Medie
a) Se cauta un elev pe baza nr.matricol (citit de la tastatura) si se afiseaza clasa, numele, adresa, media
b) Sa se creeze un nou fisier, cu aceeasi structura, pentru toti elevii dintr-o clasa citita de la tastatura.
CLEAR
WAIT “punctul a”
USE elevi
STORE 0 TO nr
@ 10,10 say “nr matricol” get nr
READ
SET FILTER TO nr=nr_matr
BROWSE FIELDS nume, clasa, adresa, medie
USE

CLEAR
WAIT “punctul b”
USE elevi
STORE 0 TO c
@ 10,10 say “clasa” get c
READ
COPY TO nou FOR clasa =c
USE nou
BROWSE
use

Subiectul nr.2
Se da fisierul:
Apart.dbf
Nr_apart
Familia
Nr_pers
Suprafata

Obs. Baza de date Apart.dbf trebuie sa contina inregistrari si pentru apartamentele goale (de exemplu, daca exista o inregistrare pentru apartamentul 20, trebuie sa existe cate o inregistrare pentru toate apartamentele de la 1 la 19, continand nr_apart si suprafata).

a) Sa se mute o persoana in/din apartament
Obs: Dintr-un apartament se pot muta maxim atatea persoane cate exista, iar daca un apartament ramane gol se va sterge numele familiei.
b) Dandu-se factura de incalzire (cheltuielile pentru incalzire se calculeaza in functie de suprafata, in metri patrati , a apartamentului) sa se afiseze lista cu cheltuielile lunare pentru incalzire pentru fiecare apartament.
set talk off
close all
use apart
clear
wait ‘punctul a’

browse
clear
caldura=0
tot_sup=0
@7,5 say “Introduceti factura de caldura ” get caldura valid caldura>=0
read
go top
scan
tot_sup=tot_sup+suprafata
endscan
clear
@9,5 say “Cheltuielile se calculeaza pentru “+”o suprafata de “+str(tot_sup,4)+’ mp.’
?” Apart. Familia Caldura “
?”______________________________________”
scan
if not(empty(familia))
?str(nr_apart,10)
??” “+familia
??str(suprafata*(caldura/tot_sup),10)
endif
endscan
wait
use
return

Subiectul nr.3
Fie fisierul:
Carti.dbf
Autor
Titlu
Editura
Cota
Imprumutat
Data_imp

a) Sa se achizitioneze o noua carte.
b) Sa se afiseze toate cartile ale unui anumit autor (al carui nume se introduce de la tastatura) care nu sunt imprumutate.
clear
use carti
append blank
browse
clear
store replicate(‘ ‘,15) to numea
@ 1,10 say ‘Introduceti autorul ‘ get numea
read
locate for Autor=numea and Imprumutat=.F.
@ 3,1 say ‘Autor Titlul’
store 4 to rind
do while not eof()
@ rind,1 say Autor+’ ‘+Titlu
rind=rind+1
continue
enddo
wait
use

Subiectul nr. 4

Fie baza de date FILME.DBF care cuprinde principalele producţii cinematografice din secolul XX, cu următoarea structură:

Nume_film
Gen
Ţara
An
Regizor

a) Sa se afiseze filmele produse în România intr-un anumit an;
b) Care sunt filmele de de un anumit gen (citit de la tastatura) produse în România ?
c) Sa se creeze un nou fisier cu lista filmelor regizate de un anumit regizor.

set safety off
set talk off
use filme
clear
wait ‘punctul a’

set filter to tara=”ROMANIA”
browse
use
clear

wait ‘punctul b’

store replicate(‘ ‘,20) to g
@ 10,10 say ‘Dati genul’ get g
read
use filme
set filter to g=gen and tara=”ROMANIA”
brow
use

wait ‘punctul c’

store replicate(‘ ‘,20) to g
@ 10,10 say ‘Dati regizorul’ get g
read
use filme
copy to filmnou for g=regizor
use
use filmnou
browse
use

Subiectul nr. 5
Biroul de vanzari al unei unitati utilizeaza urmatorul fisier care contine informatii despre clientii firmei:
Clienti.dbf
Nrcrt
Client - nume client
Adresac - adresa client
Denp - denumire produs
Data - data livrarii
Cant_livrata

a) Sa se afiseze cantitatea livrata unui client (citit) dintr-un anumit produs (citit)
b) Sa se afiseze produsele livrate in ultimele 10 zile
clear
wait ‘punctul a’

clear
use clienti
STORE REPLICATE (‘ ‘,20) TO nume,prod
@ 10,10 say “numele clientului” get nume
@ 11,10 say “produsul” get prod
READ
SET FILTER TO nume=client AND prod=denp
browse fields Cant_livra
use

clear
wait ‘punctul b’
use clienti
set filter to Data>=date()-10
browse fields Client,Denp,Cant_livra
use

Subiectul nr. 6
La un oficiu postal se tine evidenta abonamentelor la reviste utilizand fisierul:
Abonament.dbf
Nr_crt
Nume_abonat
Adresa
Nume_rev
Pret
Data
Nr_luni
unde Pret reprezinta pretul unei reviste Nume_rev, pentru fiecare abonament nou existand cate o inregistrare, iar Data reprezinta data debutului abonamentului

a) Sa se afiseze cheltuiala facuta de o anumita persoana (persoana poate aparea de mai multe ori, cu diferite abonamente, la diferite reviste)
b) Sa se inregistreze un abonament nou
c) Sa se afiseze la ce reviste a fost facut abonament in ultimele 15 zile

set talk off
use abonamen
wait ‘punctul a’
clear
store replicate(‘ ‘,20) to num
@ 5,5 say “Abonatul ? ” get num
read
SET FILTER TO nume_ab=num
if found()
wait nume_ab+’ are de achitat’+str(pret*nr_luni)
else
wait ‘Acest abonat nu exista’
ENDIF
CLEAR
wait ‘punctul b’
append blank
@3,5 say “Nume abonat:” get nume_ab
@5,5 say “Adresa:” get adresa
@7,5 say “Numele revistei:” get nume_rev
replace data with date()
@9,5 say “Pret:” get pret
@11,5 say “Pentru cate luni: ” get nr_luni
read

wait ‘punctul c’
CLEAR
set filter to Data>=date()-15
browse fields nume_rev,data
close all
return

Subiectul nr. 7
Dandu-se fisierul:
Vanat.dbf
Denumire
Cod_arma
Data_1
Data_2
unde Cod_arma contine codul armei cu care este permisa vanatoarea iar Data_1 si Data_2 delimiteaza perioada in care este interzisa vanarea speciei respective (Denumire); se cere:
a) Sa se afise pentru o data specificata ce se poate vana
b) Sa se afiseze tot ce se poate vana cu un anumit tip de arma;
c) Sa se adauge un nou vanat in fisier
Obs.Perioada in care este interzisa vanarea unui animal este aceeasi in fiecare an. Se considera ca perioada Data_1 si Data_2 sunt in acelasi an.
CLEAR
WAIT “PUNCTUL A”
USE VANAT
STORE DATE() TO d
@ 10,10 say “introduceti data” get d
READ
BROWSE FIELDS denumire FOR ddata_2
USE

CLEAR
WAIT “punctul b”
USE vanat
STORE 0 TO c
@ 10,10 say “codul armei” get c
read
BROWSE FIELDS denumire for cod_arma=c
USE

CLEAR
WAIT “punctul c”
USE vanat
APPEND BLANK
BROWSE
use

Subiectul nr. 8
Pentru evidenta productiei si a exportului realizat de unitatile din judet, se utilizeaza si urmatorul fisier:
Livrari.dbf
Cod
Denumire articol
Cantitate
Pret unitar
Domeniu
Data livrarii
Tip (True pt. produsele livrate in tara si False pt. produsele livrate la export).

a) Sa se inregistreze o noua livrare (fara validari)
b) Sa se calculeze balanta pentru un anumit domeniu introdus de la tastatura:
Denumire articol Val. totala tara Val. totala export Balanta
(Balanta = diferenta dintre valoarea livrata in tara si la export)
SET TALK OFF
clear
wait ‘punctul a’

clear
use livrari
append blank
browse
use

clear
wait ‘penctul b’

use livrari
store 0 to ttara,texport,tbalanta
store replicate(” “,10) to d
@ 10,10 say ‘Introduceti domeniul ‘ get d
read
set filter to d=domeniu
clear
@ 1,1 say ‘ Denumire articol ‘+’Val. tara’+’ Val exp.’+’ Balanta’
@ 2,1 say ‘——————————————————-’
store 3 to nrl
scan
store den_art to sir
store 0 to tara,export,balanta
if tip=.T.
store cantitate*pret_unit to tara
ttara=ttara+tara
sir=sir+str(tara,9)+replicate(‘ ‘,9)
else
store cantitate*pret_unit to export
texport=texport+export
sir= sir+replicate(‘ ‘,9)+str(export,9)
endif
store tara-export to balanta
tbalanta=tbalanta+balanta
sir=sir+str(balanta,8)
@ nrl,1 say sir
nrl=nrl+1
endscan
@ nrl,1 say ‘——————————————————-’
nrl=nrl+1
store ‘ TOTAL ‘ to sir
sir=sir+str(ttara,9)+str(texport,9)+str(tbalanta,8)
@ nrl,1 say sir
wait
use
Subiectul nr. 9
Pentru a realiza monografia liceului se foloseste urmatorul fisier:
Absolventi.dbf
Nume
Promotia
Clasa
Diriginte
Studii superioare (da – TRUE/nu- FALSE)
Se cer urmatoarele situatii:
a) afisarea elevilor unei clase dintr-o anumita promotie
b) sa se creeze un nou fisier cu structura: nume, promotie, clasa, studii superioare, continand fostii elevi ai unui diriginte
set talk off
clear
wait ‘punctul a’

clear
use absolventi
store 0 to p
@ 10,10 say ‘Introduceti promotia ‘ get p
read
set filter to p=promotia
browse
use

wait ‘penctul b’
clear
use absolventi
store replicate(‘ ‘,20) to d
@ 10,10 say ‘Introduceti dirigintele ‘ get d
read
set filter to d=diriginte
copy to fisnou
use
use fisnou
browse
use

Subiectul nr.10
Sa se scrie o aplicatie care realizeaza asistenta computerizata a unei olimpiade scolare (faza nationala) Fiecare participant trebuie sa se inscrie in momentul sosirii, datele fiind pastrate in fisierul:

Candidati.dbf
CNP
Numele
Judetul
Scoala
Clasa
Punctaj1
Punctaj2
Total
In cadrul olimpiadei sunt 2 probe, notate cu 100 puncte fiecare. Punctajele vor fi depuse in campurile Punctaj1 si Punctaj2 (initial nule) iar campul Total contine punctajul obtinut la ambele probe (initial 0).
a) Sa se afiseze concurentii in ordine alfabetica si pe clase (nume, judet)
b) Sa introduca punctajele obtinute de toti candidatii si sa se calculeze campul Total
c) Sa se afiseze clasamentul pentru o clasa, in ordinea descrescatoare a punctajului total (nume,total puncte, judet)
set talk off
set safety off

clear
wait ‘punctul a’
use candidati
sort to cand on clasa,numele
use
use cand
browse fields numele,judetul
use

clear
wait ‘punctul b’
use candidati
browse fields numele,judetul,clasa,punctaj1,punctaj2
replace all total with punctaj1+punctaj2
browse
use

clear
wait ‘punctul c’
store 0 to c
@ 10,10 say ‘Introduceti clasa ‘ get c
read
use candidati
set filter to c=clasa
sort to cand on total ascending
use
use cand
browse
use

Subiectul nr. 11
Pentru gestionarea stocului de medicamente dintr-o farmacie se foloseste si fisierul:
Medicam.dbf
Denumire
Cod
Pret
Cantitate
Data - data intrarii pe stoc
La o aprovizionare se adauga cate o inregistrare in fisier.
a) Sa se aprovizioneze farmacia
b) Sa se afiseze stocul dintr-un anumit medicament identificat dupa cod.
c) Sa se afiseze aprovizionarile pentru o anumita perioada introdusa de la tastatura.
SET TALK OFF
clear
wait ‘punctul a’

clear
use medicam
append blank
browse
use

clear
wait ‘penctul b’

use medicam
store replicate(” “,3) to d
@ 10,10 say ‘Introduceti codul medicamentului ‘ get d
read
set filter to d=cod
clear
browse
use

clear
wait ‘penctul c’

use medicam
store date() to d1,d2
@ 8,10 say ‘Introduceti perioada ‘
@ 10,10 say ‘Introduceti data1 ‘ get d1
@ 11,10 say ‘Introduceti data2 ‘ get d2
read
set filter to data>=d1 and data=10 and year(date())-year(datan)<=45
browse
use

Subiectul nr. 13
Fie un fisier cu cartile dintr-o biblioteca avand urmatoarea structura:
Cod
Autor
Titlu
Domeniu
An aparitie
Editura

Sa se scrie un program care sa realizeze urmatoarele cerinte:
a) Cautarea unei carti dupa titlu.
b) Adaugarea unei inregistrari in fisier..
c) Afisarea tuturor cartilor unei edituri care au aparut intr-un anumit an, in ordinea alfabetica a autorilor.
set talk off
set safety off
clear

wait 'punctul a'

use cartile
store replicate(' ',20) to t
@ 10,10 say 'Dati titlul ' get t
read
set filter to t=titlu
browse
use

clear
wait 'punctul b'

use cartile
append blank
brow

clear
wait 'punctul c'
store 0 to a
store replicate(' ',20) to e
@ 10,10 say 'Dati editura' get e
@ 11,10 say 'Dati anul' get a
read
set filter to e=editura and a=anaparitie
sort to cart on autor
use
use cart
browse
use

Subiectul nr. 14

Se da un fisier care sa contina informatii despre mijloacele fixe dintr-o societate comerciala:
-denumire
-nr_inventar
-an_fabricatie
-durata_functionare(in ani)
-valoare_initiala
-valoare_ramasa
Sa se scrie un program care sa realizeze intretinerea fisierului (adaugare, stergere si modificare).
Valoare ramasa se calculeaza cu formula:
val_ramasa= val_initiala – (val_initiala/durata_fuctionare) * (an_fabricatie – an curent – 1)
SET TALK OFF
SET SAFETY OFF
CLEAR
DEFINE POPUP P1
DEFINE BAR 1 OF P1 PROMPT '\<ADAUGARE'
DEFINE BAR 2 OF P1 PROMPT '\<MODIFICARE'
DEFINE BAR 3 OF P1 PROMPT '\<STERGERE'
DEFINE BAR 4 OF P1 PROMPT '\<CALCUL'
DEFINE BAR 5 OF P1 PROMPT '\<IESIRE'
ON SELECTION POPUP P1 DO CAUT WITH PROMPT()
ACTIVATE POPUP P1

PROCEDURE CAUT
PARAMETERS MPROMPT
HIDE POPUP P1
CLEAR
USE MIJFIX
DO CASE
CASE MPROMPT='ADAUGARE'
APPEND BLANK
BROWSE
CASE MPROMPT='MODIFICARE'
BROWSE
CASE MPROMPT='STERGERE'
BROWSE TITLE 'APASA CTRL+T PE INREGISTRARE PE CARE O STERGI'
PACK
CASE MPROMPT='CALCUL'
STORE 0 TO VALR
SCAN
VALR=VALR+VALOAREINI-(VALOAREINI/DURATAFUNC)*(ANFABRICAT-YEAR(DATE())-1)
ENDSCAN
WAIT 'VALOAREA RAMASA ESTE '+STR(VALR,10,2)
CASE MPROMPT='IESIRE'
DEACTIVATE POPUP P1
USE
CLEAR
RETURN
ENDCASE
USE
CLEAR
SHOW POPUP P1
RETURN

Subiectul nr. 15.
Se da o baza de date Stoc.dbf cu structura:

- CODP : codul unui produs
- U_M : unitatea de masura a produsului
- DENP :denumirea produsului
- PRET_UNIT : pretul unitatii de produs
- CANTITATE :cantitatea existenta a produsului.
Stiind ca:
- codp este unic in baza de date
- denp se poate repeta cu semnificatia ca acelasi produs exista cu mai multe preturi, deci cu mai multe coduri, se cer urmatoarele:

1) Pretul unitar mediu al unui produs al carui nume se introduce de la tastatura;
2) Cantitatea disponibila pentru fiecare produs;
3) Adaugarea unui produs in stoc;
SET TALK OFF
SET SAFETY OFF

CLEAR
WAIT 'PUNCTUL 1'
USE STOC
STORE REPLICATE(' ',20) TO D
@ 10,10 SAY 'DATI NUMELE PRODUSULUI' GET D
READ
STORE 0 TO P,C,PM
SCAN
IF D=DENP
P=P+PRET_UNIT
C=C+1
ENDIF
ENDSCAN
PM=P/C
WAIT 'PRETUL MEDIU ESTE '+STR(PM,9,2)
USE

CLEAR
WAIT 'PUNCTUL 2'
USE STOC
SORT TO STO ON DENP
USE
USE STO
BROWSE
USE

CLEAR
WAIT 'PUNCTUL 3'
USE STOC
APPEND BLANK
BROWSE
USE

Subiectul nr. 16.
Fie o baza de date Abonati.dbf cu structura:
- nume
- telefon
- adresa
- abonament
- minute
- Valoare
unde:
- valoare : valoarea in lei a abonamentului, calculata dupa urmatorul algoritm:
- minute valoare =abonament
- minute>100 => valoare =abonament+(minute-100)*0.5
Sa se scrie un program care sa realizeze urmatoarele cerinte:

1) Adaugarea de noi inregistrari in baza de date cu validarile respective (nu se poate adauga un nou abonat cu acelasi numar de telefon)
2) Afisarea valorii totale a abonamentului pentru un abonat
SET TALK OFF

WAIT ‘PUNCTUL 1′

USE ABONATI
STORE 0 TO NR
CLEAR
@ 10,10 SAY ‘DATI NR DE TELEFON’ GET NR PICTURE ’999999′
READ
LOCATE FOR NR=TELEFON
IF FOUND()
WAIT ‘ACEST NR EXISTA’
ELSE
CLEAR
APPEND BLANK
REPLACE TELEFON WITH NR
@ 9,10 SAY ‘TELEFON ‘+STR(NR,6)
@ 10,10 SAY ‘NUMELE ‘ GET NUME
@ 11,10 SAY ‘ADRESA ‘ GET ADRESA
@ 12,10 SAY ‘ABONAMENT ‘ GET ABONAMENT
@ 13,10 SAY ‘IMPULSURI ‘ GET IMPULSURI
READ
IF IMPULSURI=5 AND MATEMATICA>=5 AND PURTARE>=5
REPLACE ALL MEDIE WITH (ROMANA+MATEMATICA+PURTARE)/3
BROWSE
USE

CLEAR
WAIT ‘PUNCTUL 2′
USE ELEVI
SORT TO ELEV ON MEDIE descending
USE
USE ELEV
BROWSE FOR MEDIE>=5
USE

CLEAR
WAIT ‘PUNCTUL 3′
USE ELEVI
SET FILTER TO ROMANA<5 OR MATEMATICA<5 OR PURTAREdata_scd+60
use

Subiectul nr. 19
I La un oficiu poştal se ţine evidenţa abonamentelor la reviste utilizând fişierul:
Reviste.dbf
CNP Nume_abonat Nume_rev Pret Nr Data Nr_luni

unde: Pret reprezintă preţul unei reviste;
Nr reprezintă numărul de apariţii lunare.
Data indică data la care a fost făcut abonamentul; abonamentul va fi onorat de la începutul lunii următoare;
Nr_luni reprezintă numărul de luni pentru care a fost făcut abonamentul.
Se cere:
a) Să se adauge o inregistrare in baza de date
b) Să se afişeze numele revistelor la care este abonată o anumită persoană;
c) Să se calculeze valoarea totală pe luna în curs a abonamentelor la o anumită revistă al cărui nume se citeşte.
SET TALK OFF
SET SAFETY OFF

CLEAR
WAIT ‘PUNCTUL A’
USE REVISTE
APPEND BLANK
BROWSE
USE

CLEAR
WAIT ‘PUNCTUL B’
USE REVISTE
STORE REPLICATE(‘ ‘,20) TO NUM
@ 10,10 SAY ‘DATI NUMELE ‘ GET NUM
READ
BROW FIELDS NUME_AB,NUME_REV FOR NUME_AB=NUM NOEDIT
USE

CLEAR
WAIT ‘PUNCTUL C’
USE REVISTE
STORE REPLICATE(‘ ‘,15) TO NUM
@ 10,10 SAY ‘DATI NUMELE REVISTEI’ GET NUM
READ
SET FILTER TO NUME_REV=NUM
SUM ALL PRET*NR TO S
WAIT ‘VALOAREA TOTALA A REVISTEI ‘+NUM+’ ESTE ‘+STR(S,6)
USE

Subiectul nr. 20
Fie baza de date ABONAT. DBF care conţine informaţii despre abonaţii unei televiziuni prin cablu, cu următoarea structură :
CNP
Nume
Adresa
NrPrograme
PreţLună
Achitat (True/False)

a) sa se afişeze continutul bazei de date ordonat crescator dupa numele abonatilor;
b) sa se introduca noi abonaţi;
c) sa se afiseze abonatii care au plata facturii mai mare decat o anumita valoare, citita de la tastatura.
SET TALK OFF
SET SAFETY OFF

CLEAR
WAIT ‘PUNCTUL A’
USE ABONAT
SORT TO ABON ON NUME
USE
USE ABON
BROW
USE

CLEAR
WAIT ‘PUNCTUL B’
USE ABONAT
EDIT
BROWSE
USE

CLEAR
WAIT ‘PUNCTUL C’
STORE 0 TO V
@ 10,10 SAY ‘DATI VALOAREA DE CONTROL’ GET V
READ
USE ABONAT
SET FILTER TO PRETLUNA>V AND ACHITAT=.F.
BROWSE
USE

Subiectul nr. 21
I Avand fisierul:

Bebe.dbf:
Nume Prenume Data_nasterii Sex Den_spital Localitate

a) sa se afişeze toti copiii nãscuti în luna x si anul y (citite de la tastaturã) din toate localitãtile ;
b) sa se afiseze o situatie statisticã cu numãrul de copii nãscuti pe o perioadã de timp datã (interval de date):
Den. spital Localitate Nr. copii
SET TALK OFF
SET SAFETY OFF

CLEAR
WAIT ‘PUNCTUL A’
USE BEBE
STORE 0 TO LUNA,AN
@ 10,10 SAY ‘DATI LUNA ‘ GET LUNA
@ 11,10 SAY ‘DATI ANUL ‘ GET AN
READ
SET FILTER TO MONTH(DATAN)=LUNA AND YEAR(DATAN)=AN
BROWSE
USE

CLEAR
WAIT ‘PUNCTUL B’
STORE DATE() TO DATA1,DATA2
@ 10,10 SAY ‘DATI PRIMA DATA A INTERVALULUI ‘ GET DATA1
@ 11,10 SAY ‘DATI A DOUA DATA A INTERVALULUI ‘ GET DATA2
READ
USE BEBE
SET FILTER TO DATAN>=DATA1 AND DATAN<=DATA2
BROWSE
USE

Subiectul nr. 22
I Operatiile monetare realizate într-o bancã necesitã o accesare simplã a următoarelor informatii:
– evidenta conturilor deschise;
– evidenta operatiilor realizate în conturi (depunere/extragere din cont, creare/lichidare de cont).
Pentru aceasta se utilizează următorul fişier:

banca.dbf

Cod_titular Titular Adresa_titular Suma Cod operatie Data

unde
Cod_titular contine codul numeric personal dacă contul e deschis de o persoană fizică, respectiv codul fiscal în cazul unei persoane juridice, iar Suma reprezintă suma curentă existentă în cont;
Cod_operaţie este D,E,C sau L (depunere, extragere, creare sau lichidare), Data reprezinta data la care s-a efectuat operatia

Sã se creeze o aplicatie care sã realizeze înregistrarea unei operaţii (depunere, extragere, creare sau lichidare) şi actualizarea sumelor curente din conturi

SET TALK OFF
SET SAFETY OFF
CLEAR
DEFINE POPUP P1
DEFINE BAR 1 OF P1 PROMPT '\<DEPUNERE'
DEFINE BAR 2 OF P1 PROMPT '\<EXTRAGERE'
DEFINE BAR 3 OF P1 PROMPT '\<CREARE'
DEFINE BAR 4 OF P1 PROMPT '\<LICHIDARE'
DEFINE BAR 5 OF P1 PROMPT '\x
BROWSE FIELDS nume_piesa
USE

Subiectul nr. 24

O societate de telecomunicaţii reţine în tabela telecom.dbf următoarea structură::

Ntel (nr. tel. al apelantului)
Ntela (nr. tel. al persoanei apelate)
Durata (durata convorbirii)
Zona (zona de distanţă)
Data (data apelului)

Să se afişeze pentru un abonat introdus de la tastatură:
1) lista numerelor persoanelor apelate
2) durata convorbirilor în perioada d1 – d2, unde d1 şi d2 sunt două date calendaristice introduse de la tastatură.
CLEAR
WAIT “punctul a”
USE telecom
STORE 0 TO abonat
@ 10,10 say “introduceti nr abonatului” get abonat
read
SET FILTER TO nr_tel=abonat
BROWSE FIELDS nr_tela, nr_tel

WAIT “punctul b”
clear
STORE DATE() TO d1,d2
@ 10,10 say “data 1″ get d1
@ 11,10 say “data 2″ get d2
READ
SET FILTER TO data>d1 AND data<d2
CALCULATE SUM(durata)
use

Subiectul nr. 25
Se consideră un fişier personal.dbf ce conţine date despre angajaţii unei societăţi:
Cod
Nume
Funcţia
Data nasterii
Adresa
Secţia
Salariul orar
Nr ore lucrate

Se cere: să se calculeze
a) salariul unui angajat (salariul se calculează ca produsul dintre orele lucrate şi salariul orar)
b) lista cu totalurile de plata pentru o secţie
CLEAR
WAIT "punctul a"
USE personal
STORE REPLICATE(' ',20) TO num
@10,10 say "numele angajatultui" get num
READ
SET FILTER TO num=nume
browse
salar=salar_o*nr_orel
DISPLAY salar
USE
CLEAR
WAIT "punctul b"
USE personal
STORE 0 TO sect
@ 10,10 say "sectia" get sect
READ
SET FILTER TO sect=sectie
browse
CALCULATE SUM(salar_o*nr_orel) FOR sect=sectie
use

Published in: on aprilie 11, 2011 at 16:38  Lasă un comentariu  

The URI to TrackBack this entry is: http://emanuelm13.wordpress.com/2011/04/11/fox-pro-neintensiv/trackback/

Feed RSS pentru acest post.

Lasă un răspuns

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Schimbă )

Twitter picture

You are commenting using your Twitter account. Log Out / Schimbă )

Facebook photo

You are commenting using your Facebook account. Log Out / Schimbă )

Connecting to %s

Follow

Get every new post delivered to your Inbox.