Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateC
C sharpCalculatoareCorel drawDot netExcelFox pro
FrontpageHardwareHtmlInternetJavaLinux
MatlabMs dosPascalPhpPower pointRetele calculatoare
SqlTutorialsWebdesignWindowsWordXml

PROGRAMAREA CALCULATOARELOR

calculatoare



+ Font mai mare | - Font mai mic



PROGRAMAREA CALCULATOARELOR

Regulile algebrei booleane

Operatorul NOT sau negatia in fata parantezei transforma operatorul SI(AND) in SAU(OR) si invers.



De exemplu:

NOT (A si B)=NOT A sau NOT B

NOT (A sau B)=NOT A si NOT B

NOT(NOT(A si B)) = NOT(NOT A sau NOT B) = NOT(NOT A) si NOT(NOTB)=A si B

NOT(NOT(A sau B)) = NOT(NOT A si NOT B) = NOT(NOT A) sau NOT(NOTB)=A sau B

Sisteme de numeratie

Sistemul de numeratie este format dintr-o multime formata din simboluri numite cifre impreuna cu o multime de reguli care se folosesc pentru reprezentarea numerelor.

Un sistem de numeratie este o algebra aplicata pe o multime.

Corespondenta cifrelor din sistemul Hexazecimal cu cifrele sistemului sistemului Binar:

a16

A

B

C

D

E

F

a2

Unitatile de masura a informatiei

OCTET-este cea mai mica unitate de masura a informatiei adresabila in calculatoare

1OCTET=8BITI=1BYTE

1KB=1KO=210octeti=1024octeti

1MO=1MB=210KO=220octeti=1024*1024octeti

1GO=1GB=210MO=220KO=230octeti

1TO=1TB=210GO=220MO=230KO=240octeti

Algoritmi

Algoritmul e o succesiune de operatii cunoscute care executate intr-o anumita ordine si de un numar finit de ori duce la rezolvarea unei problemei.

Stabilirea algoritmului este cea mai importanta etapa in rezolvarea unei probleme cu calculatorul.

Caracteristici ale algoritmilor

Generalitate este propietatea algoritmului de a putea fi aplicat la toate problemele de acelasi tip.

Finitudinea este calitatea algoritmululi de a obtine solutia problemei intr-un numar finit de pasi. Algoritmii care au un numar infinit de pasi duc la un algoritm care bucleaza.

Claritatea este proprietatea algoritmilor de a stabili o ordine exacta a operatorilor.

Algoritmii se reprezinta cu ajutorul a patru tehnici de reprezentare:

scheme logice

- limbajul convetional

limbajul algoritmic sau pseudocod

- tabele de decizie.

Schemele logice reprezinta un mod intuitiv si schematic de prezentare a algoritmului.

Limbajul conventional si algoritmic inseamna explicarea algoritmului cu reguli sintactice.

Programele calculatorului (SOFTWARE)

Acestea se impart in 3 categorii:

1)Programe de baza(sisteme de operare)

-inscrise in memoria de tip ROM ,PROM, EPROM si RAM

2)Programe utilitare

-programe de seviciu de larga utilitate:

Microsoft Office,Excel,Norton Explorer,Internet Explorer

3)Programe de aplicatii

-destinate utilizatorilor pentru diverse scopuri realizate de informaticieni.

In cadrul programelor de aplicatii -sisteme de gestiune a bazelor de date: dintre cele mai cunoscute sunt SGBD ORACLE, SGBD SYBASE, SGBD DB2, etc.

-aplicatii propiu-zise

Limbaje de programare

Caracteristici ale limbajelor de programare

Limbajul de programare este un limbaj recunoscut de calculatoarele electronice. El preia algoritmii din proiectele informatice si ii traduce conform regulilor propii.

Orice limbaj de programare e format dintr-o multime de cuvinte rezervate numite vocabular si o multime de reguli numite gramatica. Vocabularul + gramatica definesc instructiunile.

Pentru prezentarea unui limbaj de programare de regula se foloseste un alt limbaj de descriere numit Metelimbaj

Metalimbajul prezinta instructiunile in format general cu toate posibilitatile lor. Fiecare limbaj poate avea metalimbajul sau propiu dar de regula exista un metalimbaj general care foloseste urmatoarele conventii.

1)Cuvintele scrise cu litere mari sunt Cuvinte rezervate. Cuvintele rezervate sunt expresii clare si scurte in limba engleza care exprima actiuni exacte.

De exemplu: ADD pentru adunare.

] Parantezele mari arata ca o parte din instructiune e optionala..

