0% encontró este documento útil (0 votos)
2K vistas72 páginas

Programas Básicos en C++

Este documento presenta varios ejercicios de programación en C++ resueltos por un estudiante de la Universidad Nacional de Huancavelica. Los ejercicios incluyen crear cadenas, agregar nombres de usuarios, calcular fechas a partir de días transcurridos, copiar cadenas entre arreglos, determinar si una palabra es palíndroma, encontrar el número mayor entre tres valores ingresados, calcular potencias sin usar la función pow, almacenar y mostrar datos de empleados incluyendo salarios, y permitir al usuario ingresar frases a

Cargado por

Emerson Newton
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
2K vistas72 páginas

Programas Básicos en C++

Este documento presenta varios ejercicios de programación en C++ resueltos por un estudiante de la Universidad Nacional de Huancavelica. Los ejercicios incluyen crear cadenas, agregar nombres de usuarios, calcular fechas a partir de días transcurridos, copiar cadenas entre arreglos, determinar si una palabra es palíndroma, encontrar el número mayor entre tres valores ingresados, calcular potencias sin usar la función pow, almacenar y mostrar datos de empleados incluyendo salarios, y permitir al usuario ingresar frases a

Cargado por

Emerson Newton
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

UNH

UNIVERSIDAD NACIONAL DE HUANCAVELICA


FACULTAD DE INGENIERIA ELECTRONICA-SISTEMAS
ESCUELA PROFESIONAL DE INGENIERIA
ELECTRONICA

PROGRAMAS EN C++

ALUMNO: EMERSON N. HUAIRA TAIPE


ASIGNATURA: PROGRAMACION DIGITAL
DOCENTE: Dr. MARQUEZ CAMARENA JAVIER
SEMESTRE:2018 -I
CICLO: III

PAMPAS -TAYACAJA 2018


UNH

EJERCICIO
Crear una cadena que tenga la siguiente frase "Hola que tal", luego crear
otra cadena para preguntarle al usuario su nombre, por último, añadir el
nombre al final de la primera cadena y mostrar el mensaje completo "Hola
que tal (NombreDelUsuario)".

#include<iostream>
#include<conio.h>
#include<string.h>

using namespace std;


int main(){
char cad1[] = "Hola que tal ";
char cad2[20];

cout<<"Digite su nombre: ";


[Link](cad2,20,'\n');

strcat(cad1,cad2);

cout<<"Frase: "<<cad1<<endl;

getch();
return 0;
}
UNH

EJERCICIO
Escriba una función nombrada calc_años() que tenga un parámetro entero
que represente el número total de días desde la fecha 1/1/2000 y parámetros
de referencia nombrados año, mes y día. La función es calcular el año, mes
y día actual para el número dado de días que se le transmitan. Usando las
referencias, la función deberá alterar en forma directa los argumentos
respectivos en la función que llama. Para este problema suponga que cada
año tiene 365 días y cada mes tiene 30 días.

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

void calc_anios(int,int&,int&,int&);

int main(){
int totalDias,anio,mes,dia;

cout<<"Digite el numero total de dias transcurridos: ";


cin>>totalDias;

calc_anios(totalDias,anio,mes,dia);

cout<<"Fecha Actual: "<<dia+1<<"/"<<mes+1<<"/"<<anio+2000<<endl;

getch();
return 0;

}
UNH

EJERCICIO

Pedir al usuario una cadena de caracteres, almacenarla en un arreglo y


copiar todo su contenido hacia otro arreglo de caracteres.

#include<iostream>
#include<conio.h>
#include<string.h>

using namespace std;

int main(){
char frase[20],frase2[20];

cout<<"Digite una cadena de caracteres: ";


[Link](frase,20,'\n');

strcpy(frase2,frase);

cout<<"Frase: "<<frase2<<endl;

getch();
return 0;
}
UNH

EJERCICIO
Hacer un programa que determine si una palabra es palíndromo.

#include<iostream>
#include<conio.h>
#include<string.h>

using namespace std;

int main(){

char palabra[20];
char palabra2[20];

cout<<"Digite una palabra: ";


[Link](palabra,20,'\n');

strcpy(palabra2,palabra);

strrev(palabra2);

if(strcmp(palabra,palabra2)==0){
cout<<"Es una palabra polindroma";
}
else{
cout<<"No es una palabra polindroma";
}

getch();
return 0;
}
UNH

EJERCICIO

Escriba un programa que lea tres números y determine cuál de ellos es el


mayor

#include<iostream>
using namespace std;

int main(){
int n1,n2,n3;

cout<<"Digite 3 números: ";


cin>>n1>>n2>>n3;

if((n1>n2)&&(n1>n3)){
cout<<"El mayor es: "<<n1;
}
else if((n2>n1)&&(n2>n3)){
cout<<"El mayor es: "<<n2;
}
else{
cout<<"El mayor es: "<<n3;
}
return 0;
}
UNH

EJERCICO
Escriba un programa que calcule x^y, donde tanto x como y son enteros
positivos, sin utilizar la función pow.

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

int main(){
int x,y,elevacion=1;

cout<<"Digite el valor de x: ";cin>>x;


cout<<"Digite el valor de y: ";cin>>y;

for(int i=1;i<=y;i++){
elevacion *= x;
}

cout<<"\nEl resultado de la elevacion es:


"<<elevacion;
getch();
return 0;
}
UNH

EJERCICIO
Realizar un programa que lea un arreglo de estructuras los datos de N
empleados de la empresa y que imprima los datos del empleado con mayor
y menor salario.

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

struct Empleado{
char nombre[20];
float salario;
}e[100];
int main(){
int n_empleados,mayor=0,menor=999999,posM,posm;
cout<<"Digite el numero de empleados: "; cin>>n_empleados;

for(int i=0;i<n_empleados;i++){
fflush(stdin); //Vacias el buffer y poder digitar mas valores
cout<<"Nombre: "; [Link](e[i].nombre,20,'\n');
cout<<"Salario: "; cin>>e[i].salario;

//Empleado con mayor salario


if(e[i].salario > mayor){
mayor = e[i].salario;
posM = i;
}
//Empleado con menor salario
if(e[i].salario < menor){
menor = e[i].salario;
posm = i;
}
cout<<"\n";
}

cout<<"\nEmpleado con mayor salario: "<<endl;


cout<<"Nombre: "<<e[posM].nombre<<endl;
cout<<"Salario: "<<e[posM].salario<<endl;
UNH

cout<<"\nEmpleado con menor salario: "<<endl;


cout<<"Nombre: "<<e[posm].nombre<<endl;
cout<<"Salario: "<<e[posm].salario<<endl;

getch();
return 0;
}

