Enrere Mòdul 1
Fonaments de Programació. Llenguatge C/C++---
Exercicis

 

1. printf() i scanf()

Com a variació de la pràctica 2 d'aquest mòdul feu un programa que demani per pantalla el nom de l'usuari i un caràcter. El programa haurà d'escriure després el nom de l'usuari precedit i seguit pel caràcter introduït. La sortida haurà de ser com aquesta:

Introdueixi el seu nom: Francisco

Introdueixi un caràcter: *

El seu nom és *Francisco*

Anomeneu al programa m1e1.cpp i feu-lo dintre d'un projecte anomenat m1e1 a l'espai de treball m1. Feu la compilació en la configuració Release per tal de crear un executable petit.

Heu d'enviar els arxius: m1e1.cpp amb el codi font i l'arxiu m1e1.exe amb l'executable creat amb la configuració Release.

 

2. cout i cin

Feu el mateix programa de l'exercici anterior fent servir els objectes de C++ cout i cin. S'ha de tenir en compte que el programa ha de permetre la introducció de nombres compostos com Josep Anton,  per tant, s'ha de tenir en compte el que s'ha tractat a la pràctica 4 d'aquest mòdul.

Anomeneu al programa m1e2.cpp i feu-lo dintre d'un projecte anomenat m1e2 a l'espai de treball m1. Feu la compilació en la configuració Release per tal de crear un executable petit. 

Heu d'enviar els arxius m1e2.cpp amb el codi font i l'arxiu m1e2.exe amb l'executable creat amb la configuració Release.

 

3. Resistències en paral·lel

Feu un programa que calculi la resistència equivalent d'un sistema de dues resistències connectades en paral·lel. Aquesta resistència equivalent pot calcular-se fàcilment mitjançant la fórmula:

El programa ha de demanar les dades R1 i R2 que seran emmagatzemades en variables del tipus double i tornarà el valor de RE, també del tipus double.

Per tal de llegir variables del tipus double es fa servir el codi de tipus %lf.

S’ha de tenir en compte, per tal d’avaluar l’expressió d’abans, la jerarquia de les operacions i, per tant, una sentència d’assignació com

RE=R1*R2/R1+R2;

és incorrecta. La sentència correcta seria:

RE=R1*R2/(R1+R2);

Anomeneu al programa m1e3.cpp i feu-lo dintre d'un projecte anomenat m1e3 a l'espai de treball m1. Feu la compilació en la configuració Release

Heu d'enviar els arxius: m1e3.cpp amb el codi font i l'arxiu m1e2.exe amb l'executable creat amb la configuració Release.

 

4. Conversió d'escales de temperatura

Basant-se en la pràctica 5, feu un programa que pugui fer una conversió de temperatura de graus Fahrenheit a graus centígrads, és a dir, el programa ha de demanar un número de graus expressats en Fahrenheit i ha de tornar el valor equivalent en graus centígrads. Per tal de fer aquest programa s'ha de tenir en compte que:

C = ( F – 32 ) /1.8

on F és la temperatura en graus Fahrenheit i C la temperatura en graus centígrads. Les variables d'aquest programa seran del tipus double.

Anomeneu al programa m1e4.cpp i feu-lo dintre d'un projecte anomenat m1e4 a l'espai de treball m1. Feu la compilació en la configuració Release.

Heu d'enviar els arxius: m1e4.cpp amb el codi font i l'arxiu m1e4.exe amb l'executable creat amb la configuració Release.

 

5. Taxa Anual Equivalent

La Taxa Anual Equivalent (TAE) representa el percentatge real que s’aplicarà per una operació de préstec o imposició a termini.

Per tal de calcular la TAE (en el cas d’un préstec) s’ha de tenir en compte totes les despeses inicials i de cancel·lació, el fraccionament dels pagaments i l’interès nominal d’aquest.

Imaginem, per simplificar, que no comptabilitzem les despeses inicials i de cancel·lació.  

Si la taxa d’interès nominal anual és i (expressada en tant per u) amb un fraccionament de pagaments n, la TAE pot calcular-se amb la fórmula:

