Você está na página 1de 8

EJEMPLO 1.

ANALISIS ESTRUCTURADO

Diseñe una solución que calcule el nuevo salario de 15 empleados de una empresa,
sabiendo que si el salario actual es menor que $1000.oo se le aumentará el 15% y en caso
contrario, se le aumenta el 12%.

I Planteamiento General del Problema


Entrada de datos Salida de datos

 Cantidad de empleados (15)  Nuevo Salario del empleado


 Salario Actual  Desplegar Número correlativo
 Límite de salario para aumento del empleado
($1000.oo)
 Porcentajes de aumento (15 Y
12%)

II Diagrama Top-Down

Cosas que hacer: 1. Leer y validar datos


2. Calcular el nuevo salario
3. Imprimir el correlativo y el nuevo salario de cada empleado
Se diseñará un módulo para cada una de las tareas anteriores y el principal que las
controla:

principal

leer calcular imprimir

III Metodología para resolver problemas a cada módulo

Módulo Leer
¿Qué hace? Lee el salario actual
Retorna el salario actual

Entrada de datos Salida de datos

 Salario actual de un  Retorna el salario actual


empleado

1
¿Cómo lo hace?
Variables de Salida: No hay; retorna el valor del salario actual.

Variables de Entrada:
.Nombre Tipo Descripción
sa Real Salario actual de un empleado

Restricciones: sa >0
.
Parámetros: Recibe el parámetro e que indica el número de empleado a
calcularle el nuevo salario. (Tipo entero)

Proceso: Leer sa
Mientras sa <= 0 “Error; intente de nuevo”
Leer sa

Variables de Proceso: No hay

Diseño de Solución
Subflujograma Leer

Leer (e) 1

“Digite el salario
actual del No
sa<=0
empleado”, e

sa “Error, intente
de nuevo”

1
sa

Retornar sa

2
==================================================================

Módulo Calcular

¿Qué hace? Calcula el nuevo salario, con el salario actual. Devuelve el nuevo salario
de un empleado

Entrada de datos Salida de datos

Porcentajes de aumento (15% Devuelve el nuevo salario


y 12%), límite de salario
(1000)
Recibe el salario actual

¿Cómo lo hace?

Variables de Salida: No hay; retorna el valor del nuevo salario

Variables de Entrada: No hay; recibe el salario actual

Restricciones: No hay.

Parámetros: Recibe el valor del salario actual: sal (de Tipo Real)

Proceso:
¿sal<1000?
si: nsal = sal + 0.15*sal
no: nsal = sal + 0.12*sal

Variables de Proceso:
Nombre Tipo Descripción
nsal Real Representa el Nuevo salario del empleado

Diseño de Solución
Subflujograma calcular

calcular( sal )

Si
sal < 1000

nsal = sal+ 0.12*sal nsal = sal+ 0.15*sal

Retornar nsal

3
================================================================
Módulo Imprimir

¿Qué hace? Imprime el correlativo del vendedor. Imprime el nuevo salario

Entrada de datos Salida de datos

Recibe:  Número correlativo


 El número correlativo  Nuevo salario
 Recibe el nuevo salario

¿Cómo lo hace?
Variables de Salida. Como recibe lo que se va a imprimir como parámetro, no se
requiere declaración

Variables de Entrada: No hay. Recibe el numero correlativo y el nuevo salario del


empleado

Restricciones: No hay.

Parámetros: Recibe el número correlativo num


Recibe el nuevo salario nu_s

Proceso: No hay. Sólo imprime.

Variables de Proceso: No hay.

Diseño de Solución
Subflujograma Imprimir

Imprimir( num, nu_s)

“Empleado
numero:”,
num

“Tiene como
nuevo salario:
$”, nu_s

Retornar

================================================================================

4
Módulo Principal
Qué hace?: Invoca los otros módulos. Envía parámetros, si es necesario, y recibe los
valores de retorno.

Entrada de datos Salida de datos

Recibe Envía:
 El salario actual  El salario actual
 El nuevo salario  El número correlativo del vendedor
 El nuevo salario

Cómo lo hace?
Variables de Salida: No hay; envía los valores de salario actual, número correlativo y el
nuevo salario del vendedor.

Variables de Entrada: No hay; recibe los valores de retorno s1 (salario actual) y s2


(salario final).

Restricciones: No hay

Parámetros: No hay

Proceso: No hay cálculos, sólo invoca los otros módulos, envía parámetros y recibe
valores de retorno.

DESDE s1 = leer(i)
i=1, s2 = calcular(s1)
HASTA 15, imprimir (i,s2)
1

Variables de Proceso:

Nombre Tipo Descripción


i Entero Contador del lazo para empleados, Vi=1; Vf= 15, Vc=1
s1 Real Representa el salario del empleado leído y validado en
el módulo leer
s2 Real Representa el Nuevo salario del empleado calculado
en el módulo calcular

5
FLUJOGRAMA
PRINCIPAL
Inicio

DESDE i=1,
HASTA i<=15,1

s1 = leer ( i )

s2 = calcular (s1 )

imprimir ( i, s2 )

Fin

6
IV. CODIFICACION DE LA SOLUCION

//Programa con Funciones para calculo de nuevo salario



#include<conio.h>
#include<stdio.h>

//Declaracion de prototipos
float leer(int e);
float calcular(float sal);
void imprimir(int num, float nu_s);


main() //Funcion principal
{
int i;
float s1, s2;

puts("CALCULO DE NUEVO SALARIO");

for(i=1; i<=3; i++)
{
s1 = leer(i);
s2 = calcular(s1);
imprimir(i, s2);
}
printf("\n\n\nTerminamos el programa...Hasta Luego...");
getch();
return 0;
}

//Definicion de cada funcion

float leer(int e) //Lee y valida el salario actual
{
float sa;

printf("\n\n");
puts("******FUNCION LEER******");
printf("\nDigite el Salario actual del empleado No. %d\n", e);
scanf("%f",&sa);
while(sa <= 0)
{
puts("Error... Salario Debe ser > 0, Intente de Nuevo");
puts("Digite el salario:");
scanf("%f",&sa);
}
getch();
return sa;
}

// Definicion de funcion calcular
float calcular(float sal)
{
float nsal;

7
if(sal<1000)
nsal= sal + 0.15 * sal;
else
nsal= sal + 0.12 * sal;

printf("\n\n SE CALCULO EL NUEVO SALARIO\n");

getch();
return nsal;
}

// Definicion de funcion imprimir
void imprimir(int num, float nu_s)
{

printf("\n\n***********RESULTADOS************");
printf("\n\nEmpleado numero: %d", num);
printf("\n\nTiene como nuevo salario: $ %.2f\n\n", nu_s);

return;
}

LCAH-2015

Você também pode gostar