EJERCICIO
Realice un programa que pida al usuario el nombre de un fichero de texto
y, a continuación, permita almacenar al usuario tantas frases como el
usuario desee.

#include<iostream>
#include<stdlib.h>
#include<fstream>
using namespace std;
void escribirFrases();

int main(){
escribirFrases();
system("pause");
return 0;
UNH

}
void escribirFrases(){
ofstream archivo;
string nombreArchivo,frase;
char rpt;

cout<<"Digite el nombre del archivo: ";


getline(cin,nombreArchivo);

[Link](nombreArchivo.c_str(),ios::out);
//Creamos el archivo

if([Link]()){ //Si a ocurrido algun error


cout<<"No se pudo abrir el archivo";
exit(1);
}

do{
fflush(stdin);
cout<<"Digite una frase: ";
getline(cin,frase);
archivo<<frase<<endl;

cout<<"\nDesea agregar otra frase(S/N): ";


cin>>rpt;
}while((rpt == 'S') || (rpt == 's'));
[Link](); //Cerramos el archivo
}
UNH

EJERCICO
Escriba un fragmento de programa que intercambie los valores de dos
variables.

#include<iostream>
using namespace std;

int main(){
int x,y, aux;

cout<<"Digite el valor de x: "; cin>>x;


cout<<"Digite el valor de y: "; cin>>y;

aux = x;
x = y;
y = aux;

cout<<"\nEl nuevo valor de x es: "<<x<<endl;


cout<<"El nuevo valor de y es: "<<y<<endl;

return 0;
}
UNH

EJERCICIO
Desarrollar un programa que determine si una matriz es simétrica o no. Una
matriz es simétrica si es cuadrada y si es igual a su matriz transpuesta.

|8 1 3| |8 1 3|
|1 7 4| --> |1 7 4|
|3 4 9| |3 4 9|

#include<iostream>
#include<conio.h>

using namespace std;

int main(){
int numeros[100][100],filas,columnas;
char band='F';

cout<<"Digite el numero de filas: "; cin>>filas;


cout<<"Digite el numero de columnas: "; cin>>columnas;

//Rellenando matriz
for(int i=0;i<filas;i++){
for(int j=0;j<columnas;j++){
cout<<"Digite un numero ["<<i<<"]["<<j<<"]: ";
cin>>numeros[i][j];
}
}

//Comprobemos si es simetrica
if(filas==columnas){
for(int i=0;i<filas;i++){
for(int j=0;j<columnas;j++){
if(numeros[i][j] == numeros[j][i]){
band='V';
}
}
UNH

}
}
if(band=='V'){
cout<<"\nEs una matriz simetrica";
}
else{
cout<<"\nNo es una matriz simetrica";
}
getch();
return 0;

}
UNH

EJERCICIO
Escriba un programa que lea dos números y determine cuál de ellos es el
mayor.

#include<iostream>
using namespace std;

int main(){
int n1,n2;

cout<<"Digite 2 numeros: ";


cin>>n1>>n2; //guarando los 2 numeros

if(n1==n2){
cout<<"Ambos numeros son iguales";
}
else if(n1>n2){
cout<<"El mayor es: "<<n1;
}
else{
cout<<"El mayor es: "<<n2;
}
return 0;
}
UNH

EJERCICO N 12
Escribe un programa que lea de la entrada estándar un vector de números
y muestre en la salida estándar los números del vector con sus índices
asociados.

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

int main(){
int numeros[100],n;

cout<<"Digite el numero de elementos: ";


cin>>n;

for(int i=0;i<n;i++){
cout<<"Digite un numero: ";
cin>>numeros[i]; //Guardamos los numeros en el arreglo
}

//Ahora, vamos a mostrar los numeros con sus indices asociados


for(int i=0;i<n;i++){
cout<<i<<" -> "<<numeros[i]<<endl;
//Mostrando los numeros
}
getch();
return 0;
}
UNH

EJERCICO
Escriba una función llamada mult() que acepte dos números en punto
flotante como parámetros, multiplique estos dos números y despliegue el
resultado.
#include<iostream>
#include<conio.h>
using namespace std;

//Prototipo de Funcion
void mult(float x,float y);
void pedirDatos();

float n1,n2;

int main(){
pedirDatos();
mult(n1,n2);

getch();
return 0;
}
void pedirDatos(){
cout<<"Digite 2 numeros: ";
cin>>n1>>n2;
}
void mult(float x,float y){
float multiplicacion = x * y;
cout<<"La multiplicacion es: "<<multiplicacion<<endl;
return 0;
}
UNH

EJERCICIO
Comprobar si un número digitado por el usuario es positivo o negativo.

#include<iostream>
using namespace std;

int main(){
int numero;
cout<<"Digite un numero: ";
cin>>numero;

if(numero==0){
cout<<"El numero es cero";
}
else if(numero>0){
cout<<"El numero es positivo";
}
else{
cout<<"El numero es negativo";
}

return 0;
}
UNH

EJERCICIO
Cambiar un número entero con el mismo valor pero en romanos.

#include<iostream>
using namespace std;

