Sunteți pe pagina 1din 29

ARHITECTURA SISTEMELOR DE CALCUL ŞI SISTEME DE OPERARE

LUCRĂRILE DE LABORATOR Nr. 1 şi 2

CUNOAŞTEREA CALCULATORULUI. UTILITARUL NORTON COMMANDER (NC).

I. SCOPUL LUCRĂRILOR

Lucrările prezintă componentele de bază ale unui sistem de calcul IBM PC şi compatibil.
Scopul lucrării constă în a familiariza studenţii cu sistemul de calcul precum şi folosirea
utilitarului Norton Commander pentru exploatarea sistemului de operare DOS.
Noţiuni noi: tastatură, monitor, dischetă, sistem de operare, fişier, director (catalog),
program utilitar, panou activ, taste funcţionale, bară de meniuri.

II. NOŢIUNI TEORETICE

1. Calculator şi informatică

Termenul englez computer a avut iniţial semnificaţia calculator numeric electronic,


deoarece primele maşini de calcul erau destinate în special efectuării operaţiilor aritmetice.
În accepţiunea actuală un sistem de calcul este capabil să achiziţioneze şi să păstreze
informaţii, să efectueze prelucrări şi să restituie informaţiile stocate în vederea utilizării acestora.
Vom utiliza termenul de informaţie cu sensul de “date” de un anumit tip (valori numerice,
texte, imagini, sunete).
Informatica computer science, informatics (termen rezultat din concatenarea prescurtată
a informaţiei şi automaticii) este ştiinţa prelucrării informaţiei.
Un sistem informatic este o mulţime de instrumente de programare software şi
materiale hardware destinate satisfacerii necesităţilor informatice ale utilizatorilor.
Arhitectura unui sistem de calcul se referă la descrirea unităţilor sale funcţionale şi
interconexiunile dintre acestea.
Configuraţia unui sistem de calcul corespunde organizării adoptate pentru a asambla şi a
face să funcţioneze diversele entităţi materiale (procesoare, memorie, terminale, imprimante,
unităţi de disc etc.) ale sistemului.

2. Utilizarea sistemelor de calcul

Utilizarea unui sistem de calcul presupune execuţia programelor pentru realizarea unor
aplicaţii complexe (de exemplu, rezervarea biletelor de călătorie, gestiunea conturilor bancare,
prelucrarea textelor etc.).
Funcţiunile de bază al unui sistem de calcul sunt realizate prin intermediul programelor
sistem dezvoltate în general de către constructor (de exemplu sistemul de operare).
Programele de aplicaţie sunt elaborate în general de către firme producătoare de software
sau chiar de către utilizatorii sistemului de calcul.
Sistemul de operare operating system, cel mai important dintre programele sistem, este
însărcinat cu gestionarea şi controlul diverselor resurse ale sistemului de calcul, fiind în general
specific unei familii de calculatoare compatibile. Sistemul de operare coordonează activitatea
utilizatorilor, realizând înlănţuirea etapelor necesare execuţiei unui program şi oferind un acces
simplificat la resursele sistemului de calcul.

1
3. Principii de funcţionare

Un sistem de calcul se compune dintr-o memorie centrală, care conţine programele şi


datele, o unitate centrală de prelucrare care execută un program adus în memoria centrală şi
unităţi de intrare / ieşire care permit schimbul de informaţii cu unităţile periferice. Vom numi
unitate centrală ansamblul constituit din unitatea centrală de prelucrare şi memoria centrală.
Execuţia unui program se derulează potrivit următorului model:
a) programul şi datele aferente sunt încărcate în memoria centrală;
b) instrucţiunile programului sunt aduse secvenţial (una câte una) unităţii de control care
le analizează şi declanşează prelucrarea corespunzătoare, trimiţând în acest sens
semnale către unitatea aritmetică şi logică;
c) prelucrarea poate să necesite un apel la unităţile de I/O sau la memoria centrală.
Schema generală a unui sistem de calcul este prezentată în figura următoare:

unitatea centrală
de prelucrare
instrucţiuni
unitatea de control memoria centrală
şi de comandă

date
unitatea de calcul

unităţi de intrare/ieşire

controler de
periferice

unităţi periferice

Memoria centrală conţine în principal două tipuri de informaţii: instrucţiunile diferitelor


programe şi datele necesare execuţiei acestora.
Instrucţiunile sunt memorate sub formă de cod binar. Se remarcă faptul că la nivel fizic
memoria centrală nu conţine decât biţi, care constituie unitatea elementară de informaţie. Un
bit poate lua fie valoarea 1, fie valoarea 0.
Biţii se regrupează câte 6, 7 sau 8 pentru a forma un caracter. Un caracter constituit dintr-o
succesiune de 8 biţi se numeşte octet byte.
În paralel cu caracterele, care constituie o unitate logică de informaţie, memoria centrală a
sistemului de calcul este divizată fizic în locaţii, iar fiecărei locaţii îi corespunde un cuvânt de
memorie care posedă o adresă proprie.
Lungimea unui cuvânt de memorie este o caracteristică importantă a arhitecturii unui sistem
de calcul şi reflectă structura componentelor sale funcţionale (în special unitatea centrală).
Un cuvânt de memorie word este unitatea adresabilă de informaţie, adică orice operaţie
de citire sau de scriere se realizează asupra unui cuvânt de memorie.
Un registru este o locaţie de memorie având o funcţie particulară. În memoria centrală se
găsesc două tipuri de registre: registru de adresă, care conţine adresa unui cuvânt de memorie şi
registru cuvânt, care păstrează conţinutul unui cuvânt de memorie.
2
Operaţiile posibile în memoria centrală sunt citirea şi scrierea unui cuvânt de memorie:
a) citirea: registrul de adresă conţine adresa cuvântului de citit, iar o copie a conţinutului
este transferată în registrul cuvânt;
b) scrierea: registrul de adresă conţine adresa unui cuvânt în care se va scrie conţinutul
registrului cuvânt.
Timpul necesar scrierii sau citirii unui cuvânt de memorie se numeşte timp de acces (de
ordinul nanosecundelor şi microsecundelor).
Dacă timpul de acces este identic pentru fiecare cuvânt al memoriei centrale, atunci avem
de-a face cu o memorie RAM Random Access Memory, adică o memorie cu acces aleator.
Unitatea centrală de prelucrare (CPU) este constituită din unitatea de comandă şi
unitatea de calcul.
Unitatea de comandă asigură controlul execuţiei instrucţiunilor unui program şi conţine
două registre importante:
a) registru de instrucţiuni (RI) care conţine adresa instrucţiunii în curs de execuţie (o
instrucţiune comportă mai multe câmpuri: un câmp cod - operaţie şi între 0 şi 3 câmpuri
operand;
b) registru contor ordinal (CO) care conţine adresa următoarei instrucţiuni de executat.
Unitatea de comandă conţine de asemenea un dispozitiv de decodificare a instrucţiunilor
(decodificator) şi un dispozitiv de control al secvenţei de comenzi care activează circuitele
necesare execuţiei instrucţiunii curente. Înlănţuirea comenzilor se realizează prin intermediul
unui ceas sistem.
Unitatea de calcul sau aritmetică şi logică (UAL) conţine toate circuitele electronice care
realizează efectiv operaţiile dorite. Operanzii acestor operaţii se găsesc în registrele unităţii.
Unităţile de intrare / ieşire (unităţi de schimb) sunt elemente care premit transferul
informaţiilor între unitatea centrală şi unităţile periferice. Unităţile de intrare / ieşire cele mai
cunoscute sunt: unităţile de tip bus, cele care asigură acces direct la memorie DMA: Direct
Memory Access şi unităţile de canal.
Unităţile periferice se repartizează în două clase:
a) unităţi de transfer care permit sistemului de calcul să realizeze schimburi de date cu
exteriorul (ecran, tastatură, imprimantă, modem etc.);
b) memoriile auxiliare (discuri, benzi, cartuşe magnetice etc.) care permit stocarea de
manieră permanentă a unui volum mare de informaţii la un preţ scăzut; ele se utilizează
datorită faptului că memoria centrală este volatilă şi informaţiile se şterg când se
opreşte sistemul, pe când suporturile magnetice sunt memorii permanente.

4 Programul utilitar Norton Commander (NC)

Programul utilitar NC este compus dintr-un pachet de programe de dimensiune maximă


720K pe disc, solicită resurse destul de mici, de exemplu, partea rezidentă în memorie este de
12K, fiind utilizat mult datorită eleganţei cu care se operează şi a popularităţii sale.
Lansarea în execuţie a utilitarului se realizează prin ... > NC.
Întreaga interfaţă cu utilizatorul este realizată în modul de lucru text, asigurându-se astfel
o viteză mare de răspuns.
În mod obişnuit, NC gestionează 2 ferestre alăturate, pe care le numeşte Left şi Right. Este
posibil ca una sau chiar ambele ferestre să nu fie active, iar în spaţiul eliberat de fereastra
devenită temporar inactivă utilizatorul vede ecranul gestionat de programul lui sau de DOS.
Prima linie marchează locurile unde pot să apară cele 5 meniuri principale pull-down ale
lui NC. În partea dreaptă sus, poate fi afişată (opţional) ora exactă gestionată de sistem.

3
În fiecare dintre cele două ferestre principale apar informaţii din două directoare curente
gestionate de NC. Calea din rădăcină pentru cele două directoare este scrisă în partea superioară a
fiecărei ferestre.
Informaţiile despre un fişier al unui director sunt scrise într-o singură linie dintr-o
fereastră principală. În fiecare fereastră NC marchează câte un fişier curent, iar în partea de jos a
fiecărei ferestre se trec informaţiile complete despre fişierul curent: nume, lungime, data de
creare, ora de creare.

