Sunteți pe pagina 1din 10

Capitolul 2 No iuni de baz n programare

Obiectiv: fixarea no iunilor de baz asociate cu codificarea i logica programelor. Activit i: prezentarea urmtoarelor subiecte: - sistemele de numera ie folosite de limbajul C - baza 2, 8, 16; - avantajele utilizrii bazei 16 in domeniul calculatoarelor; - unit i de msur pentru cantit i de date Kilo/Mega/Giga/Terra bit/byte; - tipuri de date fundamentale pentru calculatoare - bit, octet, word, double word; - codificarea ASCII; - scheme logice, simbolurile utilizate n schemele logice;

2.1

Sistemele de numera ie folosite de limbajul C

Un numr poate fi reprezentat n mai multe sisteme de numera ie (n mai multe baze). Reprezentarea cea mai folosit n via a de zi cu zi este cea zecimal (folosind baza 10), reprezentarea valorilor fcndu-se folosind cele 10 cifre (de la 0 la 9). Suportul matematic folosit de computere pentru manevrarea i prelucrarea informa iilor este numera ia n baza 2, dar i n baze de numera ie care sunt puteri ale lui 2. Principalele sisteme de numera ie pentru reprezentarea binar a informa iei sunt prezentate n continuare. Sistemul binar folosete baza 2, fiind utilizate doar dou cifre - 0 i 1. Astfel, orice numr va fi reprezentat numai cu aceste dou cifre. Sistemul octal folosete baza 8, utiliznd cifrele de la 0 la 7. Astfel, numrul 8 va fi notat n sistemul octal cu 10, numrul 9 va fi notat cu 11, numrul 10 va fi notat n octal cu 12 etc. Sistemul octal este cel mai rar folosit. Sistemul hexazecimal folosete baza 16 - sunt necesare 16 cifre distincte, i dup cifrele de la 0 la 9 se folosesc, n ordine, literele A, B, C, D, E, F. Astfel, numrul zecimal 15 va fi notat cu F, iar numrul 16 cu 10 (se citete unu zero), numrul zecimal 255 va avea nota ia hexa (prescurtare de la hexazecimal) FF .a.m.d. Trecerea din baza 10 n baza 2 se face prin mpr iri succesive a numrului care se dorete transformat la 2, re inndu-se de fiecare dat restul mpr irilor. Exemplu de trecere din baza 10 n baza 2: 29(10) => 29 / 2 = 14 (+ 15 rest) 14 / 2 = 7 (+ 04 rest) 7/2 =3 (+ 13 rest)3 / 2 = 11 = 11101(2)

(+ 12 rest)

=> 29 n baza 2
12345

Trecerea din baza 2 n baza 10 se face prin nmul iri succesive ale cifrelor numrului n baza 2 cu puteri ale lui 2: Exemplu de conversie din baza 2 n baza 10: 11101(2) = 1*24 + 1*23 + 1*22 + 0*21 + 1*20 = 16 + 8 + 4 + 0 + 1 = 29(10) Din orice baz de numera ie se poate trece n baza 10 prin nmul iri succesive, iar din baza 10 se poate trece n orice baz de numera ie prin mpr iri succesive.

Programarea Calculatoarelor

Capitolul 2 No iuni de baz n programare

n tabelul urmtor sunt prezentate cifrele de la 0 la 15 (n sistemul zecimal) i reprezentrile lor n bazele prezentate:

Binar 0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111

Octal 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17

Zecimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Hexa 0 1 2 3 4 5 6 7 8 9 A B C D E F

Tabelul 2.1 Reprezentarea primelor 15 numere n sistemele de numera ie binar, octal, zecimal i hexazecimal

Exemplu de conversie din baza 2 n baza 16 (o cifra hexazecimal ocupa 4 bi i) 10001010(2) = 8A(16) (1000 = 8, 1010 = A) Exemplu de conversie din baza 16 n baza 2: B5(16) = 10110101(2) (B = 1011, 5 = 0101)

2.2

Unit i de msur pentru cantit i de date

Cantitatea de informa ie stocat i vehiculat de computer (n format binar) este msurat n unit i de msur specifice. O cifr binar reprezint un bit de informa ie i aceasta este unitatea de baz pentru msurarea informa iei. Din motive practice, informa iile sunt manevrate n grupuri de cte 8 bi i. Un grup de 8 bi i se numete octet sau Byte. (1 Byte reprezint, pentru computer, cantitatea de memorie necesar pentru memorarea unei litere de text). Nota iile prescurtate fac diferen a ntre bit (notat cu b) i Byte (notat cu B). Aceste unit i fiind mult prea mici pentru necesit ile actuale de stocare/prelucrare/etc., n majoritatea cazurilor practice se folosesc multiplii lor. Aceti multipli sunt Kilo, Mega, Giga i Terra, iar valorile lor, relativ la valoarea unui byte, sunt: 1 KiloByte 1 MegaByte = 1.024 Bytes = 1.024 KiloBytes = 1.024 * 1.024 Bytes =210 bytes =220 bytes