int main(){
int numero,unidades,decenas,centenas,millar;

cout<<"Digite un numero: ";


cin>>numero;
//2152
unidades = numero%10; numero /= 10; //unidades = 2 , numero = 215
decenas = numero%10; numero /= 10; //decenas = 5 , numero = 21
centenas = numero % 10; numero /= 10; //centenas = 1 , numero = 2
millar = numero % 10 ; numero /= 10; //millar = 2 , numero = 0
//2000+100+50+2 = 2152

switch(millar){
case 1: cout<<"M";break;
case 2: cout<<"MM"; break;
case 3: cout<<"MMM";break;
}

switch(centenas){
case 1: cout<<"C";break;
case 2: cout<<"CC";break;
case 3: cout<<"CCC";break;
case 4: cout<<"CD";break;
case 5: cout<<"D";break;
case 6: cout<<"DC";break;
case 7: cout<<"DCC";break;
case 8: cout<<"DCCC";break;
case 9: cout<<"CM";break;
}
UNH

switch(decenas){
case 1: cout<<"X";break;
case 2: cout<<"XX";break;
case 3: cout<<"XXX";break;
case 4: cout<<"XL";break;
case 5: cout<<"L";break;
case 6: cout<<"LX";break;
case 7: cout<<"LXX";break;
case 8: cout<<"LXXX";break;
case 9: cout<<"XC";break;
}

switch(unidades){
case 1: cout<<"I";break;
case 2: cout<<"II";break;
case 3: cout<<"III";break;
case 4: cout<<"IV";break;
case 5: cout<<"V";break;
case 6: cout<<"VI";break;
case 7: cout<<"VII";break;
case 8: cout<<"VIII";break;
case 9: cout<<"IX";break;
}
return 0;
}
UNH

EJERCICIO
La calificación final de un estudiante es el promedio de tres notas: la nota
de prácticas que cuenta un 30% del total, la nota teórica que cuenta un 60%
y la nota de participación que cuenta el 10% restante. Escriba un programa
que lea las tres notas del alumno y escriba su nota final.

#include<iostream>
using namespace std;
int main(){
float notapractica, notateorica, notaparticipacion;
int notaFinal;

cout<<"ingrese la nota de practica: ";


cin>>notapractica;
cout<<"Ingrese la nota teoria: ";
cin>>notateorica;
cout<<"Ingrese la nota de participacion: ";
cin>>notaparticipacion;

notapractica= notapractica * 0.30;


notateorica *=0.60;
notaparticipacion *= 0.10;

notaFinal = notaparticipacion + notateorica + notapractica;

cout<<"La nota final es: "<<notaFinal;


return 0;

}
UNH

EJERCICIO
Escriba un programa que lea las tres notas de un alumno y calcule la nota
final media de dicho alumno

#include<iostream>
using namespace std;

int main(){
float nota1, nota2, nota3;
int notaFinalMedia;

cout<<"Ingrese nota1: ";


cin>>nota1;
cout<<"Ingrese nota2: ";
cin>>nota2;
cout<<"Ingrese nota3: ";
cin>>nota3;

notaFinalMedia= (nota1+nota2+nota3)/3;

cout<<"la final media es:"<<notaFinalMedia;

return 0;

}
UNH

EJERCICIO
Realice una función que tome como parámetros un vector de números
enteros y devuelva la suma de sus elementos.
#include<iostream>
#include<conio.h>
using namespace std;

void pedirDatos();
int calcularSuma(int vec[],int);

int vec[100],tam;
int main(){
pedirDatos();
cout<<"\nLa suma es: "<<calcularSuma(vec,tam)<<endl;
getch();
return 0;
}
void pedirDatos(){
cout<<"Digite el numero de elementos del arreglo: ";
cin>>tam;
for(int i=0;i<tam;i++){
cout<<i+1<<". Digite un numero: ";
cin>>vec[i];
}
}
int calcularSuma(int vec[],int tam){
int suma=0;
for(int i=0;i<tam;i++){
suma += vec[i];
}
return suma;

}
UNH

EJERCICIO
Calcule el área de un triángulo cuando se conocen 2 lados y el ángulo que
forman.

#include<iostream>
using namespace std;
#include<conio.h>
#include<math.h>

int main()
{
float A;
int a,b,angulo;
cout<<"Ingrese lado a:";cin>>a;
cout<<"Ingrese lado b:";cin>>b;
cout<<"Ingrese el angulo:";cin>>angulo;
A=(a*b*sin(angulo))/2;
cout<<"El area del triangulo es:"<<A;
getch();
}
UNH

EJERCICIO
Hallar el área y el perímetro de un rectángulo. Considerando las siguientes
fórmulas: área = base x altura, perímetro = 2 x (base + altura).

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

int main()
{
int b,h;
float area,perimetro;
cout<<"Ingrese la base:";
cin>>b;
cout<<"Ingrese la altura:";
cin>>h;
area=b*h;
perimetro=2*(b+h);
cout<<"El area es:";
cout<<area, " ";
cout<<"\nEl perimetro es:";
cout<<perimetro;
getch();

}
UNH

EJERCICIO
Hacer una función para almacenar N números en un arreglo dinámico,
posteriormente en otra función buscar un número en particular.

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

void pedirDatos();
void busqueda(int *,int);

int nElementos, *elemento;

int main(){
pedirDatos();
busqueda(elemento,nElementos);

delete[] elemento; //Liberar memoria utilizada en el


arreglo

getch();
return 0;
}
void pedirDatos(){
cout<<"Digite el numero de elementos del arreglo: ";
cin>>nElementos;

elemento = new int[nElementos]; //Crear el arreglo


for(int i=0;i<nElementos;i++){//Pedir datos al usuario
para el arreglo
cout<<"Digite un numero["<<i<<"]: ";
cin>>*(elemento+i);
}
}

void busqueda(int *elemento,int nElementos){


int dato,i;
bool band=false;
UNH

cout<<"\nDigite el numero que quiere buscar: ";


cin>>dato;

//Busqueda Secuencial
i=0;
while((band==false)&&(i<nElementos)){
if(*(elemento+i)==dato){ //Verificar si existe el
numero en el arreglo
band = true; //Si lo encuentra bandera
cambia a Verdadero
}
i++;
}

if(band==false){
cout<<"El numero "<<dato<<" NO ha sido
encontrado"<<endl;
}
else{
cout<<"El numero "<<dato<<" ha sido
encontrado en la posicion "<<i-1<<endl;
}
}
UNH

EJERCICIO
Escriba una función nombrada cambio() que tenga un parámetro en
número entero y seis parámetros de referencia en número entero
nombrados cien, cincuenta,veinte, diez, cinco y uno, respectivamente. La
función tiene que considerar el valor entero transmitido como una cantidad
en dólares y convertir el valor en el número menor de billetes equivalentes.

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

