Sunteți pe pagina 1din 35

Utilizarea şi Programarea

Calculatoarelor

L. A. Fulop
Istoric.

Curs 1
Povestea calculatoarelor – Personalităţi

1800 George Boole – Logica Booleană


Charles Babbage – Maşină de calcul mecanic
Lady Lovelace – Ideea de PROGRAMARE
Herman Hollerith – Maşină tabulară (recensământ)
1930 Alan Turing – Maşina Turing | Spargerea codurilor
1940 Howard Aitken – Calculator digital
Grace Hopper - Cobol
Mauchey & Eckert - ENIAC
John von Neumann – Conceptul de salvare a programelor
Maurice Wilkes - EDSAC (utilizare de programe)
Bardeen & Brattain & Shockley - Tranzistor
Povestea calculatoarelor – Personalităţi

1950 John Backus - (Fortran)


Reynold Johnson – Unitatea de discheta
Donald Shell – Algoritmi de sortare
1960 Kemeny & Kurtz - BASIC
Edsger Dijkstra – Eliminarea lui ‘Go To’
Donald Knuth – Arta Programării Calculatoarelor
Hoff, Mazer, Noyce, Faggin - INTEL microprocesor
1970 Ted Codd – Baze de date relaţionale
Paul Allen & Bill Gates - Microsoft
Steve Wozniak & Steve Jobs - Apple
Bricklin & Fylstra – Tabele de calcul
Povestea calculatoarelor – Personalităţi

1980 William Sydnes - IBM PC


Mitchel Kapor - LOTUS
Tim Berners-Lee - www
1990 Marc Andreessen - Mosaic / Navigare Netscape
Povestea calculatoarelor – Charles Babbage

 Charles Babbage – Maşină de calcul mecanic


 Periada ”mecanismelor ingenioase”
Povestea calculatoarelor – Herman Hollerith

 Tabulating Machine Company


 Computer Tabulating Recording Company
 În 1924 CTR schimbă numele în International Business
Machines sau IBM.
Povestea calculatoarelor – Alan Turing

 Automat imaginar
Povestea calculatoarelor – Mark 1

 1939 Harvard primul calculator modern MARK 1


Povestea calculatoarelor – SUA

 ENIAC - Electronic Numerical Integrator Analyzer and Computer


 Primul calculator electronic – fără componente în mişcare
 John von Neumann
Povestea calculatoarelor – EDVAC, EDSAC

 EDVAC (Electronic Discrete Variable Automatic Computer)


 EDSAC (Electronic Delay Storage Automatic Calculator)
Povestea calculatoarelor – UNIVAC 1107

 Inventarea tranzistoare –
Dezvoltări IBM
Povestea calculatoarelor – IBM
Povestea calculatoarelor – IBM

 NASA Space Flight Center în Greenbelt (1968)


 IBM System/360 Model 91
Azi?

Mai multă putere de calcul într-o


maşină de clasă mijlocie decât în
Apollo 13!!!
Povestea calculatoarelor – Maşina

Abaca ~300Bc în Babionia (Iraq)

Blaise Pascal 1642 – Maşina manuală cu roţi pentru taxe (+|-)


Îmbunătăţit de Gottfried Leibnitz 1672 (* & /)

1801 Jacquard Loom – cartele perforate

1834 Maşina analitică Babbage - Muzeul de Ştiinţe - Londra


Avea Depozit (memorie) - Motor (Procesor) – Intrare Date
(Cartele) - Ieşire Date (cartele perforate)
Lady Lovelace (Byron) primele instrucţiuni (primul
program)
Povestea calculatoarelor – Maşina

1941- 44 calculatoare speciale cu lampă electronică la Bletchley


Park - Collossus pentru decodarea mesajelor Germane

1944 - Mark 1 la Harvard bazat pe conceptul lui Babbage

Proiecte bazate pe ideile lui John von Neumann în SUA şi UK


UNIVAC şi Ferranti

Anii 1950 IBM 1401 şi Elliot 803 – Cu tranzistori

1965 calculatoare de generaţia a 3-a cu Circuite Integrate


IBM 360, ICT 1900 şi VLSI
Povestea calculatoarelor – Maşina

1969 Intel produce primul microprocesor - 4004


Urmat de 8008 (procesor pe 8 biti)

1980 sisteme integrate într-un telefon mobil etc.


Povestea calculatoarelor –
Limbaje de programare

