Sunteți pe pagina 1din 2

// Exemplul 1: Programul următor utilizează funcţia sumă() declarată într-un fişier

extern suma.h
// pentru calculul sumei primelor n numere şi o funcţie medie() folosită pentru
calculul mediei
// sumei primelor n numere, declarată în fişierul medie.h;
#include <stdio.h>
// #include "L9_headersuma"
#include "L9_headermedie.h" /*cautarea fisierului inclus se face incepând cu
directorul curent*/
#define n 3 /* preprocesorul va inlocui toate aparitiile lui n cu 3 inainte ca
programul sa fie compilat */

int main()
{
printf("Suma primelor %d numere %d este: ", n, suma(n));
printf("Media primelor %d numere %f este: ", n, medie(n));
return 0;
}

// Exemplu 2: Următorul program determină: minimul a două numere și maximul a trei


numere utilizând o macroinstrucțiune
#include <stdio.h>
#define MIN(a,b) (((a)<(b)) ? a : b)
#define MAX(a,b) (((a)>(b)) ? a : b)

int main()
{
int i = 2, j = 3, z, y;
z = MIN(i, j); /* instructiunea de apel a macrodefinitiei este
inlocuita cu corpul acesteia inainte de compilare*/
y = MAX(i, j);
printf("Minimul celor doua numere este: %d", z);
printf("\nMaximul este %d", y);
return 0;
}

// Ex 1. Utilizând compilarea condiționată, realizați un program în care compilați


selectiv o porțiune
// din codul sursă în funcţie de anumite criterii

#include <stdio.h>
#define optiune 1 // Se introduce 0 pentru scadere si 1 pentru adunare
#include "L9_headerexemplu1.h"

int main()
{
int nr1, nr2;
printf("Program compilare selectiva, adunarea/scaderea a 2 numere.\n");
printf("Introdu nr1: \n");
scanf("%d", &nr1);
printf("Introdu nr2: \n");
scanf("%d", &nr2);
printf("Optiunea selectata este (%d) rezultatul este %d.", optiune, ex1(nr1,
nr2));
return 0;
}

// Ex 2. Realizați un program în care să utilizați o macroinstucțiune pentru


calculul mediei aritmetice a două numere.

#include <stdio.h>
#define MA(a, b) ((a + b) / 2)

int main()
{
float nr1, nr2;
printf("Program care calculeaza media aritmetica a 2 numere folosind
macroinstructiunile.\n");
printf("Introdu nr1: \n");
scanf("%f", &nr1);
printf("Introdu nr2: \n");
scanf("%f", &nr2);
printf("Media aritmetica a celor 2 numere este %f", MA(nr1, nr2));
return 0;
}

//Ex 3. Scrieți un program în care să utilizați macroinstrucțiuni pentru


interschimbarea conținutului a două variabile, apoi determinați maximul a trei
numere.

#include <stdio.h>
#define SWITCH(c,d) (c ^= d ^= c ^= d)
#define MAX(a,b,c) (a>b?(a>c? a:c):(b>c? b:c))

int main()
{
int nr1, nr2, nr3;
printf("Program care schimba continutul a 2 variabile apoi verifica maximul a 3
numere.\n");
printf("Introdu nr1: \n");
scanf("%d", &nr1);
printf("Introdu nr2: \n");
scanf("%d", &nr2);

SWITCH(nr1, nr2);
printf("Valorile nr1 si nr2 au fost schimbate intre ele.\nAcum nr1 = %d si nr2
= %d\n", nr1, nr2);

printf("Acum introdu nr3: \n");


scanf("%d", &nr3);
printf("Cel mai mare numar introdus este %d.", MAX(nr1, nr2, nr3));
return 0;
}

S-ar putea să vă placă și