void cambio(int,int&,int&,int&,int&,int&,int&);

int main(){
int valor,cien=0,cincuenta=0,veinte=0,diez=0,cinco=0,uno=0;

cout<<"Digite un valor: ";


cin>>valor;
//Llamos a la funcion
cambio(valor,cien,cincuenta,veinte,diez,cinco,uno);

cout<<"Cantidad de billetes a entregar como cambio:"<<endl;


cout<<"Cien: "<<cien<<endl;
cout<<"Cincuenta: "<<cincuenta<<endl;
cout<<"Veinte: "<<veinte<<endl;
cout<<"Diez: "<<diez<<endl;
cout<<"Cinco: "<<cinco<<endl;
cout<<"Uno: "<<uno<<endl;

getch();
return 0;
}
void cambio(int valor,int& cien,int& cincuenta,int& veinte,int& diez,int&
cinco,int& uno){
cien = valor/100;
valor %= 100;
cincuenta = valor/50;
valor %= 50;
veinte = valor/20;
UNH

valor %= 20;
diez = valor/10;
valor %= 10;
cinco = valor/5;
uno = valor%5;
}

EJERCICIO
Hacer una estructura llamada corredor, en la cual se tendrán los siguientes
campos: Nombre, edad, sexo, club, pedir datos al usuario para un corredor,
y asignarle una categoría de competición:
- Juvenil <= 18 años
- Señor <= 40 años
- Veterano > 40 años

#include<iostream>
#include<conio.h>
#include<string.h>
using namespace std;

struct Corredor{
char nombre[20];
int edad;
char sexo[10];
char club[20];
}c1;
UNH

int main(){
char categoria[20];
cout<<"Nombre: "; [Link]([Link],20,'\n');
cout<<"Edad: "; cin>>[Link];
fflush(stdin);
cout<<"Sexo: "; [Link]([Link],10,'\n');
cout<<"Club: "; [Link]([Link],20,'\n');

if([Link] <= 18){


strcpy(categoria,"Juvenil");
}
else if([Link] <= 40){
strcpy(categoria,"Senior");
}
else{
strcpy(categoria,"Veterano");
}

cout<<"\n\nMostrando Datos"<<endl;
cout<<"Nombre: "<<[Link]<<endl;
cout<<"Edad: "<<[Link]<<endl;
cout<<"Sexo: "<<[Link]<<endl;
cout<<"Club: "<<[Link]<<endl;
cout<<"Categoria: "<<categoria<<endl;

getch();
return 0;
}
UNH

EJERCICIO
Pedir al usuario que digite 2 cadenas de caracteres, e indicar si ambas
cadenas son iguales, en caso de no serlo, indicar cuál es mayor
alfabéticamente.

#include<iostream>
#include<conio.h>
#include<string.h>

using namespace std;


int main(){
char palabra1[20],palabra2[20];
cout<<"Digite una palabra: ";
[Link](palabra1,20,'\n');
cout<<"Digite otra palabra: ";
[Link](palabra2,20,'\n');

if(strcmp(palabra1,palabra2)==0){
cout<<"Ambas cadenas son iguales";
}
else if(strcmp(palabra1,palabra2)>0){
cout<<palabra1<<" es mayor alfabeticamente";
}
else{
cout<<palabra2<<" es mayor alfabeticamente";
}
getch();
return 0;
}
UNH

EJERCICIO
Escriba un programa que lea de la entrada estándar un carácter e indique
en la salida estándar si el carácter es una vocal minúscula o no.

#include<iostream>
using namespace std;

int main(){
char letra;

cout<<"Digite un caracter: ";


cin>>letra;

switch(letra){
case 'a':
case 'e':
case 'i':
case 'o':
case 'u': cout<<"Es una vocal
minuscula"; break;
default : cout<<"No es una vocal
minuscula"; break;
}

return 0;
}
UNH

EJERCICIO
Realice un programa que lea de la entrada estándar números hasta que se
introduzca un cero. En ese momento el programa debe terminar y mostrar
en la salida estándar el número de valores mayores que cero leídos.

#include<iostream>
#include<conio.h>

using namespace std;

int main(){
int numero,conteo=0;

do{
cout<<"Digite un numero: ";
cin>>numero;
if(numero>0){
conteo++; //aumentamos el conteo cada vez
que encuentra un numero mayor a 0
}
}while(numero != 0);

cout<<"\nEl total de numeros mayores que 0 es:


"<<conteo;

getch();
return 0;
}
UNH

EJERCICIO
Pedir una cadena de caracteres (string) al usuario, e indicar cuantas veces
aparece la vocal a,e,i,o,u; en la cadena de caracteres.

#include<iostream>
#include<conio.h>
#include<string.h>
using namespace std;

void pedirDatos();
void contarVocales(char *);
char palabraUsuario[30];
int main(){
pedirDatos();
contarVocales(palabraUsuario);//Llamada a la funcion para contar
vocales del nombre
getch();
return 0;
}
void pedirDatos(){
cout<<"Digite una palabra: ";
[Link](palabraUsuario,30,'\n');
strupr(palabraUsuario); //pasar el nombre a mayuscula
}

void contarVocales(char *palabra){


int contA=0,contE=0,contI=0,contO=0,contU=0;

while(*palabra){ //mientras nombre sea diferente de nulo '\0'


switch(*palabra){
case 'A': contA++;break;
case 'E': contE++;break;
case 'I': contI++;break;
UNH

case 'O': contO++;break;


case 'U': contU++;break;
}
palabra++;
}

//Imprimiendo el conteo de cada vocal


cout<<"\nNumero de vocales A: "<<contA<<endl;
cout<<"Numero de vocales E: "<<contE<<endl;
cout<<"Numero de vocales I: "<<contI<<endl;
cout<<"Numero de vocales O: "<<contO<<endl;
cout<<"Numero de vocales U: "<<contU<<endl;
}
UNH

EJERCICIO
Pedir su nombre al usuario y devolver el número de vocales que hay.

#include<iostream>
#include<conio.h>
#include<string.h>
using namespace std;

//Prototipo de Función
void pedirDatos();
int contarVocales(char *);