Left Files Commands Options Right 6:0p


C:\HELP4 D: \T\CURENT

Fereastra principală Fereastra principală


Left Right

Fişier curent Left Fişier curent Right

D: \CURENT>

1Help2Menu 3View 4Edit 5Copy 6Ren7 Mkdir 8Delete 9PullDn 10Quit

Penultimul rând al ecranului afişează prompterul DOS şi acolo apar comenzile DOS date
de utilizator.
Ultimul rând afişează opţional semnificaţiile tastelor funcţionale de la F1 la F10.
NC poate fi manipulat atât prin apăsarea de taste cât şi prin “clic”-uri de mouse. Ca
regulă, butonul din stânga înseamnă lansarea în execuţie sau schimbarea de director.
Tasta <TAB> provoacă trecerea de la o fereastră la alta. Fişierele curente din cele două
ferestre rămân nemodificate. Discul şi directorul din fereastra în care se află cursorul este discul
şi directorul implicit.
Tasta <F9> permite activarea meniurilor pull-down. Prin săgeţile de deplasare laterală,
sau prin testarea primei litere a meniului, se fixează meniul dorit. Apoi, tastând <ENTER> se
deschide o fereastră care oferă alternativele meniului. Prin săgeţile verticale sau tastând prima
literă, după care se tastează <ENTER>, se selectează alternativa dorită.
Tasta <F10> provoacă terminarea activităţii NC şi revenirea sub SO DOS.
Tasta <F1> este tasta HELP şi ea invocă sistemul de ajutor NC.
Prin meniurile Left şi Right, utilizatorul stabileşte tipul şi ordinea datelor afişate precum
şi modalităţile de schimbare a contextului de lucru.
Afişarea informaţiilor dintr-o fereastră se poate face:
- BRIEF (sumar): numele fişierului şi tipul lui;
- FULL (complet): numele, lungimea, data şi ora de creare;
- INFO (informaţii statistice): lansabile şi cu <CTRL/L>. Se afişează dimensiunea totală
şi cea liberă a discului curent, numărul de fişiere şi spaţiul ocupat de către directorul
curent din cealaltă fereastră;
- TREE: afişează în fereastră structura arborescentă a discului implicit din fereastra cealaltă;
- ON/OFF: indică faptul că se doreşte ca fereastra să fie activă sau nu.
Activarea/dezactivarea ferestrei Left se mai poate face cu <CTRL/F1>, iar a ferestrei
Right cu <CTRL/F2>.
Ordinea afişării informaţiilor poate fi:
- alfabetică, după nume;
- alfabetică, după tip;

4
- după data creării (primul va fi cel mai nou);
- după lungimea fişierului (primul va fi cel mai lung);
- după apariţia fizică în director (nesortate).
Se pot realiza schimbări de director sau disc, astfel:
- schimbarea discului se realizează prin meniu cu <ALT/F1>, pentru fereastra Left şi cu
<ALT/F2> pentru Right;
- schimbarea de director se realizează fie cu comanda DOS CD, fie tastând <ENTER>
din aproape în aproape până când se ajunge la directorul dorit;
- filtrările de fişiere cu FILTER furnizează informaţii despre:
- toate fişierele;
- numai cele executabile (COM, EXE, BAT);
- cele cerute cu o specificare generică.

Comenzi NC de manipulare fişiere


NC permite prin săgeţile verticale sau prin <PGUP> şi <PGDN> schimbarea fişierului
implicit. De asemenea, se pot marca mai multe fişiere pentru a fi manipulate. Marcarea se poate
face fie individual, tastând <INS> pe fişierul dorit pentru marcare, fie prin tasta <+> de culoare
gri din dreapta tastaturii. Demarcarea se face individual tot prin <INS, sau global prin tasta <->.
Fişierele sunt manipulate global dacă ele sunt marcate, altfel este manipulat fişierul curent.
Taste funcţionale de manipulare a fişierelor:
 <F2> lansare meniu utilizator;
 <F3> sau <SHIFT/F3> vizualizarea unui fişier;
 <F4> sau <SHIFT/F4> editarea unui fişier;
 <F5> sau <SHIFT/F5> copiere fişiere marcate;
 <F6> mutare (redenumire) fişiere;
 <F7> crearea unui director;
 <F8> ştergere fişiere.

Comenzi NC (meniul Commands)


 <ALT/F10>: NCD Tree: afişare structură de directoare;
 <ALT/F7>: căutare de fişiere;
 <ALT/F8> sau <CTRL/E> sau <CTRL/X>: vizualizare istoric comenzi;
 <ALT/F9>: afişează mai multe linii pe ecran, dacă monitorul este cel puţin
EGA;
 <CTRL/U>: permută ferestrele Left şi Right;
 <CTRL/O>: inactivează ambele ferestre;
 Compare directory: comparare de directoare din punct de vedere al conţinutului
şi al datei de creare. Ca efect al comparării se marchează fişierele dintr-o fereastră
care nu sunt în cealată fereastră sau fişierele dintr-o fereastră care sunt mai recente
decât cele omonime din cealaltă;
 Menu file edit: crează meniuri utilizator;
 Extension file edit: defineşte în mod automat nişte acţiuni cu fişiere de un anumit
tip, de exemplu, şterge automat dacă se tastează <ENTER> pe un fişier curent de
tip BAK, lansează Turbo Pascal pe un fişier curent de tip PAS etc.

Fixarea unor opţiuni NC


 configurare: permite fixare culoare ecran, fixarea unui termen după care ecranul se
stinge dacă nu se apasă o tastă, afişarea fişierelor cu atributul HIDDEN (ascuns) etc.;
5
 fixarea editorului de texte: se poate folosi atât editorul NC cât şi orice alt editor
dorit de utilizator;
 folosirea de către NC a întregului ecran sau numai a unei jumătăţi din el;
 salvarea setărilor NC: se face cu <SHIFT/F9> şi are ca efect recrearea fişierului
NC.INI al pachetului NC.

III. MODUL DE LUCRU

Se pornesc calculatoarele, se prezintă componenţa standard pentru un calculator IBM PC


sau compatibil explicând funcţionalităţile acestora.
Se lansează în execuţie utilitarul DOS Norton Commander. Se prezintă sistemul de
meniuri orizontale şi verticale, posibilităţi de selectare opţiuni, modul de lansare în execuţie a
comenzilor DOS prin intermediul opţiunilor din meniuri.

IV. CONŢINUTUL REFERATULUI

1. Sumarul noţiunilor întâlnite.


2. Răspundeţi la următoarele întrebări:
2.1 Ce rol au cele două perforaţii de pe ambalajul dischetei şi scutul metalic?
2.2 Ce posibilităţi există pentru a distruge conţinutul unei dischete? Ce se înţelege prin
“protejarea dischetei” şi prin “protecţie la scriere”?
2.3 Ce conţine, în interior, unitatea de sistem a unui calculator personal? Desenaţi-vă o
schemă. Dar pe carcasă, în partea din spate?
2.4 Ce este sistemul de operare? Care sunt cele trei fişiere din care se preia sistemul de
operare DOS? Cunoaşteţi şi alte sisteme de operare pentru PC-uri?
2.5 Pentru ca se utilizează de obicei tastele ENTER şi ESCAPE.
2.6 În ce scop se utilizează tasta SHIFT? Ce rol are tasta CAPS LOOK?
2.7 Ce se poate obţine prin tastarea ALT împreună cu alte taste?
2.8 La ce se foloseşte combinaţie CTRL+ALT+DEL?
2.9 Ce rol are tasta BACKSPACE? Cunoaşteţi altă tastă care joacă un rol asemănător? Care
este rolul tastei INS?
2.10 Cum se crează un catalog nou cu ajutorul lui Norton Commander? Dar un fişier nou?
2.11 Ce deosebire există în Norton Commander între identificatoarele cataloagelor şi cele ale
fişierelor?
2.12 Care sunt atributele unui fişier şi cum pot fi ele modificate cu utilitarul Norton
Commander?
2.13 Cum se activează bara meniurilor din partea superioară a ecranului? La ce servesc
meniurile extreme Left şi Right?
2.14 Care sunt cele cinci moduri de ordonare a fişierelor într-un panou Norton Commander?
2.15 Ce informaţii se prezintă pe linia de sus a ecranului, atunci când se editează un fişier cu
Norton Commander? Se poate edita orice fişier?
2.16 Dorim să înlocuim toate apariţiile cuvântului «doctor» din conţinutul unui fişier prin
cuvântul «medic». Cum putem realiza aceasta, în mod automat, folosind utilitarul
Norton Commander?
2.17 Care este efectul combinaţiei de taste ALT + F7 în Norton Commander?
3. Observaţii şi concluzii personale.

6
ARHITECTURA SISTEMELOR DE CALCUL ŞI SISTEME DE OPERARE

LUCRĂRILE DE LABORATOR Nr. 3, 4 şi 5

SISTEME DE NUMERAŢIE. CONVERSII. OPERAŢII CU BAZE MARI DE NUMERAŢIE

I. SCOPUL LUCRĂRILOR

Lucrările prezintă reprezentarea informaţiilor numerice întregi pozitive sau cel putin zero.
Scopul lucrării constă în a familiariza studenţii cu sistemele de numeraţie conversii între sisteme de
numeraţie, operaţii aritmetice cu baze mari de numeraţie.

II. NOŢIUNI TEORETICE

1 Reprezentarea informaţiei