3) Ce se scrie intre acolade inseamna ca sunt mai multe optiuni si se poate alege intre ele.

Arata o repetitie posibila in cadrul instructiunii.

5)ADD Un cuvant scris cu litera mare si subliniat e un cuvant cheie. Cuvintele cheie sunt obligatorii in cadrul instructiunii, ele nu pot fi omise de programator deoarece exprima lucru esentiale pentru instructiunea respectiva.

6)Dintre mai multe optiuni daca una este subliniata inseamna ca aceasta este valoarea implicita si daca programatorul nu alege nici una dintre optiuni se va selecta optiunea implicita.

Clase de limbaje de programare

Avem trei clase de limbaje de programare: PROCEDURALE, NEPROCEDURALE, SPECIALIZATE.

Limbajele procedurale sunt acelea in care se descrie operatia de executat si ordinea in care trebuie executate operatiunile. Astfel de limbaje sunt: FORTRAN, COBOL, ALGOL, PL/1, PASCAL.

Limbajele neprocedurale sunt de nivel foarte inalt in care se precizeaza mai mult problema care trebuie rezolvata si mai putin cum trebuie rezolvata. De exemplu limbajele gazda ale sistemelor de gestiune a bazelor de date.

Limbajele specializate sunt dedicate rezolvarii unor anumite categorii de probleme. De exemplu: JAVA, PHP, XML,(orientate obiect), LISP pentru editare, COBOL pentru probleme economice, FORTRAN pentru probleme stiintifice, etc.

Structuri folosite in limbajele de programare

CARACTERUL este cea mai mica unitate structurala a unui program.

CUVANTUL este o unitate structurala care are semnificatie pentru prelucrare.

CUVINTE CHEIE au semnificatia bine definita in regulile din instructiuni. Cuvintele cheie nu pot fi folosite ca NUME de DATA in program.

IDENTIFICATORI sau NUMELE DATA sunt nume de variabile, de atribute, de subrutine, de functii sau proceduri.

Cu ajutorul lor se pot face referiri la date.

OPERATORUL este format din caractere speciale sau identificatori care definesc operatii elementare.De exemplu:"*" sau MULTIPLY (inmultire), / sau DIVIDE pentru impartire, etc.

BLOCUL e o bucata dintr-un program in care este valabila o variabila locala.

Variabilele sunt de doua feluri:

-globale(la nivelul intregului program)

-locale (private)

PROCEDURA, MODUL SAU ROUTINA e o secventa de instructiuni care realizeaza o functie anume.

PROGRAMUL e o entitate structurala ce poate fi executata pe calculator printr-o singura lansare in executie.

PROGRAME SEGMENTATE sunt programe formate din mai multe segmente (module, notiune, etc.) care sunt astfel structurate incat sa poata fi incarcate separat in memoria centrala pentru executie.

PROCESUL reprezinta un program lansat in executie.

Structuri de date

Variabila e un identificator al caror valori se cunosc numai in momentul executiei programelor.

Tip de data defineste felul si natura datelor.

Constanta e un identificator sau o valoare care nu poate fi modificata pe parcursul executiei programului.

Sirul e o multime de caractere. Numarul de elemente formeaza lungimea sirului. Operatia cea mai importanta cu siruri se numeste CONCATENARE.

Tabloul e o multime ordonata de acelasi tip de date. Numarul de indici folosit pentru identificarea unui element determina dimensiunea tabloului A(i)vector,A(ij) matrice,A(ijk) cub.

Lista e o secventa de elemente. Se compune din 2 parti: adresa de inlantuire si informatie utila.

STIVA

vizibil

sfarsit


inceput

Stiva e o colectie de date care se gestioneaza dupa principiul LIFO (Last Input First Output), adica ultimul intrat primul iesit.

Coada - se refera la coada de asteptare si este de tip FIFO primul intrat primul iesit. E o insiruire de date care se gestioneaza.

Compilatoare, Interpretoare si medii de programare

Compilatoarele sunt programe care traduc un program din limbaj de programare in limbaj cod-masina.

Forma programelor dupa traducere se numeste FORMAT EXECUTABIL si are in general extensia EXE

Interpretoarele sunt limbaje de programare care preiau instructiuni si pe care le executa imediat, furnizand rezultatul prelucrarii.

Mediile de programare realizeaza functii multiple. In cadrul mediilor de programare se pot intalni compilatoare, interpretoare, sisteme de gestiune a bazelor de date si alte sisteme software pentru programare.

Limbajul de programare FOX VISUAL

