Turbo Pascal - Tipuri de date

2x puncte

categorie: Informatica

nota: 9.25

nivel: Liceu

Proceduri destinate gestiunii generatorului de sunet și a intensității video

Procedura Sound

Procedura Sound asigură pornirea generatorului de sunet cu o frecvență dată. Frecvența reprezintă numărul de oscilații generate într-o secundă. Procedura se definește astfel :
Sound(Hz);
Hz – reprezintă frecvența sunetului exprimată în Hertzi.

DOWNLOAD REFERAT

Preview referat: Turbo Pascal - Tipuri de date

Proceduri destinate gestiunii generatorului de sunet și a intensității video

Procedura Sound

Procedura Sound asigură pornirea generatorului de sunet cu o frecvență dată. Frecvența reprezintă numărul de oscilații generate într-o secundă. Procedura se definește astfel :
Sound(Hz);
Hz – reprezintă frecvența sunetului exprimată în Hertzi.

.............

Tipul caracter

Valorile tipului Char (caracter) sînt cele 256 de caractere ASCII – set extins, numerotate de la 0 la 255. Tipul Char este ordinal. În memorie se reprezintă pe un octet.

Valoarea acestui tip se poate scrie în diferite moduri :
Caracter imprimabil cuprins între apostroafe, de exemplu ‘a’.
Un număr de la 0 la 255, precedat de caracterul # (simbol numeric). Numărul poate fi scris în zecimal (#65 este codul caracterului A) sau în heazecimal (#$30 este codul cifrei zero).
Un caracter precedat de caracterul ^, pentru exprimarea caracterelor de control de la 0 la 31, de exemplu ^A (valoarea ASCII 01).

Funcțiile predefinite Ord și Chr permit realizarea corespondenței între setul de caractere ASCII – extins și numerele ordinale ale caracterelor setului.
Astfel funcția Ord(c) returnează rangul caracterului c în mulțimea ordonată a setului de caractere iar funcția Chr(i) returnează valoarea caracterului de rangul i. Funcțiile Ord și Chr sînt inverse și sînt adevărate următoarele relații :

Chr(Ord(c))=c și Ord(Chr(i))=i
Asupra valorilor de tip Char sînt permise operațiile relaționale. Fie v1 și v2 două valori de tip Char, iar r una din relațiile <, <=, =, >=, >, <>. Rezultatul operației : v1 r v2 este de tip logic. Acest rezultat este True, dacă și numai dacă operația relațională :

Ord(v1) r Ord(v2)
furnizează rezultatul True.

Program Prg_0015_Functiile_Chr_și_Ord;

Uses Crt;
Const A=65;B=66; {Constantele A și B}

Begin
ClrScr; {Sterge ecranul}
WriteLn('Functia Chr');WriteLn; {Afișează textul dintre apostroafe}
WriteLn('65 = ',Chr(65)); {Afiseaza '65 = ' și caracterul echivalent}
WriteLn('66 = ',Chr(66)); {Afișează '66 = ' și caracterul echivalent}
WriteLn('67 = ',Chr(67)); {Afișează '67 = ' și caracterul echivalent}

