You are on page 1of 35

Ministerul educaiei si stiinei al Republicii Moldova

Universitatea Tehnic a Moldovei Catedra SOE

LIMBAJUL C

Chiinu 2002

Cuprins:

I.

Intoducere -------------------------------------------------------------------3

II.

Sarcin ------------------------------------------------------------------------Schem logic a programului (schema-bloc)---------------------------4 Listing-ul programului----------------------------------------------------21 Descrierea programului---------------------------------------------------27 Rezultatele obinute-------------------------------------------------------33 Concluzii-------------------------------------------------------------------34 Lista literaturii utilizate--------------------------------------------------35

III.

IV.

V.

VI.

VII.

VIII.

I. INTRODUCERE
Limbajul C este un limbaj de programare care are o destinaie universal. El este utilizat n rezolvarea problemelor tiinifice i tehnico-inginereti, n prelucrri de date, precum i n scrierea programelor de sistem.

El a aparut n anul 1972. Autorul principal al limbajului este Dennis Ritchie de la firma BELL LABORATORIES. Limbajul C a aprut n legtura cu implementarea sistemului de operare UNIX pe minicalculatoarele firmei DEC, seria PDP-11. Sistemul de operare UNIX, compilatorul C i n esen toate aplicaiile sub sistemul UNIX sunt scrise n C ntr-o proporie mare. Astfel, din cele 13000 linii surs ale sistemului de operare UNIX, numai 800 linii sunt scrise n limbaj de asamblare, restul fiind scrise n C. De asemenea, nsi compilatorul C este scris n C n proporie de 80%. n felul acesta limbajul C asigur o portabilitate bun pentru programele scrise n el. Noiunea de portabilitate nu este nc definit riguros. n mod intuitiv, spunem c un program este portabil daca el poate fi transferat uor de la un tip de calculator la altul. Portabilitatea mare a programelor scrise n C a condus la o raspndire mare a limbajului C i a sistemului de operare UNIX. n prezent limbajul C este implementat i sub alte sisteme de operare. Practic el este disponibil pe toate calculatoarele, ncepnd cu microcalculatoarele personale i terminnd cu supercalculatoarele. Pe calculatoarele de tip IBM PC este implementat o variant a limbajului C numit TURBO C. Aceast variant dispune de un mediu de programare menit s ajute utilizatorul n scrierea i punerea la punct a programelor. De asemenea, pe acelasi tip de calculatoare este implementat varianta quickC, care dispune i ea de un mediu de programare dezvoltat. Limbajul C conine structurile proprii programrii structurate. Succesul ei s-a dovedit din plin odat cu apariia limbajului Pascal. De asemenea, limbajul C dispune i de faciliti oferite de limbajele de asamblare, cum sunt lucrul pe bii i utilizarea adreselor. El este considerat ca fiind un intermediar ntre limbajele de nivel nalt i cele de asamblare. Compilatorul C ofer programatorului o flexibilitate mai mare n scrierea programelor dect alte limbaje de programare. El realizeaz un numr mai redus de controale la compilarea textului surs. Din aceast cauz programarea n limbajul C este mai expus la erori dect programarea n alte limbaje, cum ar fi de exemplu, limbajul Pascal.

III. SCHEMA-BLOC
1.Programul principal:

START

2.AFIAREA CONDIIILOR INIIALE

3.COMPLETAREA BAZEI

4.NSCRIEREA BAZEI N FIIER

5.CITIREA BAZEI DIN FIIER

10

6.AFIAREA BAZEI LA MONITOR

11

12

7.ADUGARE

13

14

8.CUTRILE DUP NUME,NUMRUL PAAPORTULUI I ANUL NATERII:

15

16

17

18

9.ARANJAREA N ORDINEA ALFABETIC

19

20

IV. LISTING-UL PROGRAMULUI:


#include<stdio.h> #include<conio.h> #include<math.h> #include<stdlib.h> #include<string.h> //variabile globale int z=0,zz=0; int n,i; char w,v,c; char baza[20]="c:/baza.txt",bazanou[20]="c:/bazanou.txt"; float t;//an cutat struct pas { char nume[15],pr[22]; float nr,an; }adi; struct pas x[50]; //afiarea condiiilor iniiale void conditii (void) { clrscr(); gotoxy(20,2);textcolor(11); cprintf("Lucrare de curs la disciplina programare"); gotoxy(29,4);textcolor(15); cprintf("Condiiile problemei:"); gotoxy(10,5);textcolor(11); cprintf("De alctuit o baza de date cu N nscrieri care ar conine informaia"); gotoxy(10,6); cprintf("despre paapoartele unui grup de persoane."); gotoxy(5,7); cprintf("Sa fie posibilitatea de a cauta orice persoana dupa:"); gotoxy(5,8); cprintf(" numarul paaportului,numele persoanei i anul de natere\n\r"); gotoxy(5,10); cprintf("b)De aranjat nscrierile n ordine alfabetic dup familii."); gotoxy(5,wherey()+2); printf(" ");gotoxy(5,wherey()+1); printf(" Numele persoanei Numrul paaportului Anul naterii ");gotoxy(5,wherey()+1); printf(" ");gotoxy(5,wherey()+1); printf(" ");gotoxy(5,wherey()+1); printf(" ");gotoxy(5,wherey()+1); printf(" ");gotoxy(5,wherey()+1);
21

printf(" ");gotoxy(5,wherey()+1); printf(" ");gotoxy(5,wherey()+1); printf(" "); textcolor(15);gotoxy(5,wherey()+2); cprintf("Pentru iesire n meniu culegei <ENTER>"); getch(); } //completarea bazei de date int completare(void) { int i,k; float a,b;zz=1; clrscr(); gotoxy(15,2); printf("Culegeti cantitatea de nscrieri in baz "); scanf("%d",&k); for(i=0;i<k;i++) { clrscr(); gotoxy(5,2); printf("Indicati familia persoanei %d ",i+1); scanf("%s",x[i].nume); gotoxy(5,wherey()+2); printf("Indicati prenumele persoanei %d ",i+1); scanf("%s",x[i].pr); gotoxy(5,wherey()+2);printf("Indicati numarul pa$. %d ",i+1); scanf("%f",&a); x[i].nr=a; gotoxy(5,wherey()+2);printf("Indicati anul na$terii %d ",i+1); scanf("%f",&b); x[i].an=b; } textcolor(15);gotoxy(5,wherey()+2); cprintf("Pentru iesire in meniu culegeti <ENTER>"); getch(); return(k); } //________________nscrierea bazei in fisier void scrie_fisier(int k, char numef[20]) { FILE *f; int i; if((f=fopen(numef,"w"))==NULL) { clrscr();gotoxy(15,2);textcolor(15); cprintf("Fisierul nu poate fi deschis"); goto exit;} for(i=0;i<k;i++) fwrite(&x[i],sizeof(x[i]),1,f); fclose(f); clrscr(); textcolor(15); gotoxy(5,wherey()+2); cprintf("Baza de date a fost inscrisa in fisierul %s",numef); exit: gotoxy(5,wherey()+1); cprintf("Pentru iesire in meniu culegeti <ENTER>"); getch(); } //___________________citirea bazei din fisier int citire_fisier(char numef[20]) { FILE *f; int i; clrscr(); if((f=fopen(numef,"r"))==NULL) { clrscr();gotoxy(15,2);textcolor(15); cprintf("Fisierul nu poate fi deschis"); z=1; goto exit;} i=0; z=0; while( fread(&x[i],sizeof(x[i]),1,f)==1 ) i++; fclose(f); exit: return(i);}
22