char nombreUsuario[30];

int main(){
pedirDatos();
cout<<"\nNumero de vocales en el nombre:
"<<contarVocales(nombreUsuario);
getch();
return 0;
}
void pedirDatos(){
cout<<"Digite su nombre: ";
[Link](nombreUsuario,30,'\n');

strupr(nombreUsuario); //Pasar el nombre a mayuscula


}

int contarVocales(char *nombre){


int cont = 0;

while(*nombre){ //mientras nombre no sea nulo '\0'


switch(*nombre){
case 'A':
UNH

case 'E':
case 'I':
case 'O':
case 'U': cont++;
}
nombre++;
}

return cont;
}
UNH

EJERCICIO
Escriba una función llamada al_cuadrado() que calcule el cuadrado del
valor que se le transmite y despliegue el resultado. La función deberá ser
capaz de elevar al cuadrado números flotantes
#include<iostream>
#include<conio.h>
using namespace std;

void pedirDatos();
void al_cuadrado(float n);
float numero;
int main(){
pedirDatos();
al_cuadrado(numero);

getch();
return 0;
}
void pedirDatos(){
cout<<"Digite un numero: ";
cin>>numero;
}
void al_cuadrado(float n){
float cuadrado=0;
cuadrado = numero*numero;
cout<<"El cuadrado del numero es:
"<<cuadrado<<endl;
}
UNH

EJERCICIO
Determinar si un número es primo o no; con puteros y además indicar en
que posición de memoria se guardó el número.

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

int main(){
int numero,*dir_num,cont=0;
cout<<"Digite un numero: "; //Pedimos y guardamos el numero
cin>>numero;
dir_num = &numero; //Almacenamos su direccion

//Determinamos si es primo o no
for(int i=1;i<*dir_num;i++){
if(*dir_num%i == 0){
cont++;
}
}
if(cont>2){
cout<<"El numero "<<*dir_num<<" NO es primo"<<endl;
}
else{
cout<<"El numero "<<*dir_num<<" ES PRIMO"<<endl;
cout<<"Direccion: "<<dir_num<<endl; //Mostramos su direccion en
memoria
}
getch();
return 0;
}
UNH

EJERCICIO
Escriba una función nombrada funpot() que eleve un número entero que se
le transmita a una potencia en número entero positivo y despliegue el
[Link] número entero positivo deberá ser el segundo valor
transmitido a la función.
#include<iostream>
#include<conio.h>
using namespace std;

void pedirDatos();
void funpot(int x,int y);
int numero,exponente;
int main(){
pedirDatos();
funpot(numero,exponente);
getch();
return 0;
}
void pedirDatos(){
cout<<"Digite el numero a elevar: ";
cin>>numero;
cout<<"Digite el exponetente de elevacion: ";
cin>>exponente;
}
void funpot(int x,int y){
long resultado=1;
for(int i=1;i<=y;i++){
resultado *= x;
}
cout<<"El resultado de la elevacion es: "<<resultado<<endl;
}
UNH

EJERCICIO
Escriba un programa que calcule el valor de: 1*2*3*...*n (factorial)

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

using namespace std;

int main(){
int n,factorial=1;
cout<<"Digite un numero: ";
cin>>n;

for(int i=1;i<=n;i++){
factorial *= i;
}

cout<<"\nEl factorial del numero es: "<<factorial<<endl;

system("pause");
return 0;
}
UNH

EJERCICIO
Escriba un programa que lea de la entrada estándar los dos catetos de un
triángulo rectángulo y escriba en la salida estándar su hipotenusa.

#include<iostream>
#include<math.h>

using namespace std;

int main(){
float cateto1,cateto2,hipotenusa;
cout<<"Digite el cateto 1: "; cin>>cateto1;
cout<<"Digite el cateto 2: "; cin>>cateto2;

hipotenusa =
sqrt(pow(cateto1,2)+pow(cateto2,2));

cout<<"\nEl resultado de la hipotenusa es:


"<<hipotenusa;

return 0;
}
UNH

EJERCICIOS
Hacer un programa para agregar números enteros a una pila, hasta que
elusuario lo decida, después mostrar todos los números introducidos en la
pila.

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

struct Nodo{
int dato;
Nodo *siguiente;
};

//Prototipos de Función
void agregarPila(Nodo *&,int);
void sacarPila(Nodo *&,int &);

int main(){
Nodo *pila = NULL; //Inicializamos pila
int dato;
char rpt;

do{ //Pedimos todos los elementos de la pila


cout<<"Digite un numero: ";
cin>>dato;
agregarPila(pila,dato);

cout<<"\nDesea agregar otro numero a pila(s/n): ";


cin>>rpt;
}while((rpt == 's')||(rpt=='S'));
cout<<"\nMostrando los elementos de la pila: ";
while(pila != NULL){
sacarPila(pila,dato);
if(pila != NULL){
UNH

cout<<dato<<" , ";
}
else{
cout<<dato<<".";
}
}
getch();
return 0;
}
void agregarPila(Nodo *&pila,int n){
Nodo *nuevo_nodo = new Nodo();
nuevo_nodo->dato = n;
nuevo_nodo->siguiente = pila;
pila = nuevo_nodo;

cout<<"\tElemento "<<n<<" agregado a PILA correctamente";


}
void sacarPila(Nodo *&pila,int &n){
Nodo *aux = pila;
n = aux->dato;
pila = aux->siguiente;
delete aux;
}
UNH

EJERCICIOS
Realice un programa que lea una matriz de 3x3 y cree su matriz traspuesta.
La matriz traspuesta es aquella en la que la columna i era la fila i de la matriz
original.
#include<iostream>
#include<conio.h>
using namespace std;

int main(){
int numeros[3][3];
for(int i=0;i<3;i++){
for(int j=0;j<3;j++){
cout<<"Digite un numero ["<<i<<"]["<<j<<"]: ";
cin>>numeros[i][j];
}
}
cout<<"\nMatriz Normal\n";
for(int i=0;i<3;i++){
for(int j=0;j<3;j++){
cout<<numeros[i][j]<<" ";
}
cout<<"\n";
}
cout<<"\nMatriz Transpuesta\n";
for(int i=0;i<3;i++){
for(int j=0;j<3;j++){
cout<<numeros[j][i]<<" ";
}
cout<<"\n";
}
getch();
return 0; }
UNH