Informaţiile prelucrate prin sistemele de calcul sunt de diverse tipuri dar ele sunt reprezentate la
nivel elementar sub formă binară. O informaţie elementară corespunde deci unei cifre binare (0 sau 1)
numită bit. O informaţie mai complexă (un caracter, un număr etc.) se exprimă printr-o mulţime de biţi.
Codificarea unei informaţii constă în a stabili o corespondenţă între reprezentarea externă a
informaţiei (caracterul A sau numărul 33, de exemplu) şi reprezentarea sa internă, care este o secvenţă
de biţi.
Avantajele reprezentării binare se referă în special la facilitatea de realizare tehnică cu ajutorul
elementelor bistabile (sisteme cu 2 stări de echilibru) precum şi la simplitatea efectuării operaţiilor
fundamentale sub forma unor circuite logice, utilizând logica simbolică cu două stări (0, 1).
Informaţiile prelucrate în sistemele de calcul sunt de două tipuri: instrucţiuni şi date.
Instrucţiunile, scrise în limbaj maşină, reprezintă operaţiile efectuate în sistemul de calcul şi ele
sunt compuse din mai multe câmpuri:
 codul operaţiei de efectuat;
 operanzii implicaţi în operaţie.
Codul operaţiei trebuie să suporte o operaţie de decodificare (transformare inversă codificării)
pentru a se putea efectiv executa.
Datele sunt operanzii asupra cărora acţionează operaţiile (prelucrările), sau sunt produse de către
acestea. O adunare, de exemplu, se aplică la doi operanzi, furnizând un rezultat care este suma acestora.
Se pot distinge datele numerice, rezultat al unei operaţii aritmetice, sau date nenumerice, de
exemplu simbolurile care constituie un text.

2. Date nenumerice

Datele nenumerice corespund caracterelor alfanumerice: A, B, ..., Z, a, b, ..., z, 0, 1, ..., 9 şi


caracterelor speciale: ?, !, ”, $, ;, ...
Codificarea se realizează pe baza unei tabele de corespondenţă specifică fiecărui cod utilizat.
Printre cele mai cunoscute coduri putem enumera:
 BCD Binary Coded Decimal prin care un caracter este codificat pe 6 biţi;
 ASCII American Standard Code for Information Interchange (7 biţi);
 EBCDIC Extended Binary Coded Decimal Internal Code (8 biţi).

1
Tabela de corespondenţă între diferite coduri

caracter BCD ASCII EBCDIC


0 000000 0110000 11110000
1 000001 0110001 11110001
2 000010 0110010 11110010
... ... ... ...
9 001001 0111001 11111001
A 010001 1000001 11000001
B 010010 1000010 11000010
C 010011 1000011 11000011
(6 biţi) (7 biţi) (8 biţi)

3. Datele numerice

Datele numerice sunt de următoarele tipuri:


a) numere întregi pozitive sau nule: 0; 1; 315...
b) numere intregi negative: -1; -155...
c) numere fracţionare: 3.1415; -0.5...
d) numere în notaţie ştiinţifică: 4.9  10 ; 10 ...
7 23

Codificarea se realizează cu ajutorul unui algoritm de conversie asociat tipului de dată


corespunzător. Operaţiile aritmetice (adunare, scădere, înmulţire, împărţire) care se pot aplica asupra
acestor date se efectuează de regulă în aritmetica binară.

Tabele de adunare şi înmulţire binară


0+0=0 00=0
0+1=1 01=0
1+0=1 10=0
1 + 1 = 10 11=1

Numerele întregi pozitive sau nule cuprind: 0, 1, 2, ...,N, N + 1, ...

Sisteme de numeraţie
Un sistem de numeraţie face să-i corespundă unui număr N, un anumit simbolism scris şi oral.
#ntr-un sistem de numeraţie cu baza p > 1, numerele 0, 1, 2, ..., p -1 sunt numite cifre.
Orice număr întreg pozitiv poate fi reprezentat astfel: N = anpn + an-1pn-1 + ... + a1p + a0
cu ai 0, 1, 2, p-1 şi an  0. Se utilizează de asemenea notaţia echivalentă N = anan-1...a1a0.
Numerele scrise în sistenul de numeraţie cu baza 2 (binar) sunt adesea compuse dintr-un mare
număr de biţi, şi de aceea se preferă exprimarea acestora în sistemele octal (p = 8) şi hexazecimal (p =
16), deoarece conversia cu sistemul binar este foarte simplă.

4. Schimbări de bază
a) binar  zecimal:
Conversia se realizează prin însumarea puterilor lui 2 corespunzătoare biţilor egali cu 1;

2
Exemplu: 101012= 24 + 22 + 20 = 16 + 4 + 1 = 2110
b) zecimal  binar.
Conversia se efectuează prin împărţiri întregi succesive cu 2. Testul de oprire corespunde
situaţiei câtului nul. Numărul binar este obţinut considerând resturile în ordinea inversă.
Exemplu: Conversia lui 26:
26 : 2 = 13 rest 0
13 : 2 = 6 rest 1
6:2=3 rest 0
3:2=1 rest 1
1:2=0 rest 1
Se obţine (de jos în sus): 2610 = 110102.
c) octal (hexazecimal)  zecimal
Conversia se reduce la însumarea puterilor lui 8 (16).
d) zecimal  octal (hexazecimal)
Conversia se efectuează prin împărţiri întregi succesive prin 8 (16). Testul de oprire corespunde
situaţiei câtului nul. Numărul octal (hexazecimal) este obţinut considerând resturile obţinute de la
ultimul către primul.
e) Octal (hexazecimal)  binar
Conversia corespunde dezvoltării fiecărei cifre octale (hexazecimale) în echivalentul ei binar pe 3
(4) biţi.
Exemplu:
278 = 010’1112 deoarece 28 = 0102 şi 78 = 1112.
3A16 = 0011’10102 deoarece 316= 00112 şi A16=10102.
f) binar  octal (hexazecimal)
Conversia se realizează înlocuind de la dreapta la stânga, grupele de 3 (4) biţi prin cifra octală
(hexazecimală) corespunzătoare. Dacă numărul de biţi nu este multiplu de 3 (4) se completează
configuraţia binară la stânga cu zerouri.
Exemplu: 1010112= 538 = 2B16 .

5. Numere fracţionare

Numerele fracţionare sunt numerele subunitare.


Schimbări de bază
a) binar  zecimal
Conversia se face adunând puterile corespunzătoare ale lui 2.
Exemplu: 0.012 = 0  2-1 + 1  2-2 = 0.2510.

b) zecimal  binar
Conversia se efectuează prin înmulţiri succesive cu 2 a numerelor pur fracţionare. Acest algoritm
trebuie să se termine când se obţine o parte fracţionară nulă sau când numărul de biţi obţinuţi
corespunde mărimii registrului sau a cuvântului de memorie în care se va stoca valoarea. Numărul
binar se obţine citind părţile întregi în ordinea calculării lor.
Exemplu: 0.125  2 = 0.250 = 0 + 0.250
0.25  2 = 0.50 = 0 + 0.50
0.50  2 = 1.0 = 1 + 0.0
Vom considera părţile întregi de sus în jos, deci: 0.2510= 0.0012.

3
III. MODUL DE LUCRU

Se exemplifică reprezentarea informaţiilor în sisteme de numeraţie. Se realizează


implementarea algoritmilor de împărţiri succesive, de înmulţiri succesive şi algoritmul de substituţie.
Se aprofundează operaţiile aritmetice cu numere mari scrise în diverse baze de numeraţie.

IV. CONŢINUTUL REFERATULUI

1. Sumarul noţiunilor întâlnite.


2. Rezolvaţi următoarele probleme:
2.1 Exprimaţi în binar, octal, hexazecimal numerele zecimale următoare: 32.625 şi 128.75.
2.2 Convertiţi în zecimal numerele următoare, baza fiind indicată în indice: DADA.C16, 270.148,
11011.011112.
2.3 Program de calcul al corespondentului binar, octal, hexazecimal pentru un numar natural dat,
introdus de la tastatură.
2.4 Program care realizează conversia în zecimal a unui mumăr scris într-un sistem de numeraţie
cu o bază oarecare p (se citesc de la tastatură baza p şi cifrele numărului în baza p).
2.5 Program care realizează conversia unui număr întreg din baza p în baza q (se citesc de la
tastatură bazele p şi q precum şi cifrele numărului în baza p).
2.6 Program care realizează conversia unui număr fracţionar din baza p în baza q (se citesc de la
tastatură bazele p şi q precum şi cifrele numărului în baza p)
2.7 Program care realizează suma a două numere scrise în baza p (se citesc de la tastatură baza p
precum şi cifrele celor numere în baza p).
2.8 Program care realizează diferenţa a două numere scrise în baza p (se citesc de la tastatură baza
p precum şi cifrele celor numere în baza p).
2.9 Program care realizează produsul a două numere scrise în baza p (se citesc de la tastatură baza
p precum şi cifrele celor numere în baza p).
2.10 Program care realizează câtul a două numere scrise în baza p (se citesc de la tastatură baza p
precum şi cifrele celor numere în baza p).
3. Observaţii şi concluzii personale.

4
ARHITECTURA SISTEMELOR DE CALCUL ŞI SISTEME DE OPERARE

LUCRĂRILE DE LABORATOR Nr. 6, 7 şi 8

REPREZENTAREA INFORMAŢIILOR NUMERICE ÎNTREGI ŞI REALE.

I. SCOPUL LUCRĂRILOR

Lucrările prezintă reprezentarea informaţiilor numerice întregi şi reale. Scopul lucrării


constă în a familiariza studenţii cu modalităţile de implementare a datelor numerice întregi (codul
direct, codul invers şi codul complementar) precum şi a informaţiilor numerice reale
(reprezentarea în virgulă fixă şi virgulă mobilă).

II. NOŢIUNI TEORETICE

