Colección de Ejercicios de Programación en C++: Fundamentos y Estructuras de Datos
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 73,58 KB
Colección de Ejercicios de Programación en C++
Este documento presenta una serie de ejercicios de programación en C++ que abarcan desde operaciones básicas y estructuras de control hasta el manejo de arreglos y matrices. Cada ejercicio incluye una descripción del problema y su solución en código C++.
Fundamentos y Operaciones Básicas
1. Operaciones Aritméticas Básicas
Realice un programa que ingrese dos números y presente su suma, resta, multiplicación y división.
#include
#include
#include
void main()
{
int n1, n2, s, r, m;
float d;
cout << "Ingrese el primer número: ";
cin>>n1;
cout << "Ingrese el segundo número: ";
cin>>n2;
s=n1+n2;
r=n1-n2;
m=n1*n2;
d=(float)n1/n2; // Se corrige la división para obtener un resultado flotante
cout << "La suma es: " << s << endl;
cout << "La resta es: " << r << endl;
cout << "La multiplicación es: " << m << endl;
cout << "La división es: " << d << endl;
getch();
}
2. Cuadrado y Raíz Cuadrada
Ingrese un número y presente el número elevado al cuadrado y su raíz cuadrada.
#include <iostream>
#include <conio.h>
#include <math.h> // Para sqrt
void main()
{
int n1, a;
float b;
cout << "Ingrese un número: ";
cin>>n1;
a=(n1*n1);
b=sqrt(n1);
cout << "El número elevado al cuadrado es: " << a << endl;
cout << "La raíz cuadrada del número es: " << b << endl;
getch();
}
3. Promedio de Notas
Realice un pseudocódigo que permita ingresar 3 notas de un estudiante y presente su promedio.
#include <iostream>
#include <conio.h>
void main()
{
int nota1, nota2, nota3;
float prom;
cout << "Ingrese la primera nota: ";
cin>>nota1;
cout << "Ingrese la segunda nota: ";
cin>>nota2;
cout << "Ingrese la tercera nota: ";
cin>>nota3;
prom=(float)(nota1+nota2+nota3)/3; // Se corrige para obtener un promedio flotante
cout << "El promedio es: " << prom << endl;
getch();
}
4. Cálculo de Precio con IVA
Ingrese el precio de un producto y presente el valor a pagar, considerando el IVA.
#include <iostream>
#include <conio.h>
#define IVA 0.14
void main()
{
float pco, tp;
cout << "Ingrese el precio del producto: ";
cin>>pco;
tp=(pco*IVA)+pco;
cout << "El valor total a pagar con IVA es: " << tp << endl;
getch();
}
5. Cálculo de Factura con IVA y Descuento
Ingrese el total de una factura y el valor a pagar por ella, considerando el valor del IVA y además que el almacén se encuentra con un descuento del 10%.
#include <iostream>
#include <conio.h>
#define IVA_RATE 0.14
#define DSCTO_RATE 0.10
void main()
{
float tf, vp, tfi, tfd;
cout << "Ingrese el total de la factura: ";
cin>>tf;
tfi=(tf*IVA_RATE);
tfd=(tf*DSCTO_RATE);
vp=(tf+tfi-tfd);
cout << "El valor total a pagar es: " << vp << endl;
getch();
}
6. Área y Perímetro de un Cuadrado
Ingrese el lado de un cuadrado y presente el área y el perímetro.
#include <iostream>
#include <conio.h>
void main()
{
int lc, ac, perc;
cout << "Ingrese el lado del cuadrado: ";
cin>>lc;
perc=(lc*4);
ac=(lc*lc);
cout << "El perímetro del cuadrado es: " << perc << endl;
cout << "El área del cuadrado es: " << ac << endl;
getch();
}
7. Sueldo con Horas Extras
Ingrese el sueldo base de un empleado y las horas extras trabajadas en un mes, y presente el total a recibir considerando que cada hora extra tiene un valor de $10.
#include <iostream>
#include <conio.h>
void main()
{
int he;
float sb, tr;
cout << "Ingrese el sueldo base: ";
cin>>sb;
cout << "Ingrese las horas extras trabajadas: ";
cin>>he;
tr=(sb + (he*10)); // Se corrige para sumar al sueldo base
cout << "El total a recibir es: " << tr << endl;
getch();
}
8. Conversión de Dólares a Euros
Escriba un algoritmo que permita convertir dólares a euros.
#include <iostream>
#include <conio.h>
#define EURO_RATE 0.94
void main()
{
float usd, eu;
cout << "Ingrese la cantidad en dólares (USD): ";
cin>>usd;
eu=(usd*EURO_RATE);
cout << "El equivalente en euros (EUR) es: " << eu << endl;
getch();
}
9. Conversión de Kilómetros a Metros
Ingrese un valor dado en kilómetros y presente su equivalente en metros.
#include <iostream>
#include <conio.h>
void main()
{
float km, m;
cout << "Ingrese la distancia en kilómetros (km): ";
cin>>km;
m=(km*1000);
cout << "El equivalente en metros (m) es: " << m << endl;
getch();
}
10. Área de una Circunferencia
Presente el área de una circunferencia si tiene como dato de entrada su radio.
#include <iostream>
#include <conio.h>
#define PI 3.14159
void main()
{
float rad, ar;
cout << "Ingrese el radio de la circunferencia: ";
cin>>rad;
ar=PI*(rad*rad);
cout << "El área de la circunferencia es: " << ar << endl;
getch();
}
11. Cálculo de Sueldo con Descuentos y Comisión
Ingrese el sueldo de un empleado y presente el total a recibir considerando que se le descuenta el 1% para la asociación de empleados, el 3% para el fondo de ahorro y el 2.5% para el seguro de salud, además de considerar una comisión mensual del 5% de su sueldo.
#include <iostream>
#include <conio.h>
void main()
{
float su, tp, ts, ae, fa, ss, cm;
cout << "Ingrese el sueldo del empleado: ";
cin>>su;
ae=su*0.01;
fa=su*0.03;
ss=su*0.025;
cm=su*0.05; // Comisión del 5% del sueldo
tp=su-(ae+fa+ss); // Sueldo después de descuentos
ts=tp+cm; // Total a recibir (sueldo neto + comisión)
cout << "El total a recibir es: " << ts << endl;
getch();
}
12. Cálculo de Planilla de Luz
Se realiza un algoritmo que permita calcular el total a recibir por una planilla de luz considerando que se tiene como dato de entrada los kWh consumidos en un mes y que cada kWh está a 0.15 centavos.
#include <iostream>
#include <conio.h>
void main()
{
float t, kw_consumidos;
cout << "Ingrese los kWh consumidos en el mes: ";
cin>>kw_consumidos;
t=kw_consumidos*0.15;
cout << "El total a pagar por la planilla de luz es: " << t << " centavos" << endl;
getch();
}
Estructuras Condicionales
13. Estado de Aprobación de un Estudiante
Ingrese la nota de un estudiante y presente si está aprobado o reprobado, considerando que el alumno aprueba con 7 o más.
#include <iostream>
#include <conio.h>
void main()
{
float nota;
cout << "Ingrese la nota del estudiante: ";
cin>>nota;
if(nota>=7)
{
cout << "El estudiante está: APROBADO" << endl;
}
else
{
cout << "El estudiante está: REPROBADO" << endl;
}
getch();
}
14. Jugador Apto para Competencia
Determine si un jugador es apto para una competencia según su peso.
#include <stdio.h>
#include <conio.h>
void main()
{
char n[50]; // Se corrige el tipo de dato para el nombre
float p;
printf("\nIngrese el nombre: ");
scanf ("%s", n); // Se corrige el uso de & para arrays de caracteres
printf("\nIngrese el peso: ");
scanf("%f",&p);
if(p>=50)
{
printf("\nEstá apto para la competencia");
}
else
{
printf("\nNo está apto para la competencia");
}
getch();
}
15. Cuadrado o Raíz Cuadrada Condicional
Ingrese un número y presente su cuadrado si es mayor a 100, caso contrario presente su raíz cuadrada.
#include <stdio.h>
#include <conio.h>
#include <math.h>
void main()
{
int c, n;
float r;
printf("Ingrese el número: ");
scanf("%d",&n);
if(n>100)
{
c=n*n;
printf("\nEl cuadrado del número es: %d",c); // Se corrige el formato de impresión
}
else
{
r=sqrt(n);
printf("\nLa raíz del número es: %5.2f",r);
}
getch();
}
16. Sueldo con Comisión Variable
Ingrese el sueldo de un trabajador y presente el total a recibir considerando que tiene una comisión del 3% si su sueldo es mayor a 500, caso contrario su comisión es del 5%.
#include <stdio.h>
#include <conio.h>
void main()
{
float s, c; // Se corrige el tipo de dato de 's' a float para cálculos de comisión
printf("\nIngrese sueldo: ");
scanf("%f",&s);
if(s>500)
{
c=s+(s*0.03); // Comisión del 3%
printf("\nNuevo sueldo es: %5.2f",c);
}
else
{
c=s+(s*0.05); // Comisión del 5%
printf("\nNuevo sueldo es: %5.2f",c);
}
getch();
}
17. Clasificación de un Número
Ingrese un número y presente si es positivo, negativo o cero.
#include <stdio.h>
#include <conio.h>
int main()
{
int n;
printf("Ingrese un número\n");
scanf("%d",&n);
if(n==0)
{
printf("El número %d es cero",n);
}
else
{
if(n>0)
{
printf("El número %d es positivo",n);
}
else
{
printf("El número %d es negativo",n);
}
}
getch();
return 0;
}
18. Número Par o Impar
Ingrese un número y presente si es par o impar.
#include <stdio.h>
#include <conio.h>
void main(){
int num;
printf("Ingrese un número\n");
scanf("%d", &num);
if(num == 0)
{
printf("Es cero\n");
}
else if((num%2) == 0)
{
printf("Es par\n");
}
else
{
printf("Es impar\n");
}
getch(); // Se elimina el segundo getchar() ya que getch() ya espera una tecla
}
19. Clasificación por Edad
Ingrese el nombre y la edad de una persona y presente si es menor de edad, mayor de edad o de la tercera edad.
#include <stdio.h>
#include <conio.h>
void main(){
char nom[30]; // Se corrige la inicialización para evitar warnings
int edad=0;
printf("\nIngrese el nombre de la persona: ");
scanf("%s",nom); // Se corrige el uso de & para arrays de caracteres
printf("\nIngrese la edad: ");
scanf("%d",&edad);
if(edad < 18)
{
printf("\nMenor de edad\n");
}
else if(edad >= 18 && edad < 65)
{
printf("\nMayor de edad\n");
}
else if(edad >= 65)
{
printf("\nTercera edad\n");
}
getch(); // system("pause") es no estándar, se reemplaza por getch()
}
20. Descuento en Factura por Monto
Ingrese el total de una factura a pagar considerando que, si es menor de 500 y 800, el descuento es del 7%, y si es mayor a 800 es del 9%.
#include <stdio.h>
#include <conio.h>
void main(){
float tot=0, tp=0, desc=0;
printf("\nIngrese el total a pagar de la factura: ");
scanf("%f",&tot);
if(tot >= 500 && tot <= 800) // Se asume que el rango es entre 500 y 800 inclusive
{
desc=tot*0.07; // Descuento del 7%
}
else if(tot > 800)
{
desc=tot*0.09; // Descuento del 9%
}
// Si tot < 500, no hay descuento según la lógica actual
tp=tot-desc;
printf("\nTotal a pagar: %f",tp);
getch(); // system("pause") es no estándar, se reemplaza por getch()
}
21. Sueldo con Horas Extras Condicionales
Ingresar el sueldo de un empleado y las horas extras trabajadas y presentar el total a pagar a recibir considerando que, si tiene más de 20 horas extras, cada hora se paga $8, caso contrario el valor de cada hora extra es $6.
#include <stdio.h>
#include <conio.h>
void main(){
float sueldo=0, total=0, thex=0;
int hex=0;
printf("\nIngrese el sueldo: ");
scanf("%f",&sueldo);
printf("\nIngrese las horas extras: ");
scanf("%d",&hex);
if(hex > 20)
{
thex=hex*8;
}
else // Se asume que si no es > 20, es <= 20
{
thex=hex*6;
}
total=sueldo+thex;
printf("\nEl sueldo total del empleado es: %f",total);
getch(); // system("pause") es no estándar, se reemplaza por getch()
}
Estructuras de Control Avanzadas
22. Días de la Semana (Switch)
Muestra el día de la semana según un número ingresado.
#include <stdio.h>
#include <conio.h>
void main()
{
int dia;
printf( "\nIntroduzca día de la semana (1-7): ");
scanf( "%d", &dia );
switch ( dia )
{
case 1 : printf( "\nLunes" );
break;
case 2 : printf( "\nMartes" );
break;
case 3 : printf( "\nMiércoles" );
break;
case 4 : printf( "\nJueves" );
break;
case 5 : printf( "\nViernes" );
break;
case 6 : printf( "\nSábado" );
break;
case 7 : printf( "\nDomingo" );
break;
default : printf( "\nError: día incorrecto");
}
getch();
}
23. Número de 3 Cifras al Revés
Realice un programa en Borland C++ donde se ingrese un número de 3 cifras y presente el número al revés.
#include <iostream.h>
#include <conio.h>
int n, n1, n2, n3, n4, n5;
void main()
{
cout << "Ingrese un número de 3 cifras: ";
cin>>n;
n1=n%100; // Últimas dos cifras
n2=n/100; // Primera cifra
n3=n1%10; // Última cifra
n4=n1/10; // Cifra del medio
n5=(n3*100)+(n4*10)+n2; // Número al revés
cout << "El número al revés es: " << n5 << endl;
getch();
}
24. Palíndromo de 3 Cifras
Realice un programa en Borland C++ donde se ingrese un número de 3 cifras y presente si es palíndromo o no.
#include <iostream.h>
#include <conio.h>
int n, n1, n2, n3, n4, n5;
void main()
{
cout << "Ingrese un número de 3 cifras: ";
cin>>n;
n1=n%100;
n2=n/100;
n3=n1%10;
n4=n1/10;
n5=(n3*100)+(n4*10)+n2;
if(n==n5)
{
cout << "El número es palíndromo." << endl;
}
else
{
cout << "El número NO es palíndromo." << endl;
}
getch();
}
25. Salario de Vendedor
Una compañía llamada "Tu Carro" de venta de carros usados paga a su personal de ventas un salario de $380 mensuales más una comisión de $50 dólares por cada carro vendido, más el 5% del valor de la venta del carro. Cada mes el contador de la empresa ingresa en la PC todos los datos pertinentes. Realizar un algoritmo que calcule y presente el salario de un vendedor dado.
#include <iostream.h>
#include <conio.h>
#define SUE_BASE 380
int cv; // Cantidad de carros vendidos
float dcv; // Valor total de la venta de los carros
float totp; // Total a pagar
char nom[20];
void main()
{
cout << "Ingrese el nombre del vendedor: ";
cin>>nom;
cout << "Ingrese la cantidad de carros vendidos: ";
cin>>cv;
cout << "Ingrese el valor total de la venta de los carros: ";
cin>>dcv;
totp=SUE_BASE+(cv*50)+(dcv*0.05);
cout << "El salario total para " << nom << " es: " << totp << endl;
getch();
}
26. Cargos por Colegiatura Universitaria
En una universidad, los cargos por colegiatura son de $800 por materia, con un cargo máximo de $4,500.00, independiente del número de asignaturas tomadas. Así, un estudiante que curse 5 materias pagará $4,000.00, mientras que otro que tome 7 pagará $4,500.00. Diseñar y codificar un algoritmo que lea las cantidades pertinentes y que determine la cantidad que debe pagar un estudiante.
#include <iostream.h>
#include <conio.h>
int nm; // Número de materias
float totp; // Total a pagar
void main()
{
cout << "Ingrese el número de materias: ";
cin>>nm;
if (nm >= 0 && nm <= 5) // Hasta 5 materias, se paga por materia
{
totp=nm*800;
cout << "El total a pagar es: " << totp << endl;
}
else // Más de 5 materias, se aplica el cargo máximo
{
totp = 4500.00;
cout << "El total a pagar es: " << totp << " (cargo máximo)" << endl;
}
getch();
}
27. Tarifas de Envío de Cartas
Una oficina de correos aplica la siguiente tarifa para sus envíos como cartas: $10.00 por los primeros 20 gramos, $2.00 por gramo para los siguientes 10 gramos, $1.50 por gramo hasta 200 gramos. Si la carta supera los 200 gramos, no es aceptada como tal. Diseñar y codificar un algoritmo que lea el peso de un envío y que determine, si corresponde, el pago que se debe hacer.
#include <iostream.h>
#include <conio.h>
int gra; // Gramos
float tot; // Total a pagar
void main()
{
cout << "Ingrese el peso del envío en gramos: ";
cin>>gra;
if (gra <= 0)
{
cout << "Peso inválido." << endl;
}
else if(gra > 200)
{
cout << "El envío supera los 200 gramos y no es aceptado como carta." << endl;
}
else if (gra <= 20)
{
tot=10.00;
cout << "El total a pagar es: " << tot << " dólares." << endl;
}
else if(gra <= 30) // Entre 21 y 30 gramos
{
tot=10.00 + ((gra-20)*2.00);
cout << "El total a pagar es: " << tot << " dólares." << endl;
}
else // Entre 31 y 200 gramos
{
tot=10.00 + (10*2.00) + ((gra-30)*1.50); // 10 por los primeros 20g, 20 por los siguientes 10g, y el resto a 1.50
cout << "El total a pagar es: " << tot << " dólares." << endl;
}
getch();
}
28. Mayor de Tres Números Enteros
Realice un programa en Borland C++ donde se ingresen 3 números enteros y determine el mayor de ellos.
#include <iostream.h>
#include <conio.h>
int n1, n2, n3;
void main()
{
cout << "Ingrese el primer número: ";
cin>>n1;
cout << "Ingrese el segundo número: ";
cin>>n2;
cout << "Ingrese el tercer número: ";
cin>>n3;
if (n1>n2 && n1>n3)
{
cout << "El mayor es: " << n1 << endl;
}
else if (n2>n1 && n2>n3)
{
cout << "El mayor es: " << n2 << endl;
}
else if (n3>n1 && n3>n2)
{
cout << "El mayor es: " << n3 << endl;
}
else
{
cout << "Hay números iguales o no se pudo determinar el mayor." << endl;
}
getch();
}
Bucles y Repeticiones
Ejercicios Segundo Parcial:
Investigación while-do while (29-38)
Investigación for (39-43)
44. Sumatoria de 10 Números
Ingrese 10 números y presente la sumatoria de estos.
#include <iostream.h>
#include <conio.h>
int n, c=0, s=0;
void main()
{
cout << "Ingrese 10 números para calcular su sumatoria:" << endl;
do
{
cout << "Número " << c+1 << ": ";
cin>>n;
c=c+1;
s=s+n;
}while(c < 10);
cout << "La sumatoria de los números es: " << s << endl;
getch();
}
45. Promedio de 10 Notas
Ingrese 10 notas y presente el promedio.
#include <iostream.h>
#include <conio.h>
float n, p, acumulador=0;
int contador=0;
void main()
{
cout << "Ingrese 10 notas para calcular su promedio:" << endl;
while(contador < 10)
{
cout << "Nota " << contador+1 << ": ";
cin>>n;
acumulador=acumulador+n;
contador=contador+1;
}
p=acumulador/10;
cout << "El promedio de las notas es: " << p << endl;
getch();
}
46. Aprobados y Reprobados en un Curso
Ingrese las notas de un curso de 10 estudiantes y presente cuántos aprobados y reprobados hay, considere que se aprueba con 7 o más.
#include <iostream.h>
#include <conio.h>
float n;
int contador=0, a=0, r=0;
void main()
{
cout << "Ingrese las notas de 10 estudiantes:" << endl;
while(contador < 10)
{
cout << "Nota del estudiante " << contador+1 << ": ";
cin>>n;
if(n>=7)
{
a=a+1;
}
else
{
r=r+1;
}
contador=contador+1;
}
cout << "Cantidad de aprobados: " << a << endl;
cout << "Cantidad de reprobados: " << r << endl;
getch();
}
47. Conteo de Números Positivos y Negativos
Ingrese 15 números y presente cuántos positivos y cuántos negativos son.
#include <iostream.h>
#include <conio.h>
float numero;
int contador=0, pos=0, neg=0;
void main()
{
cout << "Ingrese 15 números para clasificar en positivos y negativos:" << endl;
while(contador < 15)
{
cout << "Número " << contador+1 << ": ";
cin>>numero;
if(numero > 0)
{
pos=pos+1;
}
else if (numero < 0)
{
neg=neg+1;
}
contador=contador+1;
}
cout << "Cantidad de números positivos: " << pos << endl;
cout << "Cantidad de números negativos: " << neg << endl;
getch();
}
48. Conteo de Números Pares e Impares
Ingrese 10 números y presente cuántos pares y cuántos impares hay.
#include <iostream.h>
#include <conio.h>
int contador=0, pares=0, impares=0, numero;
void main()
{
cout << "Ingrese 10 números para clasificar en pares e impares:" << endl;
while(contador < 10)
{
cout << "Número " << contador+1 << ": ";
cin>>numero;
if(numero%2==0)
{
pares=pares+1;
}
else
{
impares=impares+1;
}
contador=contador+1;
}
cout << "Cantidad de números pares: " << pares << endl;
cout << "Cantidad de números impares: " << impares << endl;
getch();
}
49. Sumatoria de Pares e Impares
Ingrese 10 números y presente la sumatoria de los pares y de los impares.
#include <iostream.h>
#include <conio.h>
int contador=0, suma_pares=0, suma_impares=0, numero;
void main()
{
cout << "Ingrese 10 números para sumar pares e impares:" << endl;
while(contador < 10)
{
cout << "Número " << contador+1 << ": ";
cin>>numero;
if(numero%2==0)
{
suma_pares=suma_pares+numero;
}
else
{
suma_impares=suma_impares+numero;
}
contador=contador+1;
}
cout << "Sumatoria de números pares: " << suma_pares << endl;
cout << "Sumatoria de números impares: " << suma_impares << endl;
getch();
}
50. Tabla de Multiplicar
Ingrese un número y presente su tabla de multiplicar.
#include <stdio.h>
#include <conio.h>
void main() {
int n, c=1;
printf("Ingrese un número: ");
scanf("%d",&n);
printf("Tabla de multiplicar del %d:\n", n);
do{
printf("%d x %d = %d\n", n, c, n*c);
c++;
}while(c <= 10);
getch(); // system("pause") es no estándar, se reemplaza por getch()
}
51. Factorial de un Número
Escriba un programa en lenguaje C que permita ingresar un número entero positivo e imprima su factorial.
#include <stdio.h>
#include <conio.h>
void main(){
int n, j=1, i;
printf("Ingrese número a calcular su factorial: ");
scanf("%d",&n);
if (n < 0) {
printf("No se puede calcular el factorial de un número negativo.\n");
} else {
for(i=1; i <= n; i++) {
j = j * i;
}
printf("El factorial del número %d es: %d\n",n,j);
}
getch(); // system("pause") es no estándar, se reemplaza por getch()
}
52. Número Primo
Ingrese un número y presente si es primo o no.
#include <stdio.h>
#include <conio.h>
void main()
{
int n, c, a=0;
printf("Ingrese un número: ");
scanf("%d",&n);
for(c=1; c <= n; c++)
{
if(n%c==0)
a++;
}
if(a==2)
printf("El número es primo\n");
else
printf("El número no es primo\n");
getch(); // system("pause") es no estándar, se reemplaza por getch()
}
53. Número Perfecto
Ingrese un número y presente si es perfecto o no.
#include <stdio.h>
#include <conio.h>
void main()
{
int num, a=0, c=1; // 'c' debe empezar en 1 para buscar divisores
printf("Ingrese un número: ");
scanf("%d",&num);
if (num <= 0) {
printf("\nEl número no es perfecto (debe ser positivo).\n");
} else {
while(c < num) // Los divisores propios son menores que el número
{
if(num%c==0)
a=a+c; // Suma de divisores propios
c++;
}
if(a==num)
printf("\nEl número es perfecto\n");
else
printf("\nEl número no es perfecto\n");
}
getch(); // system("pause") es no estándar, se reemplaza por getch()
}
54. Conteo de Números Primos en un Arreglo
Ingrese 10 números y presente cuántos números primos se ingresaron.
#include <iostream.h>
#include <conio.h>
void main(){
int vector[10];
int cp=0; // Contador de primos
cout << "Ingrese 10 números para verificar si son primos:" << endl;
for(int i=0; i < 10; i++)
{
cout << "Número " << i+1 << ": ";
cin>>vector[i];
}
for(int i=0; i < 10; i++)
{
int contador_divisores=0;
if (vector[i] <= 1) {
// Los números menores o iguales a 1 no son primos
contador_divisores = 0; // Asegurarse de que no se cuente como primo
} else {
for(int j=1; j <= vector[i]; j++)
{
if(vector[i]%j==0){
contador_divisores=contador_divisores+1;
}
}
}
if (contador_divisores==2){
cout << "El número " << vector[i] << " es primo." << endl;
cp++;
}
}
cout << "Total de números primos ingresados: " << cp << endl;
getch(); // system("pause") es no estándar, se reemplaza por getch()
}
55. Conteo de Números Perfectos en un Arreglo
Ingrese 15 números y presente cuántos números perfectos se ingresaron.
#include <iostream.h>
#include <conio.h>
int main(){
int vector[15];
int np=0; // Contador de perfectos
cout << "Ingrese 15 números para verificar si son perfectos:" << endl;
for(int i=0; i < 15; i++)
{
cout << "Número " << i+1 << ": ";
cin>>vector[i];
}
for(int i=0; i < 15; i++)
{
int sum_divisores=0;
if (vector[i] <= 0) {
// Los números perfectos son positivos
} else {
for(int j=1; j < vector[i]; j++) // Divisores propios (menores que el número)
{
if(vector[i]%j==0)
sum_divisores=sum_divisores+j;
}
if(vector[i]==sum_divisores){
printf("\tEl número %d es perfecto\n", vector[i]);
np++;
}
}
}
cout << "Total de números perfectos ingresados: " << np << endl;
getch(); // system("pause") es no estándar, se reemplaza por getch()
return 0;
}
Aplicaciones con Bucles
56. Facturación de Productos
Realice un programa que ingrese la cantidad de productos a comprar, posteriormente, ingrese la descripción, cantidad y precio de cada producto y finalmente presente el subtotal, el IVA y el total a pagar por la factura de la compra.
#include <iostream.h>
#include <conio.h>
int cantp, cant, cont=0;
float sub, iva, totp, acumsub=0, pre;
char des[25];
void main()
{
do
{
cout << "Ingrese la cantidad de productos a comprar: ";
cin>>cantp;
}while(!(cantp>0));
while(cont < cantp)
{
cout << "\nProducto " << cont+1 << endl;
cout << "Descripción: ";
cin>>des;
cout << "Cantidad: ";
cin>>cant;
cout << "Precio unitario: ";
cin>>pre;
sub=cant*pre;
acumsub=acumsub+sub;
cont=cont+1;
}
cout << "\nSubtotal: " << acumsub << endl;
iva=acumsub*0.14;
cout << "IVA (14%): " << iva << endl;
totp=acumsub+iva;
cout << "Total a pagar: " << totp << endl;
getch();
}
57. Números Pares del 1 al 100
Presente los números pares que haya del 1 al 100 (ejemplo: 2, 4, 6... 98, 100).
#include <iostream.h>
#include <conio.h>
void main()
{
cout << "Números pares del 1 al 100:" << endl;
for(int i=1; i <= 100; i++)
{
if(i%2==0)
cout << i << " ";
}
cout << endl;
getch(); // system("pause") es no estándar, se reemplaza por getch()
}
58. Suma y Conteo de Impares del 1 al 100
Presente la suma de todos los números impares que van del 1 al 100 y diga cuántos hay.
#include <iostream.h>
#include <conio.h>
void main()
{
int i, sumim=0, n_impares=0;
cout << "Calculando suma y cantidad de números impares del 1 al 100..." << endl;
for (int i=1; i <= 100; i++)
{
if(i%2!=0){
sumim=sumim+i;
n_impares++;
}
}
cout << "La sumatoria de los números impares es: " << sumim << endl;
cout << "La cantidad de números impares es: " << n_impares << endl;
getch(); // system("pause") es no estándar, se reemplaza por getch()
}
59. Impresión de Asteriscos
Ingrese un número y muestre en pantalla el mismo número de asteriscos.
#include <iostream.h>
#include <conio.h>
const char simb ='*';
void main()
{
int i, num=0;
cout << "Ingrese un número: ";
cin>>num;
for( int i=0; i < num; i++)
{
cout << simb;
}
cout << endl;
getch(); // system("pause") es no estándar, se reemplaza por getch()
}
60. Suma de los Cuadrados de los Primeros 100 Números
Calcule y presente la suma de los cuadrados de los 100 primeros números.
#include <iostream.h>
#include <conio.h>
void main()
{
int i, sumacuadrados = 0, cuadrado;
for (int i = 1; i <= 100; i++)
{
cuadrado = i * i;
sumacuadrados = sumacuadrados + cuadrado;
}
cout << "La suma de los cuadrados de los primeros 100 números es: " << sumacuadrados << endl;
getch(); // system("pause") es no estándar, se reemplaza por getch()
}
61. Mayor de 20 Números
Ingrese 20 números y el programa determinará el mayor.
#include <iostream.h>
#include <conio.h>
void main( ) {
int i, mayor, a;
cout << "Ingrese 20 números para encontrar el mayor:" << endl;
mayor = -2147483647; // Inicializar con el valor mínimo posible para un int
for (a=1 ; a <= 20 ; a++)
{
cout << "Número " << a << ": ";
cin >> i;
if(i>mayor)
{
mayor=i;
}
}
cout << "El número mayor ingresado es: " << mayor << endl;
getch(); // system("pause") es no estándar, se reemplaza por getch()
}
62. Menor de 20 Números
Ingrese 20 números y presente el menor de ellos.
#include <iostream.h>
#include <conio.h>
void main( ) {
int i, menor, a;
cout << "Ingrese 20 números para encontrar el menor:" << endl;
menor = 2147483647; // Inicializar con el valor máximo posible para un int
for (a=1 ; a <= 20 ; a++)
{
cout << "Número " << a << ": ";
cin >> i;
if(i<menor)
{
menor=i;
}
}
cout << "El número menor ingresado es: " << menor << endl;
getch(); // system("pause") es no estándar, se reemplaza por getch()
}
Taller de Problemas Complejos
63. Cálculo de Salarios Semanales de Empleados
Diseñar un programa que permita calcular los salarios semanales de los 10 trabajadores de una empresa a partir de los siguientes datos:
- Nombre del empleado.
- El turno de trabajo realizado: mañana (M), tarde (T), noche (N).
- La tarifa ordinaria por hora de cada uno de los trabajadores.
Para el cálculo del salario bruto se tendrá en cuenta que el turno de tarde paga a 1.2 veces más de la tarifa ordinaria.
Para el cálculo del salario neto se realizan determinados descuentos destinados al pago de los impuestos de la siguiente forma:
- Se desea imprimir el salario bruto de cada trabajador mostrando al finalizar por pantalla el importe total de salarios abonados.
Asumimos:
- Tarifa ordinaria: $3 por hora.
- Descuentos: 14% IVA, 20.5% seguro.
- Sueldo básico: $375.
#include <iostream.h>
#include <conio.h>
#include <string.h> // Para manejo de cadenas
char empleado[30], turno;
int i, horasextras;
float salariobruto, iva, seguro, descuento, salarioneto, importetotal;
void main ()
{
importetotal=0;
for(i=0; i < 10; i++)
{
clrscr(); // Limpiar pantalla para cada empleado
cout << "\n--- Datos del Empleado " << i+1 << " ---" << endl;
cout << "Ingrese el nombre del empleado: ";
cin >> empleado;
do
{
cout << "Ingrese el turno (M/m para Mañana, T/t para Tarde, N/n para Noche): ";
cin >> turno;
turno = tolower(turno); // Convertir a minúscula para facilitar la comparación
} while (turno != 'm' && turno != 't' && turno != 'n');
do{
cout << "Ingrese las horas extras trabajadas: ";
cin >> horasextras;
} while(horasextras < 0);
float tarifa_hora = 3.00;
float sueldo_base = 375.00;
switch(turno)
{
case 'm': // Mañana
salariobruto = sueldo_base + (tarifa_hora * horasextras);
break;
case 't': // Tarde (1.2 veces la tarifa ordinaria)
salariobruto = sueldo_base + ((tarifa_hora * 1.2) * horasextras);
break;
case 'n': // Noche (se asume tarifa ordinaria si no se especifica lo contrario)
salariobruto = sueldo_base + (tarifa_hora * horasextras);
break;
default :
cout << "Turno inválido, se usará tarifa de mañana." << endl;
salariobruto = sueldo_base + (tarifa_hora * horasextras);
break;
}
iva = salariobruto * 0.14;
seguro = salariobruto * 0.205;
descuento = iva + seguro;
salarioneto = salariobruto - descuento;
clrscr();
cout << "\n--- Resumen de Salario para " << empleado << " ---" << endl;
cout << "Salario Bruto: " << salariobruto << endl;
cout << "Descuento IVA (14%): " << iva << endl;
cout << "Descuento Seguro (20.5%): " << seguro << endl;
cout << "Total Descuentos: " << descuento << endl;
cout << "Salario Neto: " << salarioneto << endl;
importetotal = importetotal + salarioneto;
cout << "Presione una tecla para continuar..." << endl;
getch();
}
clrscr();
cout << "\nImporte Total de Salarios Abonados: " << importetotal << endl;
getch();
}
64. Sistema de Ventas con Descuentos/Intereses
Diseñar un programa que permita preguntar cuántos productos desea ingresar en una venta. Luego permita el ingreso del producto, precio y cantidad vendida. Calcule el subtotal de la factura. Posteriormente ingrese la forma de pago: si es en efectivo (E) realice un descuento del 5% y si es a crédito (C) auméntele un interés del 2%. Finalmente presente por pantalla el subtotal, el IVA, el descuento o el interés según corresponda y el total a pagar por la factura.
#include <iostream.h>
#include <conio.h>
void main(){
int noprod, cant, i;
float preu, subt_acumulado=0, subtotal_final, iva, desc, aum, tp;
char nom[25], op;
do{
cout << "Ingrese la cantidad de productos a registrar: ";
cin>>noprod;
}while(noprod <= 0);
for(i=0; i < noprod; i++)
{
cout << "\n--- Producto " << i+1 << " ---" << endl;
cout << "Nombre del producto: ";
cin>>nom;
do{
cout << "Cantidad: ";
cin>>cant;
}while(cant <= 0);
do{
cout << "Precio unitario: ";
cin>>preu;
}while(preu <= 0);
subt_acumulado = subt_acumulado + (preu*cant);
}
cout << "\nSubtotal de la compra: " << subt_acumulado << endl;
cout << "Ingrese forma de pago (E para Efectivo, C para Crédito): ";
cin>>op;
op = tolower(op); // Convertir a minúscula
desc = 0; // Inicializar descuento
aum = 0; // Inicializar aumento
switch(op){
case 'e':
cout << "Pago en Efectivo. Aplicando 5% de descuento." << endl;
desc = subt_acumulado * 0.05;
subtotal_final = subt_acumulado - desc;
iva = subtotal_final * 0.14;
tp = subtotal_final + iva;
cout << "Descuento aplicado: " << desc << endl;
cout << "Subtotal con descuento: " << subtotal_final << endl;
cout << "IVA (14%): " << iva << endl;
cout << "Total a pagar: " << tp << endl;
break;
case 'c':
cout << "Pago a Crédito. Aplicando 2% de interés." << endl;
aum = subt_acumulado * 0.02;
subtotal_final = subt_acumulado + aum;
iva = subtotal_final * 0.14;
tp = subtotal_final + iva;
cout << "Interés aplicado: " << aum << endl;
cout << "Subtotal con interés: " << subtotal_final << endl;
cout << "IVA (14%): " << iva << endl;
cout << "Total a pagar: " << tp << endl;
break;
default:
cout << "Opción de pago no válida. No se aplicará descuento ni interés." << endl;
subtotal_final = subt_acumulado;
iva = subtotal_final * 0.14;
tp = subtotal_final + iva;
cout << "Subtotal: " << subtotal_final << endl;
cout << "IVA (14%): " << iva << endl;
cout << "Total a pagar: " << tp << endl;
break;
}
getch();
}
65. Registro de Jugadores por Categorías
Realice un programa en C que permita ingresar el nombre, la edad y los pesos de 15 jugadores inscritos en una competencia de atletismo. Considere que existen dos categorías: Junior (menor de 18 años) y Senior (mayor o igual a 18 años). Presentar el promedio de edades y el promedio de peso por categorías.
#include <iostream.h>
#include <conio.h>
void main(){
int i, ed, ed_j=0, ed_s=0, jun=0, sen=0;
float kg, kg_j=0, kg_s=0;
char nom[25];
cout << "Registro de 15 jugadores de atletismo:" << endl;
for(i=0; i < 15; i++)
{
cout << "\n--- Jugador " << i+1 << " ---" << endl;
cout << "Nombre: ";
cin>>nom;
do{
cout << "Edad: ";
cin>>ed;
}while(ed <= 0);
do{
cout << "Peso (kg): ";
cin>>kg;
}while(kg <= 0);
if(ed >= 18){
sen=sen+1;
ed_s=ed_s+ed;
kg_s=kg_s+kg;
}
else{
jun=jun+1;
ed_j=ed_j+ed;
kg_j=kg_j+kg;
}
}
cout << "\n--- Resumen por Categorías ---" << endl;
if (jun > 0) {
cout << "Categoría Junior (" << jun << " jugadores):" << endl;
cout << " Promedio de edad: " << (float)ed_j/jun << endl;
cout << " Promedio de peso: " << kg_j/jun << " kg" << endl;
} else {
cout << "No hay jugadores en la categoría Junior." << endl;
}
if (sen > 0) {
cout << "Categoría Senior (" << sen << " jugadores):" << endl;
cout << " Promedio de edad: " << (float)ed_s/sen << endl;
cout << " Promedio de peso: " << kg_s/sen << " kg" << endl;
} else {
cout << "No hay jugadores en la categoría Senior." << endl;
}
getch();
}
66. Venta de Autos con Descuentos por Monto
Diseñar un programa que permita ingresar la cantidad de autos que ingresan en una concesionaria, permitir el ingreso del modelo, el precio y la cantidad por cada modelo. Calcule el subtotal de la compra. Posteriormente presente el subtotal, IVA, descuento y el total a pagar considerando que si la compra sobrepasa los $100,000 se aplicará un descuento del 15%, caso contrario del 10%.
#include <iostream.h>
#include <conio.h>
void main(){
int noau, cant, i;
float preu, subt_acumulado=0, subtotal_final, iva, desc, tp;
char mod[25];
do{
cout << "Ingrese la cantidad de modelos de autos a registrar: ";
cin>>noau;
}while(noau <= 0);
for(i=0; i < noau; i++)
{
cout << "\n--- Modelo de Auto " << i+1 << " ---" << endl;
cout << "Modelo: ";
cin>>mod;
do{
cout << "Cantidad: ";
cin>>cant;
}while(cant <= 0);
do{
cout << "Precio unitario: ";
cin>>preu;
}while(preu <= 0);
subt_acumulado = subt_acumulado + (cant*preu);
}
if(subt_acumulado > 100000){
desc = subt_acumulado * 0.15;
subtotal_final = subt_acumulado - desc;
iva = subtotal_final * 0.14;
tp = subtotal_final + iva;
}else{
desc = subt_acumulado * 0.10;
subtotal_final = subt_acumulado - desc;
iva = subtotal_final * 0.14;
tp = subtotal_final + iva;
}
cout << "\n--- Resumen de Compra ---" << endl;
cout << "Subtotal inicial: " << subt_acumulado << endl;
cout << "Descuento aplicado: " << desc << endl;
cout << "Subtotal con descuento: " << subtotal_final << endl;
cout << "IVA (14%): " << iva << endl;
cout << "Total a pagar: " << tp << endl;
getch();
}
67. Consultorio Pediátrico: Promedio por Categorías
En un consultorio pediátrico se atiende a niños de 0 a 12 años. Realice un programa en C que permita ingresar el nombre, la edad y los pesos de 15 pacientes atendidos el día de hoy. Considere que existen dos categorías: Infante (menor de 3 años) y Niños (mayor o igual a 3 años). Presentar el promedio de edades y el promedio de peso por categorías.
#include <iostream.h>
#include <conio.h>
void main(){
int i, ed, ed_i=0, ed_n=0, inf=0, nin=0;
float kg, kg_i=0, kg_n=0;
char nom[25];
cout << "Registro de 15 pacientes pediátricos:" << endl;
for(i=0; i < 15; i++)
{
cout << "\n--- Paciente " << i+1 << " ---" << endl;
cout << "Nombre: ";
cin>>nom;
do{
cout << "Edad (0-12 años): ";
cin>>ed;
}while((ed < 0) || (ed > 12));
do{
cout << "Peso (kg): ";
cin>>kg;
}while(kg <= 0);
if(ed >= 3){
nin=nin+1;
ed_n=ed_n+ed;
kg_n=kg_n+kg;
}
else{
inf=inf+1;
ed_i=ed_i+ed;
kg_i=kg_i+kg;
}
}
cout << "\n--- Resumen por Categorías Pediátricas ---" << endl;
if (inf > 0) {
cout << "Categoría Infante (" << inf << " pacientes):" << endl;
cout << " Promedio de edad: " << (float)ed_i/inf << endl;
cout << " Promedio de peso: " << kg_i/inf << " kg" << endl;
} else {
cout << "No hay pacientes en la categoría Infante." << endl;
}
if (nin > 0) {
cout << "Categoría Niños (" << nin << " pacientes):" << endl;
cout << " Promedio de edad: " << (float)ed_n/nin << endl;
cout << " Promedio de peso: " << kg_n/nin << " kg" << endl;
} else {
cout << "No hay pacientes en la categoría Niños." << endl;
}
getch();
}
Ejercicios en Clase 16 de Febrero
Arreglos (Vectores)
68. Sumatoria de un Arreglo de 10 Datos
Ingrese un arreglo de 10 datos y presente su sumatoria.
#include <iostream.h>
#include <conio.h>
void main()
{
int num[10];
int suma=0;
cout << "Ingrese 10 números para el arreglo:" << endl;
for (int i=0; i < 10; i++)
{
cout << "Elemento [" << i << "]: ";
cin>>num[i];
suma+=num[i];
}
cout << "La sumatoria de los elementos del arreglo es: " << suma << endl;
getch();
}
69. Conteo de Pares e Impares en un Arreglo
Ingrese un arreglo de tamaño 15 y presente cuántos pares o impares se ingresaron.
#include <iostream.h>
#include <conio.h>
int main()
{
int i, num, cont_p=0, cont_i=0;
// No es necesario almacenar en arreglos separados para solo contar
cout << "Ingrese 15 números para clasificar en pares e impares:" << endl;
for(i=0; i < 15; i++)
{
cout << "Número " << i+1 << ": ";
cin>>num;
if( num % 2 == 0)
{
cont_p++;
}
else{
cont_i++;
}
}
cout << "\nCantidad de números pares: " << cont_p << endl;
cout << "Cantidad de números impares: " << cont_i << endl;
getch(); // system("pause") es no estándar, se reemplaza por getch()
return 0;
}
70. Conteo de Positivos y Negativos en un Arreglo
Ingrese un arreglo de tamaño 10 y presente cuántos positivos o negativos se ingresaron.
#include <iostream.h>
#include <conio.h>
void main(){
int num[10], i=0, negativos=0, positivos=0;
cout << "Ingrese 10 números para clasificar en positivos y negativos:" << endl;
do{
cout << "Número " << i+1 << ": ";
cin>>num[i];
if (num[i]>0)
positivos++;
else if (num[i]<0)
negativos++;
i++;
}while(i < 10);
cout << "\nCantidad de números positivos: " << positivos << endl;
cout << "Cantidad de números negativos: " << negativos << endl;
getch(); // system("pause") es no estándar, se reemplaza por getch()
}
71. Búsqueda de un Dato en un Arreglo
Ingrese datos positivos en un arreglo de tamaño 8. Luego solicite el ingreso de un dato a buscar. Si lo encuentra, presente un mensaje del dato encontrado y en qué ubicación lo encontró.
#include <stdio.h>
#include <conio.h>
int buscanumero(int valores[], int tamanio, int busca)
{
int i=0, posicion=-1;
// Se cambia el bucle do-while por un for para mayor claridad y seguridad
for (i=0; i < tamanio; i++) {
if (valores[i]==busca) {
posicion=i;
break; // Encontrado, salir del bucle
}
}
return posicion;
}
void muestraarreglo(int valores[], int tamanio)
{
int i=0;
printf("Contenido del arreglo: ");
for (i=0; i < tamanio; i++)
{
printf("%d\t",valores[i]);
}
printf("\n");
}
int main()
{
int x=0, numero=0, posicion=0;
int ar_numeros[8] = {0};
printf("Introduzca los 8 números enteros positivos que se almacenarán en el arreglo\n");
for (x=0; x < 8; x++)
{
do {
printf("Valor para el elemento [%d]: ", x);
scanf("%d",&ar_numeros[x]);
} while (ar_numeros[x] <= 0); // Validar que sean positivos
}
printf("\n");
printf("Introduzca el número que desea buscar en el arreglo: ");
scanf("%d",&numero);
printf("\n");
muestraarreglo(ar_numeros,8);
posicion=buscanumero(ar_numeros,8,numero);
if (posicion != -1)
printf("El número %d está en la posición %d del arreglo\n",numero, posicion);
else
printf("El número %d no está en el arreglo\n",numero);
getch(); // system("pause") es no estándar, se reemplaza por getch()
return 0;
}
Investigación 5 (72-75)
76. Conteo de Ocurrencias de un Dato en un Arreglo
Ingrese datos positivos en un arreglo de tamaño 12. Luego solicite el ingreso de un dato a buscar, y presente cuántas veces se encuentra dicho dato en el arreglo.
#include <iostream.h>
#include <conio.h>
int i, x=5, a[12], n, nv=0;
void main()
{
cout << "Ingrese 12 números positivos para el arreglo:" << endl;
for(i=0; i < 12; i++)
{
do
{
gotoxy(x,5); cout << "Elemento [" << i << "]: "; cin>>a[i];
}while(a[i] <= 0);
x=x+4;
}
cout << "\nIngrese el número a buscar: ";
cin>>n;
for(i=0; i < 12; i++)
{
if(a[i]==n)
{
nv=nv+1;
}
}
cout << "El número " << n << " se encuentra " << nv << " veces en el arreglo." << endl;
getch();
}
77. Suma de Dos Arreglos en un Tercero
Ingrese datos en 2 arreglos de tamaño 8 (A y B) y almacene y presente en un tercer arreglo la suma de cada posición de los arreglos ingresados.
#include <iostream.h>
#include <conio.h>
int a[8], b[8], c[8], i, x=25;
void main()
{
gotoxy(13,5);cout << "Ingrese elementos para el arreglo A: ";
for(i=0; i < 8; i++)
{
gotoxy(x,5);cin>>a[i];
x=x+4;
}
x=25;
gotoxy(13,7);cout << "Ingrese elementos para el arreglo B: ";
for(i=0; i < 8; i++)
{
gotoxy(x,7);cin>>b[i];
x=x+4;
}
x=25;
gotoxy(13,9);cout << "Arreglo C (A+B): ";
for(i=0; i < 8; i++)
{
c[i]=a[i]+b[i];
gotoxy(x,9);cout << c[i];
x=x+4;
}
getch();
}
78. Elevar al Cuadrado los Elementos de un Arreglo
Ingrese datos en un arreglo de tamaño 9 y presente el mismo arreglo luego de elevar cada elemento al cuadrado.
#include <iostream.h>
#include <conio.h>
#include <math.h> // Para pow
int a[9], i, x=25;
void main()
{
cout << "Ingrese 9 números para el arreglo:" << endl;
for(i=0; i < 9; i++)
{
gotoxy(x,5); cout << "Elemento [" << i << "]: "; cin>>a[i];
x=x+4;
}
x=25;
cout << "\nArreglo con elementos elevados al cuadrado:" << endl;
for(i=0; i < 9; i++) // Sobreescribiendo nuevos valores y presentándolos
{
a[i]=pow(a[i],2);
gotoxy(x,7);cout << a[i];
x=x+4;
}
getch();
}
79. Mayor Dato y su Posición en un Arreglo
Ingrese datos en un arreglo de tamaño 10 y presente el mayor dato del arreglo y en qué posición se encuentra.
#include <iostream.h>
#include <conio.h>
int i, x=5, a[10], mayor_valor, posicion_mayor;
void main()
{
cout << "Ingrese 10 números para el arreglo:" << endl;
for(i=0; i < 10; i++)
{
gotoxy(x,5); cout << "Elemento [" << i << "]: "; cin>>a[i];
x=x+4;
}
mayor_valor = a[0]; // Inicializar con el primer elemento
posicion_mayor = 0;
for(i=1; i < 10; i++) // Empezar desde el segundo elemento
{
if(a[i] > mayor_valor)
{
mayor_valor = a[i];
posicion_mayor = i;
}
}
cout << "\nEl mayor dato del arreglo es: " << mayor_valor << endl;
cout << "Se encuentra en la posición: " << posicion_mayor << endl;
getch();
}
80. Menor Dato y su Posición en un Arreglo
Ingrese datos en un arreglo de tamaño 10 y presente el menor dato del arreglo y en qué posición se encuentra.
#include <iostream.h>
#include <conio.h>
int i, x=5, a[10], menor_valor, posicion_menor;
void main()
{
cout << "Ingrese 10 números para el arreglo:" << endl;
for(i=0; i < 10; i++)
{
gotoxy(x,5); cout << "Elemento [" << i << "]: "; cin>>a[i];
x=x+4;
}
menor_valor = a[0]; // Inicializar con el primer elemento
posicion_menor = 0;
for(i=1; i < 10; i++) // Empezar desde el segundo elemento
{
if(a[i] < menor_valor)
{
menor_valor = a[i];
posicion_menor = i;
}
}
cout << "\nEl menor dato del arreglo es: " << menor_valor << endl;
cout << "Se encuentra en la posición: " << posicion_menor << endl;
getch();
}
81. Arreglo Invertido
Ingrese datos en un arreglo A de tamaño 7 y presente en otro arreglo B el arreglo invertido.
#include <iostream.h>
#include <conio.h>
int i, a[7], b[7], x=25;
void main()
{
gotoxy(13,5);cout << "Ingrese elementos para el arreglo A: ";
for(i=0; i < 7; i++)
{
gotoxy(x,5);cin>>a[i];
b[6-i]=a[i]; // Almacenar en B de forma invertida
x=x+4;
}
gotoxy(13,7);cout << "Arreglo B (invertido): ";
x=25;
for(i=0; i < 7; i++)
{
gotoxy(x,7);cout << b[i];
x=x+4;
}
getch();
}
82. Conteo de Números Primos en un Arreglo
Ingrese datos en un arreglo de tamaño 10 y presente cuántos números primos hay.
#include <iostream.h>
#include <conio.h>
int i, a[10], x=25, verificador=0, acumprimos=0, i2;
void main()
{
cout << "Ingrese 10 números para el arreglo:" << endl;
for(i=0; i < 10; i++)
{
gotoxy(x,5); cout << "Elemento [" << i << "]: "; cin>>a[i];
x=x+4;
}
for(i=0; i < 10; i++)
{
if(a[i] <= 1) {
verificador = 0; // No es primo
} else {
verificador = 0; // Reiniciar contador de divisores
for(i2=1; i2 <= a[i]; i2++)
{
if(a[i]%i2==0)
{
verificador=verificador+1;
}
}
}
if(verificador==2)
{
acumprimos=acumprimos+1;
}
}
gotoxy(25,7);cout << "Cantidad de números primos en el arreglo: " << acumprimos << endl;
getch();
}
83. Conteo de Vocales en una Frase
Se tiene un arreglo en el cual se ingresará una frase que terminará con un enter. Presentar cuántas 'a', 'e', 'i', 'o', 'u' encontró.
#include <iostream.h>
#include <conio.h>
#include <string.h> // Para strlen y tolower
char frase[50];
int i, acuma=0, acume=0, acumi=0, acumo=0, acumu=0;
void main()
{
cout << "Ingrese una frase (máx. 49 caracteres): ";
cin.getline(frase,50,'\n');
for(i=0; i < strlen(frase); i++)
{
char caracter = tolower(frase[i]); // Convertir a minúscula para contar ambas
if(caracter=='a'){acuma=acuma+1;}
if(caracter=='e'){acume=acume+1;}
if(caracter=='i'){acumi=acumi+1;}
if(caracter=='o'){acumo=acumo+1;}
if(caracter=='u'){acumu=acumu+1;}
}
cout << "\nCantidad de vocales 'a': " << acuma << endl;
cout << "Cantidad de vocales 'e': " << acume << endl;
cout << "Cantidad de vocales 'i': " << acumi << endl;
cout << "Cantidad de vocales 'o': " << acumo << endl;
cout << "Cantidad de vocales 'u': " << acumu << endl;
getch();
}
84. Conteo de Palabras en una Frase
Ingrese una frase que terminará con enter y presente cuántas palabras se ingresaron.
#include <iostream.h>
#include <conio.h>
#include <string.h> // Para strlen
char frase[50];
int i, acum=0;
void main()
{
cout << "Ingrese una frase (máx. 49 caracteres): ";
cin.getline(frase,50,'\n');
// Contar palabras: un espacio indica el fin de una palabra, más 1 para la última palabra
// Se asume que no hay espacios al inicio o final, y no hay múltiples espacios entre palabras
if (strlen(frase) > 0) {
acum = 1; // Al menos una palabra si la frase no está vacía
for(i=0; i < strlen(frase); i++)
{
if(frase[i]==' ')
{
acum=acum+1;
}
}
}
cout << "\nCantidad de palabras ingresadas: " << acum << endl;
getch();
}
Matrices
85. Sumatoria de Datos de una Matriz 4x5
Ingrese datos en una matriz de 4x5 y presente la sumatoria de los datos de la matriz.
#include <iostream.h>
#include <conio.h>
int i,j;
float m[4][5],acum=0,x=5,y=3;
void main()
{
cout << "Ingrese los elementos de la matriz 4x5:" << endl;
for(i=0; i < 4; i++)
{
x=5;
y=y+2;
for(j=0; j < 5; j++)
{
gotoxy(x,y); cout << "M[" << i << "]" << j << "]: "; cin>>m[i][j];
acum=acum+m[i][j];
x=x+4;
}
}
gotoxy(5,15);cout << "La sumatoria de los datos ingresados es: " << acum << endl;
getch();
}
86. Promedio de Datos de una Matriz 5x5
Ingrese datos positivos en una matriz de 5x5 y presente el promedio de los datos de la matriz.
#include <iostream.h>
#include <conio.h>
int i,j;
float m[5][5],acum=0,x=5,y=3,prom;
void main()
{
cout << "Ingrese los elementos positivos de la matriz 5x5:" << endl;
for(i=0; i < 5; i++)
{
x=5;
y=y+2;
for(j=0; j < 5; j++)
{
do{
gotoxy(x,y); cout << "M[" << i << "]" << j << "]: "; cin>>m[i][j];
}while(m[i][j] <= 0);
acum=acum+m[i][j];
x=x+4;
}
}
prom=acum/25;
gotoxy(5,15);cout << "El promedio de los datos de la matriz es: " << prom << endl;
getch();
}
87. Conteo de Pares e Impares en una Matriz 4x4
Ingrese datos positivos en una matriz de 4x4 y presente cuántos pares e impares se ingresaron.
#include <iostream.h>
#include <conio.h>
int i,j,m[4][4],ap=0,aip=0,x=5,y=3;
void main()
{
cout << "Ingrese los elementos positivos de la matriz 4x4:" << endl;
for(i=0; i < 4; i++)
{
x=5;
y=y+2;
for(j=0; j < 4; j++)
{
do{
gotoxy(x,y); cout << "M[" << i << "]" << j << "]: "; cin>>m[i][j];
}while(m[i][j] <= 0);
if(m[i][j]%2==0)
{
ap=ap+1;
}
else
{
aip=aip+1;
}
x=x+4;
}
}
gotoxy(5,15);cout << "Cantidad de números pares ingresados: " << ap << endl;
gotoxy(5,17);cout << "Cantidad de números impares ingresados: " << aip << endl;
getch();
}
88. Sumatoria de la Diagonal Principal de una Matriz 4x4
Ingrese datos en una matriz de 4x4 y presente la sumatoria de la diagonal principal de la matriz.
#include <iostream.h>
#include <conio.h>
int m[4][4],i,j,x=6,y=3,acum=0;
void main()
{
cout << "Ingrese los elementos de la matriz 4x4:" << endl;
for(i=0; i < 4; i++)
{
x=6;
y=y+2;
for(j=0; j < 4; j++)
{
gotoxy(x,y); cout << "M[" << i << "]" << j << "]: "; cin>>m[i][j];
x=x+4;
}
}
for(i=0; i < 4; i++)
{
acum=acum+m[i][i]; // Suma de la diagonal principal (i == j)
}
gotoxy(6,13);cout << "La sumatoria de la diagonal principal es: " << acum << endl;
getch();
}
89. Sumatoria de la Diagonal Secundaria de una Matriz 4x4
Ingrese una matriz de 4x4 y presente la sumatoria de la diagonal secundaria.
#include <iostream.h>
#include <conio.h>
int m[4][4],i,j,x=6,y=3,acum=0;
void main()
{
cout << "Ingrese los elementos de la matriz 4x4:" << endl;
for(i=0; i < 4; i++)
{
x=6;
y=y+2;
for(j=0; j < 4; j++)
{
gotoxy(x,y); cout << "M[" << i << "]" << j << "]: "; cin>>m[i][j];
x=x+4;
if(i+j==3) // Condición para la diagonal secundaria en una matriz 4x4 (índices 0 a 3)
{
acum=acum+m[i][j];
}
}
}
gotoxy(6,13);cout << "La sumatoria de la diagonal secundaria es: " << acum << endl;
getch();
}
90. Sumas Parciales Horizontales de una Matriz 3x4
Ingrese datos en una matriz de 3x4 y presente las sumas parciales horizontales.
#include <iostream.h>
#include <conio.h>
int m[3][4],i,j,x=6,y=3,acum=0;
void main()
{
cout << "Ingrese los elementos de la matriz 3x4:" << endl;
for(i=0; i < 3; i++)
{
x=6;
y=y+2;
for(j=0; j < 4; j++)
{
gotoxy(x,y); cout << "M[" << i << "]" << j << "]: "; cin>>m[i][j];
x=x+4;
}
}
y=3;
cout << "\nSumas parciales horizontales:" << endl;
for(i=0; i < 3; i++)
{
x=21; // Posición para imprimir la suma
y=y+2;
acum=0;
for(j=0; j < 4; j++)
{
acum=acum+m[i][j];
}
gotoxy(x,y);cout << "Suma fila " << i << ": " << acum << endl;
}
getch();
}
91. Sumas Parciales Verticales de una Matriz 3x4
Ingrese datos en una matriz de 3x4 y presente las sumas parciales verticales.
#include <iostream.h>
#include <conio.h>
int m[3][4],i,j,x=6,y=3,acum=0;
void main()
{
cout << "Ingrese los elementos de la matriz 3x4:" << endl;
for(i=0; i < 3; i++)
{
x=6;
y=y+2;
for(j=0; j < 4; j++)
{
gotoxy(x,y); cout << "M[" << i << "]" << j << "]: "; cin>>m[i][j];
x=x+4;
}
}
gotoxy(6,11);cout << "\nSumas parciales verticales:" << endl;
x=1;
for(j=0; j < 4; j++)
{
x=x+4;
y=13; // Posición para imprimir la suma
acum=0;
for(i=0; i < 3; i++)
{
acum=acum+m[i][j];
}
gotoxy(x,y);cout << acum;
}
getch();
}
92. Suma de Dos Matrices 3x3
Ingrese datos en dos matrices de 3x3 y presente en una tercera matriz la suma de las dos.
#include <iostream.h>
#include <conio.h>
int a[3][3],b[3][3],c[3][3],x=5,y=3,i,j;
void main()
{
cout << "Ingrese elementos para la Matriz A (3x3):" << endl;
for(i=0; i < 3; i++)
{
x=5;
y=y+2;
for(j=0; j < 3; j++)
{
gotoxy(x,y); cout << "A[" << i << "]" << j << "]: "; cin>>a[i][j];
x=x+4;
}
}
gotoxy(16,7);cout << "+";
y=3;
cout << "\nIngrese elementos para la Matriz B (3x3):" << endl;
for(i=0; i < 3; i++)
{
x=21;
y=y+2;
for(j=0; j < 3; j++)
{
gotoxy(x,y); cout << "B[" << i << "]" << j << "]: "; cin>>b[i][j];
x=x+4;
}
}
gotoxy(32,7);cout << "=";
y=3;
cout << "\nMatriz C (A+B):" << endl;
for(i=0; i < 3; i++)
{
x=37;
y=y+2;
for(j=0; j < 3; j++)
{
c[i][j]=a[i][j]+b[i][j];
gotoxy(x,y);cout << c[i][j];
x=x+4;
}
}
getch();
}
93. Resta de Dos Matrices 3x3
Ingrese datos en dos matrices de 3x3 y presente en una tercera matriz la resta de las dos.
#include <iostream.h>
#include <conio.h>
int a[3][3],b[3][3],c[3][3],x=5,y=3,i,j;
void main()
{
cout << "Ingrese elementos para la Matriz A (3x3):" << endl;
for(i=0; i < 3; i++)
{
x=5;
y=y+2;
for(j=0; j < 3; j++)
{
gotoxy(x,y); cout << "A[" << i << "]" << j << "]: "; cin>>a[i][j];
x=x+4;
}
}
gotoxy(16,7);cout << "-";
y=3;
cout << "\nIngrese elementos para la Matriz B (3x3):" << endl;
for(i=0; i < 3; i++)
{
x=21;
y=y+2;
for(j=0; j < 3; j++)
{
gotoxy(x,y); cout << "B[" << i << "]" << j << "]: "; cin>>b[i][j];
x=x+4;
}
}
gotoxy(32,7);cout << "=";
y=3;
cout << "\nMatriz C (A-B):" << endl;
for(i=0; i < 3; i++)
{
x=37;
y=y+2;
for(j=0; j < 3; j++)
{
c[i][j]=a[i][j]-b[i][j];
gotoxy(x,y);cout << c[i][j];
x=x+4;
}
}
getch();
}
94. Multiplicación de Dos Matrices 3x3
Ingrese datos en dos matrices de 3x3 y presente en una tercera matriz la multiplicación de las dos.
#include <iostream.h>
#include <conio.h>
int a[3][3],b[3][3],c[3][3],x=5,y=3,i,j,k;
void main()
{
cout << "Ingrese elementos para la Matriz A (3x3):" << endl;
for(i=0; i < 3; i++)
{
x=5;
y=y+2;
for(j=0; j < 3; j++)
{
gotoxy(x,y); cout << "A[" << i << "]" << j << "]: "; cin>>a[i][j];
x=x+4;
}
}
gotoxy(16,7);cout << "*";
y=3;
cout << "\nIngrese elementos para la Matriz B (3x3):" << endl;
for(i=0; i < 3; i++)
{
x=21;
y=y+2;
for(j=0; j < 3; j++)
{
gotoxy(x,y); cout << "B[" << i << "]" << j << "]: "; cin>>b[i][j];
x=x+4;
}
}
gotoxy(32,7);cout << "=";
y=3;
cout << "\nMatriz C (A*B):" << endl;
for(i=0; i < 3; i++)
{
x=37;
y=y+2;
for(j=0; j < 3; j++)
{
c[i][j]=0; // Inicializar elemento de la matriz resultado
for(k=0; k < 3; k++) // Bucle para la multiplicación
{
c[i][j] += a[i][k]*b[k][j];
}
gotoxy(x,y);cout << c[i][j];
x=x+4;
}
}
getch();
}
95. Mayor y Menor Dato en una Matriz 5x3
Ingrese datos positivos en una matriz de 5x3 y presente el mayor y el menor dato de la matriz.
#include <iostream.h>
#include <conio.h>
int m[5][3],x=6,y=3,i,j,vmax=-2147483647,vmin=2147483647; // Inicializar con valores min/max de int
void main()
{
cout << "Ingrese los elementos positivos de la matriz 5x3:" << endl;
for(i=0; i < 5; i++)
{
x=6;
y=y+2;
for(j=0; j < 3; j++)
{
do{
gotoxy(x,y); cout << "M[" << i << "]" << j << "]: "; cin>>m[i][j];
}while(m[i][j] <= 0);
x=x+4;
if(m[i][j] >= vmax)
{
vmax=m[i][j];
}
if(m[i][j] <= vmin)
{
vmin=m[i][j];
}
}
}
gotoxy(6,18);cout << "El mayor dato de la matriz es: " << vmax << endl;
gotoxy(6,19);cout << "El menor dato de la matriz es: " << vmin << endl;
getch();
}
96. Elevar al Cubo los Elementos de una Matriz 3x3
Ingrese datos positivos en una matriz 3x3 y presente en otra matriz cada elemento elevado al cubo.
#include <iostream.h>
#include <conio.h>
#include <math.h> // Para pow
int a[3][3],b[3][3],i,j,x=6,y=3;
void main()
{
cout << "Ingrese los elementos de la Matriz A (3x3):" << endl;
for(i=0; i < 3; i++)
{
x=6;
y=y+2;
for(j=0; j < 3; j++)
{
gotoxy(x,y); cout << "A[" << i << "]" << j << "]: "; cin>>a[i][j];
b[i][j]=pow(a[i][j],3);
x=x+4;
}
}
gotoxy(17,7);cout << "Matriz B (elementos al cubo):" << endl;
y=3;
for(i=0; i < 3; i++)
{
x=41;
y=y+2;
for(j=0; j < 3; j++)
{
gotoxy(x,y);cout << b[i][j];
x=x+4;
}
}
getch();
}