Programación para Ingenieros -1- Ingeniería Electrónica
FACULTAD DE INGENIERIA
INGENIERIA ELECTRÓNICA
CURSO: PROGRAMACIÓN PARA INGENIEROS
DOCENTE: Mg. Ing. Víctor E. Dávila Rodríguez
TEMA: CASOS PROPUESTOS 09 – Estructura iterativa
MIENTRAS (While).
INTEGRANTES:
Estudiante 1: YBAÑEZ ESPINOZA JORDAN BYRON
Estudiante 2: CHAPOÑAN HERNANDEZ CARLOS ANTERO
Estudiante 3: AVILA BACILIO ANYELO YOEL
Estudiante 4: QUEZADA CHAVEZ MARTINA ALESSANDRA
Estudiante 5: NUREÑA BARRETO LUCERO DE LOS ANGELES
Trujillo
2023
Programación para Ingenieros -2- Ingeniería Electrónica
Indicaciones:
• Para cada caso propuesto debe escribir el análisis, pseudocódigo y programa en C++
correspondiente.
• Tener en cuenta que los datos a ingresar se deben validar (Reglas de negocio, por
ejemplo: las notas deben estar entre 0 y 20, cantidad de estudiantes es mayor que 0,
etc.)
• Sólo el líder del equipo debe subir el documento en formato de Word.
Casos propuestos:
1. Calcular la suma y promedio de los números pares e impares comprendidos entre 1 y n
(n es un número positivo ingresado por teclado).
SOLUCION
ANALISIS
ENTRADAS
Números positivos (n)
PROCESOS
sumaPar <- 0
sumaImpar <- 0
contadorPar <- 0
contadorImpar <- 0
sumaPar <- sumaPar + i
contadorPar <- contadorPar + 1
sumaImpar <- sumaImpar + i
contadorImpar <- contadorImpar + 1
SALIDA
Promedio de los números pares e impares.
Suma de los números pares e impares.
Programación para Ingenieros -3- Ingeniería Electrónica
ALGORITMO (PSEUDOCODIGO)
Algoritmo Numeros_pares
Definir n, i, sumaPar, sumaImpar, contadorPar, contadorImpar,
promPar, promImpar Como Entero
Escribir "Ingrese un número entero positivo n: "
Leer n
sumaPar <- 0
sumaImpar <- 0
contadorPar <- 0
contadorImpar <- 0
Para i <- 1 Hasta n Con Paso 1 Hacer
Si i MOD 2 = 0 Entonces
sumaPar <- sumaPar + i
contadorPar <- contadorPar + 1
Sino
sumaImpar <- sumaImpar + i
contadorImpar <- contadorImpar + 1
FinSi
FinPara
Si contadorPar > 0 Entonces
promPar <- sumaPar / contadorPar
Escribir "Suma de números pares: ", sumaPar
Escribir "Promedio de números pares: ", promPar
Sino
Escribir "No hay números pares en el rango dado."
FinSi
Si contadorImpar > 0 Entonces
promImpar <- sumaImpar / contadorImpar
Escribir "Suma de números impares: ", sumaImpar
Escribir "Promedio de números impares: ", promImpar
Sino
Escribir "No hay números impares en el rango dado."
FinSi
FinAlgoritmo
Programación para Ingenieros -4- Ingeniería Electrónica
PROGRAMA C++
#include <iostream>
using namespace std;
int main() {
int n, i, sumaPar = 0, sumaImpar = 0, contadorPar = 0, contadorImpar = 0;
double promPar, promImpar;
cout << "Ingrese un número entero positivo n: ";
cin >> n;
for (i = 1; i <= n; ++i) {
if (i % 2 == 0) {
sumaPar += i;
contadorPar++;
} else {
sumaImpar += i;
contadorImpar++;
}
}
if (contadorPar > 0) {
promPar = static_cast<double>(sumaPar) / contadorPar;
cout << "Suma de números pares: " << sumaPar << endl;
cout << "Promedio de números pares: " << promPar << endl;
} else {
cout << "No hay números pares en el rango dado." << endl;
}
if (contadorImpar > 0) {
promImpar = static_cast<double>(sumaImpar) / contadorImpar;
cout << "Suma de números impares: " << sumaImpar << endl;
cout << "Promedio de números impares: " << promImpar << endl;
} else {
cout << "No hay números impares en el rango dado." << endl;
}
return 0;
}
Programación para Ingenieros -5- Ingeniería Electrónica
2. Ingresar el nombre del cliente, para cada producto su nombre, unidad de medida,
cantidad y precio unitario de N productos, debe calcular el importe bruto, si el importe
bruto es mayor que 500 se le hará un descuento de 10%, caso contrario el descuento
es 5%. Además, debe calcular el importe a pagar.
SOLUCION
ANALISIS
ENTRADAS
Nombre del cliente (NCLI)
Nombre del producto (NPRO)
Unidad de medida (UNI)
Cantidad (N)
Precio unitario del producto (PREU)
PROCESO
Importe bruto (IB) N * PREU
Si IB > 500 entonces
Descuento (D) IB * 0.10
Sino
Descuento (D) IB * 0.05
Importe a pagar (IP) IB - D
SALIDAS
Importe bruto (IB)
Descuento (D)
Importe a pagar (IP)
Programación para Ingenieros -6- Ingeniería Electrónica
ALGORITMO (PSEUDOCODIGO)
Algoritmo Caso2
//Calcular el importe a pagar
//definimos las variables
definir NCLI, NPRO, UNI como caracter
definir N, PREU, IB, D, IP como real
//ENTRADAS
escribir "Ingresar el nombre del cliente: "
leer NCLI
escribir "Ingresar el nombre del producto: "
leer NPRO
escribir "Ingresar la unidad de medida del producto: "
leer UNI
escribir "Cantidad comprada: "
leer N
escribir "Precio unitario del producto: "
leer PREU
//PROCESO
//Calcular el importe bruto
IB <- N * PREU
//calcular el descuento que se aplicara
si IB > 500 Entonces
D <- IB * 0.10
SiNo
D <- IB * 0.05
FinSi
//Calcular el importe a pagar
IP <- IB - D
//SALIDA
escribir "Buen dia ", NCLI " gracias por su compra de ", NPRO
escribir "El costo de su compra de ", N " ", UNI " es el siguiente: "
escribir "Importe bruto: ", IB
escribir "Descuento por su compra: ", D
escribir "Importe a pagar: ", IP
FinAlgoritmo
Programación para Ingenieros -7- Ingeniería Electrónica
PROGRAMA C++
#include <iostream>
using namespace std;
int main(int argc, char *argv[]) {
//definimos las variables
float N, PREU, IB, D, IP;
char NCLI[10], NPRO[20], UNI[10];
//ENTRADAS
cout<<"Ingresar el nombre del cliente: ";
cin>>NCLI;
cout<<"Ingresar el nombre del producto: ";
cin>>NPRO;
cout<<"Ingresar la unidad de medida del producto: ";
cin>>UNI;
cout<<"Cantidad comprada: ";
cin>>N;
cout<<"Precio unitario del producto: ";
cin>>PREU;
//PROCESO
//Calcular el importe bruto
IB = N * PREU;
//Calcular el descuento que se aplicara
if (IB > 500) {
D = IB * 0.10;
} else {
D = IB * 0.05;
}
//Calcular el importe a pagar
IP = IB - D;
//SALIDA
cout<<"Buen dia "<<NCLI<<" gracias por su compra de "<<NPRO;
cout<<" El costo de su compra de "<<N<<" "<<UNI<<" es el siguiente: ";
cout<<"Importe bruto: "<<IB;
cout<<"Descuento por su compra: "<<D;
cout<<"Importe a pagar: "<<IP<<endl;
return 0;
}
Programación para Ingenieros -8- Ingeniería Electrónica
3. Calcular la edad mayor, menor y promedio de los estudiantes de un salón de clase que
tiene N estudiantes.
SOLUCION
ANALISIS
ENTRADA
Número de estudiantes (Nest)
Edades de los estudiantes (Eda)
PROCESOS
Encontrar la edad mayor; Encontrar la edad menor
Si Neda == 1 Entonces
EdMy = Eda
EdMn = Eda
SiNo
Si Eda > EdMy Entonces
EdMy = Eda
SiNo
Si Eda < EdMn Entonces
EdMn = Eda
FinSi
FinSi
FinSi
Promedio <- Sumatoria de las edades (EdT) / Número de estudiantes (Nest)
SALIDA
Edad Mayor (EdMy)
Edad Menor (EdMn)
Promedio (Prom)
Programación para Ingenieros -9- Ingeniería Electrónica
ALGORITMO (PSEUDOCODIGO)
Algoritmo C3S9
//Variables
Definir Nest, Neda, Eda, EdMy, EdMn Como Entero
Definir Prom, EdT Como Real
//Entrada de datos
Escribir "Ingrese el número de estudiantes"
Leer Nest
Si Nest <= 0 Entonces
Escribir "No hay estudiantes en la clase"
SiNo
Escribir "Ingrese las edades de los estudiantes (en años)"
Neda = 1
//Proceso
Mientras Neda <= Nest Hacer
Escribir "Edad:"
Leer Eda
Si Eda <= 0 Entonces
Escribir "LA EDAD INGRESADA ES 0, ¡VERIFIQUE!"
FinSi
Si Neda == 1 Entonces
EdMy = Eda
EdMn = Eda
SiNo
Si Eda > EdMy Entonces
EdMy = Eda
SiNo
Si Eda < EdMn Entonces
EdMn = Eda
FinSi
FinSi
FinSi
Neda = Neda + 1
EdT = EdT + Eda
FinMientras
Prom = EdT / Nest
Escribir "La edad promedio es: ", Prom
Escribir "La edad mayor es: ", EdMy
Escribir "La edad menor es: ", EdMn
FinSi
FinAlgoritmo
Programación para Ingenieros - 10 - Ingeniería Electrónica
PROGRAMA C++
#include <iostream>
using namespace std;
int main(int argc, char *argv[]) {
//Variables
int Nest, Neda, Eda, EdMy, EdMn;
double Prom, EdT;
//Entrada de datos
cout<<"Ingrese el número de estudiantes: "; cin>>Nest;
if (Nest <= 0)
{cout<<"No hay estudiantes en la clase"<<endl;}
else {cout<<"Ingrese las edades de los estudiantes (en años)"<<endl;
Neda = 1;
//Proceso
while (Neda <= Nest)
{cout<<"Edad: "; cin>>Eda;
if (Eda <= 0)
{cout<<"La edad ingresada es cero, ¡VERIQUIQE!"<<endl;}
if (Neda == 1)
{EdMy = Eda; EdMn = Eda;}
else
if (Eda > EdMy)
{EdMy = Eda;}
else
if (Eda < EdMn)
{EdMn = Eda;}
Neda = Neda + 1; EdT = EdT + Eda;
}
Prom = EdT / Nest;
cout<<""<<endl;
cout<<""<<endl;
//Salida
cout<<"La edad promedio es: "<<Prom<<endl;
cout<<"La edad mayor es: "<<EdMy<<endl;
cout<<"La edad menor: "<<EdMn<<endl;}
return 0;
}
Programación para Ingenieros - 11 - Ingeniería Electrónica
4. Ingresar las notas de 5 cursos de un estudiante, de registrar el nombre del estudiante,
para cada curso: el nombre del curso, la nota de trabajo, examen parcial y examen
final, calcular el promedio por cada curso y el promedio final. Si el promedio final es
mayor o igual que 12 su estado es APROBADO, caso contrario el estado es
DESAPROBADO.
SOLUCION
ANALISIS
ENTRADAS
- Nombre del estudiante (Nombre)
- Nombre del curso (Curso)
- Nota de Trabajo (Trabajo)
- Examen Parcial (E_Parcial)
- Examen Final (E_Final)
PROCESOS
- //Calcular el promedio para este curso
P_Curso <- (Trabajo + E_Parcial + E_Final) / 3
- //Acumular el promedio para el cálculo del promedio final
S_Promedios <- S_Promedios + P_Curso
- // Calculamos el promedio final
P_Final <- S_Promedios / 5
- //Determinamos el estado del estudiante (Aprobado o Desaprobado)
Si P_Final >= 12 Entonces
Estado <- "APROBADO"
Sino
Estado <- "DESAPROBADO"
FinSi
SALIDAS
- Promedio de Curso (P_Curso)
- Promedio Final (P_Final)
- Estado del Estudiante (Estado)
Programación para Ingenieros - 12 - Ingeniería Electrónica
ALGORITMO (PSEUDOCODIGO)
Algoritmo CalcularPromediosYEstado
//Declaramos las variables
Definir Nombre, Curso, Estado Como Cadena
Definir Trabajo, E_Parcial, E_Final, P_Curso, P_Final, S_Promedios, P_Total Como Real
//Solicitamos al usuario ingresar el nombre del estudiante
Escribir "Ingrese el nombre del estudiante:"
Leer Nombre
//Inicializar la suma de promedios
S_Promedios <- 0
//Iterar sobre 5 cursos
Para i = 1 Hasta 5
//Solicitamos al usuario que ingrese las notas para el curso actual
Escribir "Ingrese el nombre del curso ", i, ":"
Leer Curso
Escribir "Ingrese la nota del trabajo para el curso ", Curso, ":"
Leer Trabajo
Escribir "Ingrese la nota del examen parcial para el curso ", Curso, ":"
Leer E_Parcial
Escribir "Ingrese la nota del examen final para el curso ", Curso, ":"
Leer E_Final
//Calcular el promedio para este curso
P_Curso <- (Trabajo + E_Parcial + E_Final) / 3
//Acumular el promedio para el cálculo del promedio final
S_Promedios <- S_Promedios + P_Curso
//Calculamos el promedio del curso actual
Escribir "El promedio para el curso ", Curso, " es: ", P_Curso
FinPara
// Calculamos el promedio final
P_Final <- S_Promedios / 5
//Escribimos el promedio final
Escribir "El promedio final del estudiante ", Nombre, " es: ", P_Final
//Determinamos el estado del estudiante (Aprobado o Desaprobado)
Si P_Final >= 12 Entonces
Estado <- "APROBADO"
Sino
Estado <- "DESAPROBADO"
FinSi
//Escribimos el estado del estudiante
Escribir "El estado del estudiante ", Nombre, " es: ", Estado
FinAlgoritmo
Programación para Ingenieros - 13 - Ingeniería Electrónica
PROGRAMA C++
#include <iostream>
using namespace std;
int main(int argc, char *argv[]) {
//Declaramos de variables
string Nombre, Curso, Estado;
float Trabajo, E_Parcial, E_Final, P_Curso, P_Final, S_Promedios;
//Solicitamos al usuario que ingrese el nombre del estudiante
cout << "Ingrese el nombre del estudiante: ";
cin >> Nombre;
//Inicializar la suma de promedios
S_Promedios = 0;
// Iterar sobre 5 cursos
for (int i = 1; i <= 5; i++) {
//Solicitamos al usuario que ingrese las notas para el curso actual
cout << "Ingrese el nombre del curso " << i << ": ";
cin >> Curso;
cout << "Ingrese la nota del trabajo para el curso " << Curso << ": ";
cin >> Trabajo;
cout <<"Ingrese la nota del examen parcial para el curso " << Curso << ": ";
cin >> E_Parcial;
cout << "Ingrese la nota del examen final para el curso " << Curso << ": ";
cin >> E_Final;
//Calcular el promedio para este curso
P_Curso = (Trabajo + E_Parcial + E_Final) / 3;
//Acumular el promedio para el cálculo del promedio final
S_Promedios = S_Promedios + P_Curso;
//Calculamos el promedio para el curso actual
cout << "El promedio para el curso " << Curso << " es: " << P_Curso << endl;
}
//Calculamos el promedio final
P_Final = S_Promedios / 5;
//Escribimos el promedio final
cout << "El promedio final del estudiante " << Nombre << " es: " << P_Final << endl;
//Determinamos el estado del estudiante (Aprobado o Desaprobado)
if (P_Final >= 12)
Estado = "APROBADO";
else
Estado = "DESAPROBADO";
//Escribimos el estado del estudiante
cout << "El estado del estudiante " << Nombre << " es: " << Estado << endl;
return 0;
}
Programación para Ingenieros - 14 - Ingeniería Electrónica
5. Calcular la estatura mayor, menor y promedio de los estudiantes de un salón de clase
que tiene N estudiantes. Además mostrar el nombre del estudiante más alto y más
bajo.
SOLUCION
ANALISIS
ENTRADAS
- Cantidad de estudiantes (N)
- Nombre del estudiante (Estudiantes)
- Estatura de estudiante (Estat)
PROCESO
- //Actualizar la estatura mayor y el nombre del estudiante más alto
Si Estat > E_Mayor Entonces
E_Mayor <- Estat
Estudiante_Mayor <- Estudiante
FinSi
//Actualizar la estatura menor y el nombre del estudiante más bajo
Si Estat < E_Menor Entonces
E_Menor <- Estat
Estudiante_Menor <- Estudiante
FinSi
//Acumular estaturas para calcular el promedio
S_Estat <- S_Estat + Estat
//Calcular el promedio de estaturas
P_Estat <- S_Estat / N
SALIDA
- Estatura Mayor (E_Mayor)
- Estatura Menor (E_Menor)
- Promedio de Estatura (P_Estat)
Programación para Ingenieros - 15 - Ingeniería Electrónica
ALGORITMO (PSEUDOCODIGO)
Algoritmo CalcularEstaturas
//Declarar las variables
Definir N, i Como Entero
Definir Estat, E_Mayor, E_Menor, S_Estat, P_Estat Como Real
Definir Estudiante, Estudiante_Mayor, Estudiante_Menor Como Cadena
//Solicitar al usuario ingresar la cantidad de estudiantes
Escribir "Ingrese la cantidad de estudiantes: "
Leer N
// Asignamos un valor inicial alto para asegurar que se actualice en el primer ingreso de estatura
E_Mayor <- 0
E_Menor <- 10000
//Inicializar la suma de estaturas
S_Estat <- 0
//Iterar sobre la estatura de los estudiantes
Para i <- 1 Hasta N Hacer
//Solicitar al usuario que ingrese el nombre y estatura de estudiante
Escribir "Ingrese el nombre del estudiante ", i, ": "
Leer Estudiante
Escribir "Ingrese la estatura del estudiante ", i, " en metros: "
Leer Estat
//Actualizar la estatura mayor y el nombre del estudiante más alto
Si Estat > E_Mayor Entonces
E_Mayor <- Estat
Estudiante_Mayor <- Estudiante
FinSi
//Actualizar la estatura menor y el nombre del estudiante más bajo
Si Estat < E_Menor Entonces
E_Menor <- Estat
Estudiante_Menor <- Estudiante
FinSi
//Acumular estaturas para calcular el promedio
S_Estat <- S_Estat + Estat
FinPara
//Calcular el promedio de estaturas
P_Estat <- S_Estat / N
//Mostrar resultados
Escribir "La estatura mayor es ", E_Mayor, " metros, del estudiante ", Estudiante_Mayor
Escribir "La estatura menor es ", E_Menor, " metros, del estudiante ", Estudiante_Menor
Escribir "El promedio de estaturas es ", P_Estat, " metros."
FinAlgoritmo
Programación para Ingenieros - 16 - Ingeniería Electrónica
PROGRAMA C++
#include <iostream>
using namespace std;
int main(int argc, char *argv[]) {
//Declarar las variables
int N, i;
double Estat, E_Mayor, E_Menor, S_Estat, P_Estat;
string Estudiante, Estudiante_Mayor, Estudiante_Menor;
//Solicitar al usuario ingresar la cantidad de estudiantes
cout << "Ingrese la cantidad de estudiantes: ";
cin >> N;
//Asignamos un valor inicial alto para asegurar que se actualice en el primer ingreso de estatura
E_Mayor = 0;
E_Menor = 10000;
//Inicializar la suma de estaturas
S_Estat = 0;
//Iterar sobre la estatura de los estudiantes
for (i = 1; i <= N; i++) {
//Solicitar al usuario que ingrese el nombre y estatura de estudiante
cout << "Ingrese el nombre del estudiante " << i << ": ";
cin>> Estudiante;
cout << "Ingrese la estatura del estudiante " << i << " en metros: ";
cin >> Estat;
//Actualizar la estatura mayor y el nombre del estudiante más alto
if (Estat > E_Mayor) {
E_Mayor = Estat;
Estudiante_Mayor = Estudiante;
}
//Actualizar la estatura menor y el nombre del estudiante más bajo
if (Estat < E_Menor) {
E_Menor = Estat;
Estudiante_Menor = Estudiante;
}
//Acumular estaturas para calcular el promedio
S_Estat += Estat;
}
//Calcular el promedio de estaturas
P_Estat = S_Estat / N;
//Mostrar resultados
cout << "La estatura mayor es " << E_Mayor << " metros, del estudiante " <<
Estudiante_Mayor << endl;
cout << "La estatura menor es " << E_Menor << " metros, del estudiante " <<
Estudiante_Menor << endl;
cout << "El promedio de estaturas es " << P_Estat << " metros." << endl;
return 0;
}