1 Reprezentarea informaţiei
Informaţiile prelucrate prin sistemele de calcul sunt de diverse tipuri dar ele sunt
reprezentate la nivel elementar sub formă binară. O informaţie elementară corespunde deci unei
cifre binare (0 sau 1) numită bit. O informaţie mai complexă (un caracter, un număr etc.) se
exprimă printr-o mulţime de biţi.
Codificarea unei informaţii constă în a stabili o corespondenţă între reprezentarea externă a
informaţiei (caracterul A sau numărul 33, de exemplu) şi reprezentarea sa internă, care este o
secvenţă de biţi.
Avantajele reprezentării binare se referă în special la facilitatea de realizare tehnică cu
ajutorul elementelor bistabile (sisteme cu 2 stări de echilibru) precum şi la simplitatea efectuării
operaţiilor fundamentale sub forma unor circuite logice, utilizând logica simbolică cu două stări
(0, 1).
Informaţiile prelucrate în sistemele de calcul sunt de două tipuri: instrucţiuni şi date.
Instrucţiunile, scrise în limbaj maşină, reprezintă operaţiile efectuate în sistemul de calcul
şi ele sunt compuse din mai multe câmpuri:
 codul operaţiei de efectuat;
 operanzii implicaţi în operaţie.
Codul operaţiei trebuie să suporte o operaţie de decodificare (transformare inversă
codificării) pentru a se putea efectiv executa.
Datele sunt operanzii asupra cărora acţionează operaţiile (prelucrările), sau sunt produse de
către acestea. O adunare, de exemplu, se aplică la doi operanzi, furnizând un rezultat care este
suma acestora.
Se pot distinge datele numerice, rezultat al unei operaţii aritmetice, sau date nenumerice,
de exemplu simbolurile care constituie un text.

2. Datele numerice

Datele numerice sunt de următoarele tipuri:


a) numere întregi pozitive sau nule: 0; 1; 315...
b) numere intregi negative: -1; -155...
c) numere fracţionare: 3.1415; -0.5...
d) numere în notaţie ştiinţifică: 4.9  10 ; 10 ...
7 23

1
Codificarea se realizează cu ajutorul unui algoritm de conversie asociat tipului de dată
corespunzător. Operaţiile aritmetice (adunare, scădere, înmulţire, împărţire) care se pot aplica
asupra acestor date se efectuează de regulă în aritmetica binară.

Tabele de adunare şi înmulţire binară


0+0=0 00=0
0+1=1 01=0
1+0=1 10=0
1 + 1 = 10 11=1

3. Numere întregi negative

Numerele întregi negative pot fi codificate prin trei metode:


 semn şi valoare absolută (SVA);
 complement logic sau restrâns sau faţă de 1 (C1);
 complement aritmetic sau adevărat sau faţă de 2 (C2);
Prin metoda “semn şi valoare absolută”, numerele se codifică sub forma:  valoare
absolută.
Prin această reprezentare se sacrifică un bit pentru semn. În mod normal, 0 este codul
semnului +, iar 1 este codul semnului -. În aceste condiţii, pe un cuvânt de k biţi se pot reprezenta
numere întregi pozitive şi negative N, astfel încât: - (2k-1- 1)  N  (2k-1- 1).
Această metodă de reprezentare prezintă unele inconveniente:
 numărul zero are două reprezentări distincte: 000...0 şi 100...0, adică +0 şi -0;
 tabelele de adunare şi înmulţire sunt complicate din cauza bitului de semn care trebuie
tratat separat.

Complement logic şi aritmetic


Complementul logic (complement faţă de 1) se calculează înlocuind, pentru valorile
negative, fiecare bit 0 cu 1 şi 1 cu 0.
Complementul aritmetic (complement faţă de 2) este obţinut adunând o unitate la valoarea
complementului logic.

Exemplu: Reprezentarea numărului (-6) pe 4 biţi: + 6 = 0110


Semn şi valoare absolută: - 6 = 1110
Complement faţă de 1: - 6 = 1001
Complement faţă de 2: - 6 = 1010
Se poate uşor constata că intervalul numerelor întregi N care se pot reprezenta în
complement faţă de 1 este acelaşi ca şi pentru reprezentarea “semn şi valoare absolută“.
Pentru reprezentarea în complement faţă de 2 există o valoare în plus, deci pentru k biţi
vom avea: -2k-1  N  (2k-1-1).
Se poate remarca faptul că bitul cel mai din stânga (bitul de semn) este întotdeauna 0
pentru numere pozitive şi 1 pentru cele negative şi aceasta pentru fiecare din cele trei
reprezentări.

2
Tabelă de reprezentare, pe 16 biţi, a numerelor întregi cu semn
(16 biţi  216 = 65536 = 2  32768 valori posibile)

zecimal semn şi valoare complement complement


absolută faţă de 2 faţă de 1
+32767 0111...1...1111 0111...1...1111 0111...1...1111
+32766 0111...1...1110 0111...1...1110 0111...1...1110
... ... ... ...
+1 0000...0...0001 0000...0...0001 0000...0...0001
+0 0000...0...0000 0000...0...0000 0000...0...0000
-0 1000...0...0000 ------------------ 1111...1...1111
-1 1000...0...0001 1111...1...1111 1111...1...1111
... ... ... ...
-32766 1111...1...1110 1000...0...0010 1000...0...0001
-32767 1111...1...1111 1000...0...0001 1000...0...0000
-32768 ------------------ 1000...0...0000 ------------------

Reprezentarea în complement faţă de 1 recunoaşte două zerouri (+0 şi -0), dar este
simetrică, deoarece aceleaşi numere pozitive şi negative sunt reprezentabile, iar această situaţie
se poate uşor realiza electronic.
În complement faţă de 1 sau faţă de 2, operaţiile aritmetice sunt avantajoase, deoarece
operaţia de scădere se realizează prin adunarea complementului.
Într-o adunare în complement faţă de 1, o cifră de transport către ordinul superior generată
de bitul de semn trebuie adăugată la rezultatul obţinut, spre deosebire de complementul faţă de 2,
când această cifră de transport se ignoră.
În complement faţă de 1 sau 2 nu se produce depăşire de capacitate decât în cazul în care
cifrele de transport generate de bitul de semn şi de bitul anterior acestuia sunt diferite.

3. Numere fracţionare

Numerele fracţionare sunt numerele subunitare.

Schimbări de bază
a) binar  zecimal
Conversia se face adunând puterile (negative) corespunzătoare ale lui 2.
Exemplu: 0.012 = 0  2-1 + 1  2-2 = 0.2510.
b) zecimal  binar
Conversia se efectuează prin înmulţiri succesive cu 2 a numerelor pur fracţionare. Acest
algoritm trebuie să se termine când se obţine o parte fracţionară nulă sau când numărul de biţi
obţinuţi corespunde mărimii registrului sau a cuvântului de memorie în care se va stoca valoarea.
Numărul binar se obţine citind părţile întregi în ordinea calculării lor.
Exemplu: 0.125  2 = 0.250 = 0 + 0.250
0.25  2 = 0.50 = 0 + 0.50
0.50  2 = 1.0 = 1 + 0.0
Vom considera părţile întregi de sus în jos, deci: 0.2510= 0.0012.

3
Pentru numerele fracţionare se pot remarca reprezentările în virgulă fixă şi virgulă mobilă.

4. Virgula fixă (VF)

Sistemele de calcul nu posedă virgula la nivelul maşinii, deci reprezentarea numerelor


fracţionare se face ca şi când acestea ar fi întregi, cu o virgulă virtuală a cărei poziţie este
controlată de către programator.
Datorită dificultăţii de gestionare a virgulei de către programator (pot apare frecvent
situaţii de depăşire a capacităţii de memorare), se preferă soluţia aritmeticii în virgulă mobilă.

5. Virgula mobilă (VM)

Primele sisteme de calcul utilizau doar virgula fixă pentru efectuarea operaţiilor aritmetice,
iar către sfârşitul anilor ’50, în urma apariţiei logicii cablate s-a introdus pe scară largă
reprezentarea în virgulă mobilă a numerelor fracţionare.
În majoritatea sistemelor de calcul actuale destinate în special aplicaţiilor de natură tehnico-
ştiinţifică, cele două metode de reprezentare (virgula fixă şi virgula mobilă) coexistă şi sunt foarte
utile.
Reprezentarea în virgulă mobilă constă în a reprezenta numerele sub forma următoare:

N = M  BE cu: B = baza (2, 8, 10, 16...)


M = mantisa
E = exponentul

Exponentul este un număr întreg, mantisa normalizată este un număr pur fracţionar (fără
cifre semnificative la partea întreagă). Cu excepţia numărului zero (în general reprezentat prin
cuvântul 000...0), vom avea întotdeauna: 0.12   M  12 , sau 0.510   M  110.
Exponentul şi mantisa trebuie să poată reprezenta atât numere pozitive cât şi negative. Cel
mai adesea, mantisa admite o reprezentare sub forma “semn şi valoare absolută“, iar exponentul
este fără semn, dar decalat.
Exemplu

SM ED M

unde SM este semnul mantisei, ED este exponentul decalat şi M mantisa.


Pentru nu număr de k biţi rezervaţi pentru ED se pot reprezenta fără semn 2k valori, de la 0
la 2 - 1. Decalajul considerat este 2k-1, ceea ce permite ca valorile de la 0 la 2k-1-1 pentru ED să
k

corespundă unui exponent real (ER) negativ, iar valorile de la 2k-1 la 2k - 1 ale lui ED să
corespundă unui exponent real (ER) pozitiv. Deci domeniul de valori reprezentabile pentru
exponentul real este de la -2k-1 la 2k-1-1.
De exemplu, pentru k = 4, pe cei 4 biţi putem reprezenta fără semn numere de la 0 la 15
pentru ED. Decalajul considerat este 2k-1 = 23 = 8, deci pentru exponentul real (ER) putem
considera valori de la - 2k-1 = -23 = -8 şi până la 2 k-1 - 1 = 23 - 1 = 7.
Relaţia existentă se poate scrie astfel: ER = ED - D.
Exponentul determină intervalul de numere reprezentabile în sistemul de calcul, iar
numerele prea mari pentru a putea fi reprezentate corespund unei “depăşiri superioare” de