WriteLn;WriteLn('Functia Ord'); {Afișează textul dintre apostroafe}
WriteLn(Ord(Chr(65)) WriteLn(Ord(A)>Ord(B)); {Evaluează mărimea constantelor -False}
WriteLn(Ord(Chr(A)) ReadKey; {Așteaptă apăsarea unei taste}
End.

Programele Prg_0016 afișează setul de caractere al PC-ului, însoțit de codurile caracterelor iar Prg_0017 afișează o selecție din setul de caractere, adică caracterele romănești și caracterele pentru chenarul dublu. Caracterele cu codul pînă la 31 și semnul apostrof (‘) au fost introduse folosind afișarea cu #. Caracterele de la 32 la 255, inclusiv cele pentru chenar, au fost introduse prin apăsarea tastei Alt + codul caracterului. O altă modalitate de tipărire a datelor pe ecranul monitorului sau la imprimantă, este dată în programul Prg_0018.

Program Prg_0018_Afisare_cu_Chr;

Uses Crt;

Begin
TextBackGround(1);TextColor(14);ClrScr;
WriteLn(Chr(201),Chr(205),Chr(205),Chr(205),Chr(205),Chr(187));
WriteLn(Chr(186),Chr(32),Chr(65),Chr(66),Chr(32),Chr(186));
WriteLn(Chr(200),Chr(205),Chr(205),Chr(205),Chr(205),Chr(188));

ReadKey;
End.

În acest program s-a folosit afișarea prin coduri de control, folosind funcția Chr care afișează caracterul al cărui cod se află între paranteze.

Tipuri întregi

Mulțimea valorilor tipurilor întregi este o submulțime a numerelor întregi. Există cinci tipuri de întregi : integer, word, shortint, byte și longint. Domeniul de valori și numărul de octeți necesari pentru reprezentare depind de tipul utilizat.

Tip Domeniu de valori Octeți
Integer - 215 … 215 - 32768 … 32767 2
Word 0 … 216 - 1 0 … 65535 2
Shortint - 27 … 27 - 1 - 128 … 127 1
Byte 0 … 28 - 1 0 … 255 1
Longint - 231 … 231 - 1 -2.147.483.648 … 2.147.483.647 4

Prin constanta predefinită MaxInt se înțelege valoarea întreagă 32767, adică valoarea maximă reprezentată pe 16 biți, cu semn. Tipul întreg este ordinal. Succesorul lui x este x+1. Predecesorul lui x este x-1. Ordinul întregului x este egal cu x. Operațiile care se pot face cu valorile tipului întreg, sînt următoarele :

+ adunare
- scădere sau schimbare de semn
Div împărțire întreagă

A Div B returnează cîtul împărțirii întregi între A și B
Rezultatul este de tip întreg.
Mod restul împărțirii întregi.
A Mod B returnează restul împărțirii întregi a lui A cu B
Rezultatul este de tip întreg.
/ împărțire reală
A / B returnează cîtul împărțirii lui A la B
Rezultatul este de tip real.
And și aritmetic
A And B returnează o valoare întreagă.
Rezultatul se obține prin efectuarea conjuncției între biții corespunzători ai lui A cu B.
Or sau aritmetic
A or B returnează o valoare întreagă
Rezultatul se obține prin efectuarea disjuncției între biții corespunzători ai lui A și B.
Xor Sau exclusiv aritmetic
A Xor B returnează o valoare întreagă
Rezultatul se obține prin efectuarea operației sau exclusiv între biții corespunzători ai lui A și B.
Shl deplasare la stînga
A Shl B returnează o valoare întreagă care se obține prin deplasarea la stînga, a lui A de B ori.
Shr deplasare la dreapta
A Shr B returnează o valoare întreagă care se obține prin deplasarea la dreapta, a lui A de B ori.
Not negație aritmetică
Operator unar cu rezultat întreg
Not A se obține prin efectuarea operației de negare asupra fiecărui bit al lui A.

Asupra valorilor de tip întreg sînt permise următoarele operații relaționale :
<= mai mic sau egal cu
< mai mic
= egal
> mai mare
>= mai mare sau egal cu
<> diferit

Rezultatul operației v1 r v2 este de tip logic, unde r este o operație relațională, iar v1 și v2 sînt două valori întregi. Acest rezultat este adevărat, dacă și numai dacă Ord(v1) r Ord(v2) este True.

Regulile referitoare la operațiile aritmetice care utilizează operatori întregi sînt următoarele :

1. Tipul unei constante întregi se deduce din valoarea ei. Se alege acel tip predefinit, care are domeniul cel mai restrîns, dar care include valoarea respectivă.

2. La un operator binar, adică un operator care are doi operanzi, mai întîi operatorii sînt convertiți în tipul lor comun și apoi se efectuează operația. Prin tipul comun se înțelege acel tip predefinit, care are domeniul cel mai restrîns dar care include toate valorile posibile ale celor două tipuri. De exemplu, tipul comun al unui integer și al unui byte este integer, tipul comun al unui integer și al unui word este longint. Operația se efectuează cu precizia tipului comun, iar rezultatul este de tip comun.

3. Expresia din membrul drept al unei instrucțiuni de atribuire este evaluată independent de dimensiunea sau tipul variabilei din membrul stîng.

4. Un operand de tip ShortInt este convertit într-un tip string intermediar înaintea efectuării oricărei operații aritmetice.

5. O valoare de tip întreg poate fi convertită explicit într-un alt întreg, folosind conversia de tip.

Program Prg_0019_Operații_aritmetice;
Uses Crt;
Var
A,B:LongInt;
C,D:Real;

Begin
TextBackGround(1);TextColor(14);ClrScr;{Fond albastru,scris galben,șterg ecran}
GoToXY(30,2);Write('Operații aritmetice');
GoToXY(1,23);Write(' Introduceți A > B');
GoToXY(1,24);
Write(' Introduceți valoarea lui A ');
ReadLn(A); {Se citește valoarea lui A}
GoToXY(1,5);Write(' Valoarea lui A este ');
GoToXY(25,5);Write(A:5); {Se afișează valoarea lui A}
GoToXY(1,24);ClrEol; {Se șterg caracterele pînă la sfîrșitul liniei}
Write(' Introduceți valoarea lui B ');
ReadLn(B); {Se citește valoarea lui B}
GoToXY(1,23);ClrEol; {Se șterg caracterele pînă la sfîrșitul liniei}
GoToXY(1,24);ClrEol; {Se șterg caracterele pînă la sfîrșitul liniei}
GoToXY(1,6);Write(' Valoarea lui B este ');
GoToXY(25,6);Write(B:5); {Se afișează valoarea lui B}

GoToXY(1,9);Write(' Adunarea (A + B)');
GoToXY(1,10);Write(' A + B = ',A,' + ',B,' = ',A+B);

GoToXY(1,12);Write(' Scăderea (A - B)');
GoToXY(1,13);Write(' A - B = ',A,' - ',B,' = ',A-B);

GoToXY(1,15);Write(' Înmulțirea (A * B)');
GoToXY(1,16);Write(' A * B = ',A,' * ',B,' = ',A*B);

GoToXY(1,18);Write(' Împărțirea întreagă cu rest (A Div B și A Mod B)');
GoToXY(1,19);Write(' A Div B = ',A,' Div ',B,' = ',A Div B,' Rest ',A Mod B);

GoToXY(1,21);Write(' Împărțirea reală cu zecimale (A / B)');
C:=A;D:=B;
GoToXY(1,22);Write(' A / B = ',A,' / ',B,' = ',C/D:5:3);

ReadKey;
End.

Program Prg_0020_Operații_logice_pentru_numere_întregi;

Uses Crt;

Var
i,j,k,l,m,n,o,sl,sr:integer;

Begin
ClrScr;
WriteLn(' Operații logice pentru numere întregi');
I:=291;
j:=255;
WriteLn(' i = ',i,' j = ',j);
k:=i And j;
WriteLn(' And = ',k);
l:=i Or j;
WriteLn(' Or = ',l);
m:=i Xor j;
WriteLn(' Xor = ',m);
n:=52;
o:=Not n;
WriteLn(' Not = ',o);
sr:=3 shr 4;
WriteLn(' Shr = ',sr);
sl:=3 shl 4;
WriteLn(' Shl = ',sl);

ReadKey;
End.
« mai multe referate din Informatica

CAUTA REFERAT

TRIMITE REFERAT CERE REFERAT
Referatele si lucrarile oferite de E-referate.ro au scop educativ si orientativ pentru cercetare academica.
Confidentialitatea ta este importanta pentru noi

E-referate.ro utilizeaza fisiere de tip cookie pentru a personaliza si imbunatati experienta ta pe Website-ul nostru. Te informam ca ne-am actualizat termenii si conditiile de utilizare 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