Validarea datelor in Pascal

Trimis la data: 0000-00-00 Materia: Informatica Nivel: Liceu Pagini: 6 Nota: / 10 Downloads: 5340
Autor: Cleo-ruxy Dimensiune: 6kb Voturi: Tipul fisierelor: doc Acorda si tu o nota acestui referat: 1 2 3 4 5 6 7 8 9 10
vezi mai multe detalii vezi mai putine detalii
Raporteaza o eroare
Validarea se poate face la nivel de camp (un camp respecta propriile sale conditii), la nivel de articol (respectarea unor relatii intre campurile aceluiasi articol), la nivelul mai multor articole (respectarea unor relatii intre campurile unor articole diferite, completitudinea pe pachete de documente, corectitudinea unor totaluri pe pachete) sau la nivel de fisier (completitudine, corectitudinea unor totaluri pe fisier).

VALIDAREA DATELOR IN PASCAL


Prin validare intelegem operatia de verificare a corectitudinii datelor. O data se considera corecta daca respecta o serie de conditii aritmetice sau logice prestabilite. Validarea datelor presupune precizarea urmatoarelor elemente:
Conditiile de verificare
Actiunile care trebuie executate cand data este corecta sau incorecta
Modul de semnalare a erorilor si structura mesajelor
Modul de corectie a erorilor
Modul de reintroducere a articolelor dupa corectia acestora
Validarea se poate face la nivel de camp (un camp respecta propriile sale conditii), la nivel de articol (respectarea unor relatii intre campurile aceluiasi articol), la nivelul mai multor articole (respectarea unor relatii intre campurile unor articole diferite, completitudinea pe pachete de documente, corectitudinea unor totaluri pe pachete) sau la nivel de fisier (completitudine, corectitudinea unor totaluri pe fisier).
Cele mai importante validari la nivel de campuri si la nivel de articol se refera la:
Existenta
Natura
Lungime
Semn
Apartenenta la o multime sau lista de valori
Respectarea unor corelatii aritmetice sau logice intre campuri
Daca o data nu indeplineste toate conditiile stabilite, se considera eroare si se solicita reintroducerea ei. Introducerea se poate repeta, fie pana se obtine o data corecta, fie pana cand se depaseste un numar prestabilit de reintroduceri.
Cand un camp este corect, se trece la inroducerea si validarea urmatorului camp. Cand articolul este corect, se scrie in suportul extern si se trece la urmatorul articol.
Figura urmatoare prezinta o secventa de principiu de validare a unui camp dupa mai multe conditii:
-----------------------------------------------
Pentru a construi structura repetitiva, necesara reluarii introducerii campului, se utilizeaza o variabila semafor (booleana) ER, care ia valoarea 1, daca a fost eroare (nu s-a indeplinit un criteriu de validare din multimea C1, C2, …, Cn), sau 0, in caz contrar.

1.VALIDAREA EXISTENTEI

O data se considera existenta daca in campul corespunzator ei nu se introduce doar . Verificarea existentei se realizeaza in functie de in functie de semnificatia tastei ENTER la citirea diverselor tipuri de date:
Pentru date numerice- rol de separator,fiind ignorata la citire
Pentru date de tip caracter- furnizeaza codul ASCII al caracterului CR (#13)
Pentru date de tip STRING- rol de terminator
Analiza presupune ca datele sunt introduse camp cu camp, cu procedura READLN. Avand in vedere ca la citirea datelor numerice, este ignorat si ca la citirea intr-o variabila de tip CHAR a lui se solicita un nou , rezulta ca, indiferent de tipul datei, singura posibilitate de verificare a existentei este citirea in variabile STRING, la care numai prin apasarea tastei ENTER se genereaza transferul sirului vid. Daca LENGTH(sir)=0 (sau sir[0]= #0), se considera ca data nu a fost introdusa. Daca valoarea introdusa este diferita de sirul vid se va proceda astfel:
Pentru date numerice, valoarea STRING va fi convertita cu procedura VAL, definita in unit-ul SYSTEM, care se apeleaza astfel:VAL(s,n,cod_er)
S este variabila STRING care va fi convertita, n este variabila numerica in care s va depune rezultatul conversiei, iar cod_er e o variabila de tip INTEGER care va contine valoarea 0, daca conversia sin ASCII in binar s-a realizat fara eroare, sau pozitia in cadrul sirului a caracterului care nu a putut fi convertit (caz in care valoarea lui n nu se modifica).
Exemplu:
VAR
Cod: WORD; cods: STRING[5]; cod_er: INTEGER; er: BOOLEAN;
BEGIN
REPEAT
Er:=false; Write[`Cod: `]; Readln (cods);
IF cods [0]= #0 THEN
BEGIN er:=true;Writeln (`>>Nu ati inrodus valoare!`) End
ELSE Val (cods,cod,cod_er);
UNTIL NOT er;
END
Penru date de tip caracter, valoare STRING[1] citita va fi atribuita variabilei de tip CHAR.
Exemplu:
VAR
Sex:CHAR; sexs:STRING[1]; er:BOOLEAN;
BEGIN
REPEAT
Er:=false; Write(`sex:`);Readln(sexs)
IF sexs[0]=#0 THEN
BEGIN er:=true; Writeln(`Cod numeric!`)
END
UNTIL NOT er;
END.
b)Validarea prin conversii proprii presupune introducerea datei numerice intr-o variabila de tip STRING, urmata de conversia cu procedura VAL. Dupa executie se testeaza parametrul cod_er al acesteia.

VAR
Cod:WORD; cods:STRING[5]; cod_er:INTEGER; er:BOOLEAN;
BEGIN
REPEAT
Er:=false;Write(`cod:`);Readln (cods);Val(cods,cod,cod_er);
IF cod_er0 THEN
BEGIN er:=true; Writeln(`>>Cod numeric!`)
END
UNTIL NOT er
END.

2.Validarea naturii alfabetice se realizeaza prin verificarea naturii fiecarui caracter din sirul citit (prin expresii relationale sau prin expresii cu multimi).
VAR
Nume:STRING[30]; er:BOOLEAN;
CONST
Alfabet:=[`A`..`Z`, `a`..`z`,` `,`-`];
BEGIN
REPEAT
Er:=false; Write(`Nume: `); Readln(nume);
FOR i:=1 TO Length(nume) DO
IF NOT (nume[i] IN alfabet) THEN er:=true;
IF er THEN Writeln(`>>Data nealfabetica!`)
UNTIL NOT er;
END.
4.VALIDAREA APARTENENTEI LA O MULTIME

Verificarea apartenentei unei date numerice la o multime prestabilita de valori se realizeaza fie prin expresii cu multimi ( utilizand operatorul IN), daca multimea este ordinala si se poate defini un literal de tip SET, fie prin expresii relationale, daca multimea este reala sau nu se poate defini o constanta SET.
VAR
Cod_grupa:WORD; vb,er:BOOLEAN;
CONST catalog=[201..250];
BEGIN
REPEAT
Er:=false; Write(`cod grupa:`);Readln(cod_grupa);
IF NOT (cod_grupa IN catalog) THEN
BEGIN er:=true;Writeln(`>>Cod grupa eronat!`) END
UNTIL NOT er;
END.
Pentru date de tip STRING, verificarea se poate realiza prin cautarea intr-o tabela generata prin program (de exemplu, o constanta de tip vectori de siruri).
VAR sectie:STRING[15]; i:BYTE; vb,er:BOOLEAN;
CONST nomenclator:ARRAY[1..4] OF STRING[15]=(`Informatica`, `Statistica`, `Cibernetica`,`Matematica`);
BEGIN
REPEAT
Er:=false; vb:=false; Write(`Sectia:`);Readln(sectie)
FOR i=1 TO Length(sectie) DO sectie[i]:=UpCase(sectie[i]);
i:=1;
WHILE (i>Sectie inexistenta !`) END
UNTIL NOT er;
END.

Pentru date de tip CHAR pot fi folosite expresii cu multimi (operatorul IN).

VAR
tip_bursa:CHAR;vb,er:BOOLEAN;
BEGIN
REPEAT
Er:=false;
Write (`Tipul bursei (1/2/S/M):`);
Readln(tip_bursa):
IF NOT(tip_bursa IN [`1`,`2`,`S`,`M`]) THEN
BEGIN
Er:=true;
Writeln (`>>Tip bursa eronat!`)
END
UNTIL NOT er;
END.

Nota explicativa
Referatele si lucrarile oferite de Referate.ro au scop educativ si orientativ pentru cercetare academica.

Iti recomandam ca referatele pe care le downloadezi de pe site sa le utilizezi doar ca sursa de inspiratie sau ca resurse educationale pentru conceperea unui referat nou, propriu si original.

Referat.ro te invata cum sa faci o lucrare de nota 10!
Filmele zilei
Linkuri utile
Programeaza-te online la salonul favorit Descarca gratuit aplicatiile pentru iOS si Android Filmulete haioase Filme, poante si cele mai tari faze Jocuri Cele mai tari jocuri de pe net Referate scoala Resurse, lucrari, referate materiale pentru lucrari de nota 10 Bacalaureat 2019 Vezi subiectele examenului de Bacalaureat din 2019 Evaluare Nationala 2019 Ultimele informatii despre evaluare nationala
Toate imaginile, textele sau alte materiale prezentate pe site sunt proprietatea referat.ro fiind interzisa reproducerea integrala sau partiala a continutului acestui site pe alte siteuri sau in orice alta forma fara acordul scris al referat.ro. Va rugam sa consultati Termenii si conditiile de utilizare a site-ului. Informati-va despre Politica de confidentialitate. Daca aveti intrebari sau sugestii care pot ajuta la dezvoltarea site-ului va rugam sa ne scrieti la adresa webmaster@referat.ro.
Confidentialitatea ta este importanta pentru noi

Referat.ro utilizeaza fisiere de tip cookie pentru a personaliza si imbunatati experienta ta pe Website-ul nostru. Te informam ca ne-am actualizat politica de confidentialitate pentru a integra cele mai recente modificari privind protectia persoanelor fizice in ceea ce priveste prelucrarea datelor cu caracter personal. Inainte de a continua navigarea pe Website-ul nostru te rugam sa aloci timpul necesar pentru a citi si intelege continutul Politicii de Cookie. Prin continuarea navigarii pe Website-ul nostru confirmi acceptarea utilizarii fisierelor de tip cookie conform Politicii de Cookie. Nu uita totusi ca poti modifica in orice moment setarile acestor fisiere cookie urmarind instructiunile din Politica de Cookie.


Politica de Cookie
Am inteles