4
capacitate de memorare overflow, iar numerele prea mici corespund unei “depăşiri inferioare”
de capacitate de memorare underflow.
Mărimea mantisei exprimă precizia de reprezentare a numerelor.
Avantajul utilizării virgulei mobile faţă de virgula fixă constă în intervalul mult mai extins
al valorilor posibile de reprezentat.

Standardul IEEE 754


Standardul IEEE Institute of Electrical and Electronics Engineers defineşte trei formate
de reprezentare a numerelor în virgulă mobilă:
a) simplă precizie pe 32 de biţi (1 bit pentru SM, 8 biţi pentru ED şi 23 pentru M);
b) dublă precizie pe 64 biţi (1 bit pentru SM, 11 biţi pentru ED şi 52 biţi pentru M);
c) dublă precizie extinsă pe 96 biţi (1 bit pentru SM, 15 biţi pentru ED şi 80 biţi pentru
M) .
d) precizie cvadruplă pe 128 biţi (1 bit pentru SM, 15 biţi pentru ED şi 112 biţi pentru
M)
Exponentul este decalat cu 128 pentru reprezentarea în simplă precizie şi cu 1024 pentru
reprezentarea în dublă precizie. Mantisa fiind normalizată, există siguranţa că primul bit al
mantisei are valoarea 1, ceea ce permite omiterea sa (bit ascuns) pentru creşterea preciziei de
reprezentare, dar complică prelucrarea informaţiei.

III. MODUL DE LUCRU

Se realizează implementarea algoritmilor de înmulţiri succesive pentru conversia parţii


fracţionare a unui număr, algoritmii de reprezentare a numerelor întregi negative (cod direct,
complement faţă de 1 şi complement faţă de 2) precum şi reprezentarea numerelor în virgulă fixă
şi mobilă.

IV. CONŢINUTUL REFERATULUI

1. Sumarul noţiunilor întâlnite.


2. Rezolvaţi următoarele probleme:
2.1 Daţi pe 8 biţi, reprezentările în cod direct, cod invers şi cod complementar a valorilor
întregi următoare: -32 şi -128.
2.2 Daţi valoarea zecimală cu semn a numărului B716 codificat în cod complementar pe 8
biţi.
2.3 Conform diferitelor metode de reprezentare a întregilor pe care le cunoaşteţi care este
valoarea zecimală corespunzătoare valorii binare conţinute într-un registru pe 8 biţi:
11111111?
2.4 Dispunem de o maşină unde valorile numerice sunt reprezentate pe 32 de biţi în virgulă
mobilă simplă precizie (VMSP). Daţi sub forma  a  2b (a si b zecimale), valoarea care
corespunde celor 32 biţi următori (sub formă octală): 27632000000 şi 30364000000.
2.5 Care este cel mai mare şi cel mai mic numărul reprezentabil în virgulă mobilă simplă
precizie?
2.6 Dispunem de o maşină unde valorile numerice sunt reprezentate pe 32 de biţi în virgulă
mobilă simplă precizie (VMSP). Daţi sub forma  a  2b (a si b zecimale), valoarea care
corespunde celor 32 biţi următori (sub formă zecimală): 278, -6.53125, 2.5 şi 0.00005.

5
2.7 Dispunem de o maşină unde valorile numerice sunt reprezentate pe 12 de biţi
numerotaţi de la dreapta spre stânga 0-11, unde:
- o mantisă normalizată pe 7 biţi (0-6);
- un exponent decalat reprezentând o putere a lui 2, codificat pe 4 biţi (7-10);
- un bit pentru semnul mantisei (11).
a) Găsiţi intervalul închis al valorilor strict pozitive reprezentabile pe această maşină;
marginile vor fi puse sub forma  a  2b (a si b zecimale). Simplificaţi pe cât posibil.
b) Puneţi sub forma  a  2b (a si b zecimale) următoarele numere date sub forma
hexazecimală: X = AE8, şi Y = 9D0.
c) Daţi sub formă octală, reprezentarea corespunzând numărului în zecimal: -32.625.
2.8 Fie cei 32 biţi următori scrişi sub formă octală: 37724000000. Ce reprezintă în zecimal
această informaţie dacă se consideră un număr întreg în cod invers (C1), în cod
complementar (C2) şi ca un număr real cu o reprezentare analoagă celei descrise în
exerciţiul 2.6?
2.9 Program care realizează conversia unui număr fracţionar din baza p în baza q (se citesc
de la tastatură bazele p şi q precum şi cifrele numărului în baza p)
2.10 Program care realizează conversia unui număr întreg (citit de la tastatură) în format
intern în cod direct, cod invers şi cod complementar.
2.11 Program care realizează conversia unui număr în format intern în cod direct în format
extern exprimat în zecimal., cod invers şi cod complementar.
2.12 Program care realizează conversia unui număr în format intern în cod invers în format
extern exprimat în zecimal.
2.13 Program care realizează conversia unui număr în format intern în cod complementar în
format extern exprimat în zecimal.
3. Observaţii şi concluzii personale.

6
ARHITECTURA SISTEMELOR DE CALCUL ŞI SISTEME DE OPERARE

LUCRĂRILE DE LABORATOR Nr. 9, 10 şi 11

CODURI DE ERORI ÎN SISTEMELE DE CALCUL

I. SCOPUL LUCRĂRILOR

Lucrările prezintă codurile detectoare şi corectoare de erori în sistemele de calcul. Scopul


lucrării constă în a familiariza studenţii cu modalităţile de codificare a informaţiilor la emisie, în
vederea efectuării transmisiei la distanţă, decodificarea informaţiei la recepţie, detectând erorile
de transmisie şi, în anumite situaţii corectarea acestor erori.

II. NOŢIUNI TEORETICE

1 Coduri de erori

Informaţiile pot suferi modificări involuntare în timpul transmisiei sau stocării lor în
memoria calculatorului. Trebuie deci utilizate anumite coduri care permit detectarea sau chiar
corectarea erorilor datorate acestor modificări.
Aceste coduri se constituie pe un număr de biţi superior celui strict necesar pentru a
codifica informaţia. Astfel, celor m biţi de date li se adaugă k biţi de control. Deci, în memorie
vor fi stocaţi n  m + k biţi. Asemenea configuraţii definesc codurile redundante.
Unele coduri nu permit decât detectarea erorilor (coduri autoverificatoare), altele permit
detectarea şi corectarea uneia sau mai multor erori (coduri autocorectoare).

2. Controlul de paritate

Este codul autoverificator cel mai simplu. El se compune din m + 1 biţi: cei m biţi de
informaţie la care se adaugă al (m + 1) - lea bit numit bit de paritate. Valoarea sa este aleasă
astfel ca numărul total de biţi egali cu 1, calculat pe n + 1 biţi să fie par (în cazul unei parităţi
pare), sau impar (paritate impară).
Exemplu: Transmiterea de caractere codificate în ASCII pe 7 biţi plus un bit de paritate
între un calculator şi un terminal.
A  1 1000001
B  1 1000010
E  0 1000101
 bit de paritate impară
Dacă un bit este schimbat din eroare în timpul transferului, paritatea nu mai este
verificată. Dacă eroarea este detectată trebuie retransmisă informaţia deoarece eroarea nu poate fi
localizată pentru a putea fi corectată.
În general, controlul de paritate nu permite decât detectarea unui număr impar de erori, în
cazul unui număr par efectele se pot anula.
Controlul de paritate nu poate fi utilizat decât pentru transmisii în care posibilitatea apariţiei
erorilor este scăzută (de exemplu, în interiorul unui calculator sau între calculator şi perifericele
sale).

1
3. Codul dublei parităţi

Codificare: considerăm exemplul unui cod ASCII (7 biţi);


 fiecare caracter este codificat pe o linie a unui tablou;
 un cod de paritate impară este efectuat pe fiecare linie (transversal);
 un cod de paritate impară este efectuat pe fiecare coloană (longitudinal);
Decodificare
 controlul transversal permite detectarea erorilor pe linie;
 controlul longitudinal permite detectarea erorilor pe coloană;
Exemplu: Se doreşte transmiterea mesajului 1968; se detectează o eroare la intersecţia
primei linii cu coloana a 4-a.

bit control
1 2 3 4 5 6 7 paritate transversal

1 0 1 1 1 0 0 1 0 F
9 0 1 1 1 0 0 1 1 A
6 0 1 1 0 1 1 0 1 A
8 0 1 1 1 0 0 0 0 A
bit paritate 1 1 1 1 0 0 1

contr. longit. A A A F A A A

Dubla paritate permite corectarea unei erori, sau în anumite cazuri a unui număr impar de
erori (ca de exemplu un număr impar de biţi eronaţi pe aceeaşi linie sau coloană). Totuşi, în
majoritatea cazurilor este posibilă numai detectarea unui număr impar de erori (ca de exemplu
trei biţi repartizaţi pe linii şi coloane diferite).
Principiul dublei parităţi este adesea utilizat în stocarea pe bandă magnetică a informaţiilor.
Astfel, pentru o bandă cu n piste:
 fiecare caracter este stocat transversal pe n -1 piste;
 un bit de paritate transversal este stocat pe a n-a pistă;
 toate cele m caractere (un bloc) suportă un control longitudinal de paritate.

4. Codul lui Hamming