TAE = ( 1 + i/n ) n – 1

Per exemple, si la taxa d’interès és del 5% anual (i = 0.05) i els pagaments es fan mensuals (n = 12) la taxa és:

TAE = (1 + 0.05/12)12 – 1 = 0.0512

És a dir, el 5,12% TAE

Feu un programa que permeti entrar les dades d’i i n i calculi i presenti per pantalla la TAE corresponent.

Per tal d'elevar un número a un altre número es fa servir la funció pow(). Aquesta funció accepta dos paràmetres del tipus double, la base i l'exponent, i retorna la potència, també del tipus double. Per tal de fer servir la funció pow() heu d'incloure l'arxiu de capçalera math.h. Això es fa amb la directiva:

#include <math.h>

Anomeneu al programa m1e5.cpp i feu-lo dintre d'un projecte anomenat m1e5 a l'espai de treball m1. Feu la compilació en la configuració Release.

Heu d'enviar els arxius: m1e5.cpp amb el codi font i l'arxiu m1e5.exe amb l'executable creat amb la configuració Release.

 

 

6. L'Equació de segon grau

En aquest exercici es demana una primera versió d'un programa que millorarem en un altre mòdul. Es tracta de resoldre una equació de segon grau del tipus:

ax2 + bx + c = 0.

De moment no farem cap comprovació que les solucions siguin reals, per tant, s'ha de tenir en compte que aquesta versió del programa fallarà si els coeficients fan que l'equació no tingui solucions reals.

El programa ha de demanar els tres coeficients a, b i c. Aquests coeficients seran del tipus double. S'han de declarar de la següent forma:

void main(){

   double a,b,c; //coeficients

   double disc;  //discriminant de l'equació

   double x1,x2; //solucions de l'equació

...

Per llegir les dades es pot fer servir una funció scanf() per cada coeficient:

printf("\nintroduïu el coeficient a:");

scanf("%lf",&a);

printf("\nintroduïu el coeficient b :");

scanf("%lf",&b);

printf("\nintroduïu el coeficient b :");

scanf("%lf",&c);

 

o bé una única funció scanf() que llegeixi tots tres coeficients alhora:

printf("\nintroduïu els coeficients a, b i c\n");

scanf("%lf %lf %lf", &a,&b,&c);

Per tal de llegir i escriure variables del tipus double el codi de tipus que es fa servir és %lf.

La fórmula per resoldre equacions de segon grau és, com tothom recordarà:

El símbol ± indica que l'equació pot tenir dues solucions, una amb el més (+) i una altra amb el menys (-).

Per tal de fer l'arrel quadrada es fa servir la funció sqrt(). Per utilitzar aquesta funció és necessari incloure al principi del codi l'arxiu de capçalera math.h:

#include <math.h>

És més fàcil entendre el programa si feu servir variables per als càlculs parcials, per exemple:

disc=b*b-4*a*c;

x1=(-b+sqrt(disc))/2/a;

x2=(-b-sqrt(disc))/2/a;

Anomeneu al programa m1e6.cpp i feu-lo dintre d'un projecte anomenat m1e6 a l'espai de treball m1. Feu la compilació en la configuració Release.

Heu d'enviar els arxius: m1e6.cpp amb el codi font i l'arxiu m1e6.exe amb l'executable creat amb la configuració Release.

 

De forma excepcional, en aquest mòdul heu de lliurar tant el codi font com l'arxiu executable. A partir del mòdul 2, només haureu de lliurar els codis fonts dels exercicis realitzats.

La forma adequada per a fer el lliurament és crear un arxiu comprimit amb tots els arxius de cada mòdul. En aquest cas, el nombre d'arxius que s'ha de lliurar és de dotze, sis amb extensió .cpp i sis amb extensió .exe. El nom de l'arxiu comprimit serà identificatiu+número de mòdul, per exemple, si el meu identificatiu de correu és fruiz1, l'arxiu que enviaria tindria el nom: fruiz11.zip