Exercicis Programació C++ IV (2011)

Ejercicio Catalán
Universidad Universidad Politécnica de Cataluña (UPC)
Grado Ingeniería Electrónica Industrial y Automática - 1º curso
Asignatura Fonaments Informàtica
Año del apunte 2011
Páginas 19
Fecha de subida 12/11/2014
Descargas 2
Subido por

Descripción

Exercicis pas a pas de programació en C++

Vista previa del texto

Expressions 1. El màxim i el mínim Compila i executa el següent programa: #include <iostream> using namespace std; int main() { float a, b; cin >> a >> b; if ( a > b ) { cout << "El màxim és: " << a << endl; } else { cout << "El màxim és: " << b << endl; } } Compara'l ara, amb aquest altre: #include <iostream> using namespace std; int main() { float a, b, max; cin >> a >> b; if ( a > b ) max = a; else max = b; cout << "El màxim és: " << max; } Comprova que fan el mateix i que entens quines diferències tenen.
Modifica aquest últim per tal que calculi el mínim.
2. Parell-Senar Fes un programa que demani un número sencer i visualitzi si el nombre és parell o senar.
3. Àrea Figura Fes un programa que permeti calcular l'àrea d'un triangle o d'un rectangle segons decideixi l'usuari. Per fer això l'usuari introduirà la lletra R si vol l'àrea del rectangle o la T si vol la del rectangle. A continuación es demanarà la base i alçada de la figura i s'haurà de visualitzar l'àrea de la figura demanada.
4. Indentació Fixa't en els programes que hem fet fins ara: tots estan ben indentats. La indentació és el número d'espais que es posen al principi d'una línia. Sabent això, corregeix la indentació del següent programa: 5. Blocs Considera el següent programa: #include <iostream> using namespace std; int main() { int a, b, tmp; cin >> a >> b; if ( a > b ) { cout << "Major!" << endl; tmp = a; a = b; b = tmp; } cout << a << " < " << b; } Primer pensa què fa el programa. Ara esborra les claus, marcades amb taronja i torna a executar-lo. Què observes? Quina conclusió es pot treure del resultat? El programa diu quin nombre és el més gran dels donats. Si treus els claudators no pasa res, perque només hi ha un if per donar instruccions 6. Dia de la setmana Fes un programa que demani un número (el dia de la setmana, començant per 1) i escrigui per pantalla el nom del dia ("dilluns", "dimarts", etc.). Fes, a més a més, que el dia 0 sigui també diumenge (és a dir, que surti "diumenge" tant si poses 0 com 7).
7. Triangles Implementa un programa que demani 3 longituds (els costats d'un triangle) i després digui si el triangle és: • Equilàter: tots els costats són iguals.
• Isòsceles: 2 dels costats són iguals.
• Escalè: tots els costats són diferents.
El programa simplement ha de mostrar per pantalla quin d'aquests 3 tipus és.
8. Repetició Si en programa hipotètic tenim un if com el següent: if (a != b) { cout << "Diferents" << endl; a = a + b; c = b; } else { cout << "Iguals" << endl; a = a + b; c = b; } fixa't que les dues últimes instruccions (en color verd) de cada branca de l'if són les mateixes.
Per aquest motiu, no cal que estiguin repetides a cada branca, les podem posar després: if ( a != b ) cout << "Diferents" << endl; else cout << "Iguals" << endl; a = a + b; c = b; Fixa't que, a més, com que només hi ha una instrucció, un cop arreglada la repetició, no calen les claus, ja que només queda una instrucció a cada branca.
Observa ara aquest altre if: if ( a == b ) { c++; } if ( a == b && c == 10) { c = 0; } La condició del segon if és una "ampliació" de la del primer (és més restrictiva, però comença igual). Això es pot arreglar així: if ( a == b ) { c++; if ( c == 10 ) c = 0; } Això és perquè si posem el segon if a dintre del primer, es complirà que a == b, per tant el segon compleix les dues condicions (o sigui, afegeix c == 10).
Tenint en compte tot això, doncs, corregeix el següent programa: #include <iostream> using namespace std; int main() { int hora, minut; cin >> hora >> minut; minut = minut + 1; if ( hora = 23 && minut = 59 ) { minut = 0; hora = 0; } if ( minut = 59 ) { minut = 0; hora = hora + 1; } cout << "Són les: " << hora << ":" << minut << endl; } Aquest programa també té un error que passa una mica desapercebut, el veus? L’error es posar un igual en comptes de dos a les sentencies de l’if Revisa els exercicis 4 i 5 comprova si has repetit algun bloc.
9. Rellotges Implementeu un programa que visualitzi l’hora per diferents ciutats. L’usuari introduirà hora i minuts i es visualitzarà la correspondència horària (http://es.wikipedia.org/wiki/Huso_horario#UTC.2B5) per Hong-Kong (+7), New York (-6) i San Francisco (-9).
10. Dies del mes, versió limitada Fes un programa que demani un número que representa un mes (de l'1 al 12), i llavors digui quants dies té aquest mes (mostri per pantalla el número de dies). En aquesta versió, els mesos poden tenir 30, 31 o 28 dies (no tinguis en compte de moment els anys de traspàs).
11. Major de 3 Fes un programa que demani tres números i visualitzi el més gran dels 3.
12. Anys de traspàs En aquest exercici construirem una expressió Booleana que s'avaluï a true si un any a és de traspàs (quan Febrer té 29 dies) i false si no ho és.
Altres exercicis: 1. Escacs Fes un programa que determini si una casella del taulell d'escacs és blanca o negra. L'usuari haurà d'introduir la fila i la columna i es visualitzarà un missatge indicant el color.
2. Bitllets de banc Fes un programa que trobi el menor nombre de bitllets de banc de 100, 50, 20, 10 i 5€ necessaris per pagar una quantitat introduïda per l'usuari.
3. Suma de valors Fes un programa que demani 3 valors numèrics i determini si un d'ells és la suma dels altres 2.
4. Trucada telefònica Fes un programa per calcular la quantitat a pagar per una trucada telefònica d'acord amb les següents premisses: Una trucada amb duració inferior o igual a 3 minuts té un cost de 20 cèntims Cada minut addicional té un cost de 5 cèntims 5. Notes Fes un programa per fer la conversió d'una nota numèrica (amb decimals), introduïda per teclat, a la seva corresponent nota alfanumèrica segons els valors habituals (I: insuficient, S: suficient, B: bé, N: notable, E: Excel.lent).
6. Compara dates Fes un programa que llegeixi dues dates (dia, mes i any de cadascuna) i digui si la primera és anterior en el temps a la segona.
7. Formen triangle Fes un programa que donades les longituds dels costats d'un triangle determini si amb aquests valors es pot construir un triangle. Nota: Es pot construir un triangle si la suma de qualsevol parell de costats és superior al tercer (i això és així per tots els costats).
...