Codul lui Hamming este un cod autocorector bazat pe teste de paritate. Versiunea cea mai
simplă permite corectarea unui bit eronat. Celor m biţi de informaţie li se adaugă k biţi de control
al parităţii. Deci avem n = m + k biţi necesari pentru transmiterea informaţiei.
Deoarece trebuie indicate n + 1 posibilităţi de eroare (inclusiv absenţa erorii) prin cei k biţi
de control, trebuie ca 2k  n + 1. Cele 2k posibilităţi de de codificare pe k biţi servesc la
determinarea poziţiei erorii, apoi se poate corecta bitul eronat.
Tabelul următor permite determinarea lui k când se cunoaşte n:
m 0 0 1 1 2 3 4 4 5 6 7 8 9 10 ... 120
k 1 2 2 3 3 3 3 4 4 4 4 4 4 4 ... 8
n 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ... 128
De obicei se ia n  2k - 1 în loc de n < 2k - 1.
Dacă se numerotează biţii de la dreapta spre stânga pornind de la 1, biţii de control (sau de
paritate) sunt plasaţi pe poziţia puterilor lui 2 (biţii cu numărul 1, 2, 4, 8, 16, ...). Fiecare bit de

2
control efectuează control de paritate (pară sau impară) asupra unui anumit număr de biţi de date.
Se determină astfel cei n biţi de transmis sau de stocat.
Exemplu: Dacă m  4 se poate construi un cod Hamming (CH) pe 7 biţi (n  7), adăugând 3
biţi de control (k  3).
7 6 5 4 3 2 1
m4 m3 m2 k3 m1 k2 k1
Cei trei biţi de control sunt plasaţi pe poziţia puterilor lui 2: k1  1; k2  2; k3  4.
Vom vedea acum, pentru fiecare bit al mesajului care sunt biţii de control care permit
verificarea parităţii sale.
7  (0111)2  4 + 2 + 1  7 este controlat de k3, k2, k1;
6  (0110)2  4 + 2  6 este controlat de k3, k2;
5  (0101)2  4 +1  5 este controlat de k3, k1;
4  (0100)2  4  4 este controlat de k3;
3  (0011)2  2+1  3 este controlat de k2, k1;
2  (0010)2  2  2 este controlat de k2;
1  (0001)2  1  1 este controlat de k1;
Problema se pune şi invers: care sunt poziţiile binare controlate de către fiecare cod?
k1 controlează biţii cu numerele 1, 3, 5, 7;
k2 controlează biţii cu numerele 2, 3, 6, 7;
k3 controlează biţii cu numerele 4, 5, 6, 7.
Când se recepţionează informaţia, se efectuează controlul de paritate. Pentru fiecare bit de
control se compară valoarea transmisă cu cea recalculată. Dacă cele două valori sunt identice, se
atribuie valoarea 0 unei variabile binare Ai asociată bitului de control ki, altfel, Ai primeşte
valoarea 1.
Valoarea zecimală a configuraţiei binare formată din variabilele Ak, Ak-1, ..., A1 furnizează
poziţia bitului eronat, care se poate corecta.
Reluăm exemplul precedent:
Presupunem că: pentru k1, A1  1, pentru k2, A2  1, iar pentru k3, A3  0. Eroarea se
găseşte în poziţia (A3A2A1)2  (011)2  3.
Într-adevăr, k1 poate detecta o eroare în poziţiile 1, 3, 5, 7, k2 poate detecta o eroare pe
poziţiile 2, 3, 6, 7, iar k3 poate specifica o eroare pe poziţiile 4, 5, 6, 7. O eroare detectată de k 1 şi
k 2 dar nu şi de k3 nu poate proveni decât din bitul 3.
Exemple:
(A3A2A1)2  (000)2 indică absenţa unei erori;
(A3A2A1)2  (001)2 indică eroare pe bitul 1;
(A3A2A1)2  (110)2 indică eroare pe bitul 6.
Exemplu de recepţionare a unui mesaj: (1011100)2.
}tiind că s-a utilizat un CH cu paritate pară, să se reconstituie mesajul iniţial.
n  7, deci k  3, m  4.
număr 7 6 5 4 3 2 1
tip m4 m3 m2 k3 m1 k2 k1
valoare 1 0 1 1 1 0 0
k1  0 controlează poziţiile 1, 3, 5, 7, nu se verifică, deci A1  1;
k2  0 controlează poziţiile 2, 3, 6, 7, se verifică, deci A2  0;
k3  0 controlează poziţiile 4, 5, 6, 7, nu se verifică, deci A3  1;
Adresa binară a erorii (A3A2A1)2  (101)2  5. Bitul cu numărul 5, care este egal cu 1 este
eronat. Mesajul iniţial corectat şi fără biţii de control este: (1001)2.

3
5. Calculul simplificat al codului lui Hamming (CHS)

Prin metoda lui Hamming, pentru detectarea şi corectarea unei singure erori se poate
simplifica calculul biţilor de control, astfel:
 se transformă poziţiile din mesaj care conţin valori egale cu 1 în echivalentul lor binar ;
 se însumează modulo 2, astfel:
 pentru paritate pară: un număr par de 1 0, un număr impar de 11 (sumă
modulo 2 directă);
 pentru paritate impară: un număr par de 11, un număr impar de 10 (sumă
modulo 2 inversată).
Exemplu: Să codificăm mesajul (10101011001)2 cu paritate pară: m  11, k  4 şi n  15.
Număr 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
tip m11 m10 m9 m8 m7 m6 m5 k4 m4 m3 m2 k3 m1 k2 k1
valoare 1 0 1 0 1 0 1 ? 1 0 0 ? 1 ? ?
Biţii cu valoarea 1 se găsesc pe poziţiile 15, 13, 11, 9, 7, 3, deci:
15  1 1 1 1
13  1 1 0 1
11  1 0 1 1
91 0 0 1
70 1 1 1
30 0 1 1
-----------
0 1 0 0  biţi de paritate
k4 k3 k2 k1
Mesajul codificat este deci (101010101001100)2.
Exemplu de recepţie a unui mesaj:
S-a primit mesajul următor: (101000101001100)2, codificat cu paritate impară. Biţii cu
valoarea 1 se găsesc pe poziţiile 15, 13, 9, 7, 4, 3.
15  1 1 1 1
13  1 1 0 1
91 0 0 1
70 1 1 1
40 1 0 0
30 0 1 1
----------  adunare modulo 2 inversată.
0 1 0 0
A4A3A2A1  eroare pe poziţia 4.
După corectarea erorii şi eliminarea codurilor de control, mesajul iniţial este:
(10100011001)2.

6. Codul lui Hamming şi erorile grupate

Metoda lui Hamming poate corecta în general doar un bit eronat, dar se poate utiliza pentru
detectarea şi corectarea erorilor multiple pe o secvenţă de biţi aranjând mesajul sub formă
matricială, codificând pe linie după metoda HC şi transmiţând mesajul pe coloane.

4
De exemplu, pentru transmiterea mesajului “Hamming” se codifică pe o linie fiecare
caracter în cod ASCII, completând cu biţii de control după metoda CH.
ASCII Cod Hamming (pentru fiecare literă)
11 10 9 8 7 6 5 4 3 2 1 (număr)
H  1001000 1 0 0 1 1 0 0 1 0 0 0
a  1100001 1 1 0 0 0 0 0 0 1 1 0
m  1101101 1 1 0 0 1 1 0 0 1 1 1
m  1101101 1 1 0 0 1 1 0 0 1 1 1
i  1101001 1 1 0 0 1 0 0 1 1 0 1
n  1101110 1 1 0 0 1 1 1 1 0 0 1
g  1100111 1 1 0 0 0 1 1 0 1 0 1
Dacă se produc erori grupate, pentru o secvenţă de biţi suficient de scurtă, ( 7 pentru
acest caz) atunci, efectuând transmisia pe coloană vom avea un singur bit eronat pe linie, pe care-
l putem corecta datorită biţilor de control adăugaţi potrivit metodei lui Hamming.
În ultimii ani, codurile autocorectoare sunt din ce în ce mai utilizate pentru a asigura
integritatea informaţiilor stocate în memorie.
Un cod autocorector permite creşterea considerabilă a timpului mediu între două
defecţiuni care pot să apară: erorile nu apar decât atunci când numărul lor depăşeşte capacitatea
de corectare a codului respectiv. Erorile care nu sunt corectate, cel puţin se pot detecta.

Detectarea erorilor grupate


În comunicaţiile la distanţă, erorile sunt mult mai frecvente decât în interiorul
calculatorului. Erorile consecutive pot fi extinse adesea la un bloc întreg de biţi de informaţie.
Se vor utiliza în acest sens coduri care permit detectarea erorilor grupate, corectarea
acestora fiind adesea prea costisitoare.

7. Metoda codurilor polinomiale (CRC)

CRC Cyclic Redondant Coding este metoda cea mai folosită pentru detectarea erorilor
grupate. Înaintea transmiterii, informaţiei i se adaugă biţi de control, iar pe baza acestora, dacă la
recepţionarea mesajului se detectează erori, atunci acesta trebuie retransmis.
O informaţie pe n biţi poate fi considerată ca lista coeficienţilor binari ai unui polinom cu n
termeni, deci de grad n-1.
Exemplu: 110001  x5 + x4 + 1
Pentru a calcula biţii de control se va efectua un anumit număr de operaţii cu aceste
polinoame cu coeficienţi binari. Operaţiile se vor efectua modulo 2, adunarea şi scăderea nu va
ţine seama de cifra de transport, deci toate operaţiile de adunare şi scădere sunt identice cu
operaţia logică XOR.
Pentru generarea şi verificarea biţilor de control atât sursa cât şi ddestinaţia mesajului
utilizează un polinom generator G (x).
Dacă M (x) este polinomul corespunzător mesajului iniţial (de transmis), iar r este gradul
polinomului generator G (x), atunci algoritmul de construire şi verificare a codurilor care se
incorporează în mesajul de transmis este următorul:
r
1) se înmulţeşte M (x) cu x (se adaugă r zerouri la sfârşitul mesajului iniţial);
2) se efectuează împărţirea modulo 2:
(M (x) * xr) / G (x)  Q (x) + R (x) / G (x);
3) câtul Q (x) se ignoră, iar restul R (x) conţine r biţi. Se efectuează scăderea modulo 2:
M (x) * xr - R (x)  T (x), iar T (x) este polinomul care reprezintă mesajul de