Datele - element esential in programare

Mediul Visual Fox admite urmotoarele tipuri de date:.

numerice (simplu, dublu, intreg, monetar)

sir de caractere

date pentru gestiunea timpului(date, time)

memo

general

logic(boolean)

Datele numerice reprezinta numere. Asupra datelor numerice se pot executa operatii aritmetice. Cele mai cunoscute operatii aritmetice sunt simbolizate astfel:

- ridicarea la putere

* - inmultire

: - impartire

- adunare

- scadere

mod n - restul impartirii la n

Datele numerice ca variabile constante impreuna cu dentificatorii cu valoarea variabila formeaza expresii numerice.

Asupra expresiei aritmetice se pot executa urmatoarele operatii relationale:<, >, = ,>=,   <=, , !=, <>.

Functii pentru tratarea timpului a "DATEI"

Instructiuni pentru gestiunea timpului (vezi anexa - formate generale)

Gestioneaza data, ora, minute, secunde in calculator

Pentru definirea tipului de data se foloseste instructiunea

SET DATE TO "tip"

*admit urmatoarele tipuri de date.

Timpul

Descrieri

American

ll/zz/aa

British

zz/ll/aa

USA

ll-zz-aa

Modificarea formatului de data de la un format la altul se face prin SET DATE si se alege tipul.

Pentru a seta anul din DATE pe 2 sau 4 caractere se foloseste:


SET CENTER cu 2 optiuni  ON an pe 2 caractere

OFF an pe 4 caractere

Alegerea delimitatorului care se va folosit intre elementele datei se face cu :

SET MARK TO "X " Unde "x" este delimitatorul dorit.

Exista clauze pentru pentru extragerea zilei, lunii sau anului din data, astfel:

DOW (DATE ( ))-extrage din data existenta in calculator ziua

din saptamana datei

CDOW (DATE ( ))-extrage din data existenta in calculator ziua

sub fotma de nume din saptamana datei

MONTH(DATE ( ))-extrage luna

YEAR(DATE ( ))-extrage anul.

Exista clauze pentru gestiunea TIMPULUI (ore, minute, secunde)

*clauze pentru: ore SET HOURS oo

minute SET MINUTE mm

secunde SET SECONDS ss

Conversii de date de la un tip la altul

Conversii din Date sir de caractere si invers:

DTOC

CTOD 

Functii referitoare la semnul datelor numerice

?ABS(a)-valoare absoluta a nr "a"

?SIGN(a)-semnul lui "a"

?INT(a)-aproximare la intreg a variabilei "a"

?INT 14,25=14

Functii matematice elementare

EXP(x)-exponential ex

LOG(x)-log(x)

LOG10(x)-lg(x)

SQRT-radical

Functii trigonometrice

*conversia din grade in radian

DTOR

*conversia din radian in grade

RTOD

Sin(x)

Cos(x)

Tan(x)

Asin(x)

Acos(x)

Atan(x)

Sirurile de caractere se mentioneaza intre apostroafe sau ghilimele.

Asupra sirurilor de caractere se pot efectua operatii de concatenare si de extragere de subsiruri. Avem concatenare simpla(+) si speciala.

Concatenarea simpla ataseaza sirurile unul langa celalalt

De exemplu: "SALUT"+"PRIETENI"=SALUT PRIETRNI

Concatenarea speciala

De exemplu: "salut_____"-"prieteni"-elimina spatiile de dupa primul sir.

Se pot face toate operatiile logice(operatori relationali) intre sirurile de caractere.

Functii referitoare la subsiruri de caractere

Forma generala:

?SUBSTR(sir, adresa, lungime)

Extrage dintr-un sir de caractere un subsir care incepe cu pozitia adresa si are lungimea "lungime".

De exemplu:

?SUBSTR(Raluca Enache 8,3)

raspuns: Ena

Forma generala:

?LEFT(sir,numar)

Extrage dintr-un sir de caractere un subsir care incepe cu primul caracter de la stanga si are o lungime de "numar" caractere.

De exemplu:

LEFT("LA MULTI ANI",2)

raspuns: LA

Forma generala:

RIGHTH(sir, nr)

Extrage dintr-un sir de caractere un subsir care incepe cu primul caracter de la dreapta sirului si are o lungime de "nr" caractere.

De exemplu:

RIGHTH("LA MULTI ANI",3)

raspuns: ANI

Functii care elimina spatiile dintr-un sir

ALLTRIM(sir) - elimina toate spatiile de la inceputul si de la sfarsitul sirululi

