viernes, 28 de marzo de 2014

Ejercicios C++: sentencias de selección y bucles.

Os dejo unos ejercicios resueltos sencillitos de C++ para practicar tanto las sentencias de selección como los bucles.


Diseñar un algoritmo que lea por teclado dos números enteros y determine si uno es divisor del otro.
#include <iostream>
using namespace std;

int main() {
 int a, b;
 cout << "Introduce un entero: ";
 cin >> a;
 cout << "Introduce otro entero: ";
 cin >> b;
 if(a!=0 && b!=0){
 if(a%b == 0){
  cout << b << " es divisor de "<< a <<".";
 }else if(b%a == 0){
  cout << a << " es divisor de "<< b <<".";
 }else{
  cout << "Ninguno es divisor del otro.";
 }
 }
 return 0;
}
Diseñar un algoritmo para determinar si un número entero (leído por teclado) es múltiplo de 3, 4 o 5.
#include <iostream>
using namespace std;

int main() {
 int num;
 cout << "Introduce un entero: ";
 cin >> num;
 for(int i = 3; i <= 5; i++){
  if(num%i == 0){
   cout << num << " SI es múltiplo de "<< i << endl;
  }else{
   cout << num << " NO es múltiplo de "<< i << endl;
  }
 }
 return 0;
}
Diseñar un algoritmo para convertir un ángulo expresado en grados / minutos / segundos a
radianes.
#include <iostream>
using namespace std;

const double pi = 3.14159265358979323846;

int main() {
 double grados, minutos, segundos, radianes;
 cout << "Convertir ángulo a radianes." << endl;
 cout << "Introduce grados, minutos y segundos: ";
 cin >> grados >>minutos >> segundos;

 segundos = segundos / 60;
 minutos = minutos + segundos;
 minutos = minutos / 60;
 grados = grados + minutos;

 radianes = grados * pi / 180;
 cout << "Ángulo en radianes: "<< radianes;

 return 0;
}
Escribir un algoritmo para calcular el precio de una partida de artículos aplicando un descuento
creciente con la cantidad comprada según la siguiente tabla (la cantidad comprada se lee por
teclado):
                        Número de unidades         Precio unitario
                                     1                              100
                                     2                               95
                                     3                               90
                                 4 o más                         85

#include <iostream>
using namespace std;

int main() {
 int uni, precio;
 do{
 cout << "Introduce el número de unidades a comprar: ";
 cin >> uni;
 }while(uni < 1);

 switch(uni){
 case 1: precio = 100;
 break;
 case 2: precio = 2*95;
 break;
 case 3: precio = 3*90;
 break;
 default: precio = uni * 85;
 break;
 }

 cout << "El precio de la compra es "<< precio;



 return 0;
}
Confecciona un bucle que lea de teclado un texto carácter a carácter hasta localizar un punto, y que al final dé como salida el número de comas encontradas, y el número de caracteres leídos.
#include <iostream>
using namespace std;

int main() {
 int comas=0, car=0;
 char texto;
 cout << "Introduce un texto terminado en punto." << endl; // prints !!!Hello World!!!
 cin >> texto;
 while(texto != '.'){
  if(texto == ','){
   comas++;
  }
  car++;
  cin >> texto;
 }
 cout << endl;
 cout << "Número de comas: "<< comas << endl;
 cout << "Número de caracteres: "<< car;
 return 0;
}

Diseña un algoritmo que determine si la cadena abc aparece en una sucesión de caracteres
cuyo final viene dado por un punto.
#include <iostream>
using namespace std;

int main() {
 char cadena;
 bool si = false;

 cout << "Introduce cadena de caracteres terminada en punto." << endl; // prints !!!Hello World!!!
 cin.get(cadena);

 while((cadena != '.') && (!si)){
  if(cadena == 'a'){
   cin.get(cadena);
   if(cadena == 'b'){
    cin.get(cadena);
    if(cadena == 'c'){
     si = true;
     cin.get(cadena);
    }
   }
  }else{
   cin.get(cadena);
  }
 }
 if(si){
  cout << "Aparece la cadena 'abc' ";
 }else{
  cout << "No aparece la cadena 'abc'";
 }
 return 0;
}
Diseña un algoritmo que lea un número n por teclado y calcule el n-ésimo número de la serie
de Fibonacci. Los dos primeros números de esta serie son el cero y el uno, y a partir de éstos
cada número se calcula realizando la suma de los dos anteriores.
#include <iostream>
using namespace std;

int main() {
 int n, a, b, c;
 cout << "Cálculo del n-ésimo número de la serie de Fibonacci." << endl; // prints !!!Hello World!!!
 cout << "Introduce n: ";
 cin >> n;

 int i = 1;
 a = 0;
 b= 1;
 c = 0;

 if((n == 0) ||(n == 1)){
  c = n;
 }else{

  while(i<= (n -1)){
   c = a +b;
   a = b;
   b = c;

   i++;
  }
 }
 cout << "Dicho elemento es: " << c;

 return 0;
}
Escribe un algoritmo que encuentre el mayor, el menor y la media aritmética de una colección
de N números leídos por el teclado donde N es el primero de los números.
#include <iostream>
using namespace std;

int main() {
 int n, i, nm, mayor, menor;
 double suma = 0;
 i = 0;
 cout << "Introduce n: ";
 cin >> n;

 cin >> nm;
 suma = suma + nm;
 menor = mayor = nm;

 while(i < n-1){
  cin >> nm;
  suma = suma + nm;

  if(nm > mayor){
   mayor = nm;
  }
  if(nm < menor){
   menor = nm;
  }

  i++;


 }
 cout << "Media: "<< suma/n << endl ;
 cout << "Mayor: " << mayor << endl;
 cout << "Menor: " << menor << endl;

 return 0;
}


Escribe un algoritmo que lea un lista de números enteros terminada en 0, y que encuentre y
escriba en la pantalla la posición de la primera y de la última ocurrencia del número 12 dentro
de la lista. Si el número 12 no está en la lista, el algoritmo debería escribir 0. Por ejemplo, si el
octavo número de la lista es el único 12, entonces 8 sería la primera y la última posición de las
ocurrencias de 12.
#include<iostream>
using namespace std;

int main() {
 int num, prim= 0, ult= 0;
 int contador = 0;
 cout << "Cadena de números terminada en 0: ";
 cin >> num;
 while(num != 0){
  contador ++;

  if(num == 12){
   if(prim == 0){
    prim = contador;
    ult = contador;
   }else{
    ult = contador;
   }
  }
  cin >> num;

 }

 cout << "Primer 12: " << prim << endl;
 cout << "Último 12: " << ult << endl;
 return 0;
}

Hasta aquí la entrada, en la próxima de este lenguaje ya veremos los procedimientos y las funciones. Un saludo (:

No hay comentarios:

Publicar un comentario