Program Area Calculatoarelor - Curs 1

Embed Size (px)

Citation preview

10/4/2011

Curs 1

.l. dr. Iulia Costin - Cat. Calculatoare, U.T.C.N.

Curs 1

10/4/2011

1

Cu cine Notare Cunotine i abiliti dobndite Bibliografie Scurt istoric tiina calculatoarelor Exemplu Limbaje de programare Componente hardware ale calculatoruluiProgramarea calculatoarelor - Curs 1 .l. Iulia Costin, U.T.C.N.

10/4/2011

2

10/4/2011

Iulia Costin: curs + laborator [email protected]

Adrian Ivanov: laborator [email protected]

10/4/2011

Programarea calculatoarelor - Curs 1 .l. Iulia Costin, U.T.C.N.

3

Colocviu de laborator (L) Examen parial (P) Examen final (E) Nota final: N = 0.3L

Cerin: L, P, E 5 n activitile aferente disciplinei intr obligatoriu i studiul individual! minim 84 ore = 6 ore/sptmn studiu individual

0.7(0.4P 0.6E )

Disciplina 5 crediteProgramarea calculatoarelor - Curs 1 .l. Iulia Costin, U.T.C.N. 4

10/4/2011

10/4/2011

Cunotine teoretice: Cteva concepte de baz de proiectare a algoritmilor i de scriere a programelor Limbajul C Civa algoritmi

Abiliti: Proiectare de algoritmi i implementare n C Utilizarea unui stil de programare conform conceptelor nvate

10/4/2011

Programarea calculatoarelor - Curs 1 .l. Iulia Costin, U.T.C.N.

5

Slide-uri de curs Cel puin o carte despre limbajul C

ndrumtor de laborator:

recomandare - Liviu Negrescu, Limbajele C i C++ pentru nceptori, Vol. I partea I i a II-a, Editura Albastr, Cluj-Napoca Iosif Ignat Programarea calculatoarelor. ndrumtor de laborator, UT Pres, 2001, on-line:

http://users.utcluj.ro/~somodi/lab/files/indr_lab_PC.zip

Alte resurse utile: http://bavaria.utcluj.ro/~jim/CP/links.html

10/4/2011

Programarea calculatoarelor - Curs 1 .l. Iulia Costin, U.T.C.N.

6

10/4/2011

n sec. XIX, Charles Babbage proiecteaz: primul calculator mecanic programabil - the difference engine programat manual putea calcula diferene divizate permit calcul rapid de valori de polinoame polinoamele aproximeaz funcii trigonometrice, logaritmice etc. nu l-a i construit, dar s-a dovedit perfect funcional

o imprimant pentru acest calculator de diferene nu a construit-o

prima main analitic (analytical engine) (1834), care putea fi programat cu ajutorul unor cartele perforate (apropiat de calculatoarele de astzi) acionat de motor cu aburi nu a construit-o

Tot n acea perioad, Ada Byron a scris programe pentru maina analitic a lui Babbage s-a dovedit c ar fi funcionat dac motorul analitic ar fi fost construit prima programatoare

10/4/2011

Programarea calculatoarelor - Curs 1 .l. Iulia Costin, U.T.C.N.

7

1945 ENIAC calculator electromagnetic

1945 John von Neumann

primul calculator electronic de scop general att mainile proiectate de Babbage, ct i ENIAC funcionau cu numere zecimale (= n baza 10) datele de intrare i de ieire pe cartele perforate programul introdus manual, prin cablaje 500 adunri/s, 300 nmuliri/s a descris structura unui calculator n care datele i programele s fie stocate n memorie, execuia s poat fi repetat fr a reintroduce programul a descris noiunile de subrutin (subprogram) i de biblioteci de subrutine

1951 EDVAC

(subprograme)

1971 primul calculator cu microprocesor

Succesor al lui ENIAC construit pe principiile lui von Neumann

10/4/2011

Programarea calculatoarelor - Curs 1 .l. Iulia Costin, U.T.C.N.

8

10/4/2011

Computer science = tiina care studiaz rezolvarea problemelor cu ajutorul calculatorului sau cu ajutorul unor echipamente sau metode de calcul Nu apare cuvntul programare Programarea este doar o parte a procesului de rezolvare de probleme

tiina calculatoarelor nu se refer la calculatoare mai mult dect se refer astronomia la telescoape. (Edsger Dijkstra) Diveri ali termeni: tiina calculului (computing science), datalogy etc. (Wikipedia computer science)Programarea calculatoarelor - Curs 1 .l. Iulia Costin, U.T.C.N.

10/4/2011

9

Este: o tiin = un efort continuu de a descoperi i de a crete cunoaterea uman printr-o cercetare disciplinat

NU este: echivalent cu programarea utilizarea calculatorului de ctre profesioniti din alte domenii

10/4/2011

Programarea calculatoarelor - Curs 1 .l. Iulia Costin, U.T.C.N.

10

10/4/2011

10/4/2011

Programarea calculatoarelor - Curs 1 .l. Iulia Costin, U.T.C.N.

11

Se afl ntr-o lume bidimensional mrginit prin ziduri de o dimensiune oarecare n interior pot exista alte ziduri pot fi zero sau mai multe pietre n acea lume misca se mic nainte un pas intoarceStanga se ntoarce cu 90 spre stnga punePiatra aaz o piatr pe poziia pe care se afl iaPiatra ia piatra de pe poziia pe care se afl

tie s execute comenzi

10/4/2011

Programarea calculatoarelor - Curs 1 .l. Iulia Costin, U.T.C.N.

12

10/4/2011

Cerin: pornind din configuraia iniial, s ia piatra, s-o duc pe poziia precizat i s ajung n poziia final cu orientarea precizat Care sunt comenzile?

10/4/2011

Programarea calculatoarelor - Curs 1 .l. Iulia Costin, U.T.C.N.

13

NU rezult un program pe care s-l pornim i s funcioneze Rezult un algoritm = o succesiune de pai, o reet pentru a face ceva Un program trebuie s fie valid din punct de vedere sintactic, conform regulilor limbajului cum arat programul pentru comenzile anterioare?

10/4/2011

Programarea calculatoarelor - Curs 1 .l. Iulia Costin, U.T.C.N.

14

10/4/2011

Calculatorul vitez foarte mare de calcul, comparativ cu creierul uman nu gndete singur trebuie s i se spun foarte exact ce s fac, n cel mai mic detaliu pentru a-i putea spune ce s fac ntr-o limb pe care o cunoate procesorul (creierul) e cel care execut operaiile

Procesorul tie efectua cteva operaii simple, exprimate ntrun cod neles de el cod-mainProgramarea calculatoarelor - Curs 1 .l. Iulia Costin, U.T.C.N.

10/4/2011

15

La nceput programarea calculatorului se fcea n codmain

iniial set de comutatoare on-off (on 1, off 0) operaia de introducere a programului lent dac se greea chiar un singur bit se lua de la nceput ulterior alte metode de introducere a programului programele se puteau scrie doar de persoane foarte specializate, care tiau foarte exact cum funcioneaz calculatorul fiecare tip de calculator limbaj propriupentru aceleai operaii trebuia alt program

Un pas nainte limbaj de asamblare

mai uor de reinut coresponden unu-la-unu cu instruciunile main de asemenea specific tipului de calculator tot pentru specialiti e nevoie de un program specializat asamblor traduce din asamblare n cod main

10/4/2011

Programarea calculatoarelor - Curs 1 .l. Iulia Costin, U.T.C.N.

16

10/4/2011

Un mare salt nainte limbaje de programare de

nivel nalt

nu necesit cunotine extrem de detaliate privind funcionarea calculatorului i a procesorului care va executa programul utilizeaz notaii asemntoare limbajului matematic sau limbajului natural FORTRAN, Algol, COBOL, ADA, Pascal, C, C++, Java etc. sunt mult mai independente de calculator pe un alt calculator nu e neaprat nevoie de alt limbaj Nu sunt nelese de calculator e nevoie de alte programe (compilator+linkeditor / interpretor) transform cod surs (= cod n limbaj de nivel nalt) n cod executabil (= cod main) Ex. a = b + c; Ex. if (i > 0) printf(i este pozitiv.);

10/4/2011

Programarea calculatoarelor - Curs 1 .l. Iulia Costin, U.T.C.N.

17

Cel care vrea s scrie programe trebuie s cunoasc un limbaj (preferabil de nivel nalt) Nu e suficient aa cum nu e suficient s cunoti o limb ca s poi compune poezii frumoase sau s scrii cri bune trebuie cunoscute diferite reguli pentru a utiliza acea limb pentru a produce texte de valoare literar

Similar, cunoaterea tuturor regulilor de sintax i semantic ale unui limbaj de programare nu e suficient pentru a scrie programe bune sunt necesare cunotine suplimentare: structuri de date studiul i proiectarea algoritmilor

metode i tehnici de programare etape de dezvoltare a unei aplicaii etc.10/4/2011

Programarea calculatoarelor - Curs 1 .l. Iulia Costin, U.T.C.N.

18

10/4/2011

Repetarea unei operaii de un numr de orio

ntoarcere la dreapta = de 3 ori ntoarcere la stnga

Ciclu for cu repetare de n ori:for (i=0; i 16 bii = 2 octei

Valorile cu mai mult de 2 stri necesit mai muli bii

Multipli:

1kB=1024 B = 210 octei (kilo) 1MB=1024 kB = 220 octei (mega) 1GB=1024 MB = 230 octei (giga) 1TB=1024 GB = 240 octei (tera)

10/4/2011

Programarea calculatoarelor - Curs 1 .l. Iulia Costin, U.T.C.N.

34

10/4/2011

9278 9279 9280 9281 9282 9283 9284 9285 9286

Memoria este mprit n locaii de memorie (celule)

Fiecare celul are o adres numeric, ce o identific n mod unic

10/4/2011

Programarea calculatoarelor - Curs 1 .l. Iulia Costin, U.T.C.N.

35

9278 9279 9280 9281 9282 9283 9284 9285 9286

Fiecare celul memoreaz un numr de bii (de regul 8 bii (1 octet)) Valorile mai mari sunt memorate n celule consecutive

10/4/2011

Programarea calculatoarelor - Curs 1 .l. Iulia Costin, U.T.C.N.

36

10/4/2011

Capacitatea memoriei = nr. de octei coninuiMemoria principal (intern, RAM): se exprim n MB sau GB

Memoria secundar (extern):

volatil - informaia memorat se pierde la nchiderea calculatorului (ntreruperea curentului) cu acces direct (aleator) - n orice moment se poate accesa orice locaie de memorie (nu trebuie accesate ntr-o anumit ordine) viteza de acces - mare permanent - informaia memorat nu se pierde la nchiderea calculatorului (ntreruperea curentului) cu acces direct viteza de acces - mai mic

10/4/2011

Programarea calculatoarelor - Curs 1 .l. Iulia Costin, U.T.C.N.

37