LTRIM(sir) - elimina spatiile de la stanga sirului

RTRIM(sir) - elimina spatiile de la dreapta.

Functii care adauga spatii la un sir

Forma generala:

PADC(sir, numar, caracter)

Instructiunea adauga la dreapta si la stanga sirului un numar de "numar" caractere din tipul "caracter"

De exemplu:

PADC("PAGINA","40","-")

40 "-"----- ----- ----PAGINA----- ----- -----40 "-"

Forma generala:

PADL(sir, numar, caracter)

Instructiunea adauga la stanga sirului un numar egal cu "numar" caractere de tipul "caracter"

De exemplu:

PADL("PAGINA","40","-")

40 "-"----- ----- -----PAGINA

Forma generala:

PADR(sir, numar, caracter)

Instructiunea adauga la dreapta sirului un numar egal cu "numar" caractere de tipul "caracter"

De exemplu:

PADL("PAGINA","40","-")

PAGINA----- ----- -----40 "-"

Exemplu pentru concatenarea simpla a sirurilor:

ADRESA:

STRADA

NUMAR

BLOC

APARTAMENT

"strada"+"numar"+"bloc"+"apartament".

Functii care realizeaza transformarea sirurilor de caractere

Forma generala:

LOWER (sir)

Transforma literele mari in litere mici.

Forma generala:

UPPER (sir)

Transforma litere mici in litere mari.

Forma generala:

PROPER (sir)

Prima litera din cuvant va fi litera mare si restul mici.

Forma generala:

PROPER "ionescu andrei"

Literele de la inceputul cuvantului vor fi mari iar celelalte miciIonescu Andrei.

Functii :

Evaluarea unui sir:

VAL(sir) - evalueaza valoarea unu sir

Sir=123  VAL("123")123

Evaluarea unei expresii:

EVALUATE-evalueaza o expresie si returneaza valoarea ei

EVALUATE(expresie)

A=121

Nume=a

EVALUATE(NUME+VAL("7")128

Evaluarea minimului:

MIN( )- exprima valoarea minima a unei multimi sau a unei expresii.

MIN(7,6,4,3)

MIN(A,TETA,ZI)

Evaluarea maximului:

MAX( )-exprima valoarea maxima a unei multimi sau expresii.

Verificarea incadrarii intr-un interval:

BETWEEN(nr1,nr2,nr3)

Se verifica daca nr1 se incadreaza intre nr2-nr3.

Daca DA .T.

altfel.F.

Date de tip MEMO

Sunt date care nu se memoreaza in tabela in care sunt scrise ci in alta tabela pentru a mari performanta si a economisi spatiu.

Tehnologia cu ajutorul careia se gestioneaza aceste tipuri de date se numeste OLE(Object Linking and Enbedded), legare si incorporare obiecte.

Pentru campurile descrise cu tipul de date "MEMO" se dezvolta automat cate o tabeli separata pentru fiecare camp MEMO, tabela cu numele "nume_camp".FTP.

Astfel daca vorbim despre tabela ANGAJATI.DBF in care campul ADRESA este tip MEMO atunci se va genera o tabela separata ADRESA.FTP care va memora mai economic numele din ADRESA. Legaturile intre cele doua tabele sunt gestionate automat.

tabela -ANGAJATI .DBF.

atribute-MAIRICOL

FUNCTIE

NUME

ADRESA

ADRESA *MEMOADRESA .FTP.

Adresa1 Bulevardul 1 decembrie 1918

adresa2 Ion Creanga 7

adresa3 Ion Buteanu 17

adresa4 Trandafirilor 43

Date de tip general

Sunt informatii care au fost create de alte produse in alte aplicatii si vor fi prelucrate in acest camp descrise de tip general.

Notiuni de programare structurata

Structuri de prelucrare posibila

Structura secventiala

a=b

c=7  se executa in aceasta ordine

d=9

Structura ramificata

Cu o singura ramura

IF conditie <instructiuni>

ENDIF

Bloc cu 2 ramuri

IF conditie

<instructiuni1>

ELSE

<instructiuni2>

ENDIF

Cu mai multe ramuri

DO CASE

CASE condtie 1

<instructiuni 1>

CASE conditie2

<instructiuni 2>

CASE conditie n

<instructiuni n>

OTHERWISE

Instructiune n+1

ENDCASE

Instructiunea functioneaza astfel:

Se verifica conditia 1 daca este .T. se executa instructiuni 1

.F, se verifica conditia 2

Daca conditia 2 este .T. se executa instructiuni 2

.F. se verifica conditia 3

Daca nici o conditie nu este .T. atunci se executa Instructiuni n+1 de dupa OTHERWISE

De exmplu:

DO CASE

CASE TRIM=1

Sir=?ianuarie, februarie, martie

CASE TRIM=2

Sir=?aprilie, mai, iunie

CASE TRIM=3

Sir=iulie, august, septembrie

OTHERWISE

Sir=?"trimestru eronat"

ENDCASE

Instructiune repetitiva

a. cu numar cunoscut de pasi

FOR,ENDFOR
SCAN, ENDSCAN

b. cu un numa necunoscut de pasi

DO WHILE ENDDO si FOR

Forma generala:

FOR<variabila>=<valoarea initala> TO<valoarea finalaSTEP <pas>

<instructuni>

ENDFOR

Modul de functionare: "Variabila" ia valoarea initala si la fiecare ciclu de parcurgere a tuturor instructiuniilor pana la EDNFOR se aduna la "variabila" valoarea din pas. Ciclul se repeta pana cand variabila ajunge la valoarea finala.

De exemplu: Se dau primele 100 de numere naturale si se cere sa se scrie o secventa de program care sa realizeze suma acestora.

N=100

SUMA=0

FOR i=1 TO n STEP .1.

SUMA=SUMA+i

ENDFOR

Alte structuri repetitive

Instructiunea SCAN se refera la tratarea unor tablouri sau domenii de date si se executa ciclul FOR.....WHILE pana cand se parcurge tot domeniul.

Forma generala:

SCAN[NOOPTIMIZE]

<domeniu> FOR <conditie 1> WHILE <conditie 2>

ENDSCAN

Instructiunea SCAN functioneaza ca si instructiunea FOR cu un ciclu controlat doar ca parcurge o tabela sau un fisier pentru toate articolele existente in tabela sau fisier . Instructiunele se executa pentru toate articolele care indeplinesc conditia 1. Prelucrarea se opreste la sfarsitul tabelei sau fisierului sau daca conditia 2 a devenit FALSA.

<domeniu> limiteaza aria de prelucrare cu urmatoarele optiuni:

ALL tot domeniul

NEXT n

REST

Scrieti o secventa care afiseaza salariile brute pentru toate salariatele din tabela de salariati a unei firme:

SCAN

FOR SEX="F"

?salar brut

ENDSCAN

Structuri repetitive cu un numar nedefinit de pasi

Forma generala:

DO WHILE <conditie>

Instructiuni

ENDDO

Se executa secventa de instructiuni atata timp cat conditia este Adevarata, cand conditia este F se termina instructiunea si se continua dupa ENDDO.

De exemplu: 1)Sa se calculeze suma primelor p numere naturale care au sursa lor mai mica de 100(<100)

suma=0

p(numarul de numere)=1

DO WHILE suma<100

suma=suma+p

p=p+1

ENDDO

suma=suma-p

p=p-1

@ s-au adunat;"p"numere naturale

@ s-a obtinut "suma":suma

De obicei cand tratam fisier sau tabele exista o functie numita EOF (end of file) care controleaza sfarsitul de fisier. Utilizarea acestei functii se face astfel:

DO WHILE NOT (EOF)

instructiuni din ciclu

ENDDO

INSTRUCTIUNEA DIMENSION - pentru definirea masivelor de date

Forma generala:

DIMENSION Masiv1(expN1,expN2), . vezi anexa

Proceduri si functii definite de utilizator

Depanarea programelor foarte mari ridica probleme deosebite si e dificila. Pentru a inlatura acest neajuns s-a definit notiunea de modularizare. Modularizarea consta in gruparea unor instructiuni care realizeaza prelucrari bine definite. Aceste elemente de program numite module se regasesc sub forma de proceduri sau functii.

