problemas resueltos de c++

15
PROGRAMACION DIGITAL I EJEMPLOS PARA SIMUAR EN DEV C++ - TURBO C++ EJEMPLO: El programa ejemplo se trata de una calculadora de operaciones básicas (+, -, /, *, %). Se ha utilizado la sentencia 'switch' para definir qué operación se realizará teniendo en cuenta el operador insertado. EJEMPLO: Un número perfecto es un número cuya suma de todos sus divisores, excepto él , dan como resultado el mismo número. El primer numero perfecto es 6 /1+2+3=6/. EJEMPLO: Código para resolver ecuaciones cuadráticas en los reales. EJEMPLO: Funcionamiento de la sentencia switch. Aplicación para gestionar un menú. EJEMPLO: Dados 2 números enteros determinar y mostrar cual es el mayor, cual es el menor o si son iguales. EJEMPLO: Escribir en pantalla los numeros de cinco en cinco hasta el cien con la sentencia do...while. EJEMPLO: Programa que cuenta y suma los números pares e impares entre 1 y 100. Lo importante de este programa es ver como alterna el valor la variable booleana. EJEMPLO: Programa que calcula la suma de los cuadrados de los números pares entre 0 y 100. EJEMPLO If anidados: Introducir una cantidad por teclado, si es menor 500 sumarle el 50 % si es mayor o igual 500 pero menor 1000 sumarle 7%. Si es mayor o igual 1000 y menor o igual 5000 sumarle el 15% y si es mayor 5000 restarle el 5%. EJEMPLO: Programa que introduce un número mayor que 0 y menor de 500 por teclado, muestra la suma y cuenta los números que están separados entre sí ocho posiciones desde ese número hasta 500. EJEMPLO: Programa que cuenta y muestra en pantalla los múltiplos de 3 entre 1 y 100. Nota: La condición controla que el número sea múltiplo de 3. EJEMPLO: Programa que imprime los números impares entre 0 y 100 e imprime cuantos hay. La variable contador está inicializada a uno por conveniencia. Sugerencia: Hacer este programa con la sentencia do while. EJEMPLO: Programa que muestra por pantalla los números del 100 al 0. Sugerencia: Intentar hacer el programa con la sentencia do while. EJEMPLO: Como funciona un contador aunque la forma de asignación no es la más propia para c y c++, pudiéndose cambiar ésta a: contador++ ver tema 4 curso de c++ asignación de operadores. Sugerencia: Intentar hacer este programa con la sentencia do while. EJEMPLO: En este programa se muestra como funciona un acumulador, no obstante para aquellos que se inician en la programación, las variables 1

Upload: willy-garcia

Post on 04-Aug-2015

2.512 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: Problemas Resueltos de c++

PROGRAMACION DIGITAL I EJEMPLOS PARA SIMUAR EN DEV C++ - TURBO C++

