Documente Academic
Documente Profesional
Documente Cultură
2
Evaluare
Medie ponderată:
Examen scris: 66 %
Laborator: 34 %
Cerințe
Prezența la laborator: minimum 12 ședințe de laborator
Rezolvarea problemelor de la laborator
Parcurgerea materialelor obligatorii de curs și laborator
4
Structura cursului
Recursivitatea
Funcții de intrare/ieșire (I/O) pentru fișiere
Funcții folosite în lucru cu fișierele
5
Bibliografie
Bibl1 - Győrödi Cornelia, Győrödi Robert, Pecherle George, “Programarea în limbajul
C. Teorie și Aplicații”, Editura Universității din Oradea, 2015, ISBN 978-606-10-1522-
1, nr. pag 250.
C: How to Program 5rd Edition – H.M. Deitel, P.J. Deitel – 2007, Prentice-Hall – ISBN
013239300-X
Programming: Principles and Practice Using C++ (2nd Edition), Bjarne Stroustrup,
May 25, 2014, Addison-Wesley, ISBN - 978-0321992789.
Data Structures, Algorithms & Software Principles in C – Thomas A. Standish – 1995
Addison-Wesley – ISBN 0201591189
Győrödi Cornelia Aurora - “Programare în limbajul C”, 2013 – curs in format
electronic
D. Costea - “Iniţiere în limbajul C” - Editura Teora - 1995
V. Cristea, C. Giumale ş.a. - “Limbajul C standard” - Editura Teora - 1992
6
Ce este un Calculator?
Calculator
Un dispozitiv capabil să execute operații și să
ia decizii logice
Calculatorul procesează datele cu ajutorul unor seturi de instrucțiuni
numite programe
Componente Hardware
Varietate de dispozitive care compun un calculator
(unitatea centrală)
Componente Software
Programele care se execută pe un calculator
7
Componentele unui sistem de calcul (Computer)
Un sistem de calcul este compus din 6 unități:
1. Unitatea de intrare
Obține informații de la dispozitivele de intrare (keyboard, mouse)
2. Unitatea de ieșire (Output unit)
Transmite informația spre vizualizare (ecranul, imprimanta alte unități de
control)
3. Unitatea de memorie
Acces rapid, capacitate mică, stochează informația de intrare, programele
active
4. Unitatea aritmetică și logică (Arithmetic and logic unit -ALU)
Execută operațiile aritmetice și logice
5. Unitatea centrală (Central processing unit -CPU)
Supervizeză și coordonează alte secțiuni ale calculatorului
6. Unitatea de memorie secundară (Secondary storage unit)
capacitate mare, mai ieftină
Stochază programele inactive (Stores inactive programs)
8
Evoluția limbajelor de programare
First-generation
binary machine code – switches
Second-generation (1940’s – 1950’s)
assembler – one-to-one
Third-generation (1960’s – 1970’s)
high-level languages like C, Pascal … C++, Java – one-to-5 …
10
Fourth-generation (late 1970’s)
4GL’s – one-to-30 … 50 (Focus, Natural)
9
Limbaje de nivel înalt: scurt istoric
conceptul de compilator : descris prima data de Grace Hopper (1952)
1954-1957: limbajul si compilatorul FORTRAN (John Backus, IBM)
1958: LISP (LISt Processing, John McCarthy, la MIT)
(Lots of Idiotic, Silly Parantheses :))
1959: COBOL (Common Business Oriented Language)
dezvoltat de CODASYL: Committee on Data Systems Languages
1960: ALGOL 60: limbaj structurat, sta la baza multor limbaje
1964: BASIC (John Kemeny, Tom Kurtz; la Dartmouth)
1967: SIMULA (Ole-Johan Dahl, Kristen Nygaard):
primul limbaj orientat pe obiecte !
1968: Edsger W. Dijkstra: \GO TO Considered Harmful"
- principiile programarii structurate
1971: PASCAL (Niklaus Wirth); ulterior MODULA-2
10
Istoricul limbajului C
dezvoltat si implementat în 1972 la AT&T Bell Laboratories de
Dennis Ritchie http://cm.bell-labs.com/cm/cs/who/dmr/chist.html
contextul: evolutia conceptului de programare structurata
(C inspirat de ALGOL 68, via BCPL si B)
necesitatea unui limbaj pentru programe de sistem
legatura strânsa cu sistemul de operare UNIX dezvoltat la Bell Labs)
C dezvoltat initial sub UNIX; în 1973, UNIX rescris în totalitate în C cartea de referinta:
Brian Kernighan, Dennis Ritchie:
The C Programming Language (1978) în 1988 (vezi K&R editia II) limbajul a fost
standardizat de ANSI (American National Standards Institute)
dezvoltari ulterioare: C99 (standard ISO 9899)
11
Libraria standard C
Programele C sunt împărțite în module numite funcții
Un programator își poate crea propriile funcții
Daca o funcție exista deja, e mai bine sa fie folosită decât să se scrie alta
Funcțiile de biblioteca sunt scrise cu atenție, sunt eficiente și portabile
12
Tendința principală: programarea obiectuală
Obiective
Componente software reutilizabile care modelează obiecte din viața
reală
Unități software
13
C++ și cum se programează în C++
C++
Superset al lui C dezvoltat de Bjarne Stroustrup la Bell Labs
14
Elementele unui mediu de dezvoltare C
• Fazele unui program
Editor Disk
C++
Programul preprocesor
1. Editare Preprocesor Disk proceseaza codul
2. Preprocesare Compilatorul creaza
3. Compilare Compilator Disk codul obiect si il
stocheaza pe disc.
4. Editarea de Linker Disk Editarea de legaturi
legături Primary Memory leaga codul obiect de
librarii
5. Incărcare Incarcator
6. Execuție Programul de
incarcare pune
Disk ..
.. programul in
..
memorie
Primary Memory
CPU executa fiecare
CPU instructiune, stocand
eventual noi date pe
masura executiei
..
..
..
programului
15
Modalitatea de scriere a unui program
Bloc:
Instrucțiuni compuse cu declarații
Erori de sintaxa
Detectate de compilator
Erori logice:
Iși fac efectul în faza de execuție
Non-fatale: programul rulează, dar furnizează rezultate
eronate
Fatale: program se termină prematur
Programarea calculatoarelor I - Gyorodi
Cornelia 17
Algoritmi
Probleme de programare
Pot fi rezolvate executând o serie de acțiuni într-o ordine anume
Controlul programului
Specificarea ordinii în care instrucțiunile sunt executate
Pseudocod
Limbaj informal, artificial care ne ajută să dezvoltăm algoritmi
Similar cu vorbirea curentă
Nu este executat pe calculatoare
Ne ajută să “gândim” un program înainte de a-l scrie
Ușor de convertit într-un program C++
Se compune doar din instrucțiuni executabile
20
Reprezentarea algoritmilor
21
Scheme logice – mod de reprezentare
22
Scheme logice – mod de reprezentare
23
Scheme logice – mod de reprezentare
Blocul de calcul se foloseşte pentru a reprezenta operațiile
de calcul care sunt realizate
24
Reprezentarea blocurilor de decizie
Dacă condiție
{
instrucțiuni1
}
Altfel
{
instrucțiuni2
}
25
Structura repetitivă cu test inițial
26
Exemplu 1 – Rezolvarea ecuației ax+b =0
Schema logică de rezolvare a ecuaţiei ax+b=0 cu a şi b numere reale. Evident, dacă a=0
şi b=0, atunci ecuaţia este satisfăcută de orice x. Prin urmare, în acest caz ecuaţia are o
infinitate de soluţii. Dacă a = 0 şi b ≠ 0, atunci apare o incompatibilitate. În fine, dacă a
≠ 0, atunci ecuaţia are o singură soluţie: x = -b/a, pentru orice b.
Schema logică de rezolvare a problemei este:
27
Exemplu 2 – Rezolvarea ecuației de gradul II
Schema logică de rezolvare a ecuaţiei de gradul 2, ax2+bx+c=0
28
Exemplu 3 – Afișarea numerelor prime dintr-un
șir de N numere
Schema logică pentru a afla dacă un număr este prim.
29
Exemplu 4 – Determinarea valori maxime
dintr-un șir de N numere
30
Caracteristici ale limbajului C
limbaj de nivel mediu
oferă tipuri, operații, instrucțiuni simple
fără facilitățile complexe ale limbajelor de nivel (foarte) înalt
limbaj de programare structurat
31
Principiile limbajului C
32
Componentele unui program C
Funcţia main ( ) este funcţia cu care începe execuţia programului.
O componentă comună celor mai multe programe C sunt fişierele header. Aceste fişiere header pot fi
adăugate programului folosind directiva preprocesor # include.
Un exemplu de program C:
# include <stdio.h>
main ( )
{
printf ("Acesta este un scurt program C ");
}
printf( ) este funcţie de bibliotecă care afişează pe ecran caracterele care sunt cuprinse între
ghilimele.
33
Componentele unui program C
Un program C cuprinde:
atomi lexicali
identificatori,
constante (numerice, caracter, șir)
operatori,
semne de punctuație
separatori ( spații, comentarii, terminator de linie )
Atomii și separatorii se construiesc din simbolurile care constituie alfabetul limbajului C.
Simbolurile se codifică conform codului ASCII ( American Standard Code for Information
Interchange), prin câte o configurație de 8 biți (un octet), astfel rezultă că sunt 256 ( 0 - 255 ) de
caractere în codul ASCII.
Mai multe detalii sunt prezentate în Bibl1 Tabelul 1.1 și Tabelul 1-2.
34
Mulțumesc pentru atenție!
35