//________________________afiarea bazei la monitor void afisare (int k, char numef[20]) { int i; if (z==1) {clrscr(); gotoxy(5,2); textcolor(15); cprintf ("Baza de date n-a fost citita din fisier"); goto exit;} else { clrscr(); gotoxy(5,2); textcolor(15); cprintf("Baza de date citita din fisierul %s este:",numef); gotoxy(5,wherey()+2); textcolor(15); printf(" ");gotoxy(5,wherey()+1); printf(" Numele persoanei Numrul pa$aportului Anul na$terii ");gotoxy(5,wherey()+1); printf(" ");gotoxy(5,wherey()+1); for(i=0;i<k;i++){ if (fmod(i,2)==0) {textbackground(12); textcolor(15);} else {textbackground(BLUE); textcolor(10);} cprintf("%12s-%11s%22.0f%20.0f",x[i].nume,x[i].pr,x[i].nr,x[i].an); gotoxy(5,wherey()+1);} textbackground(BLACK); textcolor(15); printf(" "); } exit: gotoxy(5,wherey()+2); cprintf("Pentru iesire in meniu culegeti <ENTER>"); getch();} //_______________________adugare______________________ void add (char numef[20]) { struct pas s; float a,b; FILE *f; int i; char q; if((f=fopen(numef,"a"))==NULL) { clrscr();gotoxy(5,2);textcolor(15); cprintf("Fisierul nu poate fi deschis"); goto exit;} ad: clrscr();gotoxy(5,wherey()+2);textcolor(15); cprintf("Doriti sa adugati inca o inscriere in baza de date? y/n "); q=getch(); if ((q=='y')||(q=='Y')) { gotoxy(10,wherey()+2); textcolor(15); cprintf("Indicati familia persoanei "); scanf("%s",s.nume); gotoxy(10,wherey()+1); cprintf("Indicati prenumele "); scanf("%s",s.pr); gotoxy(10,wherey()+1); cprintf("Indicati nr. pasaportului ");scanf("%f",&a); s.nr=a; gotoxy(10,wherey()+1); cprintf("Indicati anul na$terii ");scanf("%f",&b); s.an=b; f=fopen(numef,"a"); fwrite(&s,sizeof(s),1,f); fclose(f); goto ad;} exit: gotoxy(5,wherey()+2); textcolor(15);
23

cprintf("Pentru iesire in meniu culegeti <ENTER>"); getch(); } //______ cautare dupa nume, numarul pasaportului $i anul void cautare(int k,char caut[22]) { int i,g; char Z[22],B[22];float R, Npc; if (z==1) {clrscr(); gotoxy(5,2); textcolor(15); cprintf ("Baza de date n-a fost citita din fisier"); goto exit; } else { clrscr(); gotoxy(5,2); textcolor(15); if (strcmp(caut,"nume")==0) {g=1; cprintf("Culege familia persoanei "); scanf("%s",Z);} if (strcmp(caut,"pa$aport")==0) {g=2; cprintf("Culege numrul pa$aportului cutat"); scanf("%f",&Npc);} if (strcmp(caut,"an")==0) {g=3; cprintf("Culege anul cutat "); scanf("%f",&t); } } gotoxy(5,wherey()+1); textcolor(15); cprintf("Rezultatul cautarii dupa %s este:",caut);gotoxy(5,wherey()+1); printf(" ");gotoxy(5,wherey()+1); printf(" Numele - prenumele Numrul pa$aportului Anul na$terii ");gotoxy(5,wherey()+1); printf(" ");gotoxy(5,wherey()+1); for(i=0;i<k;i++) { textcolor(15); if (g==1) { strcpy(B,x[i].nume); if ( strstr(strlwr(B),strlwr(Z))!=0 ) { cprintf("%12s_%11s%22.0f%20.0f",x[i].nume,x[i].pr,x[i].nr,x[i].an); gotoxy(5,wherey()+1); }} if (g==2) { R=x[i].nr; if (R==Npc) { cprintf("%12s_%11s%22.0f%20.0f",x[i].nume,x[i].pr,x[i].nr,x[i].an); gotoxy(5,wherey()+1); }} if (g==3) { R=x[i].an; if (t==R) { cprintf("%12s_%11s%22.0f%20.0f",x[i].nume,x[i].pr,x[i].nr,x[i].an); gotoxy(5,wherey()+1); }} } printf(" ");
24