De exemplu ]ntre[inerea datelor dintr-o tabela se face realizand cele trei operatii posibile asupra oricarei inregistrari: adaugare, modificare, stergere. Controlul acestor operatii se poate realiza mai usor daca se modularizeaza programele si se foloseste tehnica procedurilor sau a functiilor.

Proceduri

O procedura e un grup de instructiuni care primeste de la programul apelant o lista de parametrii, realizeaza prelucrarile din procedura si preda inapoi controlul la programul apelant. Se defineste procedura si se scrie, apoi se apeleaza din toate punctele programului unde aceasta este necesara.

Format general:

Definirea procedurii:

PROCEDURA <nume procedura>

Instructiunile procedurii

ENDPROC

Apelarea procedurii se face cu DO nume procedura:

DO nume procedura

Prezentam ca exemplu intretinerea datelor dintr-o tabela.

INTRETINERE TABELE

A-adauga

ACT M-modifica

S-sterge

Instructiunile programului in secventa vor fi urmatoarele:

IF ACT ="A"

DO ADAUGARE

ELSE

IF ACT="M"

DO MODIFICARE

ELSE

DO STERGERE

ELSE ?"campul ACT este eronat" ACT.

La sfarsitul programului se definesc instructiunile celor trei proceduri apelate, astfel:

PROCEDURE ADAUGARE

Instructiuni adaugare

- care realizeaza adaugarea(introducere date, gestionarea campurilor cheie daca este cazul, scrierea articolului nou, etc.)

ENDPROC

PROCEDURE MODIFICARE

Instructiuni modificare

- care realizeaza modificarea(citirea articolului vechi, modificarea campurilor dorite, scrierea articolului modificat, etc.)

ENDPROC

PROCEDURE STERGERE

Instructiuni stergere

- care realizeaza stergerea (citirea articolului care trebuie sters, stergerea articolulului, etc.

ENDPROC

Functiile

Functiile sunt un set de instructiuni care primesc de la programul principal niste parametrii pe care ii folosesc in calculele instructiunilor din functie si returneaza programului principal REZULTATUL.

Functiile se folosesc atunci cand avem instructiuni de mare generalitate care fac, de regula calcule, si care se folosesc in multe locuri intr-un program sau aplicatie.

Se defineste functia si se scrie, apoi se apeleaza din toate punctele programului unde aceasta este necesara.

Format general:

Definirea functiei:

FUNCTION <nume functie>

Instructiunile functiei

ENDFUNC

Apelarea procedurii se face prin simpla mentionare a numelui functiei respective:

nume functie

Apelare:<nume functie>

De exemplu: Se cere sa se elaboreze o secventa de program in limbajul Fox Visual care sa Cnk .

Cnk=

Se observa ca in aceasta formula trebuie calculate trei factoriale. In loc sa scriem un program obisnuit si sa repetam de trei ori modalitatea de calcul al factorialului dar cu alte date, mai usor este sa definim o functie de ex. FACT care face calcul pentru orice factorial.

Iata secventa de program obisnuita cu trei calcule de factorial:

n=6 ;k=3;

FACTORIAL 1=1

FOR i=1,n,1

FACT1=FACT1*i

ENDFOR

FACT2=1

FOR i=1,k,1pasul1

FACT2=FACT2*i

ENDFOR

FACT3=1

FOR i=1 ,N-K,1

FACT3=FACT3*1

ENDFOR

COMBINARI=FACT1/FACT2/FACT3

In cele ce urmeaza se prezinta secventa de program care foloseste o functie FACT pentru calculul factorialului:

n=6 ; k=3

COMBINARI=FACT(n)/(FACT (k)*FACT (n-k))

FUNCTION FACT

PARAMETERS FACTORIAL

FOR i=1,t,1

FACTORIAL=FACTORIAL*i

ENDFOR

RETURN FACTORIAL

Corespondenta intre parametrii trimisi functiei din programul principal si variabilele de lucru din intervalul functiei descrie in clauza PARAMETERS, se face prin corespondenta pozitiei fizice de 1 la 1 intre parametrii trimisi si primiti.

In cazul nostru functia FACT este apelata cu cate un singur parametru: n - in primul apel, k - in al doilea apel si n-k in al treilea apel. Fiecarui parametru la apelul functiei ii corespunde variabila FACTORIAL din lista de parametrii a functiei.

Iata un exemplu simplu de folosire atat a functiilor cat si a procedurilor:

CLEAR

Do cadru

?mesaj ()

FUNCTION mesaj

RETURN "lucram in FOX"

PROCEDURE cadru

@ 10,12,14 to BOX

ENDPROC

Transferul parametrilor la si de la modulele de program

Corespondenta intre parametrii trimisi unei functii sau proceduri si variabilele acestora se face astfel:

1)Se stabilesc variabilele care sunt parametrii ce se trimit procedurii sau functiei.

2)Se face o corespondenta intre lista de parametrii trimisi si lista de variabile din cadrul procedurii sau functiei folosind corepondenta pozitionata..

3)Lista de variabile din procedura sau module trebuie sa aiba cel putin atatea elemente cate elemente are lista de parametrii trimisi din program.

4) In cazul in care nu se poate face corespondenta parametrilor se obtine un mesaj de eroare.