EJERCICIO

Hacer un arreglo de estructura llamada atleta para N atletas que contenga


los siguientes campos: nombre, país, numero_medallas. y devuelva los
datos (Nombre, país) del atleta que ha ganado el mayor número de
medallas.

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

struct Atleta{
char nombre[20];
char pais[20];
int n_medallas;
}atletas[100];

int main(){
int n_atletas,mayor = 0,posM=0;
cout<<"Digite el numero de atletas: ";
cin>>n_atletas;

//Pedimos los datos para N atletas


for(int i=0;i<n_atletas;i++){
fflush(stdin);
cout<<"Nombre: "; [Link](atletas[i].nombre,20,'\n');
cout<<"Pais: "; [Link](atletas[i].pais,20,'\n');
cout<<"Numero de Medallas: "; cin>>atletas[i].n_medallas;

//Sacando el atleta con mayor numero de medallas


if(atletas[i].n_medallas > mayor){
mayor = atletas[i].n_medallas;
posM = i;
}
cout<<"\n";
}
UNH

cout<<"\nAtleta con mas medallas ganadas: \n";


cout<<"Nombre: "<<atletas[posM].nombre<<endl;
cout<<"Pais: "<<atletas[posM].pais<<endl;

getch();
return 0;
}

EJERCICIO
Hacer una estructura llamada alumno, en la cual se tendrán los siguientes
Campos: Nombre, edad, promedio, pedir datos al usuario para 3 alumnos,
comprobar cuál de los 3 tiene el mejor promedio y posteriormente imprimir
los datos del alumno.

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

struct Alumno{
char nombre[20];
int edad;
float promedio;
UNH

}alumnos[3];
int main(){
int mayor = 0,pos=0;
//Pedir los datos para 3 alumnos
for(int i=0;i<3;i++){
fflush(stdin);
cout<<"Nombre: "; [Link](alumnos[i].nombre,20,'\n');
cout<<"Edad: "; cin>>alumnos[i].edad;
cout<<"Promedio: "; cin>>alumnos[i].promedio;

if(alumnos[i].promedio > mayor){


mayor = alumnos[i].promedio; //sacamos el mayor promedio
pos = i; // guardamos la posicion del mayor promedio
}
cout<<"\n";
}
//Imprimimos los datos del alumno con el mejor promedio
cout<<"\nAlumnos con el mejor Promedio: \n";
cout<<"Nombre: "<<alumnos[pos].nombre<<endl;
cout<<"Edad: "<<alumnos[pos].edad<<endl;
cout<<"Promedio: "<<alumnos[pos].promedio<<endl;

getch();
return 0;
}
UNH

EJERCICIO
Rellenar un arreglo con numeros, posteriormente utilizando punteros
determinar el menor elemento del vector.
#include<iostream>
#include<conio.h>
using namespace std;

int main(){
int nElementos,numeros[100],*dir_numeros,menor=999999;
cout<<"Digite el numero de elementos del arreglo: ";
cin>>nElementos;

for(int i=0;i<nElementos;i++){
cout<<i+1<<". Digite un numero: ";
cin>>numeros[i]; //Guardamos los elementos en el arreglo
}
dir_numeros = numeros;
for(int i=0;i<nElementos;i++){//Determinamos el menor elemento en cada
if(*dir_numeros < menor){//iteracion del buclemenor = *dir_numeros;
}
dir_numeros++;
}
cout<<"\nEl menor elemento es: "<<menor<<endl;
getch();
return 0;
}
UNH

EJERCICIO
Mostrar los meses del año, pidiéndole al usuario un número entre (1-12), y
mostrar el mes al que corresponde.

#include<iostream>
using namespace std;
int main(){
int numero;
cout<<"Digite un numero entre [1-12]: ";
cin>>numero;
switch(numero){
case 1: cout<<"Enero";break;
case 2: cout<<"Febrero";break;
case 3: cout<<"Marzo";break;
case 4: cout<<"Abril";break;
case 5: cout<<"Mayo";break;
case 6: cout<<"Junio";break;
case 7: cout<<"Julio";break;
case 8: cout<<"Agosto";break;
case 9: cout<<"Septiembre";break;
case 10: cout<<"Octubre";break;
case 11: cout<<"Noviembre";break;
case 12: cout<<"Diciembre";break;
default: cout<<"No existe mes para ese numero";break;
}
return 0;

}
UNH

EJERCICIO
Comprobar si un número es par o impar, y señalar la posición de memoria
donde se está guardando el número. Con punteros.

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

int main(){
int numero, *dir_numero;
cout<<"Digite un numero: "; cin>>numero; //Pedimos el numero al
usuario
dir_numero = &numero;

if(*dir_numero%2==0){
cout<<"El numero: "<<*dir_numero<<" es par"<<endl;
cout<<"Posicion: "<<dir_numero<<endl;
}
else{
cout<<"El numero: "<<*dir_numero<<" es impar"<<endl;
cout<<"Posicion: "<<dir_numero<<endl;
}

getch();
return 0;
}
UNH

EJERCICIO
Realice un programa que lea un valor entero y determine si se trata de un
número par o impar.

#include<iostream>
using namespace std;
int main(){

long long int numero;


cout<<"Digite un numero: ";
cin>>numero;

if(numero==0){
cout<<"El numero es cero";
}
else if(numero%2==0){
cout<<"El numero es par";
}
else{
cout<<"El numero es impar";
}

return 0;
}
UNH

EJERCICIO
Rellenar un array de 10 números, posteriormente utilizando punteros
indicar cuales son números pares y su posición en memoria.

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

int main(){
int numeros[10], *dir_numeros;

for(int i=0;i<10;i++){//Pidiendo los números al usuario


cout<<i+1<<". Digite un numero: ";
cin>>numeros[i];
}
dir_numeros = numeros; //indicar al puntero que inicie en a[0]
for(int i=0;i<10;i++){
if(*dir_numeros%2==0){//Comprobar números pares
cout<<"Numero par: "<<*dir_numeros<<endl;
cout<<"Posicion: "<<dir_numeros<<endl;
}
dir_numeros++;
}
getch();
return 0;
}
UNH

