Está en la página 1de 4

UNIVERSIDAD AUTÓNOMA DE OCCIDENTE

FACULTAD DE INGENIERÍA ALGORITMIA Y


GRUPO __
DEPARTAMENTO DE OPERACIONES Y SISTEMAS PROGRAMACIÓN
CODIGO: NOMBRE:

Ejemplo de Análisis Modular en un Algoritmo con Decisiones FECHA: _____/___


_____/___

Una empresa tiene trabajadores cuyo contrato laboral es por hora trabajada y les paga semanalmente.
Normalmente un trabajador labora hasta 24 horas a la semana, pero si se le autoriza trabajar más de 24
horas y hasta un máximo de 48 horas semanales, entonces se le pagará la hora extra con un recargo del
35 %, sobre el valor nominal de la hora. Elabore el análisis para un algoritmo que permita calcular y
mostrar el salario nominal semanal de un trabajador. Además, se debe mostrar el nombre del
trabajador y el número de horas trabajadas durante la semana.

Proceso: principal
Entradas Salidas
Tipo Identificación Tipo Identificación
Cadena Nombre. Cadena Nombre.
Real Número de horas. Real Número de horas.
Real Valor hora. Real Salario.
Proceso
Leer Nombre, Número de horas y Valor hora.
Realizar el cálculo de Salario, mediante el subproceso calcularSalario, pasándole Número de horas
y Valor hora.
Imprimir Nombre, Número de horas y Salario.
Terminar.

Subproceso: calcularSalario
Entradas Salidas
Tipo Identificación Tipo Identificación
Real Número de horas. Real Salario.
Real Valor hora.

Proceso:
Recibir Número de horas y Valor hora.
Si Número de horas <= 24
Realizar el cálculo de Salario, aplicando la fórmula (Número de horas * Valor hora).
Sino
Realizar el cálculo de Número de extras, aplicando la fórmula (Número de horas - 24).
Realizar el cálculo de Salario, aplicando la fórmula ( 24 * Valor hora + Número de extras * Valor
hora * 1.35 ).
Regresar Salario.
Terminar.
GUI:

Implementación en C#:

/**
* Una empresa tiene trabajadores cuyo contrato laboral es por hora trabajada y
* les paga semanalmente. Normalmente un trabajador labora hasta 24 horas a la
* semana, pero si se le autoriza trabajar más de 24 horas y hasta un máximo de
* 48 horas semanales, entonces se le pagará la hora extra con un recargo del 35 %,
* sobre el valor nominal de la hora. Elabore el análisis para un algoritmo que
* permita calcular y mostrar el salario nominal semanal de un trabajador.
* Además, se debe mostrar el nombre del trabajador y el número de horas trabajadas
* durante la semana.
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
// ---------------------------------------------------------------------------------
// Cali, agosto 5 de 2015.
// ---------------------------------------------------------------------------------
namespace SalarioSemanal_Ejercicio_2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void buttonSalir_Click(object sender, EventArgs e) {


Close();
}

private void buttonLimpiar_Click(object sender, EventArgs e) {


textBoxNombre1.Clear();
textBoxNumHoras1.Clear();
textBoxValorHora.Clear();
textBoxNombre2.Clear();
textBoxNumHoras2.Clear();
textBoxSalario.Clear();
}

private void buttonAceptar_Click(object sender, EventArgs e) {


principal(); // LLamar (ó Invocar) el método principal().
}

// Definición del método principal():


public void principal() {
// Declaración de variables:
String nombre = "";
double numHoras = 0.0, valorHora = 0.0, salario = 0.0;
// Lectura de variables de entrada:
nombre = textBoxNombre1.Text;
numHoras = double.Parse(textBoxNumHoras1.Text);
valorHora = double.Parse(textBoxValorHora.Text);
// LLamar (ó Invocar) el método calcularSalario(...)
salario = calcularSalario( numHoras, valorHora ) ;
// Mostrar resultados:
textBoxNombre2.Text = nombre.ToUpper(); // Muéstrelo en altas.;
textBoxNumHoras2.Text = numHoras.ToString();
// Muéstre el salario con 2 decimales:
textBoxSalario.Text = salario.ToString("##0.00");
}

// Definición del método que calcula y retorna el salario semanaL


public double calcularSalario( double numHoras, double valorHora ) {
double salario = 0.0, numExtras = 0.0 ;
if( numHoras <= 24 ) {
salario = numHoras * valorHora;
}
else {
numExtras = numHoras - 24;
salario = 24 * valorHora + numExtras * valorHora * 1.35 ;
}
return salario ;
}

También podría gustarte