Témplate de Programas Básicos:
Resolver los siguientes ejercicios:
1. Pedir 3 números para la creación de un triangulo, (Imprimir tipo de
triangulo: Escaleno, isósceles, equilátero)
2. Ingresando dos números como base y altura, implementando el
teorema de Pitágoras,
3. Ingresar 4 números pares e imprimir en pantalla cual es el mayor.
4. Ingresar 3 calificaciones e imprimir en pantalla, el total, promedio
y porcentaje.
5. Ingresar Importe y número de cuenta que si se elije el pago en más
de 3 cuotas hay un interés del 5% por cuota agregado. (En caso de
hacerlo en más de 3 cuotas, imprimir además en pantalla el
agregado y el importe final total a pagar).
Pedir 3 números para la creación de un triangulo, (Imprimir tipo
de triangulo: Escaleno, isósceles, equilátero)
"Variables.
PARAMETERS : v_lado1(5) TYPE c, v_lado2(5) TYPE n, v_lado3(5) TYPE n.
"PROCESO
IF v_lado1 CA '0123456789.'
OR v_lado2 CA '0123456789.'
OR v_lado3 NA '0123456789.'. "PROCESO DE TIPO DE TRIANGULO
IF v_lado1 EQ v_lado2 AND v_lado1 EQ v_lado3. WRITE: 'Triangulo equilatero!!!'.
AND v_lado2 NE v_lado3.
WRITE: 'Triangulo escaleno!!!'. ELSE.
WRITE: 'Triangulo isosceles!!!'. ENDIF.
ELSE.
MESSAGE 'Debe ingresar un numero' TYPE 'I'. ENDIF.
"SALIDA DE DATOS
Pedir 3 números para la creación de un triangulo, (Imprimir tipo
de triangulo: Escaleno, isósceles, equilátero)
"Declaracion
DATA: v_resultado TYPE variant_price.
PARAMETERS: p_altura(5), p_base(5).
IF NOT P_ALTURA CA '0123456789.'.
MESSAGE 'Ingresar dato numerico!!!' TYPE 'E'. ENDIF.
IF NOT p_base CA '0123456789.'.
MESSAGE 'Ingresar dato numerico!!!' TYPE 'E'. ENDIF.
v_resultado = SQRT( ( p_altura * p_altura ) + ( p_base * p_base ) ).
WRITE: 'Hipotenusa: ' COLOR COL_POSITIVE , v_resultado.
Ingresar 4 números pares e imprimir en pantalla cual es el mayor.
PARAMETERS: p_num1(5) type p, p_num2(5) type p, p_num3(5) type p, p_num4(5) type p.
Data: v_aux(5) type p, v_nu1(5),
v_resto2(5), v_resto3(5), v_resto4(5).
v_aux = 0.
v_nu1 = p_num1. v_nu2 = p_num2. v_nu3 = p_num3. v_nu4 = p_num4.
*proceso
v_resto1 = v_nu1 mod 2.
v_resto2 = v_nu2 mod 2.
v_resto3 = v_nu3 mod 2.
v_resto4 = v_nu4 mod 2.
if v_resto1 = 0 and v_resto2 = 0 and v_resto3 = 0 and v_resto4 = 0.
if v_nu1 Ca '0123456789' and v_nu2 Ca '0123456789' and v_nu3 Ca '012 3456789' and v_nu4 Ca '0123456789'.
if p_num1 gt v_aux.
v_aux = p_num1.
endif.
if p_num2 gt v_aux.
v_aux = p_num2.
endif.
if p_num3 gt v_aux.
v_aux = p_num3.
endif.
if p_num4 gt v_aux.
v_aux = p_num4.
endif.
"Salida
else.
MESSAGE 'Ingresar datos numericos' TYPE 'I'.
endif.
else.
MESSAGE 'El numero/s no es par' type 'I'.
endif.
Ingresar 3 calificaciones e imprimir en pantalla, el total,
promedio y porcentaje.
*Entrada de datos
PARAMETERS: p_calif1(2), p_calif2(2), p_calif3(2).
DATA: v_tot(5), v_prom(5),
v_porc(5) TYPE p,
v_tnotas(2) TYPE p VALUE 3, v_por1(2),
v_por2(2), v_por3(2).
IF p_calif1 IS NOT INITIAL AND p_calif2 IS NOT INITIAL AND p_calif3 IS NOT INITIAL.
IF p_calif1 CA '0123456789' AND p_calif2 CA '0123456789' AND p_calif 3 CA '0123456789'.
"proceso
"proceso de sumar el total
"proceso de sacar el promedio
v_prom = v_tot / v_tnotas. CONDENSE v_prom.
"proceso de sacar el porcentaje
v_por1 = ( p_calif1 * 100 ) / v_tot. v_por2 = ( p_calif2 * 100 ) / v_tot. v_por3 = ( p_calif3 * 100 ) / v_tot.
"Salida
WRITE: 'El porcentaje de la nota 1 es :' INPUT OFF INVERSE COLOR 6 , v_por1 INPUT OFF INVERSE COLOR 5.
SKIP 1.
WRITE: /'El porcentaje de la nota 2 es :' INPUT OFF INVERSE COLOR 6, v_por2 INPUT OFF INVERSE COLOR 5.
SKIP 1.
WRITE: /'El porcentaje de la nota 3 es :' INPUT OFF INVERSE COLOR
6 , v_por3 INPUT OFF INVERSE COLOR 5.
SKIP 1.
WRITE: /'El total es :' INPUT OFF INVERSE COLOR 6 , v_tot INPUT OF F INVERSE COLOR 5,
/'El promedio es de :' INPUT OFF INVERSE COLOR 6, v_prom IN PUT OFF INVERSE COLOR 5.
ELSE.
MESSAGE 'Ingresar datos numericos' TYPE 'I'.
ENDIF.
ELSE.
MESSAGE 'Falta ingresar datos' TYPE 'I'.
ENDIF.
Ingresar Importe y número de cuenta que si se elije el pago en
más de 3 cuotas hay un interés del 5% por cuota agregado. (En
caso de hacerlo en más de 3 cuotas, imprimir además en pantalla
el agregado y el importe final total a pagar).
PARAMETERS: p_imp(5) TYPE p, p_ncuot(2) TYPE p.
DATA: v_icuo(5) TYPE p,
v_importeinteres(5) TYPE p, v_cuotasporseparado(5) TYPE p.
*proceso
IF p_imp IS NOT INITIAL AND p_ncuot IS NOT INITIAL.
"calculo el valor de cada cuota
v_icuo = p_imp / p_ncuot.
IF p_imp > 0 AND p_ncuot > 0.
IF p_ncuot > 3.
"Calculo la cantidad de cuotas mayores a 3
v_cuotasagregadas = p_ncuot - 3.
"Busco el interes agregado x cuota
v_interesagregado = v_cuotasagregadas * 5.
"saco el importe del interes
v_importeinteres = ( p_imp * v_interesagregado ) / 100.
"busco el importe final
v_totalconinteres = p_imp + v_importeinteres.
"calculo cuotas de cuanto van a ser
v_cuotasporseparado = v_totalconinteres / p_ncuot.
WRITE: 'El importe total basico era :' , p_imp, /'El numero de cuotas es:', p_ncuot,
/'El importe final con interes es :', v_totalconinteres, /'El importe agregado es :', v_importeinteres,
/'Las cuotas con interes van a ser de :' , v_cuotasporsep arado.
ELSE.
WRITE: 'El monto a pagar de cada cuota es: ', v_icuo, /'El importe total es de :', p_imp.
ELSE.
MESSAGE 'Ingresaste un numero invalido' TYPE 'I'.
ENDIF.
ELSE.
MESSAGE 'Ingrese algun dato' TYPE 'I'.