EJERCICIO
Pedir al usuario N números, almacenarlos en un arreglo dinámico
posteriormente ordenar los números en orden ascendente y mostrarlos en
pantalla.

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

//Prototipos de Funciones
void pedirDatos();
void ordenarNumeros(int *,int);
void mostrarArregloOrdenado(int *,int);

int nElementos, *elemento;

int main(){
pedirDatos();
ordenarNumeros(elemento,nElementos);
mostrarArregloOrdenado(elemento,nElementos);

delete[] elemento;

getch();
return 0;
}
void pedirDatos(){//Pedimos los datos al usuario
cout<<"Digite el numero de elementos: ";
cin>>nElementos;
elemento = new int[nElementos];
for(int i=0;i<nElementos;i++){
cout<<"Digite un numero ["<<i<<"]: ";
cin>>*(elemento+i);
}
}
void ordenarNumeros(int *elemento,int nElementos){
int aux;
//Ordenamiento por metodo burbuja con punteros
UNH

for(int i=0;i<nElementos;i++){
for(int j=0;j<nElementos-1;j++){
if(*(elemento+j) > *(elemento+j+1)){
aux = *(elemento+j);
*(elemento+j) = *(elemento+j+1);
*(elemento+j+1) = aux;
}
}
}
}

void mostrarArregloOrdenado(int *elemento,int nElementos){//Mostrando


Arreglo ordenado
cout<<"\n\nMostrando Arreglo Ordenado: ";
for(int i=0;i<nElementos;i++){
cout<<*(elemento+i)<<" ";

}
return 0;
}
UNH

EJERCICIO
Escriba un programa que calcule el valor de: 1+2+3+...+n

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

int main(){
int n,suma=0;
cout<<"Digite el total de numeros a sumar: ";
cin>>n;
for(int i=1;i<=n;i++){
suma += i;
}
cout<<"\nLa suma es: "<<suma<<endl;

system("pause");
return 0;
}
UNH

EJERCICIO
Escriba un programa que calcule el valor de: 1+3+5+...+2n-1

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

using namespace std;


int main(){
int n,suma=0;

cout<<"Digite la cantidad de elementos que desea sumar: ";


cin>>n;
for(int i=1;i<=2*n-1;i+=2){
suma += i;
}
cout<<"La suma es: "<<suma<<endl;
system("pause");
return 0;
}
UNH

EJERCICIOS
Escriba un programa que lea valores enteros hasta que se introduzca un
valor en el rango [20-30] o se introduzca el valor 0. El programa debe
entregar la suma de los valores mayores a 0 introducidos.

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

int main(){
int numero, suma = 0;
do{
cout<<"Digite un numero: ";
cin>>numero;
if(numero>0){
suma += numero;
}
}while( ((numero<20) || (numero>30)) && (numero!=0) );
cout<<"\nLa suma de todos los numeros mayores a cero es: "<<suma<<endl;
getch();
return 0;}
UNH

EJERCICIOS
Escriba un programa que tome cada 4 horas la temperatura exterior,
leyéndola durante un período de 24 horas. Es decir, debe leer 6
temperaturas. Calcule la temperatura media del día, la temperatura más alta
y la más baja.
#include<iostream>
#include<conio.h>
using namespace std;

int main(){
float temperatura,suma_temperatura=0,temperatura_media;
float temperatura_alta=0,temperatura_baja=999;
for(int i=0;i<24;i+=4){ //vamos aumentando de 4 en 4 horas
cout<<"Digite la temperatura a las "<<i<<": ";
cin>>temperatura;

suma_temperatura += temperatura;
if(temperatura > temperatura_alta){
temperatura_alta = temperatura;
}
if(temperatura < temperatura_baja){
temperatura_baja = temperatura;
}
}
temperatura_media = suma_temperatura / 6; //entre 6 porque son 6
temperaturas al dia
cout<<"\nLa temperatura media del dia es:
"<<temperatura_media<<endl;
cout<<"La temperatura mas alta es: "<<temperatura_alta<<endl;
cout<<"La temperatura mas baja es: "<<temperatura_baja<<endl;
getch();
return 0;
}
UNH

EJERCICIOS
Escriba una función nombrada tiempo() que tenga un parámetro en número
entero llamado totalSeg y tres parámetros de referencia enteros
nombrados horas, miny seg. La función es convertir el número de
segundos transmitido en un número equivalente de horas, minutos y
segundos.
#include<iostream>
#include<conio.h>
using namespace std;

void tiempo(int,int&,int&,int&);
int main(){
int totalSeg,horas,min,seg;

cout<<"Digita la cantidad de segundos: ";


cin>>totalSeg;

tiempo(totalSeg,horas,min,seg);

cout<<"\nHoras: "<<horas<<endl;
cout<<"Minutos: "<<min<<endl;
cout<<"Segundos: "<<seg<<endl;

getch();
return 0;
}
void tiempo(int totalSeg,int& horas,int& min,int& seg){
horas = totalSeg/3600;
totalSeg %= 3600;
min = totalSeg/60;

seg = totalSeg%60;
return 0;
}
UNH

EJERCICIOS
Escriba un programa que lea de la entrada estándar un carácter e indique
en la salida estándar si el carácter es una vocal minúscula, es una vocal
mayúscula o no es una vocal
#include<iostream>
using namespace std;

int main(){
char letra;
cout<<"Digite un caracter: ";
cin>>letra;

switch(letra){
case 'a':
case 'e':
case 'i':
case 'o':
case 'u': cout<<"Es una vocal
minuscula";break;
case 'A':
case 'E':
case 'I':
case 'O':
case 'U': cout<<"Es una vocal
MAYUSCULA";break;
default : cout<<"No es una vocal";break;
}
return 0;
}
UNH

EJERCICIOS
Cuál es el área total de un paralelepípedo

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