Tipuri de variabile:

Avem 2 feluri de variabilegenerale(publice)

locale(private)

Variabilele generale sunt active pe tot parcursul executiei programului astfel spus ele se pot folosi in proceduri, programe principale, functii, in tot timpul programului.

Variabilele locale sunt active numai in cadrul modulului unde au fost definite, sau in modulele care deriva structural din acestea.

Gestionarea tabelelor

Tabelele sunt o colectie de date omogene din punct de vedere a semnificatiei si al cerintelor de prelucrare.

Exemplu:

ANGAJATI.DBF(data base file)

Inreg1  CAMPURI 1 2 ........n

Inreg2

Inreg n

Orice tabela e formata din inregistrari sau articole.Referitor la fiecare inregistrare avem definite anumite caracteristici care se numesc campurei.Orice camp se defineste prin urmatoarele elemente:

nume

tip(N,C,D,L,D..)

lungime (cati octeti maximi sunt rezervati pentru campul respectiv)

numar zecimale (daca este cazul)

de exemplu: N(9,2) este un tip numeric cu noua octeti din care 2 zecimale.

Definirea accesului la tabel (deschiderea tabelei) se face cu instructiunea USE

Format general:

USE<tabela> IN <zona de lucru>[ALIAS nume]

De exemplu

USE angajati IN 1

USE clienti in 2

SELECT 1

Totdeauna e activa tabela din ultima instructiune USE sau SELECT.

Clauza Alias face o asociatie logica intre numele tabela si numele stabilit in clauza Alias. Daca nu se utilizeaza clauza ALIAS numele logic va fi tocmai numele tabelei.

USE angajati in 2 ALIAS SALARIAT

?SALARIAT SALAR

USE ANGAJATI in 2

?ANGAJATI SALAR

Indicatori de inregistrare

Acestia se refera la numarul unei anumite inregistrari din tabela. Gestionarea indicatorului de inregistrare se face de catre programator folosind RECNO() pentru a afla inregistrarea curenta, respectiv GOTO TOP pentru a se deplasa indicatorul pe prima inregistrare, GOTO BOTTOM pentru a se deplasa cursorul pe ultima inregistrare, GOTO <numar inregistrare> pentru a deplasa indicatorul pe o inregistrare oarecare.

Formatul general:

RECNO ()

GO TO TOP (la inceput) [in zona de lucru]

GO TO BOTTOM(la sfarsit)[in zona de lucru]

GO TO <numar inregistrare>[in zona de lucru]

De exemplu:

USE angajati

GO TO 7

?RECNO ()

Instructiunea USE fara parametrii inchide toate tabelele.

Formatul general:

RECCOUNT (tabela)

Arata cate inregistrari sunt in tabel

Formatul general:

SKIP <nr inregistrari>[in zona de lucru]

Deplaseaza indicatorul de inregistrari peste "nr.inregistrari".

Exemple:

?RECNO ( )

SKIP 5

?RECNO ( )

SKIP 5

?RECNO ( )

Crearea tabelelor

Exista 3 metode pentru crearea tabelelor

1)Creare de tabele cu definirea interactiva a campurilor

CREATE <nume tabela [DBF]>

] <camp2>[]

Camp 1, camp2, - reprezinta criteriile de sortare

Instructiunea executa ordonarea fizica a tabelei (deschisa curent) active. Operatia de sortare se executa pentru tabela curenta si rezultatul se depune fizic in <tabela sortata> (scriem un nume).

Campurile de dupa clauza ON definesc criteriile de sortare. Sortarea dupa camp2, camp3 n se face numai atunci cand pentru camp1 avem acelasi valori.

Optiunile A/D au urmatoarea semnificatie:

A-ascending (crescator)

D-discending (descrescttor)

Criteriul de sortare camp1, camp2 pot fi si expresii.

Exemple:

SORT to <angajati> on <nume>

SORT to <angajati> on <nume+prenume>

USE ANGAJATI

SORT TO ANGAJATI SAL ON SALAR_BRUT /D

USE ANGAJ. SAL

BROWSE

Indexarea

Criteriul de indexare e un camp, mai multe campuri sau o expresie. INDEXAREA este o tehnica prin care vedem inregistrarile din tabele in ordinea criteriului de indexare desi fizic inregistrate sunt in forma initiala.

Filozofia indexarii

