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 d'un municipi, un caràcter i el seu codi postal. El programa ha d'escriure després el nom del municipi, el caràcter i a continuació el codi postal. La sortida ha de ser com aquesta:

Introduïu el nom d'un municipi i un caràcter: Barcelona /

Introduïu el codi postal: 08017

Les dades introduïdes són: Barcelona / 08017

En aquest exercici heu de recollir un caràcter. El codi de tipus %c l'utilitzareu per recollir-ne un.

Consulteu les taules per obtenir una breu descripció dels diferents codis de format a emprar per les funcions scanf() i printf().

Anomeneu el 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 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 noms compostos com Sant Cugat, per tant, cal tenir present el que s'ha tractat a la pràctica 4 d'aquest mòdul. En primer lloc, demaneu el nom del municip; en segon lloc, el codi postal, i finalment, el caràcter.

Anomeneu el 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 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 següent:

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 llegir variables del tipus double es fa servir el codi de tipus %lf.

S’ha de tenir en compte, per 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 el 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 l'arxiu 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 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 el 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 l'arxiu m1e4.cpp amb el codi font i l'arxiu m1e4.exe amb l'executable creat amb la configuració Release.

 

5. Taxa anual equivalent (TAE)

La taxa anual equivalent (TAE) representa el percentatge real que s’aplica per una operació de préstec o imposició a termini.

Per tal 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.

Imagineu, per simplificar, que no comptabilitzeu 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 de i i n, i que calculi i presenti per pantalla la TAE corresponent.

Per 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 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 el 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 l'arxiu 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 millorareu en un altre mòdul. Es tracta de resoldre una equació de segon grau del tipus:

ax2 + bx + c = 0

De moment, no fareu cap comprovació de si les solucions són 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 manera:

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 a 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 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 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 el 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 l'arxiu 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 font dels exercicis realitzats.

La forma adequada per 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 fos
fruiz1, l'arxiu que enviaria tindria el nom: fruiz11.zip.