5
transmis. Polinomul ciclic T (x)  Q (x) * G (x) este un multiplu al polinomului
generator.
4) La recepţionarea mesajului se efectuează împărţirea T (x) /G (x):
a) dacă restul  0 nu sunt erori de transmisie;
b) altfel, s-au produs erori, deci mesajul trebuie retransmis.
Exemplu de transmitere a unui mesaj.
Se doreşte transmiterea mesajului 101101 (6 biţi)  M (x) =x5 + x3 + x2 + 1.
Polinomul generator este: 1011 G (x) = x3 + x + 1 de grad r = 3.
r
1) Efectuăm înmulţirea: M (x) x = 101101000 (se adaugă r = 3 zerouri la M (x).
r
2) Realizăm împărţirea modulo 2: M (x) x /G (x):
1 0 1 1 0 1 0 0 0 1 0 1 1
1011 ---------
-------- 1 0 0 0 0 1  câtul Q(x)
1000
1011
--------
0 0 1 1  R (x) = 0 1 1
r
3) Câtul Q (x) este ignorat. Pentru a realiza diferenţa modulo 2 M (x) x - R (x) este
suficientă adăugarea celor r biţi din R (x) la sfârşitul mesajului M (x)  mesajul de transmis este
T (x) = 101101011.
Exemplu de recepţionare a unui mesaj. S-a primit mesajul următor: 11010101. G (x) = 1011
(4 biţi)  G (x) = x3 + x + 1 de grad r = 3.
4) Se efectuează împărţirea T (x) / G (x).
1 1 0 1 0 1 0 1 1 0 1 1
1011 ---------
-------- 11110
1100
1010
--------
1111
1011
--------
1000
1011
--------
1 1 1 R (x) = 1 1 1
R (x)  0, s-au detectat erori de transmisie, mesajul se retransmite.
Cele mai utilizate polinoame generatoare G (x) sunt:
 CRC - 12  x12 + x11 + x3 + x2 + x + 1;
 CRC - 16  x16+ x15 + x2 + 1;
 CRC - CCITT  x16 + x12 + x5+ 1.

III. MODUL DE LUCRU

Se realizează aplicaţii care codifică informaţiile la emisie şi decodifică informaţiile la


recepţie. Se exemplifică codul de paritate memorie, codul dublei parităţi, codul lui Hamming şi
metoda codurilor polinomiale.

6
IV. CONŢINUTUL REFERATULUI

1. Sumarul noţiunilor întâlnite.


2. Rezolvaţi următoarele probleme:
2.1 Fie o transmisie utilizând codul lui Hamming cu paritate impară. Găsiţi mesajul
transmis (reprezentare octală) ştiind că reprezentarea octală a datelor de transmis
(compuse din pe 16 biţi) este 1165708.
2.2 Fie o transmisie utilizând codul lui Hamming cu paritate impară. Regăsiţi mesajul iniţial
având grijă să corectaţi erorile eventuale dacă mesajul primit (pe 21 biţi) este 61300148.
2.3 Fie o transmisie utilizând codul lui Hamming cu paritate pară. Găsiţi mesajul transmis
(reprezentare octală) ştiind că reprezentarea octală a datelor de transmis (compuse din 4
biţi) este 138.
2.4 Fie o transmisie utilizând codul lui Hamming cu paritate pară. Regăsiţi mesajul iniţial
având grijă să corectaţi erorile eventuale dacă mesajul primit (pe 7 biţi) este 134 8.
2.5 Presupunem că se transmit date codificate prin metoda CRC al cărei polinom generator
este G (x) = x5+x+1. Dacă se doreşte transmiterea datelor (9 biţi) cu reprezentarea octală
456, care va fi mesajul transmis?
2.6 Presupunem că se transmit date codificate prin metoda CRC al cărei polinom generator
este G (x) = x5+x+1. Dacă se primeşte pe 15 biţi mesajul octal 76343 ce putem zice de
mesajul iniţial?
2.7 Dacă G (x) = x2+x+1, mesajul primit (date + CRC) este T (x) = x 10+x7+x6+x4+x3+x.
S-au produs erori de transmisie? Dacă nu, daţi sub forma polinomului M (x) datele
iniţiale transmise.
2.8 Să se scrie un program prin care să se adauge bitul de paritate pară pentru un mesaj dat
sub forma unei configuraţii binare.
2.9 Să se scrie un program prin care să se testeze bitul de paritate pară pentru un mesaj dat
sub forma unei configuraţii binare.
3. Observaţii şi concluzii personale.

7
ARHITECTURA SISTEMELOR DE CALCUL ŞI SISTEME DE OPERARE

LUCRĂRILE DE LABORATOR Nr. 12, 13 şi 14

ELEMENTE DE LOGICĂ NUMERICĂ. REDUCEREA EXPRESIILOR LOGICE.

I. SCOPUL LUCRĂRILOR

Lucrările prezintă câteva elemente de logica propoziţiilor. Scopul lucrării constă în a


familiariza studenţii cu modalităţile de reducere ale expresiilor logice pentru funcţii logice în
forma normală disjunctivă utilizând legile algebrice pentru expresii logice şi metoda diagramelor
Karnaugh de ordin 2, 3 şi 4.

II. NOŢIUNI TEORETICE

1. Elemente de logică numerică

Logica propoziţională este o algebră al cărei obiectiv iniţial este modelarea raţionamentului.
Mai recent această algebră şi-a demonstrat utilitatea ca instrument de concepţie (concepţia
circuitelor calculatorului).
O a treia utilizare a logicii constă în a servi ca model de calcul pentru limbajele de programare (Prolog).
Logica propoziţională este un model matematic care ne permite să raţionăm asupra naturii
adevărate sau false a expresiilor logice.
O propoziţie este un enunţ care poate lua una din cele două valori de adevăr: adevărat
sau fals. Simbolurile care pot reprezenta o propoziţie se numesc variabile propoziţionale.

Expresii logice
O primă mulţime de expresii logice se defineşte recursiv astfel:
1) sunt operanzi atomici:
 variabilele propoziţionale;
 constantele logice true şi false;
2) Orice operand atomic este expresie logică;
3) Dacă E şi F sunt expresii logice atunci E and F este expresie logică;
4) Dacă E şi F sunt expresii logice atunci E or F este expresie logică;
5) Dacă E este expresie logică atunci not E este expresie logică;

Funcţii booleene
“Semnificaţia” unei expresii logice poate fi descrisă formal ca o funcţie care dă o valoare adevărat
sau fals pentru expresia întreagă pornind de la valoarea argumentelor, numită funcţie logică sau booleană.
Tabele de adevăr
O funcţie booleană poate fi reprezentată în practică printr-o tabelă de adevăr ale cărei
linii corespund tuturor combinaţiilor de valori de adevăr pentru argumente. Există o coloană
pentru fiecare argument şi una pentru valoarea funcţiei.
Figura următoare prezintă tabelele de adevăr pentru operaţiile logice and, or, not, xor.
p q p and q p q p or q p not p p q p xor q
0 0 0 0 0 0 0 1 0 0 1
0 1 0 0 1 1 1 0 0 1 0
1 0 0 1 0 1 1 0 0
1 1 1 1 1 1 1 1 1
1
Tabela de adevăr a unei funcţii cu k argumente posedă 2k linii. Fiecare linie asignează
pentru funcţie valoarea 0 sau 1, deci există 22k funcţii cu k argumente.

Operatori logici suplimentari


 implicaţia  “ dacă p este adevărat atunci q este adevărat”;
 echivalenţa  “ dacă şi numai dacă“;
 operatorul nonand “ not (p and q)”, notat p nand q;
 operatorul nonor “ not (p or q)”, notat p nor q.
Figura următoare prezintă tabelele de adevăr pentru , , nand, nor.
p q pq p q pq p q p nand q p q p nor q
0 0 1 0 0 1 0 0 1 0 0 1
0 1 1 0 1 0 0 1 1 0 1 0
1 0 0 1 0 0 1 0 1 1 0 0
1 1 1 1 1 1 1 1 0 1 1 0

Asociativitatea şi precedenţa operatorilor logici


Operatorii logici and şi or sunt asociativi şi comutativi şi vor fi grupaţi de la stânga la
dreapta. Ceilalţi operatori nu sunt asociativi.
Precedenţa operatorilor logici:
1. not;
2. nand;
3. nor;
4. and;
5. or;
6. ;
7. .
Funcţii booleene ale expresiilor logice
Vom construi expresii logice pornind de la tabelele de adevăr. Deşi se pot defini o infinitate de
expresii logice, de obicei, se va încerca pe cât posibil să se găsească cea mai simplă expresie logică.

Notaţii prescurtate
* and se reprezintă prin juxtapunerea operanzilor;
* or se reprezintă prin +;
* not se reprezintă prin  sau prin bararea variabilei.

Construcţia unei expresii logice din tabela de adevăr


Forma normală disjunctivă este o sumă logică de mintermi pentru care funcţia ia
valoarea logică adevărat (1). Un minterm este un produs logic de literale (variabile propoziţionale)
ale unei linii, astfel: dacă p are valoarea 0 în coloana k, se utilizează p, altfel se utilizează p.
Forma normală conjunctivă este un produs logic de maxtermi pentru care funcţia ia
valoarea 0. Un maxterm este o sumă logică de literale ale unei linii, astfel: dacă p ia valoarea 0
se utilizează p, altfel p.
Legi algebrice pentru expresii logice
Legi ale echivalenţei
1. Reflexivitate: p  p;
2. Comutativitate: (p  q)  (q  p);
3. Tranzitivitate: (p  q) and (q  r)  (p  r);
4. Echivalenţa negaţiilor: (p  q)  (p  q);

2
Legi analoage aritmeticii
5. Comutativitate and: pq  qp;
6. Asociativitate and: p(qr)  (pq)r;
7. Comutativitate or: (p+q)  (q+p);
8. Asociativitate or: (p+(q+r))  ((p+q)+r);
9. Distributivitate and faţă de or: p(q+r)  pq+pr;
10. 1 (true) este identitate pentru and: (p1)  p;
11. 0 (false) este identitate pentru or: (p + 0)  p;
12. 0 este adsorbant pentru and: p and 0  0;
13. Eliminare duble negaţii: (p)  p.
Diferenţe faţă de legile aritmeticii
14. Distributivitate or faţă de and: (p+qr)  ((p+q)(p+r));
15. 1 este adsorbant pentru or: 1 + p  1;
16. Idempotenţa operatorului and: pp  p;
17. Idempotenţa operatorului or: p+p  p;
18. Subsumarea:
a) (p+pq)  p;
b) p(p+q)  p.
19. Eliminarea anumitor negaţii:
a) p(p+q)  pq;
b) p+pq  p+q.
20. Legile lui de Morgan:
a) (pq) p+q;
b) (p+q) pq;
c) (p1p2...pn) p1+p2+...+ pn;
d) (p1+p2+...+pn) p1p2...pn.
Legi ale implicaţiei
21. ((pq) and (qp))  (p  q);
22. (p  q) (pq);
23. (pq) and (qr)  (pr);
24. (pq)  (p+q).
Tautologii şi metode de demonstraţie
25. Legea terţului exclus: (p+p)  1;
26. Analiza de caz: (pq) and (pq)  q;
27. Contrara reciprocei: (pq)  (qp);
28. Reducere la absurd: (p0)  p;
29. Demonstraţie prin reducere: (p  1)  p;

Exemple:
1. Funcţii de o variabilă a:

a z0 z1 z2 z3 z0 = 0 constantă;
0 0 0 1 1 z1 = a identitate;
1 0 1 0 1 z2 = a negaţie;
z3 = 1 constantă;
2) Funcţii logice de 2 variabile a şi b:

3
00 01 10 11 ab

0 0 0 0 F0 = 0
0 0 0 1 F1 = ab
0 0 1 0 F2 = ab
0 0 1 1 F3 = a
0 1 0 0 F4 = ab
0 1 0 1 F5 = b
0 1 1 0 F6 = ab
0 1 1 1 F7 = a+b
1 0 0 0 F8 =  (a+b) = ab
1 0 0 1 F9 = (ab)
1 0 1 0 F10 = b
1 0 1 1 F11 = a+b
1 1 0 0 F12 = a
1 1 0 1 F13 = a+b
1 1 1 0 F14 = (ab) = a+b
1 1 1 1 F15 = 1

Tabelele Karnaugh (TK)


Tabelele sau diagramele lui Karnaugh permit simplificarea funcţiilor logice. Metoda se bazează
pe inspectarea vizuală a tabelelor judicios construite (metoda este utilă cu un număr de variabile  6).
TK se poate considera ca o transformare a tabelei de adevăr.

TK cu 2 variabile
Cele 4 căsuţe ale TK corespund celor 4 linii ale tabelei de adevăr:
 fiecare variabilă logică completează o linie sau o coloană;
 un produs de 2 variabile completează o căsuţă;
Pentru a completa TK pornind de la tabela de adevăr se atribuie valoarea 1 căsuţelor corespunzătoare
stărilor din intrare în care funcţia are valoarea 1. Metoda de simplificare constă din a încadra mulţimea căsuţelor
ocupate, adiacente pe aceeaşi linie sau coloană. Figura următoare prezintă o TK cu 2 variabile.
a
a b z b 0 1
0 0 0 0 0 1
0 1 1
1 0 1 1 1 1
1 1 1
În urma reducerii avem vom obţine z = a+b.

TK cu 3 variabile
Tabela de adevăr a funcţiei logice de 3 variabile se transformă într-o TK cu două
dimensiuni, grupând două variabile pe linie sau coloană. Trecerea de la o linie (coloană) la alta
diferă printr-o singură variabilă (se consideră tabela ca înfăşurătoarea unui cilindru.
Pentru construirea TK cu 3 variabile:
 fiecare variabilă completează un bloc de 4 căsuţe;
 un produs logic de două variabile completează un bloc de 2 căsuţe;

4
 un produs logic de 3 variabile completează o căsuţă.
Exemplu: z (a, b, c) = abc+abc+abc+abc;
ac
b 00 01 11 10
0 1 1 1
1

În urma reducerii se obţine z = ac+bc.

TK cu 4 variabile
Se construieşte TK, precum înfăşurătoarea unui cilindru, atât orizontal cât şi vertical, astfel:
 fiecare variabilă completează un bloc de 8 căsuţe;
 un produs logic de 2 variabile completează un bloc de 4 căsuţe;
 un produs logic de 3 variabile completează un bloc de 2 căsuţe;
 un produs logic de 4 variabile completează o căsuţă.
Exemplu:
z(a,b,c,d)=abcd+abcd+abcd+abcd+abcd+
abcd+abcd+abcd+abcd+abcd+abcd.

cd ab 00 01 11 10

00 1 1

01 1 1 1 1

11 1 1 1 1

10 1

Expresia simplificată este z = d+bc+abc.


În general, metoda de simplificare a unei funcţii de 4 variabile prin TK este următoarea:
 încadrarea căsuţelor cu 1 care nu sunt adiacente altora cu 1 şi deci nu pot forma
blocuri de 2 căsuţe;
 încadrarea căsuţelor care pot forma grupe de 2 căsuţe dar nu pot forma blocuri de 4
căsuţe;
 încadrarea căsuţelor care pot forma grupe de 4 căsuţe dar nu pot forma blocuri de 8
căsuţe;
 încadrarea grupelor de 8 căsuţe adiacente;
Pentru reducerea funcţiilor logice cu mai mult de 4 variabile trebuie create mai multe
tabele Karnaugh.

5
III. MODUL DE LUCRU

Se realizează aplicaţii care reduc expresiile în forma normală disjunctivă a funcţiilor


logice fie prin aplicarea axiomelor algebrei booleene fie prin utilizarea diagramelor Karnaugh.

IV. CONŢINUTUL REFERATULUI

1. Sumarul noţiunilor întâlnite.


2. Rezolvaţi următoarele probleme:
2.1 Fie un sumator binar, dispozitiv care efectuează suma Si a 2 biţi Ai şi Bi deordin i şi a
unei cifre de transport Ci-1 de ordin i-1 imediat inferior.
a) Daţi tabela de adevăr pentru funcţiile Si şi Ci;
b) Deduceţi şI simplificaţi expresiile booleene pentru variabilele de ieşire Si şi Ci.
2.2 Figura următoare prezintă două funcţii booleene a şi b în funcţie de variabilele p, q şi r.
Scrieţi expresiile de tip formă normală disjunctivă şi realizaţi reducerea:
p q r a b

0 0 0 1 1
0 0 1 0 1
0 1 0 0 1
0 1 1 0 0
1 0 0 1 0
1 0 1 1 0
1 1 0 1 0
1 1 1 1 0

2.3 Să se construiască tabela Karnaugh pentru funcţia de două variabile implică “”.
2.4 Să se găsească tabela de adevăr şi să se reducă expresia formei normale disjunctive prin
metoda diagramelor Karnaugh pentru funcţia NAND (p, q, r) = (pqr).
2.5 Să se construiască tabela de adevăr şi să se reducă expresia formei normale disjunctive
pentru funcţia de patru variabile logice: a, b, c, d, care este 1 dacă configuraţia binară
abcd conţine cel mult un bit egal cu 1 şi zero în rest.
2.6 Să se construiască tabela de adevăr şi să se reducă expresia formei normale disjunctive
pentru funcţia de patru variabile logice: a, b, c, d, care este 1 dacă una, două sau trei
dintre variabile sunt 1 şi zero dacă nici-una sau toate sunt 1.
2.7 Să se construiască tabela de adevăr şi să se reducă expresia formei normale disjunctive
pentru funcţia de patru variabile logice: a, b, c, d, care este 1 dacă cel mult două dintre
variabile sunt 1 şi zero dacă trei sau patru sunt 1.
2.8 Să se construiască tabela de adevăr şi să se reducă expresia formei normale disjunctive
pentru funcţia de patru variabile logice: a, b, c, d, care este 1 dacă una, trei sau patru
dintre variabile sunt 1 şi zero dacă zero sau două sunt 1.
2.9 Să se construiască tabela de adevăr şi să se reducă expresia formei normale disjunctive
pentru funcţia de patru variabile logice: a, b, c, d, care este 1 dacă configuraţia binară
abcd văzută ca un număr binar este o valoare mai mică decât 10 şi zero în rest.
2.10 Să se găsească tabela de adevăr şi să se reducă expresia formei normale disjunctive prin
metoda diagramelor Karnaugh pentru funcţia de patru variabile, pqr  s.
3. Observaţii şi concluzii personale.

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