viernes, 6 de julio de 2018

Reto 004

Calculadora de Intereses.

I. Cree los siguientes programas por separado. 

1.- Para calcular el monto total de interés simple, deberá de utilizar la siguiente formula: Interes Simple = P(1 + rt), donde P es el monto principal de inversión, r es la taza anual de interes y t es el numero de años.Crea un programa que calcula el interés simple. Solicite al usuario el monto del capital de inversión, el porcentaje de la taza de interés y el tiempo en años de la inversión, después deberá calcular y mostrar el monto acumulado (capital + interés).

Ejemplo:


Entrada
Ingrese el monto principal de inversión: 1500
Ingrese la taza de interés anual: 4.3
Ingrese el numero de años: 4

Salida
Después de 4 años con una taza de interés al 4.3, el monto final acumulado
sera aproximadamente $1758.00

2. Escribe un programa para calcular el valor de una inversión con interés compuesto después de cierto tiempo. El programa debe solicitar el monto inicial, el número de años, la tasa de interés, y el número de períodos por año en que aplica.

La formula ha utilizar sera la siguiente: MontoFinal = P(1 + rn )^nt  donde:
P es el monto principal  r es la taza anual de interes t es el numero de años n es el numero de veces que el interés es aplicado por año.

Ejemplo:

Entrada:
Ingrese el monto de inversión:1500 
Ingrese la taza de interés anual: 4.3
Ingrese el numero de años: 6
Numero de veces por año que se aplica el interes
por año: 4

Salida
$1500.00 invertidos al 4.3% por 6 años, con un interés aplicado 4 veces al año sera aproximadamente $1938.90

II. Integre los programas anteriores en un programa que permita al usuario elegir entre el tipo de inversión que desea realizar para calcular el monto por intereses ya sea de tipo simple o compuesto, muestre al usuario un menú para que elija la opción deseada y solicite los datos pertinentes a cada caso.


Condiciones:
En cada programa deberá pedir al usuario ingresar el porcentaje de interés (por ejemplo 15 en vez .15)
Divida este numero entre 100 dentro del programa para realizar los cálculos.
Asegure que las cantidades en centavos sean redondeadas.
Formatee la salida en formato de moneda $0.00

Retos:

Valide que todas las entradas sean de tipo numérico y que el programa no permita al usuario continuar sin entradas validas.
En el caso de interés simple ademas de imprimir el monto final después del tiempo total de la inversión, imprima el monto después de cada año.
En el caso de interés compuesto, crea una versión del programa que funcione al revés para que pueda determinar la cantidad inicial que necesitarías invertir para alcanzar una cantidad final específica.





        

viernes, 22 de junio de 2018

Reto 003

Torneo de Fútbol:

En un torneo de fútbol participan k equipos. El torneo se juega con el sistema: “todos contra todos, sin revancha”. Por cada partido donde participa un equipo se dispone de la siguiente información:
* código de equipo (codEq) y
* código de resultado (“P” = perdido, “E” = empatado, “G”= ganado).

Se dispone de un lote de datos conteniendo todos los resultados del torneo, agrupados por codEq ingresados por el usuario.

1. Desarrollar el programa que imprima, por cada equipo, su código y el puntaje total que obtuvo considerando que suma 3 puntos por cada partido ganado y 1 punto por cada partido empatado.
2. Informar, al finalizar el ingreso de datos y sin discriminar por equipo,
cuántos partidos resultaron ganados, cuántos resultaron empatados y cuántos resultaron perdidos.
3. Validar la consistencia del lote de datos; esto es: la cantidad de partidos ganados (pg) debe ser igual a la cantidad de partidos perdidos (pp) y cualquiera de estas cantidades sumada a la cantidad de partidos empatados (pe) debe ser igual que k(k-1): 2pg+pe=k(k-1) y si los datos no son consistentes mostrar un mensaje al usuario.
4. Si el lote de datos es consistente calcular el porcentaje promedio de efectividad de cada equipo dividendo el total de puntos ganados entre el total de puntos jugados. 
5. Por ultimo guardar e imprimir el lote datos en un arreglo multidimensional incluyendo todos los datos listados anteriormente.

Ejemplo: 
Equipo:   PG    PE   PP  Puntaje     efectividad
   A           1        1     1       4                 44 %
   B           0        1     2       1                 11%
   C           2        0     1       6                 66%
   D           2        1     0       7                 78% 


  reto sacado de  ALGORITMOS Y ESTRUCTURA DE DATOS 2014 | ING. PABLO AUGUSTO SZNAJDLEDER

jueves, 14 de junio de 2018

Reto 002

Reto semanal Codecrafters 002.


Verifica Anagramas:


Crea un programa que compare dos cadenas y determine si ambas son anagramas. El programa deberá pedir al usuario que ingrese ambas cadenas y desplegar la salida de acuerdo al siguiente ejemplo:


Ingresa dos cadenas y te diré si son anagramas:
Ingresa la primer cadena: tono
Ingresa la segunda cadena: noto
"tono" y "noto" son anagramas.

Restricciones.

• Implementa el programa usando una función llamada esAnagrama,

 que tome las dos palabras como argumentos y
retorne un valor booleano (true o false). 
• Invocar esta función desde tu programa principal.
• Verifica que ambas palabras tengan la misma longitud.

Retos:

1. Completa este programa sin usar funciones predefinidas del lenguaje.

2. Usa estructuras lógicas de selección(if, else, switch.....) y/o repetición(while,do,for) en su lugar y desarrolla tu propio algoritmo.

PD: para mas ejemplos de prueba puedes ver el siguiente link: http://www.ejemplos.co/50-ejemplos-de-anagramas/


Reto sacado de Hogan P. Brian (2015) Exercises for Programmers Pagina 47, Copyright © 2015 The Pragmatic Programmers, LLC.

Traducción Gabriel Saavedra.

  


jueves, 7 de junio de 2018

Reto 001

Reto semanal CodeCrafters 001


Busca Dígitos.

Un numero entero  es un divisor de un entero  si el resto de .
Dado un numero entero, deberás determinar cuantos dígitos del numero son divisores del mismo entero.

Nota: cada dígito es considerado  único, entonces cada vez que aparezca el mismo dígito deberá ser contado si es que cumple con la condición de ser divisor. (Ejemplo: Para,   es un divisor de  cada una de las veces que aparece  Entonces la respuesta en este caso  es ).

Formato de entrada
La primera linea es un entero, , que indica el numero de casos de prueba.
Las t lineas siguientes contienen cada una, un numero entero, .
Formato de salida
Para cada caso de prueba, cuenta el numero de dígitos en  que sean divisores de n. imprime cada respuesta en una nueva linea.

Ejemplos:

Ejemplo de Entrada 0
2
12
1012 
Ejemplo de Salida  0
2
3
Ejemplo de Entrada 1
2
256
 978 
Ejemplo de Salida  1
1
0

*Reto sacado del sitio HackerRank: https://www.hackerrank.com/challenges/find-digits/problem 
traducción: Gabriel Saavedra.