Hardwired
Cod maşină - Binar - Octal(0-7) - Hex (0-F)
Assambler
Funcţionale ML, Lisp
Limbaje procedurale
Fortran, Basic, Cobol, ALGOL (68), PL1, Coral, C
Limbaje orientate spre obiect
C++, JAVA, Smalltalk
Declarative Prologue
Ciclul dezvoltării unui program

1. Analiza – definirea problemei

2. Proiectarea – Paşii soluţionării problemei (algoritm)

3. Interfaţa – Date de intrare (Input) / Date de ieşire

4. Codificarea în TC

5. Testarea şi eliminarea erorilor

6. Documentarea programului
Proiectarea unui program (1)

Date de iesire
Date de intrare
(Ce vrem să obţinem
Care sunt cunoscutele ?
ca rezultat?)

Prelucrarea
(Ce facem cu datele
de intrare?)
Proiectare unui program (2)

 Ce vrem să aflăm? (Output)


 Înţelegerea datelor de intrare
 Proiectarea conecxiunilor – prima dată în
limbaj natural! (algoritm)
 Implementarea conexiunilor într-un limbaj
de programare (VB, C++, Java etc)
 Testarea Eliminarea erorilor
 Documentarea programului
Proceduri de proiectare

 Limbaj natural

 Pseudocod

 Scheme logice
Exemplu de rezolvare a unei probleme
Program de inventariere

Program de inventar Descriere generală

Iniţializare Meniu Proceduri Rezulate

Date de intrare Grafice Liste


Examplul 1 –Pseudocod (1)
Întrebare – În clădire sunt 20 de trepte între fiecare etaj,
fiecare de 33 cm. Căt Nutella trebuie să mânânce un om de
70 kg să recupereze energia consumată pentr a ajunge la
secretariat?
(Nutella are 2147 joules / 100 gr)
Examplul 1 –Pseudocod (2)
Soluţie:

Energia folosită pentru a urca o treptă = m x g x h


= 70 x 9.81 x 0.33 = 226.61 j
Energia utilizată pentru a ajunge la etajul 1 = 1 x 20 x
226.61 = 4532.22 j

Dacă 100 gr de Nutella conţine 2147 kilo jouli atunci:


1 joul este produs de 100/2147000 gr de Nutella.
Va trebui să mânânce 4532.22 x 100 / 2147000 = 0.211 gr
de Nutella să ajungă la secretariat.
Exempul 1 – Date de intrare (Input)
Evidente (date în enunţ):
Masa persoanei 70 kg; înălţimea unei trepte 0.33 m;
numărul de trepte pe etaj 20; conţinutul de energie a Nutella
(2147 KJ/gr)

Ascunse (cunoştiinţe anterioare):


Acceleraţia gravitaţională 9.81 m/sec2; faptul că secretariatul
este la etajul 1 şi nou suntem la parter;
Exempul 1 – Rezultate (Output)
Finale (cerute prin enunţ):
Cantitatea de Nutella care trebuie consumat (0.21 gr).

Parţiale (necesare pentru a ajunge la soluţie – deregulă


rezultate ale unor subprobleme):
Energia consumată pentru a urca o treaptă;
Energia consumată pentru a urca un etaj;
Cantitatea de Nutella care conţine un Joul de energie;
Ciclul de viaţă al unui program (1)
Concept – Scopul proiectului (programului)

Necesităţi – Informaţii necesare pentru a atinge scopul


propus

Concepere – Specificarea a cea ce primeste utilizatorul

Codare – Activitatea programatorului

Testare – Corectarea, verificarea programului până ajunge


să realizeze ce s-a dorit (versiuni beta)

Mentenanţă – Suport client (utilizator)


Ciclul de viaţă al unui program (2)
Dorinţa clientului

Propunere Furnizare
Tehnică Produs

Conceperea Probe
40% sistemului Teste 40%
Conceperea Acceptare
program sistem

Integrare
Implementare
Testare
20%
Modele de cicluri de viaţă (1)

Cascadă – Concepere sistematică bazată pe definiţie clară

Incremental – Folosit când definiţia poate suporta


modificări în timpul dezvoltării
Concept Model cascadă
Necesităţi

Proiectare
Concept
Codificare
Necesităţi
Test
Proiectare
Suport
Codare

Test

Model Incremental Suport


Architectură - Traditională
Set Date
Modul
procedural
Set Date

Modul Set Date


procedural

Set Date
Modul
procedural
Structura de date
Structura modulelor
Architectură – Orientată către Obiect

Modul Set Date


Procedural
Set Date
Modul
Procedural
Structura în obiect
(Date + Module)

Modul
Procedural Set Date

Modul
Procedural Set Date
cemsig.ceft.utt.ro/lfulop/TC/

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