Bazele programării calculatoarelor
(BPC – seriile 1100, 1101, 1102, 1103, 1104, 1105)
Titulari de disciplină:
[Link]. Bogdan GHILIC-MICU, ghilic@[Link] (1100, 1103)
[Link]. Marian STOICA, marians@[Link] (1101, 1104)
[Link]. M<arinela MIRCEA, mmircea@[Link] (1102, 1105)
2022-2023
Introducere
1. Obiectivele disciplinei
2. Conținutul disciplinei
3. Bibliografie
4. Evaluare
5. Metode și instrumente de lucru
1. Obiectivele disciplinei
1. Obiectivul principal:
• noțiuni de bază în teoria programării;
• metodele de analiză a problemelor în vederea rezolvării lor cu calculatorul;
• logica elaborării algoritmilor structurați și modularizați;
• realizarea programelor și subprogramelor în limbajul ANSI C.
2. Obiective specifice:
• analiza și explicarea comportamentului programelor simple care implică construcțiile
fundamentale din programare;
• modificarea și dezvoltarea programelor care folosesc structuri iterative, condiționale, funcții,
algoritmi pentru rezolvarea unor probleme simple;
• proiectarea, implementarea, testarea și depanarea unui program care folosește construcțiile
fundamentale specifice programării – calcule de bază, operații de intrare/ieșire simple,
structuri condiționale și iterative, definirea de funcții;
• alegerea construcțiilor condiționale și repetitive adecvate pentru implementarea unei sarcini de
programare date;
• aplicarea tehnicilor de structurare a programelor pentru a descompune programul în entități
mai mici.
2. Conținutul disciplinei
Detalii – a se vedea fișa disciplinei
Curs:
1) Algoritmi. Scheme logice structurate
2) Organizarea și reprezentarea internă a datelor
3) Etapele rezolvării problemelor cu calculatorul
4) Elementele de bază ale limbajului C
5) Tipurile de date din limbajul C
6) Operații de intrare/ieșire cu tastatura/monitorul în limbajul C
7) Expresii în limbajul C
8) Realizarea structurilor fundamentale de control în limbajul C
9) Tipuri dinamice de date – Pointeri în limbajul C
10) Realizarea subprogramelor în limbajul C
Seminar:
11) structura și funcționarea calculatorului; bazele aritmetice și logice ale calculatoarelor;
12) exerciții și probleme diverse;
13) exerciții și probleme cu vectori;
14) exerciții și probleme cu matrice;
15) exerciții cu masive alocate dinamic;
16) subprograme cu masive alocate static;
17) subprograme cu masive alocate dinamic.
3. Bibliografie
Bazele programarii calculatoarelor. Suport de curs/
Bazele programarii calculatoarelor. Suport de seminar –
set două cărți, Bogdan Ghilic-Micu, Marian Stoica et. al,
editura ASE, 2013, ISBN 978-606-505-758-6
Algoritmi şi scheme logice cu exemplificare în C,
Bogdan Ghilic-Micu, Marinela Mircea, Marian Stoica,
editura ASE, 2017, ISBN 978-606-34-0208-1
Link-uri utile
Accesul la resursele bibliotecii ASE pentru disciplina BPC se realizează prin
creare de cont pe [Link] și accesare a
următoarelor adrese:
1. Bazele programarii calculatoarelor : suport de curs, Bogdan Ghilic-Micu,
Marian Stoica, Catalina Cocianu, Cristian Razvan Uscatu, Marinela Mircea,
Lorena Batagan, editura ASE, 2013
• [Link]
MIT%3D20%26bibliographic_level%3Dall%26limit%3D20%26material_type
%3Dall%26ob%3Dasc%26q%3Dcota%253A135968%26s_source%3Dlocal%
26sb%3Drelevance%26start%3D0%26view%3DCONTENT%26wi%3Dfalse
&id=196634&pn=opac%2FAdvancedsearch&q=cota%3A135968
2. Bazele programarii calculatoarelor: suport de seminar, Bogdan Ghilic-
Micu, Marian Stoica, Marinela Mircea, Lorena Batagan, Catalin Ionut Silvestru,
Editura ASE, 2013.
• [Link]
IMIT%3D20%26bibliographic_level%3Dall%26limit%3D20%26material_ty
pe%3Dall%26ob%3Dasc%26q%3Dcota%253A135969%26s_source%3Dloca
l%26sb%3Drelevance%26start%3D0%26view%3DCONTENT%26wi%3Dfa
lse&id=196633&pn=opac%2FAdvancedsearch&q=cota%3A135969
3. Algoritmi si scheme logice cu exemplificare in C, Bogdan Ghilic-Micu,
Marinela Mircea, Marian Stoica, Editura ASE, 2017
• [Link]
IMIT%3D20%26bibliographic_level%3Dall%26limit%3D20%26material_ty
pe%3Dall%26ob%3Dasc%26q%3Dcota%253A139724%26s_source%3Dloca
l%26sb%3Drelevance%26start%3D0%26view%3DCONTENT%26wi%3Dfa
lse&id=220251&pn=opac%2FAdvancedsearch&q=cota%3A139724
4. Evaluare
Forma de evaluare - verificare
• Proiect individual – 50%, care să constea din următoarele:
• 10 programe C de lucru cu vectori (exp. sortare, interclasare, produs
scalar/vectorial, minim/maxim din vector, regăsire valoare dată etc.)
• 10 programe C de lucru cu matrice (exp. adunarea/scăderea/înmulțirea a două
matrice, ridicarea la o putere a unei matrice pătratice, minim(e)/maxim(e) pe
linii/coloane, suma/produsul elementelor din triunghiul inferior/superior al unei
matrice pătratice etc.)
• 10 subprograme (5 de tip funcție și 5 de tip procedură) care să fie construite
într-un program principal multifuncțional (a se vedea detaliile de la secțiunea
AT).
• Termen limită postare proiect - 30 noiembrie 2022, ora 23,59
• Susținere proiect - 11 decembrie 2022
• Lucrare de control – 50% - Duminică, 11 decembrie 2022, ora 10.30
5. Metode și instrumente de lucru
• utilizarea de mijloace specifice educației online prin intermediul platformei oficiale a ASE (
[Link]);
• utilizarea de suport Powerpoint;
• exemplificarea conceptelor prin exemple practice Visual Studio (limbajul C)/alte variante;
• interacțiune cu studenții (pentru interacțiune pe platforma menționată și e-mail toți studenții
trebuie să folosească adresa de poștă electronică instituțională);
• Se folosesc calculatoare cu acces la internet și la mediul integrat de dezvoltare pentru
limbajul C
S1. Structura și funcționarea
calculatorului. Bazele aritmetice și logice
ale calculatoarelor
Structura și funcționarea calculatorului
Sistemele electronice de calcul -> ce sunt?
SEC = ansambluri de echipamente (hardware) şi de programe (software) intercorelate
care asigură introducerea, prelucrarea şi extragerea automată a datelor, potrivit
cerinţelor utilizatorilor.
Componenta hardware (fizică) = ?
Componenta software (logică) =?
fizice (echipamente)
Sistemul de operare -> gestiune resurse logice (programe)
informaţionale (date).
1. Arhitectura calculatoarelor de tip von
Neuman
• Calculatorul văzut ca o cutie neagră -> arhitectură
Program
Calculatorul Rezultate
Date
electronic
• Componentele de bază ale calculatorului
Memoria externă
date instrucţiuni
date rezultate
Unitatea de intrare Memoria internă Unitatea de ieşire
instrucţiuni
date instrucţiuni
Unitatea centrală
de prelucrare
• Structura de principiu a unui calculator electronic
Memoria externă
Memoria
Unitate de operativă Unitate de
intrare RAM ieşire
Unitatea de Unitatea
comandă-control aritmetico-
ROM logică
PROCESOR
UNITATE CENTRALĂ
Legendă: RAM – Random Access Memory; ROM – Read Only Memory;
- Date; - Comenzi; - Instrucţiuni.
UCC examinează programul curent, instrucțiune cu instrucțiune, coordonează toate operațiile
efectuate, fiind adevăratul centru de conducere a sistemului.
UAL execută operații logice şi aritmetice asupra datelor.
2. Structura şi utilizarea memoriei
• Memoria =?
Definire = o succesiune de elemente fizice, care au două stări:
• fals, codificat numeric prin 0 şi materializat electric printr-o tensiune joasă şi
• adevărat, codificat numeric prin 1 şi materializat electric printr-o tensiune
ridicată.
• Bit =?
Bit = binary digit - cifră binară
• Octet (byte) =?
Octet = un grup de 8 biţi consecutivi
• Adresă absolută =?
Adresa = numărul asociat fizic fiecărui octet din memoria internă
• Reprezentarea grafică a memoriei
• Zone de memorie • A (170(8);3)
Zona de memorie = un grup de octeți consecutivi • B (174(8);2)
Zone de memorie:
• zone de memorie nestandard, fără restricţii de lungime şi adresă;
• zone de memorie standard, care presupun o anumită lungime (2,4,8) şi adresă
multiplu de lungime.
• Cuvântul
Lungimea cuvântului este caracteristică fiecărui tip de calculator, în
general, fiind egală cu lungimea unei instrucţiuni (pentru microcalculatoare
PC cuvântul are lungimea 2 octeţi şi adresa multiplu de 2).
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
1 1 1 0 1 1 0 0 0 1 0 1 1 0 1 0
Octet high Octet low
Cuvânt
3. Bazele aritmetice ale calculatoarelor
• Sistemul de numeraţie =?
Definire = o mulțime finită de simboluri, numite cifre, împreună cu o mulțime finită
de reguli care se folosesc pentru reprezentarea unui număr.
• Bază a unui sistem de numeraţie =?
Definire = numărul simbolurilor distincte folosite pentru reprezentarea în acel sistem
Sisteme de numerație
Denumirea sistemului Baza Alfabetul sistemului
Binar 2 0,1
Octal 8 0,1,2,3,4,5,6,7
Hexazecimal 16 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
• Conversia bazei de numeraţie =?
Definire = operația de trecere a unui număr dintr-un sistem de numerație cu baza b1 în
numărul echivalent dintr-un alt sistem de numerație, cu baza b2.
• Un număr întreg într-o bază b
forma explicită sau detaliată: N(b) = anbn + an-1 bn-1 +...+ a2b2 + a1b1 + a0b0
forma implicită sau simplificată: N(b) = anan-1...a2a1a0 cu ai{0,1,...,b-1}, i 0, n
• Un număr real într-o bază b
forma explicită sau detaliată: R(b) = anbn+an-1bn-1+...+a1b1+a0b0+a-1b-1+...+a-mb-m
forma implicită sau simplificată: R(b) = anan-1...a1a0,a-1a-2...a-m
• conversia unui număr întreg din zecimal într-o altă bază, b
- se folosește metoda împărțirii repetate:
a) se împarte numărul întreg NI prin b, se obține câtul Q1 și restul r0;
b) se împarte câtul Q1 prin baza b; rezultă câtul Q2 și restul r1;
c) se continuă această operație până când se ajunge la Qn=0.
- resturile așezate în ordinea inversă a apariției lor sunt cifrele numărului
convertit din zecimal în baza b (r0 este cifra cea mai puțin semnificativă).
Exerciții: Să se reprezinte în baza 2, 8 și 16 numerele zecimale următoare: .......
• conversia unui număr zecimal subunitar într-o altă bază b
a) se înmulțește numărul zecimal subunitar dat (NS) cu baza b. Rezultă partea
fracționară F1 și cifra a-1;
b) se înmulțește partea fracționară F1 cu baza b. Rezultă partea fracționară F2
și cifra a-2;
c) se continuă această operație până când Fm este egal cu 0 sau până când se
obține un număr de cifre ai apropiat de precizia cu care se dorește să se
reprezinte partea fracționară a numărului.
- șirul a-1,a-2,...,a-m formează numărul convertit în baza b, a-1 fiind cifra cea mai
semnificativă.
- dacă, după un număr finit de înmulțiri succesive, se ajunge la un Fk=0, atunci
reprezentarea lui NS în baza b va avea un număr finit de cifre. În caz contrar numărul
cifrelor va fi infinit.
Exerciții: Să se scrie numerele ....... în baza 2, 8 și 16
• conversia unui număr real într-o altă bază b
-> operația se reduce la reprezentarea unui număr întreg și a unui unitar, având în
vedere egalitatea R = NI + NS, unde NI este partea întreagă a numărului real R, iar
NS este partea fracționară (subunitară) a lui.
Exerciții: Să se convertească în baza 2, 8 și 16 următoarele numere zecimale ......
• conversia unui număr dintr-o bază oarecare b în baza 10
Exerciții: Să se convertească în baza 10 următoarele numere reprezentate în baza
2, 8 și 16......
• conversia unui număr din baza 2 într-o bază b care este o putere a lui 2 (b=2p).
se constituie grupe de p cifre binare, spre stânga și spre dreapta virgulei;
fiecare grupă se înlocuiește apoi cu cifra echivalentă în baza b;
Exerciții: Să se convertească în baza 8 și 16 următoarele numere reprezentate în
binar ......
• conversia unui număr din baza b=2p în baza 2
se exprimă în baza doi pe p cifre binare, în stânga și în dreapta virgulei, toate
cifrele numărului în baza b
Exerciții: Să se convertească în baza 2 următoarele numere reprezentate în baza 8
și 16......
• operaţii aritmetice în sistemul de numerație binar, octal, hexazecimal
Exerciții: - exemple de
- Adunare
- Înmulțire
4. Bazele logice ale calculatoarelor
• Axiome:
a) idempotenţă xx=x; xx=x
b) comutativitate xy=yx; xy=yx
c) asociativitate x (yz)=(xy) z; x (yz)=(xy) z
d) absorbţie x (xy)=x (xy)=x
x (yz)=(xy) (xz);
e) distributivitate
x (yz)=(xy) (xz)
f) x0=x; x1=x;
g) există şi este unic un element x pentru care x x =1 x x = 0
• principalele operații logice sunt:
reuniunea logică (disjuncția): , , SAU, +;
intersecția logică (conjuncția): , , ŞI, (sau nimic între x și y);
negarea (negația): −, NU.
Exerciții: tabelele de adevăr ale principalelor operaţii logice
SAU (OR) ŞI (AND) NU (NOT)
x y xy x y xy x not x
0 0 0 0 0 0 0 1
0 1 1 0 1 0 1 0
1 0 1 1 0 0
1 1 1 1 1 1