Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Fonaments de la informatica, Ejercicios de Informática

ejercicios para practicar, sobre programacion

Tipo: Ejercicios

2019/2020

Subido el 21/11/2020

christian-anaya
christian-anaya 🇪🇸

4 documentos

1 / 9

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Fonaments
d'Informàtica
Aplicació
Composicióalternativa
Objectius:
Practicarlacomposicióalternativa(if).
Saberquèéslaindentacióicomindentarunprograma.
Entendrel'úsdelesclaus('{'i'}').
Detectarrepeticióenlesalternativesd'unif.
Construirunaexpressióperparts.
Saberferunprogramaambmésd'unaalternativa.
(Objectius:1.5.4,1.5.5)
(Documentsrelacionats:Indentació.pdf)
Exercicisparticipatius:2,3,4
1.Elmàximielmínim
Compilaiexecutaelsegüentprograma:
#include<iostream>
usingnamespacestd;
intmain()
{
floata,b;
cin>>a>>b;
if(a>b){
cout<<"Elmàximés:"<<a<<endl;
}
pf3
pf4
pf5
pf8
pf9

Vista previa parcial del texto

¡Descarga Fonaments de la informatica y más Ejercicios en PDF de Informática solo en Docsity!

Fonaments

d'Informàtica

Aplicació

Composició alternativa

Objectius:

● Practicar la composició alternativa ( if ).

● Saber què és la indentació i com indentar un programa.

● Entendre l'ús de les claus (' { ' i ' } ').

● Detectar repetició en les alternatives d'un if.

● Construir una expressió per parts.

● Saber fer un programa amb més d'una alternativa.

(Objectius: 1.5.4, 1.5.5) (Documents relacionats: Indentació.pdf) Exercicis participatius: 2,3,

1. El màxim i el mínim Compila i executa el següent programa:

#include 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 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ó es

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?

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 ifcom 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'ifsó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 == 1 0 ) { c = 0; }

cout << "Són les: " << hora << ":" << minut << endl; }

Aquest programa també té un error que passa una mica desapercebut, el veus? 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 truesi un any aés de traspàs (quan Febrer té 29 dies) i falsesi no ho és. Això ho farem per parts. Primer entra el següent programa:

#include using namespace std;

int main() { int a;

cout << "Entra l'any: "; cin >> a;

if ( expressió ) { cout << "De traspàs!" << endl; } else { cout << "Normal" << endl; } }

La part en taronja indica a on anirà l'expressió per a l'any de traspàs. Els passos a seguir són, doncs:

  1. Els anys de traspàs són, en general, els múltiples de 4. Pensa una expressió primer que indiqui si un número és múltiple de 4 i la poses en el programa, tot comprovant que funcioni amb diversos números. Comprova també com en l'any 100, es mostra per pantalla "De traspàs!" (ja que 100 és múltiple de 4).

  2. Ara bé: els múltiples de 100 de fet no són de traspàs. Modifica ara l'expressió de tal manera que just en els múltiples de 100, el programa digui "Normal", no com abans. Has d'ajuntar una expressió a l'anterior per tal d'aconseguir això (pensa primer una expressió que digui que un número no és múltiple de 100).

  3. Finalment, resulta que els anys que just són múltiples de 400 que són de traspàs. Llavors, 1900 ha de donar "Normal", 1904 "De traspàs!" i 1600 "De traspàs!". Pensa com "afegir" els anys múltiples de 400 a l'expressió que tens feta fins ara. Comprova que tot funcioni.

13. Dies del mes per a cert any Modifica el programa de l’exercici 10 per tal que es doni el número de dies de cada més, però tenint en compte els anys de traspàs (o sigui, l'any 2000, Febrer tenia 29 dies). Ara el programa demanarà 2 valors: l'any (per saber si Febrer té 29 dies), i el mes. Per fer ho combina el codi dels dos programes anteriors (ex. 10 i ex. 12). Intenta primer fer que el programa funcioni, i seguidament eliminar la repetició (tal com has vist en l'exercici 4).