exit: gotoxy(5,wherey()+2); cprintf("Pentru iesire in meniu culegeti <ENTER>"); getch(); } //____________________ aranjare in ordine alfabetic void aranjare (int k) { int i,j; for (i=0;i<k;i++) { for (j=i+1;j<k;j++) { if(strcmpi(x[i].nume,x[j].nume)>0) { strcpy(adi.nume,x[i].nume); strcpy(x[i].nume,x[j].nume); strcpy(x[j].nume,adi.nume); } } } clrscr(); gotoxy(5,2);textcolor(15); cprintf("Baza de date a fost citita din fisierul c:\\baza.txt");gotoxy(5,3); cprintf("nscrierile au fost aranjate in ordine alfabetic dup famile"); gotoxy(5,5); cprintf("Pentru a vedea rezultatul accesai punctul 9 din meniu"); gotoxy(5,6); cprintf("Pentru iesire in meniu culegeti <ENTER>"); getch(); } //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$$$$$$$$ void main(void) { meniu: clrscr(); textcolor(15); gotoxy(15,2); cprintf("Alege din meniu:"); gotoxy(5,wherey()+2); cprintf("1: Afisarea conditiilor initiale"); gotoxy(5,wherey()+1); cprintf("2: Completarea bazei de date"); gotoxy(5,wherey()+1); cprintf(" si inscrierea ei in fisierul TC\\BIN\\baza.txt"); gotoxy(5,wherey()+1); cprintf("3: Citirea bazei de date din fisierul TC\\BIN\\baza.txt"); gotoxy(5,wherey() +1); cprintf(" si afisarea ei la monitor"); gotoxy(5,wherey()+1); cprintf("4: Adugarea unei inscrieri in baza de date"); gotoxy(5,wherey()+1); cprintf("5: Cutarea dup numrul paaportului"); gotoxy(5,wherey()+1); cprintf("6: Cautarea dup numele persoanei"); gotoxy(5,wherey()+1); cprintf("7: Cautarea dup anul de natere a persoanei"); gotoxy(5,wherey()+1); cprintf("8: Aranjarea nscrierilor in ordine alfabetic dup familii"); gotoxy(5,wherey()+1); cprintf(" i nscrierea bazei de date in fiierul TC\\BIN\\bazanoua.txt"); gotoxy(5,wherey()+1); cprintf("9: Afiarea bazei de date finale la monitor"); gotoxy(5,wherey()+1); cprintf("0: Ieire");
25

w=getch(); switch (w) { case '1': {conditii(); goto meniu;} case '2': { if(zz==1) {clrscr();printf("Dorii sa reintroduceti ?!!?!!?!!??!!?? y/n"); c=getch(); if ((c=='n')||(c=='N')) goto out; } n=completare(); scrie_fisier(n,baza);out: goto meniu;} case '3': {n=citire_fisier(baza); afisare(n,baza); goto meniu;} case '4': {add(baza); goto meniu;} case '5': {n=citire_fisier(baza); cautare(n,"nume"); goto meniu;} case '6': {n=citire_fisier(baza); cautare(n,"paaport"); goto meniu;} case '7': {n=citire_fisier(baza); cautare(n,"an"); goto meniu;} case '8': { n=citire_fisier(baza);aranjare(n); scrie_fisier(n,bazanoua); goto meniu;} case '9': {n=citire_fisier(bazanoua); afisare(n,bazanoua); goto meniu;} case '0': goto m0; default : goto meniu;} m0: clrscr(); gotoxy(15,2); textcolor(15); cprintf("Doriti iesirea din program ?!! y/n"); v=getch(); if ((v=='n')||(v=='N')) goto meniu; gotoxy(15,4); textcolor(15); cprintf("Tastati <ENTER>"); getch(); }

V. Descrierea programului

26

