Sunteți pe pagina 1din 10

Capitolul 2 Noiuni de baz n programare

Obiectiv: fixarea noiunilor de baz asociate cu codificarea i logica programelor. Activiti: prezentarea urmtoarelor subiecte: - sistemele de numeraie folosite de limbajul C - baza 2, 8, 16; - avantajele utilizrii bazei 16 in domeniul calculatoarelor; - uniti de msur pentru cantiti 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 numeraie folosite de limbajul C

Un numr poate fi reprezentat n mai multe sisteme de numeraie (n mai multe baze). Reprezentarea cea mai folosit n viaa 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 informaiilor este numeraia n baza 2, dar i n baze de numeraie care sunt puteri ale lui 2. Principalele sisteme de numeraie pentru reprezentarea binar a informaiei 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 notaia hexa (prescurtare de la hexazecimal) FF .a.m.d. Trecerea din baza 10 n baza 2 se face prin mpriri succesive a numrului care se dorete transformat la 2, reinndu-se de fiecare dat restul mpririlor. 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 nmuliri 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 numeraie se poate trece n baza 10 prin nmuliri succesive, iar din baza 10 se poate trece n orice baz de numeraie prin mpriri succesive.

Programarea Calculatoarelor

Capitolul 2 Noiuni 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 numeraie binar, octal, zecimal i hexazecimal

Exemplu de conversie din baza 2 n baza 16 (o cifra hexazecimal ocupa 4 bii) 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

Uniti de msur pentru cantiti de date

Cantitatea de informaie stocat i vehiculat de computer (n format binar) este msurat n uniti de msur specifice. O cifr binar reprezint un bit de informaie i aceasta este unitatea de baz pentru msurarea informaiei. Din motive practice, informaiile sunt manevrate n grupuri de cte 8 bii. Un grup de 8 bii se numete octet sau Byte. (1 Byte reprezint, pentru computer, cantitatea de memorie necesar pentru memorarea unei litere de text). Notaiile prescurtate fac diferena ntre bit (notat cu b) i Byte (notat cu B). Aceste uniti fiind mult prea mici pentru necesitile 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 Noiuni 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 cantitilor de informaii sunt prezentai n tabelul urmtor: Prefix Kilo Mega Giga Terra Bii Multiplu Kilobit Megabit Gigabit Terrabit Notaie Kb Mb Gb Tb Valoarea 1024 bii 1024 Kb 1024 Mb 1024 Gb Multiplu KiloByte MegaByte GigaByte TerraByte Bytes (octei) Notaie KB MB GB TB Valoarea 1024 Bytes 1024 KB 1024 MB 1024 GB

Tabelul 2.2 Multiplii unitilor de msur a datelor

n general, multiplii bit-ului sunt folosii n msurarea vitezelor de transmitere a informaiilor, iar multiplii byte-ului sunt folosii n msurarea capacitilor 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 informaii 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 bii 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 (bii) 1 8 16 32 Lungimea (octei) 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 Informaii). 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 conine 128 numere zecimale (0 - 127), care sunt asociate cifrelor, numerelor, semnelor de punctuaie i celor mai utilizate caractere speciale. Setul extins de caractere ASCII conine, de asemenea, 128 de numere zecimale (128 255) i conine caractere adiionale 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 numeraie binar, zecimal, hexazecimal i octal:

Programarea Calculatoarelor

Capitolul 2 Noiuni 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 Noiuni 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 Noiuni 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 Noiuni 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 permind 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 condiia nscris n interiorul blocului este satisfcut atunci algoritmul se va nscrie pe ramura DA, iar n caz contrar, pe ramura NU Descrie sensul i direcia parcurgerii algoritmului

Bloc decizional

Arc orientat

Programarea Calculatoarelor

Capitolul 2 Noiuni 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 ecuaii de gradul I:

Programarea Calculatoarelor

Capitolul 2 Noiuni de baz n programare

Figura 2.3 Schem logic rezolvarea ecuaiei 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

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

Programarea Calculatoarelor

Capitolul 2 Noiuni de baz n programare

4. 5. 6. 7. 8.

Realizai schema logic pentru rezolvarea ecuaiei de gradul II. Se citesc n numere. Realizai 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. Verificai 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 numeraie folosite n domeniul calculatoarelor? Prin ce se caracterizeaz? Care este diferena 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

S-ar putea să vă placă și