int main()
{
int a,b,h,A,B,C,T;
cout<<"Ingrese el largo:";cin>>a;
cout<<"Ingrese el ancho:";cin>>b;
A=a*b;
cout<<"El area A es:"<<A<<endl;
cout<<"Ingrese la altura:";cin>>h;
B=b*h;
cout<<"El area B es:"<<B<<endl;
C=a*h;
cout<<"El area C es:"<<C<<endl;
T=2*A+2*B+2*C;

cout<<"El area total es:"<<T;


getch();
}
UNH

EJERCICIOS

Calcule el perímetro de un rectángulo


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

int main()
{

int b,h,p;
cout<<"Ingrese la base: ";
cin>>b;
cout<<"Ingrese la altura: ";
cin>>h;
p=(b+h)*2;
cout<<"El perimetro es : "<<p;
getch();
}
UNH

EJERCICIOS
Muestre todos los números capicúas o palíndromos dentro de un rango
determinado. Un número es capicúa cuando al invertir sus cifras nos da el
mismo número.
#include<iostream>
using namespace std;
#include<conio.h>

int main()
{
unsigned long int n,s,inv,i,linf,lsup;
s=0;
cout<<"Ingrese limite inferior:";cin>>linf;
cout<<"Ingrese limite superior:";cin>>lsup;
for(i=linf;i<lsup;i++)
{
n=i;
inv=0;
while(n>0)
{
inv=(10*inv)+(n%10);
n=n/10;
}
if(inv==i)
{
cout<<inv<<" ";
s=s+1;
}
}
cout<<endl;
cout<<"Total de capicuas = "<<s;
getch();

}
UNH

EJERCICIOS
Si dos números son positivos calcule su producto, en caso contrario
calcule su suma.
#include<iostream>
using namespace std;
#include<conio.h>

int main()
{
int a, b, Res;
cout<<"Ingrese dos numeros: \n"; cin>>a>>b;
if(a>0&&b>0)
{
Res=a*b; cout<<"Como son positivos, su producto es: "<<Res;
}
else
{
Res=a+b; cout<<"Como por lo menos uno es negativo, su suma es: "<<Res;
}
getch();
}
UNH

EJERCICIO
Cuál es el volumen de un paralelepípedo de largo, ancho y altura
conocidas
#include<iostream>
using namespace std;
#include<conio.h>
int main()
{

int largo,ancho,altu;
float volumen;
cout<<"\nIngrese el largo:";
cin>>largo;
cout<<"\nIngrese el ancho:";
cin>>ancho;
cout<<"\nIngrese la altura:";
cin>>altu;
volumen=largo*ancho*altu;
cout<<"\nEl volumen de paralelepipedo es:"<<volumen;
getch();
}

EJERCICIOS
Hallar la inversa de un numero
#include <iostream>
using namespace std;
int main()
{
int dato,temp,digito,error;
error = 0;
cout << "Inversor de digitos de un numero " << endl;
cout << "Digite el numero : ";
cin >> dato;
UNH

if (dato < 10 ){
cout << "ERROR : Digite un numero (positivo) mayor que 10" << endl; // valida
que sea mayor que 9
error = 1;
// bandera de error
}
if (error == 0){
cout << "numero invertido : ";
while ( dato > 0){
temp = dato/10;
digito = dato - temp*10;
cout << digito ;
dato = temp;
}
}
cout << endl;
return 0;
}

EJERCICIO
Lea una hora y diga a cuántas horas, minutos y segundos equivale

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

int main()
{

int h,min,seg;
UNH

cout<<"Ingrese una hora.";


cin>>h;
min=h*60;
seg=h*3600;
cout<<"\nLa hora
es:"<<h<<"\nMinutos:"<<min<<"\nSegundos:"<<seg;
getch();
}

EJERCICIOS
Hallar el área y el perímetro de un rectángulo. Considerando las siguientes
fórmulas: área = base x altura, perímetro = 2 x (base + altura)
#include<iostream>
using namespace std;
#include<conio.h>

int main()
{

int b,h;
float area,perimetro;
cout<<"Ingrese la base:";
cin>>b;
cout<<"Ingrese la altura:";
cin>>h;
UNH

area=b*h;
perimetro=2*(b+h);
cout<<"El area es:";
cout<<area, " ";
cout<<"\nEl perimetro es:";
cout<<perimetro;
getch();
}

EJERCICIO
Calcule la longitud de una circunferencia de radio conocido
#include<iostream>
using namespace std;
#include<conio.h>
#include<math.h>

int main()
{

float L,r,pi=3.1416;
cout<<"ingrese el radio:";
cin>>r;
L=2*pi*r;
cout<<"la longitud de circunferencia es:"<<L;
getch();
}
UNH

EJERCICIO
Sabiendo que una milla equivale a 1609 Kilómetros, lea una cantidad en
millas y conviértala a kilómetros.

#include<iostream>
using namespace std;
#include<conio.h>
int main()

double mill,x;
cout<<"Ingrese la cantidad en milla : ";
cin>>mill;
x=1609*mill;
cout<<"La cantidad en kilómetros es: "<<x;
getch();

}
UNH

EJERCICIOS
Diga si un número n es múltiplo de m.

#include<iostream>
using namespace std;
#include<conio.h>
#include<math.h>
int main()
{
int n, m;
cout<<"Se hallara si un numero 'n` es multiplo de 'm`: ";
cout<<"\nDe valores a 'n` y 'm`: ";cin>>n>>m;
if(n%m==0)
{
cout<<"si.., "<<n<<" Es multiplo de "<<m;
}
else
{
cout<<"no... "<<n<<" No es multiplo de "<<m;
}

getch();
}
UNH

EJERCICIOS
Obtenga el valor absoluto de un número.

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

int main()
{
int n;
cout<<"Ingrese el numero:";cin>>n;
if(n>=0)
cout<<n;
else
{
cout<<"El valor absoluto del numero es:"<<-n;
}
getch();
}
UNH

EJERCICIOS
Tabla de sumas del 1 al 9

#include<conio.h>
using namespace std;
#include<iostream>
int main()
{

float n, r;
int i;
cout<<"Ingrese un numero: ";cin>>n;
for(i=1;i<=20;i++)
{
r=n+i;
cout<<"\t\t\t\t"<<n<<" + "<<i<<" = "<<r<<"\n";
}
getch();
}

También podría gustarte