Programarea Calculatoarelor Cursul 1: Introducere Funcții de Intrare/ieșire
Programarea Calculatoarelor Cursul 1: Introducere Funcții de Intrare/ieșire
Calculatoarelor
Cursul 1
Introducere
Funcții de intrare/ieșire
Cadre didactice
● Curs
○ Robert Varga
■ E-mail: [email protected]
■ Web page: http://users.utcluj.ro/~robert
● Laborator
○ Alexandru Boțolan
○ Raluca Bozdog
○ Vivian Chiciudean
○ Dan Domnița
○ Dan Costinaș
○ Robert Varga
● Seminar
○ Robert Varga
2
PC Curs 1 - Introducere; Funcții de intrare/ieșire - R. Varga
Prezență și evaluare
3
PC Curs 1 - Introducere; Funcții de intrare/ieșire - R. Varga
Obiectivele cursului
4
PC Curs 1 - Introducere; Funcții de intrare/ieșire - R. Varga
Surse bibliografice
5
PC Curs 1 - Introducere; Funcții de intrare/ieșire - R. Varga
Conținutul cursului
5. Directive de preprocesare
6. Pointeri 1 - Legătură pointeri tablouri
7. Pointeri 2 - Alocare dinamică
8. Șiruri de caractere
9. Recursivitate
10.Structuri, uniuni, enumerări, definiții de tipuri
11.Fișiere
12.Argumente din linia de comandă
6
PC Curs 1 - Introducere; Funcții de intrare/ieșire - R. Varga
Programare
7
PC Curs 1 - Introducere; Funcții de intrare/ieșire - R. Varga
Etapele rezolvării unei probleme
8
PC Curs 1 - Introducere; Funcții de intrare/ieșire - R. Varga
Strategii ajutătoare la rezolvarea problemelor
● Desenarea și vizualizarea
● Calcularea manuală pe exemple mici
○ Ghicim și verificăm regula
● Stabilirea unei legături la probleme și concepte cunoscute
● Transformarea problemei în una mai generală
○ Ignorarea (temporară) a unor constrăngeri
● Transformarea problemei în una mai specifică
○ Adăugarea unor constrângeri care duce la o problemă rezolvabilă
● Studierea cazurilor speciale
● Formulare recursivă prin specificarea relației de recurență
● Folosirea simetriei
9
PC Curs 1 - Introducere; Funcții de intrare/ieșire - R. Varga
Algoritm
10
PC Curs 1 - Introducere; Funcții de intrare/ieșire - R. Varga
Algoritm - exemplu
11
PC Curs 1 - Introducere; Funcții de intrare/ieșire - R. Varga
Limbajul de programare C
12
PC Curs 1 - Introducere; Funcții de intrare/ieșire - R. Varga
Primul program în C
13
PC Curs 1 - Introducere; Funcții de intrare/ieșire - R. Varga
Primul program în C
// primul program in C
#include <stdio.h> Directivă de preprocesare
int main(void) ● copiază conținutul fișierului
{ ● permite accesul la funcțiile din
printf("Hello, World!"); bibliotecă
return 0; ● necesară pentru funcțiile de
} citire și afișare
14
PC Curs 1 - Introducere; Funcții de intrare/ieșire - R. Varga
Primul program în C
// primul program in C
#include <stdio.h>
int main(void) Antetul funcției principale main
{ ● este obligatoriu
printf("Hello, World!"); ● definește
return 0; ○ tipul returnat,
} ○ numele funcției și
○ parametrii de intrare
● funcția este rulată la lansarea
programului
15
PC Curs 1 - Introducere; Funcții de intrare/ieșire - R. Varga
Primul program în C
// primul program in C
#include <stdio.h>
int main(void)
Acoladele definesc blocul funcției
{
● instrucțiunile aflate între ele
printf("Hello, World!");
formează corpul funcției main
return 0;
● este obligatoriu
}
16
PC Curs 1 - Introducere; Funcții de intrare/ieșire - R. Varga
Primul program în C
// primul program in C
#include <stdio.h>
int main(void)
{
Apel la funcția de afișare
printf("Hello, World!");
● tipărește pe ecran mesajul
return 0;
între ghilimele "..."
}
● instrucțiunea se termină
obligatoriu cu ;
17
PC Curs 1 - Introducere; Funcții de intrare/ieșire - R. Varga
Primul program în C
// primul program in C
#include <stdio.h>
int main(void)
{
printf("Hello, World!"); Instrucțiune de return
return 0; ● programul returnează 0 dacă
} s-a terminat fără erori
18
PC Curs 1 - Introducere; Funcții de intrare/ieșire - R. Varga
Compilarea programelor C
● Editarea codului sursă
○ Salvarea fișierului scris cu extensia .c
● Preprocesarea
○ Efectuarea directivelor de preprocesare
○ Includerea fișierelor header (cu extensia .h) corespunzătoare
bibliotecilor folosite
○ Ca un editor – modifică și adaugă la codul sursă
● Compilarea
○ Verificarea sintaxei
○ Transformare în cod obiect (fișier cu extensia .o sau .obj)
● Editarea legăturilor (link-editarea)
○ Combinarea codului obiect cu alte coduri obiect (al bibliotecilor
asociate fișierelor header)
○ Transformarea adreselor simbolice în adrese reale
○ Se obține fișierul executabil cu extensia .exe
19
PC Curs 1 - Introducere; Funcții de intrare/ieșire - R. Varga
Variabile
20
PC Curs 1 - Introducere; Funcții de intrare/ieșire - R. Varga
Inițializarea și atribuirea
● Variabilele se pot inițializa în momentul declarării lor
● Este recomandat, altfel ele vor avea valori necunoscute
(aleatoare, neinițializate)
● Exemple:
char c = 'a';
int i = 1, j = -2, k = 3;
float x = 1.5, y = -.4;
● După inițializare putem schimba valoarea stocată prin
atribuire
● Exemple:
char c;
c = 'a';
int i = 1;
i = 2;
21
PC Curs 1 - Introducere; Funcții de intrare/ieșire - R. Varga
Tipuri de date - introducere
22
PC Curs 1 - Introducere; Funcții de intrare/ieșire - R. Varga
Funcții de intrare/ieșire
23
PC Curs 1 - Introducere; Funcții de intrare/ieșire - R. Varga
Funcția printf
24
PC Curs 1 - Introducere; Funcții de intrare/ieșire - R. Varga
Funcția printf - exemple simple
//Exemplu 3
printf("%c", 65); ● Afișează numărul 65 interpretat ca un
caracter (c = character)
● Avem un specificator de format și o
expresie, care acum este un număr (literal)
25
PC Curs 1 - Introducere; Funcții de intrare/ieșire - R. Varga
Specificatorul de format
26
PC Curs 1 - Introducere; Funcții de intrare/ieșire - R. Varga
Specificatorul de format
%lld long long int scrie un singur număr întreg mare în baza 10
27
PC Curs 1 - Introducere; Funcții de intrare/ieșire - R. Varga
Specificatorul de format
28
PC Curs 1 - Introducere; Funcții de intrare/ieșire - R. Varga
Specificatorul de format - indicator
● indicator (opțional)
○ modifică alinierea datelor
- Scrie valoarea în cadrul câmpului aliniată la stânga (în locul alinierii implicite la
dreapta)
29
PC Curs 1 - Introducere; Funcții de intrare/ieșire - R. Varga
Specificatorul de format - dimensiune, precizie
● dimensiune (opțional)
○ este un număr întreg sau *
■ dacă este * folosește valoarea precedentă stocată
○ reprezintă dimensiunea minimă a câmpului în care se face
scrierea
○ în caz de depășire se tipăresc toate caracterele necesare
○ implicit se aliniază la dreapta
● precizie (opțional)
○ este un număr de forma .x sau .*
■ dacă este .* folosește valoarea precedentă stocată
○ specifică numărul de cifre după virgula zecimală care vor fi afișate
30
PC Curs 1 - Introducere; Funcții de intrare/ieșire - R. Varga
Specificatorul de format - modificator
31
PC Curs 1 - Introducere; Funcții de intrare/ieșire - R. Varga
Funcția printf - exemple complexe
\n linie nouă
\b backspace
\t tab
\a alert
\" ghilimele
\\ backslash
33
PC Curs 1 - Introducere; Funcții de intrare/ieșire - R. Varga
Funcția scanf
34
PC Curs 1 - Introducere; Funcții de intrare/ieșire - R. Varga
Funcția scanf - exemple simple
35
PC Curs 1 - Introducere; Funcții de intrare/ieșire - R. Varga
Specificatori de format pentru scanf
%lld long long int citește un singur număr întreg mare* în baza 10
37
PC Curs 1 - Introducere; Funcții de intrare/ieșire - R. Varga
Funcția scanf - exemple complexe
39
PC Curs 1 - Introducere; Funcții de intrare/ieșire - R. Varga
Funcția puts
40
PC Curs 1 - Introducere; Funcții de intrare/ieșire - R. Varga
Funcția gets
char* gets(char* s);
41
PC Curs 1 - Introducere; Funcții de intrare/ieșire - R. Varga
Funcțiile de conversie sscanf/sprintf
42
PC Curs 1 - Introducere; Funcții de intrare/ieșire - R. Varga
Greșeli des întâlnite
43
PC Curs 1 - Introducere; Funcții de intrare/ieșire - R. Varga
Exemplu program complet scanf/printf
int varsta;
● Se citește vârsta ca un
puts("Varsta ta?");
scanf("%d", &varsta);
număr în baza 10
printf("Varsta in baza 8 este: %o\n", varsta); ● Se folosește specificatorul
de format pentru a afișa
return 0; numărul în baza 8
}
44
PC Curs 1 - Introducere; Funcții de intrare/ieșire - R. Varga