Pe langa tabela de date se creaza o tabela ajutatoare numita TABELA DE INDEX care are campuri ordonate dupa criteriile de indexare. Langa fiecare camp din tabela de index aferent unui criteriu de indexare se mai afla cate un camp care se refera la informatia de adresa a inregistrarii fizice respective. Vezi exemplul de mai jos unde informatia de adresa a inregistrarii fizice se gaseste in Nr.Inregistrare.

Angajati DBF (fisier)

Nr inregistrat NUME PRENUME SALAR BRUT

Popa Mihai 1.216.000

Constantin Ion 1.679.000

Dumitrescu Ioana 3.530.000

Dumitrescu Andrei 867.000

Vlad Ioan 2.130.000

Amariei Vasile 956.000

Petrescu Paul 879.000

ANGAJATI CDX (indexul)

Nr. Inregistrare Salar brut

867.000

879.000

956.000

1.216.000

1.679.000

2.130.000

3.530.000

Dupa indexare utilizatorul vede pozitia unei inregistrari conform locului din tabela de index pentru criteriul respectiv. In fisierul index se pot inregistra mai multe criterii de indexare. Indecsii sunt de 2 feluri:

-simplii(au un singur criteriu de indexare nume cu extensia IDX)

-compusi(sunt tabele de index cu mai multe tabele de indexare si ii gasim cu nume CDX).

Indecsii compusii sunt gestionati automat de sistemul FOX si ei nu trebuie inchisi si deschisi de programator. Numele criteriului de index se numeste ETICHETA DE INDEX.

Clasificarea indecsilor

Se poate face dupa mai multe criterii:

Clasificarea indecsilor dupa felul cum trateaza articolele cu chei multiple, avem:

Indecsi normali

Indecsi unici

La indecsii normali inregistrarile multiple sunt admise in tabelul de date dar prin index se vede numai prima inregistrare din cele multiple.

La index unic sistemul nu permite inregistrarea celui de-al doilea articol cu aceeasi cheie.

Clasificarea indecsilor dupa valoarea relatiilor dintre tabele:

Candidati-e ca si indexul unic

Cheie primara-asigura unicitate de legatura intre 2 tabele

De exemplu daca definesc index unic sau cheie primara numele de familie nu este corect pentru ca este posibil sa existe mai multe nume identice.

Crearea indecsilor

1)Metoda meniurilor

2)Metoda comenzilor FOX

Metoda meniurilor

Metoda meniurilor este o varianta interactiva si se foloseste atunci cand trebuie sa realizam imediat indexarea. Cu ajutorul meniurilor se deschide fereastra TABELE, apare o fereastra INDEXES si apoi o fereastra FIELDS.

Campurile sunt:order-tip de ordonare

nume-eticheta de index N

Expresie de indexare -criteriul de indexare

Conditie Fields - se refera la restrictionarea de submultimi.

Metoda comenzilor FOX

Metoda comenzilor FOX se utilizeaza atunci cand se realizeaza aplicatii informatice si operatia de indexare trebuie realizata in contextul unor prelucrari mai complexe de date.

Format general al instructiunii de indexare


INDEX ON  Nume camp TO fis-index

Expresie TAG-etich-index

[OF<CDX index>] [FOR <conditie>]

[] [] [ADITIVE

Clauza ADITIVE-arata ca sunt lasate deschise mai multe indexuri simultan.

Definirea unui criteriu de indexare ca si criteriu activ se face cu instructiunea SET ORDER.

Format general:

SET ORDER TO <nume -eticheta- index> [IN<tabela>].

Exemple: Sa se indexeze tabela ANGAJATI.DBF dupa salarul brut, apoi dupa nume si in final dupa salar brut iar daca sunt mai multi angajati cu acelati salar brut ordonarea sa fie dupa nume.

USE ANGAJATI

INDEX ON SALAR_BRUT TO ANGAJATI.CDX (CDX index complex)

USE ANGAJATI

INDEX ON NUME TO ANGAJATI.CDX (CDX index complex)

USE ANGAJATI

INDEX ON SALAR_BRUT+NUME TO ANGAJATI.CDX

Indexarea este o operatie care se realizeaza fizic dar inregistrarile in baza de date raman in forma initiala.

BIBLIOGRAFIE

Dina G., - VISUAL FOX PRO, Editura Teora, Bucuresti, 2003

Lixandroiu D.,- Bazele informaticii economice, Ed.Infomarket, Brasov, 2000

Nitchi S., s.a., Bazele prelucrarii informatiilor si tehnologie informationala, Ed.

Intelcredo, Deva, 1996

Vaduva I.,s.a., - Programare structurata, Ed. Tehnica, Bucuresti, 1978,



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 1939
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved