tipuri-de-date-in-pascal.pdf

Upload: miroslav-turcan

Post on 02-Jun-2018

221 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/11/2019 Tipuri-de-Date-in-PASCAL.pdf

    1/11

    Proiect PASCAL

    Tipuri de date in PASCAL

    Profesor:Turcan Miroslav

    Liceul Academic Igor Vieru

    Clasificarea si utilizarea tipurilor de date din programele PASCAL

  • 8/11/2019 Tipuri-de-Date-in-PASCAL.pdf

    2/11

    2

    In cadrul programelor PASCAL variabilele au rolul de a rezerva in memoria

    calculatorului un spatiu in care urmeaza sa fie inscrise date primate de la utilizator sau

    rezultate in timpul diverselor prelucrari.

    Tipurile de date care pot fi luate de variabile sunt urmatoarele:

    Tip numeric

    Tip logic Tip caracterRezervarea spatiului de memorie se face in partea de declaratii a programului

    PASCAl, spre exemplu avand:

    var k,i:integer ;r:char;produs:array[1..50] of string;pret:array[1..50]of integer;prettot:longint;

    In exemplul anterior, se folosesc tipuri de data numeric si character, identificatorii

    variabilelor fiind urmatorii: k , i , r , produs , prt , prettot

    Datele numerice in Pascal sunt de mai multe tipuri, dupa cum urmeaza:

    Pentru numere intregi:

    INTEGERpermit stocarea numerelor intregiintre32768 si 32767

    SHORTINTpermit stocarea numerelor intre -128 si 127

    LONGINTpermit stocarea numerelor intre 2147483648 si 2147483647

    BYTE - - permit sticarea numerelor intre 0 si 255

    WORDpermit stocarea numerelor intre 0 si 65535

    Pentru numere reale:

    REAL

    SINGLE

    DOUBLE

    EXTENDED

    COMP

    In cazul datelor reale afisarea se face folosind caracterul E urmat de o cifra, ceea ce

    inseamna de fapt 10 la puterea indicata de cifra respectiva.

    Iata un mic programel care ne afiseaza un numar introdus de la tastatura ca numar real:

    program afisarereal;uses crt;varnum: real ;

    beginclrscr;

    write ('introduceti numarul pentru a fi afisat in format real n=');readln (num);writeln ('formatul de data tip real este n=' , num);

    readkey ;

  • 8/11/2019 Tipuri-de-Date-in-PASCAL.pdf

    3/11

    3

    end.

    Cod sursa: numar_re.pas

    Iata cum functioneaza:

    Daca se doreste ca utilizatorul sa poata citi numerele introduse intr-un format inteligibil se

    realizeaza formatarea datelor de iesire, specificandu-se numarul de caractere ce vor fi

    afisate INAINTE si DUPA virgula, astfel:

    NUMAR:INAINTE:DUPA

    INAINTE SI DUPA REPREZINTA CIFRE. EXEMPLU: NUMAR:8:2 este un numar cu

    8 cifre inainte si doua cifre dupa virgula.

    Programul anterior care va fi transformat astfel incat sa afiseze o cifra introdusa de la

    tastatura folosind atat caracterul E cat si un format definit de utilizator arata asa:

    program afisarereal;uses crt;varnum: real ;

    beginclrscr;

    write ('introduceti numarul pentru a fi afisat in format real n=');readln (num);writeln ('formatul de data tip real este n=' , num);writeln ('formatul inteligibil n=' , num:8:2);

    readkey ;end.

    Cod sursa: numar_re.pas

    Iata cum functioneaza:

  • 8/11/2019 Tipuri-de-Date-in-PASCAL.pdf

    4/11

    4

    Datele de tip sir de caractere se declara folosind STRING ( sir de caractere ).

    Iata un programel care foloseste date de tip STRING:

    program sircaractrere;uses crt;varnume , prenume : string ;

    beginclrscr;

    write ('Care este numele tau de familie ? ');readln (nume);write ( 'care este prenumele tau ? ');readln (prenume);writeln ('Ma bucur de cunostinta, ',nume,' ', prenume);readkey ;

    end.

    Cod sursa : sircarac.pas

    Iata cum functioneaza:

  • 8/11/2019 Tipuri-de-Date-in-PASCAL.pdf

    5/11

    5

    Datele de tip logic se declara folosind folosinf BOOLEAN

    Iata un programel care foloseste date de tip BOOLEAN:

    PROGRAM LOGICTEST;USES CRT;VARTEST : BOOLEAN ;TERMEN1 , TERMEN2 , REZULTAT1 , REZULTAT2 :INTEGER ;

    BEGINCLRSCR;WRITELN ( 'SA INVATAM ADUNAREA A DOUA NUMERE INTREGI.');WRITE ('INTRODUCETI PRIMUL NUMAR = ');READLN (TERMEN1);WRITE ('INTRODUCETI AL DOILEA NUMAR = ');READLN (TERMEN2);WRITE ('INTRODUCETI REZULTATUL ADUNARII = ');READLN (REZULTAT1);REZULTAT2:=TERMEN1+TERMEN2 ;IF REZULTAT1=REZULTAT2 THEN

    BEGINTEST := TRUE ;

    WRITELN ('VALOAREA DE ADEVAR A CORECTITUDINII OPERATIEI ESTE ', TEST);END

    ELSEBEGINTEST := FALSE ;WRITELN ('VALOAREA DE ADEVAR A CORECTITUDINII OPERATIEI ESTE '

    , TEST);END ;

    READKEY;END.

    Cod sursa: testlogi.pas

    Iata cum functioneaza:

  • 8/11/2019 Tipuri-de-Date-in-PASCAL.pdf

    6/11

    6

    Daca programul PASCAL pe care intentionam sa il cream presupune operarea cu un

    numar mare sau foarte mare de date, acestea vor trebui declarate in cadtul unor variabile

    de tip tablouARRAY - care poate avea 1 sau mai multe dimensiuni. Tabloul cu odimensiune este de fapt un sir, tabloul cu doua dimensiuni este o matrice.

    Declararea tablourilor se realizeaza astfel:

    Array [tipindice1, tipindice2] of TipElemente;

    TipElemente reprezinta unul din tipurile de date despre care am vorbit in paginile

    anterioare.

    Iata in continuare codul sursa al unui program care realizeaza un listing al produselor

    cumparate, pretul lor si pretul total:

  • 8/11/2019 Tipuri-de-Date-in-PASCAL.pdf

    7/11

    7

    program calculproduse;uses crt;var k,i:integer ;r:char;produs:array[1..50] of string;pret:array[1..50]of integer;

    prettot:longint;begin

    clrscr;k:=0;{cate produse se introduc}prettot:=0;writeln ('doriti sa introduceti date pe bon');

    writeln ('d/n ? ');

    readln (r);while (upcase(r)='D') dobegin

    write ('introduceti numele produsului : ');

    k:=k+1;readln (produs[k]);write ('introduceti pretul : ');readln (pret[k]);prettot:=prettot+pret[k];writeln ('mai introduceti produse ? d/n ') ;readln (r);

    end ;writeln ('*********************************');for i:=1 to k do

    beginwriteln (produs[i],', pret: ',pret[i]);

    end;

    writeln ('*********************************');writeln ('* aveti de achitat: ' , prettot:10 ,' *' ) ;writeln ('*********************************');write ('apasati orice tasta pentru iesire...');readkey;

    end.

    Cod sursa: bon.pas

    Iata cum functioneaza programul:

  • 8/11/2019 Tipuri-de-Date-in-PASCAL.pdf

    8/11

    8

    Dezvoltarea programului astfel incat sa permita operarea cu preturi cu virgula si sa

    permita si introducerea de cantitati pentru fiecare produs este prezentata in continuare:

    program calculproduse;uses crt;var k,i:integer ;r:char;produs: array[1..50] of string;pret: array [1..50] of real ;cantitate : array [1..50] of integer;valoare: array [1..50] of real ;

    prettot: real;begin

    clrscr;k:=0;{cate produse se introduc}prettot:=0;writeln ('doriti sa introduceti date pe bon');

    writeln ('d/n ? ');

    readln (r);while (upcase(r)='D') dobegin

    write ('introduceti numele produsului : ');

    k:=k+1;readln (produs[k]);write ('introduceti cantitatea : ');readln (cantitate[k]);write ('introduceti pretul : ');readln (pret[k]);valoare[k]:=cantitate[k]*pret[k] ;prettot:=prettot+valoare[k];writeln ('mai introduceti produse ? d/n ') ;readln (r);

    end ;writeln ('******************************************************');writeln ('*produs*pret*cantitate************************valoare*');

    for i:=1 to k do

  • 8/11/2019 Tipuri-de-Date-in-PASCAL.pdf

    9/11

    9

    beginwriteln ('*',produs[i],' ' ,pret[i]:8:2, ' ', cantitate[i] ,

    ', valoare: ',valoare[i]:8:2,'*');end;

    writeln ('******************************************************');writeln ('* aveti de achitat: ' , prettot:10:2

    ,' *' ) ;writeln ('******************************************************');write ('apasati orice tasta pentru iesire...');readkey;

    end.

    Cod sursa: bon_mare.pas

    Iata ce afiseaza la rulare pe ecran:

    In afara tipurilor de date prezentate, in PASCAL se mai pot folosi si tipuri de date definite

    de utilizator.

    Defiitiile de tip sunt plasate sub cuvantul cheiei TYPE, in cadrul programului trebuint sa

    se gaseasca dupa definirea constantelor si inaintea declaratiilor de variabile.

    Iata un program care foloseste TYPE:

  • 8/11/2019 Tipuri-de-Date-in-PASCAL.pdf

    10/11

    10

    program inregistrari;uses crt;

    type elev=recordnume: string;

    varsta: integer;end;vare:array [1..5] of elev;i:integer;cautv:integer;

    beginclrscr;writeln ('introduceti numele, varsta a 5 de elevi');for i:=1 to 5 dobeginwriteln ('introduceti numele');

    readln ( e[i].nume );writeln ('introduceti varsta ');readln ( e[i].varsta);end ;write ('introduceti varsta maxima cautata = ');readln (cautv);for i:=1 to 5 dobeginif ( e[i].varsta < cautv) thenbeginwriteln (e[i].nume , ' ' , ' ' , e[i].varsta);end;end;

    readkey;end.

    Cod sursa: elevi.pas

    Iata ce afiseaza la rulare:

    Bibliografie:

  • 8/11/2019 Tipuri-de-Date-in-PASCAL.pdf

    11/11

    11

    1. Suport curs

    2. Daniela SaruAlgoritmi si limbaje de programare (Manual)Editura Didactica

    si Pedagogica, Bucuresti , 1998

    3. Ghid PascalOKKO Software OradeaSoftware educational