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();
}

Entradas relacionadas: