View
192
Download
0
Category
Preview:
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 Iulia.Costin@cs.utcluj.ro
Adrian Ivanov: laborator Adrian.Ivanov@cs.utcluj.ro
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
Recommended