Programarea Calculatoarelor

Capitolul 2 No iuni de baz n programare

1 GigaByte 1 TerraByte

= 1.024 MegaBytes= 1.024 * 1.024 KiloBytes =230 bytes = 1.024 GigaBytes = 1.024 * 1.024 MegaBytes =240 bytes

Multiplii cantit ilor de informa ii sunt prezenta i n tabelul urmtor: Prefix Kilo Mega Giga Terra Bi i Multiplu Kilobit Megabit Gigabit Terrabit Nota ie Kb Mb Gb Tb Valoarea 1024 bi i 1024 Kb 1024 Mb 1024 Gb Multiplu KiloByte MegaByte GigaByte TerraByte Bytes (octe i) Nota ie KB MB GB TB Valoarea 1024 Bytes 1024 KB 1024 MB 1024 GB

Tabelul 2.2 Multiplii unit ilor de msur a datelor

n general, multiplii bit-ului sunt folosi i n msurarea vitezelor de transmitere a informa iilor, iar multiplii byte-ului sunt folosi i n msurarea capacit ilor de stocare/memorare.

2.3

Tipuri de date fundamentale pentru calculatoare

Calculatoarele pot lucra cu urmtoarele tipuri fundamentale de date: bit, byte, word, double word. Aceste tipuri de date sunt considerate tipuri fundamentale, deoarece un procesor poate lucra nativ (direct) cu informa ii reprezentate pe aceste tipuri de date. Domeniul de valori pe care le poate lua o dat dintr-un tip este de [0 2N 1], unde N este numrul de bi i pe care se reprezint tipul respectiv. Caracteristicile tipurilor fundamentale sunt prezentate n tabelul urmtor: Tipul datelor Bit Byte Word double word Domeniul de valori 0, 1 0 ... 255 (00h FFh) 0 ... 65.535 (0000h FFFFh) 0 ... 4.294.967.295 (00000000h FFFFFFFFh) Lungimea (bi i) 1 8 16 32 Lungimea (octe i) 1/8 1 2 4

Tabelul 2.3 Caracteristicile principalelor tipuri de date

2.4

Codificarea ASCII

ASCII este acronimul pentru American Standard Code for Information Interchange (Codul American Standard pentru Schimbul de Informa ii). ASCII reprezint o tabel de asocieri ntre caractere i coduri numerice i a aprut deoarece calculatoarele lucreaz doar cu numere, iar utilizatorii au nevoie i de litere i simboluri grafice. Fiecare liter i simbol grafic care se regsete pe tastatur sau pe monitor are un cod corespunztor n tabela ASCII. n interiorul unui calculator, se lucreaz doar cu aceste coduri asociate. Setul standard de caractere ASCII con ine 128 numere zecimale (0 - 127), care sunt asociate cifrelor, numerelor, semnelor de punctua ie i celor mai utilizate caractere speciale. Setul extins de caractere ASCII con ine, de asemenea, 128 de numere zecimale (128 255) i con ine caractere adi ionale simboluri matematice, grafice etc. Cele mai importante caractere din setul standard de caractere ASCII sunt prezentate n continuare mpreun cu reprezentrile lor corespunztoare n sistemele de numera ie binar, zecimal, hexazecimal i octal:

Programarea Calculatoarelor

Capitolul 2 No iuni de baz n programare

Zecimal ------000 013 027 032 033 034 035 036 037 038 039 040 041 042 043 044 045 046 047 048 049 050 051 052 053 054 055 056 057 058 059 060 061 062 063 064 065 066 067 068 069 070 071 072 073 074 075 076 077 078 079

Octal ----000 . 015 . 033 . 040 041 042 043 044 045 046 047 050 051 052 053 054 055 056 057 060 061 062 063 064 065 066 067 070 071 072 073 074 075 076 077 100 101 102 103 104 105 106 107 110 111 112 113 114 115 116 117

Hex --000 00D 01B 020 021 022 023 024 025 026 027 028 029 02A 02B 02C 02D 02E 02F 030 031 032 033 034 035 036 037 038 039 03A 03B 03C 03D 03E 03F 040 041 042 043 044 045 046 047 048 049 04A 04B 04C 04D 04E 04F

Binar -------00000000 . . 00001101 . . 00011011 . . 00100000 00100001 00100010 00100011 00100100 00100101 00100110 00100111 00101000 00101001 00101010 00101011 00101100 00101101 00101110 00101111 00110000 00110001 00110010 00110011 00110100 00110101 00110110 00110111 00111000 00111001 00111010 00111011 00111100 00111101 00111110 00111111 01000000 01000001 01000010 01000011 01000100 01000101 01000110 01000111 01001000 01001001 01001010 01001011 01001100 01001101 01001110 01001111

Valoare ------NUL CR ESC SP ! " # $ % & ' ( ) * + , . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O

Descriere ---------(Null) (Enter) (Escape) (Space)

(ampersant)

(asterisc)

Programarea Calculatoarelor 080 081 082 083 084 085 086 087 088 089 090 091 092 093 094 095 096 097 098 099 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 120 121 122 123 124 125 126 127 130 131 132 133 134 135 136 137 140 141 142 143 144 145 146 147 150 151 152 153 154 155 156 157 160 161 162 163 164 165 166 167 170 171 172 173 174 175 176 177 050 051 052 053 054 055 056 057 058 059 05A 05B 05C 05D 05E 05F 060 061 062 063 064 065 066 067 068 069 06A 06B 06C 06D 06E 06F 070 071 072 073 074 075 076 077 078 079 07A 07B 07C 07D 07E 07F 01010000 01010001 01010010 01010011 01010100 01010101 01010110 01010111 01011000 01011001 01011010 01011011 01011100 01011101 01011110 01011111 01100000 01100001 01100010 01100011 01100100 01100101 01100110 01100111 01101000 01101001 01101010 01101011 01101100 01101101 01101110 01101111 01110000 01110001 01110010 01110011 01110100 01110101 01110110 01110111 01111000 01111001 01111010 01111011 01111100 01111101 01111110 01111111

Capitolul 2 No iuni de baz n programare P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ DEL

(underscore)

n continuare se ilustreaz reprezentarea tabelar a setului standard de caractere ASCII: ZEC HEX CHR 0 1 00 01 NUL SOH ZEC HEX CHR 32 33 20 21 SP ! ZEC HEX CHR 64 65 40 41 @ A ZEC HEX CHR 96 97 60 61 ` a

Programarea Calculatoarelor

Capitolul 2 No iuni de baz n programare

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F

STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US

34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63

22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F

" # $ % & ' ( ) * + , . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ?

66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95

42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F

B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _

98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127

62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F

b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ DEL

Tabelul 2.4 Reprezentarea setului standard de caractere ASCII

Programarea Calculatoarelor

Capitolul 2 No iuni de baz n programare

Tabelul 2.5 Setul extins de caractere ASCII

2.5

Scheme logice

Schemele logice sunt o reprezentare schematic a unui program. Ele sunt valabile n orice limbaj de programare, folosirea lor permi nd o dezvoltare i o vizualizarea mai uoar a programului. O schem logic are n componen urmtoarele blocuri: Bloc de nceput Bloc de sfrit Bloc de intrare-ieire Bloc de calcul Marcheaz nceputul algoritmului Marcheaz sfritul algoritmului Realizeaz citirea datelor, respectiv afiarea rezultatelor Efectueaz un calcul, sau o atribuire Implic luarea unei decizii. n cazul n care condi ia nscris n interiorul blocului este satisfcut atunci algoritmul se va nscrie pe ramura DA, iar n caz contrar, pe ramura NU Descrie sensul i direc ia parcurgerii algoritmului

Bloc decizional

Arc orientat

Programarea Calculatoarelor

Capitolul 2 No iuni de baz n programare

Exemplu 1 Schem logic asociat cu calculul sumei a 2 numere:

Figura 2.1 Schem logic - suma a 2 numere

Exemplu 2 Schem logic asociat cu calculul maximului a 2 numere:

Figura 2.2 Schem logic - maximul a 2 numere

Exemplu 3 Schem logic asociat cu rezolvarea unei ecua ii de gradul I:

Programarea Calculatoarelor

Capitolul 2 No iuni de baz n programare

Figura 2.3 Schem logic rezolvarea ecua iei de grad I

Exemplu 4 Schem logic asociat cu calculul sumei a n numere citite de la tastatur:

Figura 2.4 Schem logic - suma a n numere citite de la tastatur

2.6
1. 2. 3.

Probleme propuse

Realiza i diverse conversii din/n bazele studiate (2 - 10, 10 - 2, 10 - 16, 16 - 10, 2 - 16, 16 2); Realiza i diverse conversii Kilo Mega Giga Terra. Realiza i schema logic pentru determinarea maximului dintre trei numere: a, b i c.

Programarea Calculatoarelor

Capitolul 2 No iuni de baz n programare

4. 5. 6. 7. 8.

Realiza i schema logic pentru rezolvarea ecua iei de gradul II. Se citesc n numere. Realiza i schema logic pentru determinarea sumei numerelor pare, respectiv a produsului numerelor prime. Se d un ir de numere care se citesc de la tastatur, citirea ncheindu-se cu valoarea 0 (care nu face parte din ir). S se afieze perechile de numere consecutiv citite cu proprietatea c al doilea element al perechii este egal cu dublul primului. Verifica i dac un numr este prim folosind o schem logic. Dintre primele n numere naturale s se afieze acelea care au exact k divizori. Valorile n i k se citesc de la tastatur.

2.7
1. 2. 3. 4. 5.

ntrebri recapitulative

Care sunt principalele baze de numera ie folosite n domeniul calculatoarelor? Prin ce se caracterizeaz? Care este diferen a ntre bit i byte? De ce este domeniul de valori pentru tipul word situat ntre 0 i FFFFh? Ce este tabela ASCII? Cu ce scop sunt folosite schemele logice?

10