Enrere Mòdul 1
Fonaments de Programació. Llenguatge C/C++---
Pràctica    Resum teòric Exercicis

 

Taules matemàtiques

En aquesta pràctica aprendrem a fer servir el codi de format de tabulació horitzontal i a escriure nombres decimals amb format. A més, coneixerem el nom d'algunes funcions matemàtiques comuns i la seva utilització.

Desenvolupament de la pràctica

Afegiu un nou projecte anomenat m1p06, escriviu en un nou fitxer de codi C/C++, anomenat m1p06.cpp  i escriviu el següent text:

//m1p06.cpp: taules matemàtiques

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

void main(){

   double x;

   printf("Funcions matemàtiques\n");
   printf("Intruduïu el valor inicial d'x: ");
   scanf("%lf",&x); 
   system("cls");
   printf("Funcions matemàtiques\n\n");
   printf("x\tx^2\tx^3\tsqrt(x)\tx^(-1)\tln(x)\tlog(x)\texp(x)\n");
printf("_____________________________________________\n\n");
printf("%.2lf\t%.2lf\t%.2lf\t%.2lf\t%.2lf\t%.2lf\t%.2f\t%.2f\n"
,x,x*x,x*x*x,sqrt(x),1/x,log(x),log10(x),exp(x));

}

Compileu aquest programa i executeu-lo, observareu que s'obre una pantalla de consola de MS-DOS amb el text:

Funcions matemàtiques      

Intruduïu el valor incial d'x:

 

Recordeu que és necessari posar el codi ASCII dels caràcters amb accents, com s'ha fet a la pràctica 3, perquè surti bé per pantalla.

 

Explicació del programa

 

Podem introduir qualsevol número amb o sense decimals. El valor d'aquest número serà emmagatzemat en la variable x, que és del tipus double. En el mòdul següent tractarem amb més detalls els tipus de variable. En aquest moment és suficient dir que el tipus double és el tipus amb més precisió per als  números amb decimals.

 

Una vegada introduït el nombre i la tecla INTRO, s'esborra la pantalla (amb system("cls")) i es mostra el següent:

 

Funcions matemàtiques                                                                    
x         x^2       x^3       sqrt(x)   x^(-1)    ln(x)     log(x)    exp(x)         
___________________________________________________________   
1.50     2.25      3.38      1.22       0.67       0.41      0.18      4.48  

           
Press any key to continue

 

Això s'ha aconseguit amb les següents línies de codi:

 

printf("Funcions matemàtiques\n\n");
printf("x\tx^2\tx^3\tsqrt(x)\tx^(-1)\tln(x)\tlog(x)\texp(x)\n");
printf("_____________________________________________\n\n");
printf("%.2lf\t%.2lf\t%.2lf\t%.2lf\t%.2lf\t%.2lf\t%.2f\t%.2f\n"
,x,x*x,x*x*x,sqrt(x),1/x,log(x),log10(x),exp(x));

 

La primera torna a imprimir el títol després d'haver esborrat la pantalla amb la línia anterior. A continuació hi ha la funció printf() amb un sol argument, aquest argument és una cadena de caràcters amb codis d'escapament. El codi \t correspon al tabulador horitzontal. Normalment la pantalla de sortida té 80 caràcters per línia. Podem imaginar-nos aquesta pantalla dividida en 10 columnes de 8 caràcters cadascuna. El tabulador fa que es passi des d'una columna al començament de la següent. Per tal que la sortida quedi bé, ens hem d'assegurar que el que volem tabular no ocupi més de 8 caràcters.

La tercera línia és una altra crida a la funció printf() amb un sol argument per tal d'imprimir una línia.

Per últim, la darrera funció printf() té 9 arguments: la cadena de control i les 8 expressions que volem imprimir, aquestes expressions són:

x           el valor de la mateixa variable

x*x        el quadrat

x*x*x     el cub (en C no és correcte posar ni x^2 ni x^3)

sqrt(x)    l'arrel quadrada

log(x)     el logaritme neperià

log10(x)  el logaritme decimal

exp(x)     l'exponencial (el resultat d'elevar el nombre e a x)

 

Totes aquestes expressions són del tipus double. Per tal d'imprimir un valor double amb la funció printf() es fa servir el codi de format %If (long float). Aquest codi permet un modificador per indicar quants decimals s'imprimiran. En aquest cas, %.2lf fa que s'imprimeixin dos decimals.