+ All Categories
Home > Documents > De ce să învăț un limbaj de programare?vchis/cursuri/info/c01ppt.pdf · Limbaj puternic si...

De ce să învăț un limbaj de programare?vchis/cursuri/info/c01ppt.pdf · Limbaj puternic si...

Date post: 02-Feb-2020
Category:
Upload: others
View: 7 times
Download: 0 times
Share this document with a friend
26
Transcript

Programele comerciale sunt scumpe

Nu exista un program (comercial sau gratis) pentru fiecare problema particulara

Dezvoltarea gandirii logice, algoritmice

Intelegerea mai profunda a functionarii dispozitivelor electronice

Cresterea numarului optiunilor pentru obtinerea unui job

Foarte multe probleme de fizica pot fi rezolvate (numai) cu ajutorul

computerelor => necesitatea unui program

Echipamentele de cercetare, de productie sau pentru diagnostic si tratament

medical folosesc rutine de calcul pentru prelucrarea datelor => intelegerea modului

de lucru si folosirea eficienta a infrastructurii experimentale

Cresterea productivitatii folosirii pachetelor software disponibile (de ex. Macros

in Excel)

De ce să învăț un limbaj de programare?

11 Impar

6 Par

9 Impar

7 Impar

6 Par

16 Par

10 Par

14 Par

12 Par

9 Impar

Pentru că există în planul de învățământ ...

De ce C? Exista de peste 30 de ani (programare adevarata)

o multe programe disponibile o probleme legate de limbaj au fost rezolvate

Limbaj puternic si versatil Precursor pentru C++, Java, C# Folosit pe scara larga de catre comunitatea stiintifica Eficienta sporita in programare (pointeri, lucrul pe biti, alocare dinamica a memoriei, etc.) Resurse bibliografice multiple, numar mare de librarii existente Multe instrumente stiintifice sunt programate in C (de ex. Camere CCD) Compilatoare “free”

De ce nu C++? Programarea “orientata obiect” este o complicatie ne-necesara pentru calculul stiintific in fizica

http://www-pnp.physics.ox.ac.uk/~tseng/teaching/lab/handbook_C.pdf

Syllabus

FLR1204

Evaluare: acordarea notei 2.5 p – proba orala teoretica (in sesiune) 2.5 p – proba practica (in sesiune) 2.0 p – doua teste pe parcurs (saptamana 6 (03.04) si saptamana 12 (22.05), 1 p pt. fiecare)

1.0 p – bonus prezenta si activitate la curs si laborator 1.0 p – teme (minim 5 teme) 1.0 p – proiect individual, la alegere (optional)

http://en.wikipedia.org/wiki/C_mathematical_functions

Link-uri utile

Functii matematice:

http://www.programmingsimplified.com/c/graphics.h Functii grafice:

http://www.cplusplus.com/doc/tutorial/

Limbajul C++:

Bibliografie: 1. B.W. Kernighan, D.M. Ritchie, The C Programming Language, Prentice Hall, Inc., 1988 2. L.Negrescu, Limbajele C şi C++ pentru începători, Ed.Microinformatica, Cluj, 1994 3. T.A. Beu, Introduction to Numerical Programming: A Practical Guide for Scientists and Engineers

Using Python and C/C++, CRC Press, Taylor and Francis Group, 2014 4. T.A. Beu, Calcul numeric in C, Editura Albastra, Cluj-Napoca, 1999 5. D. Ciurchea, V. Chiş, Prelucrarea datelor experimentale, Litografia UBB, Cluj-Napoca, 1995 6. F.M. Boian, Bazele matematice ale calculatoarelor, Universitatea Babeş-Bolyai, Cluj-Napoca, 2003 7. V. Chiş, Informatică aplicată în fizică, note de curs, www.phys.ubbcluj.ro/~vchis/cursuri/info 8. William H. Press, Saul A. Teukolsky, William T. Vetterling, Brian P. Flannery, Cambridge University

Press, 1992 9. Ingrid Zukerman, Joselito Chua, Monash University:

http://www.csse.monash.edu.au/courseware/cse1301/2001/2001S1/index.html 10. PHYSICS C PROGRAMMING, COURSE, UNIVERSITY OF OXFORD, PHYSICS TEACHING FACULTY,

http://www-pnp.physics.ox.ac.uk/~tseng/teaching/lab/handbook_C.pdf 11. Răzvan Andone, Ilie Gâbarcea, Algoritmi fundamentali – o perspectiva C++, Ed. Libris, Cluj-

Napoca, 1995

http://faculty.etsu.edu/lutter/courses/phys4007/ http://www.phys.unsw.edu.au/~mcba/phys2020/ http://www.physics.arizona.edu/~dpsaltis/Phys305/ http://farside.ph.utexas.edu/teaching/329/329.pdf http://www.ualberta.ca/~kbeach/comp_phys/cpp_basic.html http://www-pnp.physics.ox.ac.uk/~tseng/teaching/lab/handbook_C.pdf http://www.eskimo.com/~scs/cclass/notes/top.html https://blog.udemy.com/c-tutorial-learn-c-in-20-minutes/ http://www.physics.drexel.edu/courses/Comp_Phys/General/C_basics/c_tutorial.html

Bibliografie web:

Definitii

CURS 1

Dell , Xeon Up 3.5GHz, 8 cores 16GB RAM DDR4 1TB SATA 7200

Fujitsu-Siemens Server 4 procesoare Intel Xeon [email protected], 16 cores 40GB RAM 538 GB HDD

HPC@UBB 84 noduri (128GB RAM, 500GB HDD) Doua procesoare a cate 10 core Intel Xeon E5-2660 v3 @ 2.6 GHz ~ 80 TB RAM ~ 72 TB HDD 7.2K Darius Bufnea, Virginia Niculescu, Gheorghe Silaghi, Adrian Sterca, "Babeş-Bolyai University High Performance Computing Center", STUDIA UNIV. BABES-BOLYAI, INFORMATICA, Volume LXI, Number 2, 2016, pp. 54-69

Exemplu: 𝑒−𝑥2= −1 𝑘∞

𝑘=0

𝑥2𝑘

𝑘!

Se va tine cont de situatii

neuzuale!!

a, b – nr. intregi (folosim valoarea returnata de scanf)

Ce se intampla daca a<b?

0! = 1 1! = 1 2! = 1*2 3! = 1*2*3 4! = 1*2*3*4 5! = 1*2*3*4*5 … n! = 1*2*3*…*n

sau: daca n<2

vom folosi valoarea returnata de scanf la citirea unui intreg

sau: daca i<=n

START STOP

Orice algoritm poate fi reprezentat ca o combinatie de 3 structuri de control de baza

int cmmdc( int a, int b)

{

int r, cmmdc;

do

{

r=a%b;

cmmdc=b;

a=b;

b=r;

}

while(r!=0);

return cmmdc;

}

//functia fact cu instructiune for

double fact(int n)

{

double f=1.0;

int i;

if(n>1)

for(i=2;i<=n;i++)

f=f*i;

return f;

}

Tema 1

Elaboraţi o schemă logică pentru înmulţirea a două numere pe baza metodei "a la russe". (vezi Răzvan Andone, Ilie Gâbarcea, Algoritmi fundamentali – o perspectiva C++, Ed. Libris, Cluj-Napoca, 1995)

D I = I daca D este impar, altfel 0

21 13 13

10 26 0

5 52 52

2 104 0

1 208 208

273

Se scriu deînmulţitul şi înmulţitorul pe aceeaşi linie, ca şi capetele a două coloane.

Pe următoarea linie, în prima coloană se pune rezultatul împărţirii întregi a

deînmulţitului la 2, iar pe a doua coloană, rezultatul înmulţirii înmulţitorului cu 2.

Se continuă pe următoarele linii până când se ajunge pe coloana deînmulţitului la

valoarea 1.

Pentru obţinerea rezultatului înmulţirii se adună valorile din coloana înmulţitorului

care au ca şi corespondent o valoare impară în coloana deînmulţitului.


Recommended