Documentos de Académico
Documentos de Profesional
Documentos de Cultura
FACULTAD DE INGENIERA
DEPARTAMENTO DE OPERACIONES Y SISTEMAS
CDIGO:
ALGORITMIA Y
PROGRAMACIN
NOMBRE:
GRUPO __
FECHA: _____/
_____/___
Ejemplos resueltos
1. Elabore una solucin que permita ingresar los nombres completos y el salario de un conjunto conocido de
funcionarios de una organizacin del estado y muestre como resultado el promedio pagado; los datos de entrada
deben ser igualmente mostrados despus de realizar el clculo del promedio, la GUI a utilizar puede ser como
se muestra a continuacin:
A. Proceso: Principal
Tipo
Entero
Real [ ]
Cadena [ ]
Cadena [ ]
Entradas
Identificacin
Cantidad de
funcionarios
Sueldo
Nombre
Apellido
PROCESO: Principal
Resultados Temporales
Tipo
Identificacin
Entero
Contador funcionarios
Constantes:
Proceso:
Leer la cantidad de funcionarios ( mayor a 0 )
Tipo
Real
Cadena [ ]
Cadena [ ]
Real [ ]
Salidas
Identificacin
promedio
nombre
apellido
sueldo
Tipo
Entero
Real [ ]
Entradas
Identificacin
Cantidad de
funcionarios
Sueldo
PROCESO: calcularPromedio
Resultados Temporales
Tipo
Identificacin
Tipo
Entero
Contador de funcionarios Real
Real
Acumulador de sueldo
Salidas
Identificacin
Promedio
Constantes:
Proceso:
Recibir cantidad de funcionarios
Recibir valores de sueldos
Asignar 0 contador de funcionarios
Asignar 0 a acumulador de sueldos
Procesar para cada funcionario ( contador funcionarios < cantidad funcionarios)
Acumular en acumulador de sueldos el valor de sueldo [contador funcionarios]
Incrementar 1 a contador de funcionarios
Repetir para la siguiente funcionario
Calcular promedio con frmula: acumulador de sueldos / cantidad de sueldos
Regresar promedio
Terminar
SOLUCION:
Para entender el cdigo tenga en consideracin los nombres de los campos tal y como aparecen en la
siguiente imagen:
btProcesar
textMsgAccion
btLimpiar
btResultado
btSalir
En el cdigo prestar especial atencin a las instrucciones resaltadas en rojo, ellas indican lo que Usted
debe incluir en la solucin
namespace Arreglos_y_Promedios_NEW_Version_2014 {
public partial class Form1 : Form {
int contadorDatos = 1;
string[] nombre;
string[] apellido;
double[] sueldo;
bool primeraVez = true;
public Form1() {
InitializeComponent();
}
private void btResultados_Click(object sender, EventArgs e) {
calcularFueraCiclo();
}
private void btProcesar_Click(object sender, EventArgs e) {
principal();
}
private void calcularFueraCiclo() {
string respuesta = "";
double promedioSueldo = 0.0;
// calculos por fuera del ciclo
promedioSueldo = calcularPromedio(sueldo);
if (primeraVez) {
primeraVez = false;
nombre = new string[cantidadDatos];
apellido = new string[cantidadDatos];
sueldo = new double[cantidadDatos];
}
nombre [contadorDatos - 1] = textNombre.Text.ToUpper();
apellido [contadorDatos - 1] = textApellido.Text.ToUpper();
sueldo[contadorDatos - 1] = double.Parse(textSueldo.Text);
textIngresoNumero.Text = contadorDatos.ToString();
textNombre.Clear();
textApellido.Clear();
textSueldo.Clear();
++contadorDatos;
if (contadorDatos > cantidadDatos) {
btResultados.Visible = true;
btResultados.Enabled = true;
btProcesar.Enabled = false;
btLimpiar.Enabled = false;
textNombre.Enabled = false;
textApellido.Enabled = false;
textSueldo.Enabled = false;
textMsgAccion.Visible = true;
}
}
private double calcularPromedio(double[] sueldo) {
double acumulaSueldo = 0.0;
double promedioSueldo = 0.0;
2. Elabore una solucin que permita ingresar los nombres, apellidos y salarios de un grupo de X personas. Luego
de ingresar se debe poder dar un apellido y mostrar si hace parte de los datos ingresados inicialmente, la GUI a
utilizar puede ser como se muestra a continuacin:
SEGUNDA PARTE
Ejercicios propuestos
3. Elabore una solucin que conociendo los nombres, los apellidos y la edad de un grupo de personas, cuya
cantidad se conoce; lea un apellido y con este valor determine y muestre qu tipo de bsqueda obtuvo. Los
diferentes tipos de bsqueda que pueden darse son:
a. Tipo de bsqueda 1, si un nombre solicitado al usuario, se encuentra una sola vez entre los datos
ledos.
b. Tipo de bsqueda 2, si un nombre solicitado al usuario, se encuentra ms de una vez entre los datos
ledos.
c. Tipo de bsqueda 0, si un nombre solicitado al usuario, no se encuentra entre los datos ledos.
4. Elabore una solucin qu mediante una opcin seleccionada por el usuario (a, b, c) sea capaz de realizar las
siguientes tareas (cada opcin debe realizarse en sub-procesos individuales:
a. Lea dos (2) arreglos unidimensionales de N elementos de naturaleza real y los sume trmino a
trmino.
b. Lea un arreglo unidimensional y calcule su magnitud, mediante la siguiente expresin:
mediaGeometrica = n x0 * n x1 * n x 2 * ... * n x n
mediaArmonica =
n
1
A. Proceso: Principal
Tipo
Entero
Real [ ]
Caracter
Entradas
Identificacin
Cantidad de valores
valorX
opcin deseada
PROCESO: Principal
Resultados Temporales
Tipo
Identificacin
Entero
Contador de valores
Tipo
Real
Real
Real
Salidas
Identificacin
Magnitud
Media geomtrica
Media Armnica
Constantes:
Proceso:
Leer la cantidad de valores ( mayor a 0 )
Asignar 0 a contador valores
Procesar para cada valor ( contador valores < cantidad valores )
Leer valorX [contador valores]
Incrementar en 1 el contador de valores
Repetir para siguiente valor
Leer opcin deseada ( M = Magnitud, G = Geomtrica, A = Armnica ()
Si la opcin deseada es M
Calcular magnitud del vector mediante subproceso calcularMagnitud, pasndole: cantidad de valores y
valorX
Imprimir magnitud del vector
Sino
Si la opcin deseada es G
Calcular media geomtrica mediante subproceso calcularMediaGeometrica, pasndole: cantidad de
valores y valorX
Imprimir media geomtrica
Sino
Calcular media armnica mediante subproceso calcularMediaArmonica, pasndole: cantidad de
valores y valorX
Imprimir media armnica
Terminar
B. Sub-Proceso: calcularMagnitud
Tipo
Entero
Real [ ]
Entradas
Identificacin
Cantidad de valores
valorX
PROCESO: calcularMagnitud
Resultados Temporales
Tipo
Identificacin
Tipo
Entero Contador de valores
Real
Real
Suma trminos cuadrados
Constantes:
Proceso:
Recibir cantidad de valores
Recibir valoresX
Asignar 0 contador de valores
Asignar 0 a suma trminos cuadrados
Salidas
Identificacin
Magnitud
Tipo
Entero
Real [ ]
Entradas
Identificacin
Cantidad de valores
valorX
PROCESO: calcularMediaGeometrica
Resultados Temporales
Tipo
Identificacin
Tipo
Entero Contador de valores
Real
Salidas
Identificacin
Media geomtrica
Constantes:
Proceso:
Recibir cantidad de valores
Recibir valoresX
Asignar 0 contador de valores
Asignar 1 a media geomtrica
Procesar para cada valor ( contador valores < cantidad valores)
Acumular multiplicando en media geomtrica el valor de
potencia( valorX [contador valores], 1 / cantidad valores)
Incrementar 1 a contador de valores
Repetir para la siguiente valor
Regresar media geomtrica
Terminar
D. Sub-Proceso: calcularMediaArmonica
Tipo
Entero
Real [ ]
Entradas
Identificacin
Cantidad de valores
valorX
PROCESO: calcularMediaArmonica
Resultados Temporales
Tipo
Identificacin
Tipo
Entero Contador de valores
Real
Real
Acumulador trminos
inversos
Constantes:
Proceso:
Recibir cantidad de valores
Recibir valoresX
Asignar 0 contador de valores
Asignar 0 a acumulador trminos inversos
Salidas
Identificacin
Media armnica
5. Elabore una solucin que permia leer los nombres completos y las calificaciones de N estudiantes. Se desea
mostrar como resultado CUANTOS estudiantes estn por encima del promedio y CUANTOS estudiantes estn
por debajo del promedio.
6. Elabore una solucin que permita ingresar los nombres completos y los sueldos de una cantidad conocida de
empleados de una compaa, este comportamiento debe determinar CUALES empleados ganan ms de del
salario mnimo y CUALES empleados ganan por debajo del salario mnimo.
7. Elabore una solucin que procese los nombres completos y las edades de los N participantes del grupo de
Algoritmia y Programacin, mostrando como resultado el nombre del mayor de los estudiantes. La solucin
debe igualmente, determinar si un participante se encuentra cursando el curso o si no lo est, buscndolo por el
apellido. Los valores de entrada deben ser almacenados haciendo uso de estructuras de datos:
Unidimensionales.
8. Se tienen los valores de produccin de una planta de qumicos, para cada uno de los 12 meses de un ao en
particular y se desea saber en qu mes se produjo su pico ms alto de produccin.
9. Elabore un aplicativo que almacene las placas, tipo de vehculo (a-para automovil y m-para moto) y tiempo de
permanencia, de un conjunto de vehculos que ingresaron a un parqueadero, y permita generar cualquiera de los
siguientes reportes:
a. Generar el listado de las placas de todos los vehculos que son del tipo de vehculo indicado por el
usuario.
b. Generar un reporte que contenga el nmero de vehculos y sumatoria de tiempos de permanencia del
tipo de vehculo indicado por el usuario.
c. Generar un reporte que contenga la placa, tiempo de permanencia y valor a cancelar por el parqueo,
de todos los vehculos almacenados, teniendo en las polticas para su comput, las cuales son
indicadas en la siguiente tabla.
Automvil
Moto
fraccin).
d. Generar un reporte que contenga las placas y tiempos de permanencia de aquellos vehculos, cuya
permanencia estuvo entre un par de tiempos solicitados al usuario.
e. Generar un reporte que contenga placa, nombre completo del tipo de vehculo (automvil o moto) y
tiempo, del vehculo con menor tiempo de permanencia.
TERCERA PARTE
Pruebas de escritorio
}
return(msg);
}
}
Indique (en el siguiente cuadro) los valores que vaya tomando cada uno de las variables de los procesos y
subprocesos:
-2
datos
3 -4 5 1
resultado
cont
valor[cont]
cadena
opcion
Valor de impresin
msg