În acest laborator veţi învăţa să:
Implementarea programelor: editare şi compilare
Atunci când dorim să implementăm un program, primul pas îl reprezintă scrierea instrucţiunilor acestuia într-un limbaj de programare (în acest caz, limbajul C). Pentru a realiza acest lucru se poate folosi orice editor simplu de texte, de exemplu:
Fişierul astfel obţinut este un simplu fişier text şi se numeşte fişier sursă. Conţinutul unui fişier sursă se numeşte cod sursă. Fişierele sursă pentru limbajul C au in mod convenţional extensia .c.
În continuare, pentru a obţine un program executabil, avem nevoie de un compilator specific limbajului care sa “traducă” codul sursă în instrucţiuni specifice procesorului. Conţinutul fişierului executabil rezultat se numeşte cod maşină, iar fişierele compilate (nu neapărat executabile) poartă numele de fişiere binare.
Există numeroase compilatoare pentru limbajul C. Cel mai cunoscut si mai răspândit este de departe gcc (denumirea vine de la GNU C Compiler), care poate fi instalat atât pe Linux, cât şi pe Windows sau Mac OS.
Există, bineînţeles, şi altele:
Cerinţă
#include <stdio.h> int main() { printf("Programarea Calculatoarelor\n"); return 0; }
Puteţi specifica voi un nume pentru fişierul executabil cu ajutorul opţiunii -o astfel:
Folosirea unui mediu integrat de dezvoltare (IDE): Code::Blocks
Pentru a putea folosi Code::Blocks pe sistemele Linux, trebuie să îl instalaţi folosind comanda:
Mai ales la început, vi s-ar putea părea mai uşor să folosiţi un mediu de programare care vă permite să editaţi codul sursă şi să compilaţi şi rulaţi programele direct dintr-o interfaţă grafică. Există foarte multe medii integrate de dezvoltare pentru limbajul C, fiecare cu avantajele şi dezavantajele sale. Dintre cele mai cunoscute, amintim doar câteva:
Vă încurajăm să le încercaţi în timpul liber pentru a vă forma o părere despre care vi se potriveşte mai bine .
Cerinţă
Deschideţi Code::Blocks şi creaţi un nou fişier ( File → New → Empty File ).
Copiaţi programul de mai sus şi salvaţi-l. Compilaţi şi rulaţi programul (folosind meniul, iconiţele, shortcut-urile etc).
Pentru depanarea programelor va fi necesar să creaţi un nou proiect ( File → New → Project ). Alegeţi Console Application şi în fereastra următoare, limbajul C. Completaţi numele proiectului şi calea unde doriţi să fie creat (de exemplu, în $HOME).
Copiaţi următorul program:
#include <stdio.h> int main() { int a, b, rest; a = 150; b = 84; while (b > 0) { rest = a % b; a = b; b = rest; } printf("cmmdc(150, 84) = %d\n", a); getchar(); return 0; }
Adăugaţi un breakpoint la linia a = 150; (click la dreapta numărului corespunzător liniei) şi porniţi programul în modul de depanare (debugging) cu ajutorul tastei F8. Pentru a urmări valorile unor variabile pe parcursul execuţiei programului pas cu pas, faceţi vizibilă fereastra watch (_Debug → Debugging Windows → Watches_) şi adăugaţi numele variabilelor pe care vreţi să le monitorizaţi (click dreapta în interiorul ferestrei şi alegeţi Add Watch). Rulaţi programul instrucţiune cu instrucţiune (cu ajutorul tastei F7) şi urmăriţi cum se modifică valorile variabilelor.
Încercaţi să vă familiarizaţi cu editorul şi cu debuggerul şi cereţi explicaţii suplimentare dacă este cazul.
Despre citirea şi scrierea în C
În limbajul C, cele mai utilizate funcţii standard pentru citirea şi afişrea datelor sunt printf şi scanf, definite în biblioteca <stdio.h>
Citirea datelor
Vom ilustra folosirea funcţiei scanf printr-un exemplu:
int a; float b; unsigned int c; scanf("%d%f%u", &a, &b, &c);
Primul parametru al funcţiei scanf este un şir între ghilimele alcătuit dintr-o succesiune de specificatori de forma %_, unde al doilea caracter este o litera. Acest şir de specificatori descrie datele pe care le va citi funcţia. În continuare, urmează o lista de nume de variabile precedate de &, care descrie variabilele în care se vor stoca datele citite.
printf("Numarul N = "); scanf("%d", &n);
Scrierea datelor
Ca şi la citire, vom ilustra folosirea funcţiei printf printr-un exemplu:
printf("Ana are %d mere. Ele costa %.2f RON/kg.", n, price);
Sintaxa este asemănătoare cu sintaxa pentru funcţia scanf, dar există câteva diferenţe. Şirul dintre ghilimele poate conţine şi alt text pe lângă specificatorii de format. La execuţie, specificatorii vor fi pur şi simplu înlocuiţi cu valorile preluate din lista de parametri.
De asemenea, nu trebuie să precedaţi variabilele din lista de valori cu &, şi nu sunteţi obligaţi nici să specificaţi variabile în acea listă, putând insera şi constante numerice sau valori returnate de apeluri de funcţii. De exemplu:
printf("sin(1 rad) = %f", sin(1)); printf("Codul ASCII al literei 'A' este: %d", 'A');
Descriptorii de formatare au următorul prototip (ce se afla între [ ] este optional):
%[flags][lăţime][.precizie][specificatori de lungime]specificatori de tip
printf("%*d", 10, i);
va afişa întregul i pe 10 spaţii (aliniat la dreapta). De exemplu, dacă i este egal cu 1000, atunci el va fi precedat de 6 spaţii astfel: __1000.
Pentru formatele f, e şi g, folosirea # forţează afişarea punctului zecimal, chiar dacă numărul afişat nu are cifre zecimale.
Mai găsiţi detalii şi pe: http://www.cplusplus.com/reference/cstdio/printf/