EJEMPLO: El programa ejemplo se trata de una calculadora de operaciones básicas (+, -, /, *, %). Se ha utilizado la sentencia 'switch' para definir qué operación se realizará teniendo en cuenta el operador insertado.EJEMPLO: Un número perfecto es un número cuya suma de todos sus divisores, excepto él , dan como resultado el mismo número. El primer numero perfecto es 6 /1+2+3=6/.EJEMPLO: Código para resolver ecuaciones cuadráticas en los reales.EJEMPLO: Funcionamiento de la sentencia switch. Aplicación para gestionar un menú.EJEMPLO: Dados 2 números enteros determinar y mostrar cual es el mayor, cual es el menor o si son iguales.EJEMPLO: Escribir en pantalla los numeros de cinco en cinco hasta el cien con la sentencia do...while.EJEMPLO: Programa que cuenta y suma los números pares e impares entre 1 y 100.Lo importante de este programa es ver como alterna el valor la variable booleana.EJEMPLO: Programa que calcula la suma de los cuadrados de los números pares entre 0 y 100.EJEMPLO If anidados:Introducir una cantidad por teclado, si es menor 500 sumarle el 50 % si es mayor o igual 500 pero menor 1000 sumarle 7%. Si es mayor o igual 1000 y menor o igual 5000 sumarle el 15% y si es mayor 5000 restarle el 5%.EJEMPLO: Programa que introduce un número mayor que 0 y menor de 500 por teclado, muestra la suma y cuenta los números que están separados entre sí ocho posiciones desde ese número hasta 500.EJEMPLO: Programa que cuenta y muestra en pantalla los múltiplos de 3 entre 1 y 100.Nota: La condición controla que el número sea múltiplo de 3.EJEMPLO: Programa que imprime los números impares entre 0 y 100 e imprime cuantos hay.La variable contador está inicializada a uno por conveniencia.Sugerencia: Hacer este programa con la sentencia do while.EJEMPLO: Programa que muestra por pantalla los números del 100 al 0.Sugerencia: Intentar hacer el programa con la sentencia do while.EJEMPLO: Como funciona un contador aunque la forma de asignación no es la más propia para c y c++, pudiéndose cambiar ésta a: contador++ ver tema 4 curso de c++ asignación de operadores.Sugerencia: Intentar hacer este programa con la sentencia do while.EJEMPLO: En este programa se muestra como funciona un acumulador, no obstante para aquellos que se inician en la programación, las variables se declaran con todas sus letras para un mejor entendimiento y la forma de asignar la variable no es la más propia para c y c++, pero en principio pienso que esla más pedagógica y clara, pudiendo ésta cambiar a acumulador+=contador, para ello ver tema ver: Tema4, curso c++, asignación de operadores.EJEMPLO: Programa que pide al usuario un número entero (debe de ser mayor de 0) y dice si es primo o no. Un número primo es divisible únicamente por el mismo y por la unidad. Son: 2,3,5,7...EJEMPLO: Tareas repetitivas usando bucles "for".EJEMPLO: El ejemplo muestra el uso de la sentencia condicional IF, y el uso del operador lógico &&. A través de estos se calcula el menor número entre tres números enteros.En el caso del lógico &&, observar como su uso "involucra", ó "exige" que sus dos operandos cumplan determinada condición:Para el caso del primer ifoperando 1 es: num_1 < num_2operando 2 es: num_1 < num_3&& es: El operador lógico Y ó AND.EJEMPLO: Realice un programa que muestre en pantalla los números que son pares, dentro del conjunto de los números del 1 al 100. Hágalo con un ciclo FOR.

PROFESOR ING. FERNANDO MENDOZA APAZA

1

Page 2: Problemas Resueltos de c++

EJEMPLO: Un número perfecto es un número cuya suma de todos sus divisores, excepto él , dan como resultado el mismo número. El primer numero perfecto es 6 /1+2+3=6/.

Código:

//Un numero perfecto es un numero cuya suma de todos//sus divisores, excepto él, dan como resultado el mismo numero.//el primer numero perfecto es 6 (1+2+3=6).//Este programa calcula los primeros cuatro numeros perfectos.

#include<iostream>

using namespace std;

int main(){

long long i, j, contador; //estas variables van a manejar grandes numeros.

int n=0;long perfecto[4];i=1;int maximos=0;

while(true) //se inicia un bucle infinito { contador=0; i++; for(j=1; j<i-1; j++) //con este bucle analizamos sus divisores { if(i%j==0)contador=contador+j; } if(contador==i) //si la suma de sus divisores es igual al numero { perfecto[n]=i; //lo añadimos a la lista de perfectos n++; maximos++; } if(maximos==4) break; //de no ser por esta sentencia no terminaria nunca }

cout << " Calcula los cuatro primeros numero perfectos" << endl;

//mostramos los resultados en pantalla.for(n=0; n<4; n++) cout << n+1<< ") " << perfecto[n] << endl;

cout << endl;

system("PAUSE");

return 0;}

2

Page 3: Problemas Resueltos de c++

EJEMPLO: Código para resolver ecuaciones cuadráticas en los reales.

Código:

#include <iostream>#include <cmath>

void main(){ float a,b,c,d,x,y;

cout << "ingrese a: "; cin >> a ;

cout << "ingrese b: "; cin >gt; b ;

cout << "ingrese c: "; cin >> c ;

if (a == 0) cout << "no cumple la condicion. ";

else { d = (b*b) - (4*a*c);

if ( d == 0) { x = (-b/2*a); y = x; } else if (d>0) { x = (-b) + sqrt(d)/(2*a);

y = (-b) - sqrt(d)/(2*a);

cout <<x << y << "\n"; } else cout << "es raiz imaginaria";

}}

3

Page 4: Problemas Resueltos de c++

EJEMPLO : Dados 2 números enteros determinar y mostrar cual es el mayor, cual es el menor o si son iguales.

Código:

#include <stdio.h>

int main(){ int n1,n2; printf("INGRESE UN NUMERO ENTERO: "); scanf("%d",&n1);

printf("INGRESE OTRO NUMERO ENTERO: "); scanf("%d",&n2);

if (n1>n2); { printf("El número mayor es %d",n1); } else if (n1==n2) { printf(\"Los números son iguales\"); } else { printf("El número mayor es %d",n2); } return 0;}

EJEMPLO : Escribir en pantalla los numeros de cinco en cinco hasta el cien con la sentencia do...while.

Código:

#include <iostream> //Biblioteca para cin y cout#include <stdlib.h> //Biblioteca para system("pause")

using namespace std;

int main() //funcion main lleva el control del programa{ int x=0; //declaracion e inicializacion de variable do { x=x+5; //hacer aumento de cinco en cinco cout <<x<<", "<<endl; //escribir los numeros separados por coma y salto de pagina } while (x<=99); //condicion siempre que sea menor a cien system("PAUSE"); return 0;}

4

Page 5: Problemas Resueltos de c++

EJEMPLO : Programa que cuenta y suma los números pares e impares entre 1 y 100.

Lo importante de este programa es ver como alterna el valor la variable booleana.

Código:

#include <iostream>#include <stdlib.h>

using namespace std;int main(){ bool bandera; int impares,sumaimpares,pares,sumapares,contador; impares=sumaimpares=pares=sumapares=0; bandera = true; for(contador=1; contador<=100; contador++) { if(bandera == true) { impares+=1; sumaimpares = sumaimpares + contador; bandera = false; } else { pares+=1; sumapares = sumapares + contador; bandera = true; } } cout << "La suma de los impares es: " << sumaimpares << endl; cout << "El número de impares es: " << impares << endl; cout << "La suma de pares es: " << sumapares << endl; cout << "El número de pares es: " << pares << endl; system("PAUSE"); return 0;}

EJEMPLO : Programa que calcula la suma de los cuadrados de los números pares entre 0 y 100.

Código:

#include <iostream>

using namespace std;

int main(){ int suma, pares, cuadrados; cuadrados=suma=0; for(pares=2;pares<=100;pares+=2) { cuadrados = pares * pares; suma = suma + cuadrados; } cout << "\nLa suma de los cuadrados del 0 al cien es: " << suma << endl; cout << "Pulse una tecla para acabar...\n"; cin.get(); return 0;}

5

Page 6: Problemas Resueltos de c++

EJEMPLO : Programa que cuenta y muestra en pantalla los múltiplos de 3 entre 1 y 100.

Nota: La condición controla que el número sea múltiplo de 3.

Sugerencia: Intentar hacer el programa con la sentencia do while.

Código:

#include <iostream>

using namespace std;int main(){ int contador,cuentamult; cuentamult = 1; cout << "Estos son los números múltiplos de tres entre 1 y 100\n"; cout << "-----------------------------------------------------\n"; for(contador=1; contador<=100; contador++) { if (contador % 3 == 0) // *Ver nota. { cout << contador << " , "; cuentamult++; } } cout << "\nEl número total de múltiplos de 3 entre 1 y 100 es: " << cuentamult << endl; cin.get(); return 0;}

EJEMPLO : Programa que muestra por pantalla los números del 100 al 0.

Sugerencia: Intentar hacer el programa con la sentencia do while.

Código:

// Programa que muestra los números del 100 al 0#include <iostream>

using namespace std;

int main(){ int contador; for(contador = 100; contador >=0; contador--) { cout << contador << " , "; }

cout << endl << " Estos son los números del cien al cero \n"; cout << "Pulse una tecla para acabar"; cin.get(); return 0;}

6

Page 7: Problemas Resueltos de c++

EJEMPLO : Tareas repetitivas usando bucles "for".

Código:

/* Programa que pide un número y lo escribe 10 veces en pantalla*/

#include <iostream>

using namespace std;

int main(){ int num;// Declaración de variable a mostrar

cout << "Introduzca el número "; cin >> num; for (int cont=0; cont < 10; cont++) // Comienzo bucle for (Ver tema 5)** { cout << num << endl; } return 0;}

EJEMPLO : Programa que pide al usuario un número entero (debe de ser mayor de 0) y dice si es primo o no.

Un número primo es divisible únicamente por el mismo y por la unidad. Son: 2,3,5,7...

Código:

//--------------------------------------------------------------//DESCRIPCIÓN: incluiremos las bibliotecas que necesitemos.//--------------------------------------------------------------#include <iostream> //para cin y cout#include <cstdio> //para system("pause") using namespace std;

//--------------------------------------------------------------//NOMBRE FUNCIÓN: main()//DESCRIPCIÓN: Al ejecutar el programa tomara el control.//--------------------------------------------------------------int main(){ int i,num,numDivisores=0; cout<<"Dame un numero: "; cin>>num; for(i=1;i<=num;i++) { if(num%i==0) //el operador % nos da el resto de la división. { //veamos cuantos divisores tiene nuestro número. numDivisores=numDivisores+1; } } if(numDivisores==2) //si tiene 2 divisores(el mismo y la unidad). { cout<<num<<" es un numero primo."<<endl; } else //si tiene mas divisores. { cout<<num<<" no es un numero primo."<<endl; } system("pause"); //pausa hasta que se pulse una tecla. return 0;

7

Page 8: Problemas Resueltos de c++

}

EJEMPLO : El ejemplo muestra el uso de la sentencia condicional IF, y el uso del operador lógico &&. A través de estos se calcula el menor número entre tres números enteros.

En el caso del lógico &&, observar como su uso "involucra", ó "exige" que sus dos operandos cumplan determinada condición:

Para el caso del primer ifoperando 1 es: num_1 < num_2operando 2 es: num_1 < num_3&& es: El operador lógico Y ó AND.

Código:

#include <stdio.h>void main(void){ /* Declaramos las variables */ int num_1, num_2, num_3; int num_menor; /* Inicializamos las variables num_... */ num_1 = 2; num_2 = 134; num_3 = 5; /* Determinamos el menor de los números */ if (num_1 < num_2 && num_1 < num_3) { num_menor = num_1; printf("\n De los valores %d, %d, %d el menor es:\n\n", num_1,num_2,num_3); printf("\t El valor: %d\n\n",num_menor); printf("Presione ENTER para finalizar..."); } else if (num_2 < num_1 && num_2 < num_3) { num_menor = num_2; printf("\n De los valores %d, %d, %d el menor es:\n\n",num_1,num_2,num_3); printf("\t El valor: %d\n\n",num_menor); printf("Presione ENTER para finalizar..."); } else if (num_3 < num_1 && num_3 < num_2) { num_menor = num_3; printf("De los valores %d, %d, %d el menor es:\n\n",num_menor); printf("\t El valor: %d\n\n",num_menor); printf("Presiones ENTER para finalizar..."); } getchar(); }

8

Page 9: Problemas Resueltos de c++

EJEMPLO : Programa que imprime los números impares entre 0 y 100 e imprime cuantos hay.

La variable contador está inicializada a uno por conveniencia.

Sugerencia: Hacer este programa con la sentencia do while.

Código:

#include <iostream>using namespace std;

int main(){ int contador,contador1; contador1=0; cout << "\t Estos son los números impares entre 0 y 100 \n"; cout << "\t -------------------------------------------\n"; for(contador=1; contador<100; contador+= 2)//Este contador permite moverme de impar a impar { contador1++; // Este otro contador cuenta el número de impares cout << contador << " , "; }

cout << "\nEl número de impares entre cero y cien es: " << contador1 << endl; cout << "Pulse una tecla para acabar..."; cin.get(); return 0;}

EJEMPLO : Funcionamiento de la sentencia switch. Aplicación para gestionar un menú.

Código:

#include <iostream>#include <stdlib.h>using namespace std;

int main(){ char opcion; do { printf("\n\n\t 1.Crear fichero de alumnos\n"); printf("\n\n\t 2.Alta de alumnos \n"); printf("\n\n\t 3.Baja de alumnos\n"); printf("\n\n\t 4.Modificación de datos de empleados\n"); printf("\n\n\t 5.Salir\n"); printf("Introduzca el número de la opción"); opcion = getchar(); switch(opcion) { case '1': printf("Has entrado en Crear fichero de alumnos"); break; case '2': printf("Has entrado en Alta de alumnos"); break; case '3':

9

Page 10: Problemas Resueltos de c++

printf("Has entrado en Baja de alumnos"); break; case '4': printf("Has entrado en Modificación del alumnos"); break; case '5': break; default: printf("Debe elegir una opción entre 1 y 5"); system("cls"); } }while (opcion != '5');return 0;}

EJEMPLO : El programa ejemplo se trata de una calculadora de operaciones básicas (+, -, /, *, %). Se ha utilizado la sentencia 'switch' para definir qué operación se realizará teniendo en cuenta el operador insertado.

Código:

// Calculadora de operaciones simples.

#include<iostream>

using namespace std;

int main(int argc, char *argv[]){ int a, b; char oper;

cout << "Introduzca la operacion a realizar usando espacios:\n\n"; cin >> a >> oper >> b;

switch(oper) { case '+': cout << a << oper << b << " = " << a + b << endl; break; case '-': cout << a << oper << b << " = " << a - b << endl; break; case '*': cout << a << oper << b << " = " << a * b << endl; break; case '/': cout << a << oper << b << " = " << a / b << endl; break; case '%': cout << a << oper << b << " = " << a % b << endl; break;

default: break; }

return 0;}

EJEMPLO : Programa que introduce un número mayor que 0 y menor de 500 por teclado, muestra la suma y cuenta los números que están separados entre sí ocho posiciones desde ese número hasta 500.

Código:

#include <iostream>#include <stdlib.h>

10

Page 11: Problemas Resueltos de c++

using namespace std;

int main(){ int numero,contador,sumador; sumador=contador=0; do { cout << "Introduzca un número mayor que 0 y menor que 500: "; cin >> numero; }while(numero < 0 || numero > 500); // La condición controla el intervalo establecido. //Controla que no entren números con diferencia inferior a ocho hasta 500 y no superior. if(numero<=492) { for(numero;numero<500;numero+= 8) { sumador = sumador + numero; contador = contador + 1; cout << numero << " , " ; } } cout << "\nEsta es la suma: " << sumador << endl; cout << "El número total hasta 500 separado ocho posiciones es: " << contador << endl; system("PAUSE"); return 0;}

EJEMPLO : Realice un programa que muestre en pantalla los números que son pares, dentro del conjunto de los números del 1 al 100. Hágalo con un ciclo FOR.

Código:

/*Programa para mostrar en pantalla los números pares en el conjunto de números del 1 al 100*//*Reinel Hdez*//*Programación en C*/

#include <stdio.h> /*Para utilizar la función printf()*/ void main(void){ /*Declaramos una variable entera para el ciclo for que usaremos*/ int i;

/*Mostramos en pantalla el siguiente encabezado*/

printf("Listado de los numeros pares en el econjunto de numeros del 1 al 100.\n\n"); /*Buscamos los pares con ayuda del ciclo For*/ for ( i = 0 ; i <= 100 ; i += 2 ) { /*Los mostramos en pantalla*/ printf("\t %d",i); }

/*Solicitamos se presione una tecla para finalizar*/ printf("Presione una tecla para finalizar...");

11

Page 12: Problemas Resueltos de c++

/*Esperamos a que se preione cualquier tecla*/ getchar(); /*Función que recibe una tecla */}

EJEMPLO : En este programa se muestra como funciona un acumulador, no obstante para aquellos que se inician en la programación, las variables se declaran con todas sus letras para un mejor entendimiento y la forma de asignar la variable no es la más propia para c y c++, pero en principio pienso que esla más pedagógica y clara, pudiendo ésta cambiar a acumulador+=contador, para ello ver tema ver: Tema4, curso c++, asignación de operadores.

Código:

// Programa que muestra la suma de los 10 primeros números.#include <iostream>

using namespace std;

int main(){ int contador, acumulador; acumulador=0; for(contador = 0; contador < 10; contador++) { acumulador = acumulador + contador; } cout << "\t\n La suma de los diez primeros números es :" << acumulador << "\n" << endl; cout << "Pulse una tecla para acabar..."; cin.get(); return 0;}

EJEMPLO : Aquí se muestra como funciona un contador aunque la forma de asignación no es la más propia para c y c++, puediéndose cambiar ésta a: contador++ ver tema 4 curso de c++ asignación de operadores.

Sugerencia: Intentar hacer este programa con la sentencia do while.

Código:

// Programa que muestra los números del 0 al 100#include <iostream>

using namespace std;

int main(){ int contador;

for(contador=0;contador <=100;contador = contador + 1)//*Ver nota { cout << contador << " , " ; } cout << endl; cout << "Presione una tecla para acabar..."; cin.get(); return 0;}

12

Page 13: Problemas Resueltos de c++

13