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

Introdueixi el nom d'un municipi i un caràcter: Barcelona /

Introdueixi el seu codi postal: 08017

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

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

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

Anomeneu al programa m1e1.cc i feu-lo dintre de la carpeta Mòdul_1.

Heu d'enviar els arxius: m1e1.cc amb el codi font i l'arxiu m1e1.o que és l'executable.

 

2. cout i cin

Feu el mateix programa de l'exercici anterior fent servir les cout i cin de C++. S'ha de tenir en compte que el programa ha de permetre la introducció de noms compostos com Sant Cugat ,  per tant, s'ha de tenir en compte 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 al programa m1e2.cc i feu-lo dintre de la carpeta Mòdul_1.

Heu d'enviar els arxius: m1e2.cc amb el codi font i l'arxiu m1e2.o que és l'executable.

 

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.cc i feu-lo dintre de la carpeta Mòdul_1.

Heu d'enviar els arxius: m1e3.cc amb el codi font i l'arxiu m1e3.o que és l'executable.

 

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.cc i feu-lo dintre de la carpeta Mòdul_1.

Heu d'enviar els arxius: m1e4.cc amb el codi font i l'arxiu m1e4.o que és l'executable.

 

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.cc i feu-lo dintre de la carpeta Mòdul_1.

Heu d'enviar els arxius: m1e5.cc amb el codi font i l'arxiu m1e5.o que és l'executable.

 

6. printf() i scanf()

En aquest exercici heu d’escriure un programa per demanar al usuari que introdueixi tres nombres reals i mostri en la pantalla la seva mitja aritmètica.

 

La sentencia scanf("%f%f%f",&a,&b,&c); ens permet introduir els tres valors en la mateixa línia. Hem de posar un espai blanc entre valor i valor.

 

L’execució del programa hauria de ser mes o menys com la següent captura de pantalla.

 

Anomeneu al programa m1e6.cc i feu-lo dintre de la carpeta Mòdul_1.

Heu d'enviar els arxius: m1e6.cc amb el codi font i l'arxiu m1e6.o que és l'executable.

 

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ó .cc i sis amb extensió .o. El nom de l'arxiu comprimit serà identificatiu+número de mòdul, per exemple, si el meu identificatiu de correu és jpere10, l'arxiu que enviaria tindria el nom: jpere10.zip o jpere10.tar

 

Problemes complementaris

Aquests exercicis serveixen per completar aquest mòdul però suposen una ampliació voluntària. No és necessari lliurar aquests exercicis. No obstant això, és convenient fer-los i lliurar-los.

7. 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 m1e7.cc i feu-lo dintre de la carpeta Mòdul_1.

Heu d'enviar els arxius: m1e7.cc amb el codi font i l'arxiu m1e7.o que és l'executable.