3.2 Introducere în limbajul C

Limbajul C este un limbaj de bază pentru programatorii profesionişti. Are caracteristicile limbajelor de nivel înalt, fiind însă mult mai flexibil, aspect care poate fi exploatat de programatorii experimentaţi.

Procesul dezvoltării unui program C

Un program este descrierea precisă şi concisă a unui algoritm într-un anumit limbaj de programare. Putem spune că un program este o secvenţă de instrucţiuni care se execută una după cealaltă – secvenţial:

Un program are un caracter general şi de aceea are nevoie de date iniţiale care particularizează programul pentru o situaţie concretă. Rezultatele produse de un program pe baza datelor iniţiale sunt de obicei afişate pe ecran. Datele de intrare se introduc manual de la tastatură sau se citesc din fişiere disc. Operaţiile uzuale din limbajele de programare sunt operaţii de prelucrare (calcule, comparaţii etc) şi operaţii de intrare-ieşire (de citire-scriere). Aceste operaţii sunt exprimate prin instrucţiuni ale limbajului sau prin apelarea unor funcţii standard predefinite (de bibliotecă). Desfăşurarea în timp a instrucţiunilor de prelucrare şi de intrare-ieşire este controlată prin instrucţiuni repetitive (de ciclare) şi de decizie (de comparaţie). Fiecare limbaj de programare are reguli gramaticale precise, a căror respectare este verificată de programul compilator (translator). Pentru a dezvolta un program C putem folosi un mediu integrat de dezvoltare (IDE - Interactive Development Environment) precum CodeBlocks, DevCpp, MS Visual Studio, Eclipse sau Netbeans, sau o putem face în mod linie de comandă.

Funcţii

O funcţie are o definiţie şi atâtea apeluri într-un program, câte sunt necesare. O definiţie de funcţie are formatul: 1. antet 2. corp tip nume (lista declaraţiilor parametrilor formali)// antet {declaratii de variabile locale instrucţiuni terminate cu ; } O funcţie poate folosi sau nu parametrii. Un parametru este o informaţie pe care programul o transmite funcţiei . Dacă nu se folosesc parametri atunci după numele funcţiei trebuie să plasaţi între paranteze cuvântul void. Utilizarea unei functii în program se numeşte de fapt apel de funcţie. Orice program în C conţine o funcţie principală, main, în care sunt apelate celelalte funcţii ale programului, dacă ele există.

Exemplu: # include void main (void) { lista_instrucţiuni urmate de ; }

Instrucţiunile de selecţie (decizie)

Valorile de adevăr şi fals sunt date de expresiile condiţionale. In C, o valoare de “adevăr “ înseamnă orice valoare diferită de zero, inclusiv numere negative. O valoare “fals”, înseamnă o valoare de zero. Avem două instrucţiuni de selecţie în C : if şi switch. Mai există un operator în C care uneori poate constitui o alternativă la if.

Exemplu: min=(a==0) instrucțiune

Instrucţiunea for

Este o instructiune repetitivă cu număr cunoscuţi de paşi. Are următoarea formă generală : for (iniţializare ;condiţie ; increment) Pe lânga aceste forme mai există şi alte variaţii în functie de contextul problemei. Iniţializarea este în general o instrucţiune de atribuire care stabileşte valoarea de început a contorului ciclului. Condiţia este o expresie relaţională care determină când se încheie ciclul. Incrementul defineşte regula de modificare a variabilei contor pe parcursul buclei. Instrucţiunea for se execută atâta timp cât condiţie este adevarată. Când aceasta devine falsă programul continuă cu instrucţiunea imediat următoare lui for. Variaţiile instrucţiunii for rezultă din ideea că nu este necesară existenţa tuturor celor trei elemente ale buclei for, prezentate mai sus.

Instrucţiunea while

Este o instrucţiune repetitivă cu test iniţial şi număr necunoscut de paşi. Expresia generală a instructiunii este: while (conditie) instructiune ; Condiţie poate fi orice expresie, care dacă este adevarată (valoare diferită de zero) va determina continuarea buclei while. Când conditie va fi falsă, execuţia programului continuă cu instrucţiunea imediat următoare lui while. Instrucţiunea while poate fi considerată o variaţie a instructiunii for, caz în care lipsesc elementele: “iniţializare” şi “ increment”.

for ( ; conditie ; ) instrucţiune

Constante

Constantele pot fi: predefinite sau definite de utilizator. Literele mari se folosesc în numele unor constante simbolice predefinite: EOF, M_PI, INT_MAX, INT_MIN. Aceste constante simbolice sunt definite în fişiere header (de tip “h”) : EOF în “stdio.h”, M_PI în “math.h”. Definirea unei constante simbolice se face utilizând directiva #define astfel:

#define identificator [text]

Tipul constantelor C rezultă din forma lor de scriere, în concordanţă cu tipurile de date fundamentale. În C++ se preferă altă definire pentru constante simbolice, utilizând cuvântul cheie const. Pentru a face diferenţierea dintre variabile şi constante este de preferat ca definirea constantelor să se facă pentru scrierea acestora cu majuscule.

Exemple:

const double PI = 3.1415;

const int LIM = 10000;

Variabile

Variabila este o entitate folosită pentru memorarea unei valori de un anumit tip, tip asociat variabilei.

Exemple:

1.int sum; // Declară a variabilă sum de tipul int 2.int nr1, nr2; // Declară două variabile nr1 şi nr2 de tip int 3.double media; // Declară a variabilă media de tipul double 4.int height = 20; /* Declară a variabilă de tipul int şi îi atribuie o valoare iniţială */ 5.char c1; // Declară o variabilă c1 de tipul char 6.char car1 = 'a', car2 = car1 + 1; // car2 se initializeaza cu 'b' 7.float real = 1.74, coef; /*Declară două variabile de tip float prima din ele este şi iniţializată*/

Exerciții

https://www.tutorialspoint.com/compile_c_online.php

  1. Creeză un program care să afișeze mesajul Hello de 3 ori. Folosește instrucțiunea for

  2. Creează un program care calculează suma a 2 variabile

  3. Fă un program care calculează aria cercului, știind raza

  4. Creează un program care simulează un termometru. Dacă valoarea înregistrată este sub 0, atunci se oprește. Folosește instrucțiunile if și while.

Rezolvări

#include <stdio.h>
#define pi 3.14
void afiseazaHello() {
int i;
for(i=1; i<=3; i++) {
printf("Hello world!");
}
}
int suma(int a, int b) {
return a+b;
}
int patrat(int a) {
return a*a;
}
float aria(int r) {
return pi*(r*r);
}
int main()
{
// Ex1
afiseazaHello():
// Ex2
int c = suma(3, 4);
printf("Suma este %d \n", c);
int p = patrat(2);
printf("patratul este %d", p);
// Ex3
float rezultat = aria(2);
printf("Aria este %f", rezultat);
return 0;
}