Programul dat const n prelucrarea unei baze de date. Pentru comoditate s-a creat un meniu operativ cu ajutorul cruia se poate trece din orice etap n alta, astfel uurnd procesul de lucru a utilizatorului. Ca i oricare alt program n acest limbaj,mai nti de toate este nevoie de a include bibliotecile necesare pentru funciile care vor fi folosite : 1.<conio.h> Biblioteca funciilor de prelucrarea a informaiei de intare_ieire (getch(),gotoxy(),textcolor(),clrscr()) 2.<stdio.h> Bibilioteca funciilor de intrare_ieire standard (printf();scanf();fopen().a.) 3.<stdlib.h> Bibioteca funciilor utilare (randomize();) Dup declararea bibiotecilor s-au declarat variabile ce vor fi folosite pe parcursul programului.Variabilele reprezint spaii n memoria calculatorului avnd acelai rol n timp.Limbajul C++ recunoate 5 tipuri de variabile: Caracter: char (rang -127 ..+128) ntreg : int (rang -32768..+32767) Tip de variabil neprecizat sau inexistent:void Real n virgul mobil n simpl precizie:float (10-37..10+37) Real n virgul mobil n dubl precizie:double(10-308..10+308) Modul de memorare a acestor tipuri de date depinde de tipul calculatorului i de varianta limbajului C++. Moduri de implementare: Signed(cu semn) Unsigned(fr semn) Long(lung) Short(scurt) S-au folosit variabile globale deoarece ele sunt recunoscute pe parcursul ntegului program. Orice program n C se compileaz de la funcia principal main() . Funcia main() este aceea ctre care sistemul de operare transfer controlul atunci cnd se lanseaz n execuie programul.Parametrul void naitea funciei arat c funcia nu ntoarce valori, void ntre paranteze arat c funcia nu folosete parameti. ntregul program e construit pe subprograme (funcii) fiecare avnd numele su i rol n program. Prima funcie ce se excut dup lansarea programului este menu() care duce apel la desenarea meniului.Aceast funcie cur ecranul (cu clrscr();) apoi atribuie o culoare (15 alb) textului care va aprea pe ecran(textcolor(15);),dup aceasta cu ajutorul funciei de poziionare a cursorului (gotoxy();) aeaz acesta pe poziia (15.2) Urmeaz funcia de afiare a informaiei cu fomat i culoare cprintf() Prototipul funciei: int cprintf( const char *format ,argument,...);

Descrierea funciilor

27

n programul dat se conin diferite funcii destinate prelucrrii irurilor de caractere. Aceste funcii sunt standarte, adic declarate cu prototip ntr-o bibliotec special. Toate funciile sunt declarate n biblioteca: <string.h>. n timpul rezolvrii acestei lucrri ne-am ntlnit cu situaii cnd era necesar prelucrarea i pstrarea unei informaii mai complexe care coninea date de diferite tipuri. Gruparea acestor date ntr-o variabil complex a fost posibil datorit tipului de date Structur. De asemenea trebuie de menionat faptul c un rol important n aceast lucrare au avut-o funciile i fiierele n C. Funciile le-am folosit n scopul evidenierii unor sarcini concrete i ncapsularea lor n module aparte, pentru a preveni probabilitatea de apariie a erorilor att logice ct i sintactice. Deci acum voi ncerca pe scurt s descriu programul pe care l-am realizat:
1.

AFISAREA_CONDIIILOR INIIALE.

Mai nti am creat un meniu cu ajutorul instruciunii Goto: Sintaxa: goto eticheta; unde eticheta este un identificator C ataat unei instruciuni. O etichet const dintr-un nume i dou puncte. Instruciunea de salt necondiionat transmite controlul execuiei programului la instruciunea marcat cu eticheta (n cazul meu eticheta este: meniu). n continuare cu ajutorul funciei de intrare n C : getch() Sintaxa:var=getch() unde var este numele variabilei creia i va fi atribuit caracterul cules de la tastatur (n cazul meu var este caracterul W). Ca s putem verifica condiiile din meniu am folosit instruciunea de selectare Switch: Sintaxa: switch(expresie) {case expresie const1: instructiunea 1;break; ... case expresie constN:instructiunea N;brak; default:instructiune; } Atunci cnd un program ntlnete o instruciune switch, testeaz condiia asociat (expresie). Pe baza valorii ntregi a acesteia, el va transfera execuia ctre blocul case, etichetat cu acea expresie const corespunztoare. n cazul cnd nici o expresie const nu este egal cu expresia dup switch, se ndeplinete instruciunea din ramura default. n continuare utilizatorului i se propune s aleag orice punct din meniu. Cnd alegem punctul 1 atunci are loc aplul la funcia: Condiii, deci de aici se ncepe lucrul cu funciile: Sintaxa : tip_f nume_-f (lista parametri) { declararea variabilei; operatori;} unde: tip-f - tipul funciei numit tipul valorii returnate ; nume-f numele funciei;
28

lista parametri conine tipul i numele fiecrui parametru, n cazul nostru cnd compilatorul va ntlni funcia condiii n acel moment el verific dac corespund tipul valorii returnate, cantitatea i poziia parametrilor funciei. Dup aceea cu ajutorul instruciunii Goto ieim iari n meniu.
2.

a) COMPLETAREA BAZEI DE DATE:

Dac utilizatorul testeaz tasta 2 atunci are loc apelul la funcia cu tip Completare: Sintaxa: tip_f nume_f(Lista_parametri); Unde tip_f tipul funciei i tipul valorii returnate ; Nume_f numele funciei. Funciile n C++ ntorc valori cu ajutorul operatorului Return, lipsa acestui operator n cadrul funciei cu tip duce la eroare. Aici cu ajutorul lui Return, se face atribuirea valorii din variabila local funciei completare K n valiabila N din funcia main. 2. b)NSCRIEREA EI N FIIERUL BAZA.TXT: Tot n acest punct se cere i nscrierea bazei de date n fiierul baza.txt. n continuare se face apel tot la o funcie scrie_fiier care conine parametri, dar nu ntoarce valori. Sintaxa: tip-f nume-P ; Unde tip-p tipul parametrului; Nume-P numele parametrului. Dac funcia conine civa parametri ei vor fi descrii mpreun ntre () i vor fi desprii prin ,. Parametru - informaia iniial transmis din program n funcie la momentul apelului acestuia. n cazul nostru urmeaz instruciunea de apel la funcie, n acest caz se efectuiaz controlul corespunderii parametrilor actuali i parametrilor formali dup cantitate, poziie i tip. Parametru actual - variabila transmis n funcie n tipul apelrii acesteia (n cazul nostru sunt: n i baza) . Parametru formal - variabila descris ca parametru n timpul declarrii funciei i folosite n corpul funciei la calculele necesare (n cazul nostru sunt: K i numef). n continuare pentru a nscrie baza n fiier trebuie s o facem cu ajutorul indicatorilor la fiier: Declararea: FILE *f ; Unde FILE cuvntul cheie rezervat pentru fiier; f numele indicatorului la fiier. Mai nti de toate trebuie s deschidem fiierul, aceasta se face cu ajutorul funciei fopen: Sintaxa: f=fopen(nume-f, mod); Unde f numele indicatorului la fiier; Nume-f numele fiierului pe disc; Mod- modul de deschidere a fiierului.
29

Deoarece din cele trei modaliti de acces de deschidere a fiierului am ales cea de a nscrie , atunci scriem n lo de mod w. n caz c fiierul nu exist se va returna valoare NULL. Pentru a scrie date ntr-un fiier deschis vom utiliza funcia fwrite, care are urmtorul prototip n biblioteca stdio.h: Sintaxa: fwrite(&Nume, sizeof (structNume),1,pPointerFiier). Dup ce va fi baza nscris fiierul trebuie nchis, aceasta se face cu ajutorul funciei flose: Sintaxa: fclose(f) Unde f- numele indicatorului la fiier 3. a) CITIREA BAZEI DE DATE DIN FIIERUL BAZA.TXT: n continuare dac utilizatorul testeaz 3, programul apeleaz la o funcie cu tip citire-fiier. De asemenea se deschide nti fiierul, iar pentru a fi posibil citirea folosim funcia fread : Sintaxa: fread(&Nume, sizeof struct(Nume), 1,pPointerFiier) Se folosete operatorul sizeof deoarece acesta asigur c este citit numrul corect de octei. Aici am mai folosit instruciunea ciclic While , care se folosete n cazul cnd nu-i cunoscut numrul de repetri i este necesar ca ciclul s fie ndeplinit de 0 sau mai multe ori. Sintaxa:While(expresie) instruciune; Modul de lucru: la nceput este controlat expresia dac este diferit de 0 sau TRUE apoi se ndeplinete instruciunea i continu pn cnd expresia este egal cu 0. 3. b) AFIAREA EI LA MONITOR: Aici am folosit fmod(x,y) - care ntoarce restul de la mprire a dou numere. n cazul nostru vede dac este par sau nu numrul. n rest am folosit aceleai funcii care au fost descrise mai sus. 4. ADUGAREA UNEI NSCRIERI_ Dup executarea cifrei 4 din meniu programul apeleaz la funcia cu parametri void add , care permite adugarea unei noi nscrieri. Aici am recurs la structura pas: Sintaxa: Struct pas { Tip1 nume1; Tip 2 nume2; ... .... ..... .... ... Tip N numeN; } Unde pas tip nregistrare; NumeN cmpul structurii.
30

n cazul nostru adi este variabil de tip structur. 5.6.7. CUTRILE DUP: numrul paaportului, numele persoanei i anul de natere: n toate aceste puncte am folosit aceleai funcii pe care le-am descris mai sus.

8.ARANJAREA NSCRIERILOR N ORDINE ALFABETIC: Pentru aranjarea nscrierilor am folosit instruciunea ciclic FOR: Caracteristici: Numrul de repetri sunt cunoscute de la nceputul lui; Conducerea ciclului este efectuat de o variabil de tip ntreg numit parametrul ciclului, care n acest proces primete valori consecutive de la valoarea iniial la valoarea final. Sintaxa: Expr 1 de iniializare a parametrului; Expr 2 de control; Expr 3 de incrementare sau de corecie. Se continu pn expr 2 devine 0 sau Fals. 9. AFIAREA BAZEI DE DATE FINALE LA MONITOR: n acest punct se folosete funcia 3, numai c are loc citirea i afiarea bazei din fiierul bazanou.txt. 0. IEIRE: Pentru a putea iei din program, utilizatorul trebuie s tasteze tasta Enter. DESCRIEREA BIBILIOTECILOR:

stdio.h
printf (control, par1, par2, ..., parn ) - funcia pentru a realiza ieiri cu format control - parametrul ce conine: - texte de scris; - specificatori de format pentru datele care se scriu par n - Sunt expresii. Valorile lor se scriu conform specificatorilor de format prezent n parametrul de control fprintf (fis, control, par1, par2, ..., par n) - funcia pentru scriere cu format ntr-un fiier scanf (control, par1, par2, ..., par n) - funcia pentru citirea datelor sub controlul cu format fis= fopen (nf , mod) - funcia pentru deschiderea unui fiier fis - un pointer spre tipul FILE
31

nf - specificatorul fiierului care se deschide mod - un sir de caractere care definete modul n care se deschide fiierul fclose (FILE *fis ) - funcia pentru nchiderea fiierului

conio.h
getch ( ) - funcia pentru citirea unui caracter far al afia la ecran cprintf (control, par1, par2, ..., par n ) - funcia pentru scriere color cu format gotoxy (int coloana, int linie) - funcia pentru poziionarea cursorului la coordonatele indicate coloana - coordonata x a ecranului linie - coordonata y a ecranului clrscr ( ) - funcia penru tergerea ecranului textcolor (int culoarea) - funcia pentru setarea culorii caracterului culoarea - valoare cuprins intre [0,15] textbackground (int culoarea) - funcia pentru setarea culorii fondului

string.h
char *strcpy(char *dest, const char *sursa) - funcia pentru copierea irului sursa n irul dest.

VI. REZULTATELE OBINUTE


32

Arbuz Vasile Cojoc Irina Rotaru Vitalie

!!!!! 2364532 !!!!! 1978 !!!!! !!!!! 6486753 !!!!! 1799 !!!!! !!!!! 1758034 !!!!! 1980 !!!!!

Tiron Alexandru !!!!! 1979432 !!!!! 1958 !!!!! Until Svetlana !!!!! 5307054 !!!!! 1999 !!!!! Voloc Sergiu Zubcu Cornel !!!!! 4043005 !!!!! 1982 !!!!! !!!!! 0364786 !!!!! 2000 !!!!!

VII. Concluzii
33

n fine menionm c caracteristicile distinctive ale limbajului Csunt: Portabilitatea maxim Strucrurarea Posibilitatea efecturii operaiilor la nivelul mainii, cu pstrarea trsturilor unui limbaj evoluat n urma efecturii acestei lucrri am cptat experiena de a percepe lucrul cu baza de date n C . De asemenea am depistat modul de lucru cu diferite funcii ale programului i ne-am convins c acest limbaj are a mare eficacitate de programare. Mi-a plcut modalitatea de aranjare a bazei de date la monitor i faptul c aici poi s aranjezi totul dup placul tu.

Bibliografie:
34

Catrina Octavian Turbo C++ Bucureti 1994

Constantin A. Sevici Programarea n C Bucureti 1995 Clint Hicks - Utilizarea C, Teora , Bucureti 1995

35

You might also like