Está en la página 1de 5

1.

Desarrolla los siguientes planteamientos:

¿Qué es un algoritmo?

R. Un algoritmo es cualquier procedimiento computacional definido con


precisión que toma uno o mas valores de entrada y produce uno o mas
valores de salida.

Los algoritmos sirven para resolver problemas lógico-matemáticos y ciertas


situaciones del mundo real, mediante el procesamiento de los datos
generados al analizar dichos problemas.

Señala sus cualidades y características principales.

Preciso: se define el orden de los pasos o etapas de resolución de tal forma


que al seguir ese patrón se obtengan los datos de salida correctos.

Definido: esto significa que el algoritmo deberá de arrojar un mismo


resultado cada vez que este procese la misma entrada. Además, un mismo
algoritmo deberá de arrojar un resultado correcto sin importar las
variaciones en los valores de sus datos de entrada.

Finito: Un algoritmo deberá de tener un concreto numero de pasos sin caer


en la repetición indefinida de uno o mas de estos.

Describe tres ejemplos de algoritmos conocidos.

a) Cálculo de la factorial de un numero entero:

La factorial de un numero entero n se obtiene multiplicando el valor de n por


cada uno de los los números que le preceden y que sean mayores a 1.

Por ejemplo, si deseamos multiplicar la factorial del numero 4 (que se


representa en notación matemática como 4!), debemos de realizar el
siguiente calculo.

4! = 4 x 3 x 2 = 8

Aplicando el proceso anterior, para obtener una aplicación que pida al


usuario ingresar un numero entero, calcule su factorial y muestre el
resultado al usuario, podemos definir el siguiente algoritmo en seudocódigo:

Algoritmo factorial de n

1. Inicio.
2. Pedir al usuario ingrese un numero entero
3. Definir una variable llamada n
4. Leer entrada del usuario y almacenarla en n
5. Definir variable i que servirá como contador de ciclo.
6. Definir variable factorial, para almacenar el resultado.
7. Asignar a la variable factorial el valor de n
8. Desde i igual a n-1 hasta i igual a 2
a. Calcular factorial = factorial * i
b. Disminuir el valor de i en una unidad.
9. Imprimir “la factorial de n es igual a factorial”
10. Terminar.

b) Definir si un numero de año corresponde a un año bisiesto.

Un año bisiesto es aquel que tiene un día extra (es decir 366).
Para saber que números de año corresponden con años bisiestos estos
deben cumplir con alguna de las siguientes condiciones:

 Un año es bisiesto cuando al dividir su valor entre 4 se obtiene un


resto igual a 0 y al dividirlo entre 100 se obtiene un resto distinto de
cero.
 Otro caso en que un año resulta bisiesto es que al dividir su valor
entre 400 obtenemos un resto de 0.

Entonces, siguiendo estas reglas, podemos definir un algoritmo que pida al


usuario ingrese un numero de año en formato de 4 digitos y determine si se
trata de un año bisiesto o no.

Algoritmo Año Bisiesto.

1. Iniciar.
2. Declarar variable entera año, que almacenara el numero de año.
3. Declarar variable booleana EsBisiesto e inicializarla en false.
4. Pedir al usuario ingresar el numero de año en formato de 4 dígitos.
5. Leer el valor ingresado y asignarlo a la variable año
6. Si año es divisible por 400 (año % 400 = 0), entonces:
6.1 Asignar a la variable EsBisiesto el valor true.
7. Sino si año es divisible por 100 y también es divisible por 4
7.1 Asignar a la variable EsBisiesto el valor true.
8. Si el valor de EsBisiesto es igual true, entonces
8.1 Imprimir “El año de “ año “ si es bisiesto”
9. sino imprimir “El año de “ año “ no es bisiesto”
10 Terminar.
c) Calcular el porcentaje equivalente sobre un total

Para calcular el porcentaje equivalente de una cantidad parcial respecto a


un total es necesario realizar el siguiente calculo.

Porcentaje = cantidad / total * 100.

Aplicando esto a un programa que calcule el porcentaje de alumnos


reprobados y reprobados en una clase de n estudiantes, donde la
calificación aprobatoria es mayor o igual a 60 en una escala de 0 a 100,
podemos definir el siguiente algoritmo.

Algoritmo calculo de porcentajes de alumnos aprobados y reprobados

1. Iniciar.
2. Declarar variable cantAlumnos, que almacenara el numero de alumnos
en la clase.
3. Declarar variable entera como contador llamada Aprobados e
inicializarla a cero.
4. Declarar variable entera como contador llamada Reprobados e
inicializarla a cero.
5. Declarar variable llamada i como contador de ciclo
6. Desde i hasta n
a. Pedir al usuario ingrese el valor de la la i-esima calificación.
b. Asignar valor ingresado a variable calificación.
c. Si valor de calificación es mayor o igual a 60
i. Aumentar en 1 el valor de la variable Aprobados.
d. Sino si valor de calificacion es menor a 60
i. Aumentar en 1 el valor de la variable Reprobados.
7. Declarar las variables de tipo real porcentajeAprobados y
porcentajeReprobados.
8. Calcular porcentajeAprobados = (Aprobados/cantAlumnos)*100
asignando el resultado.
9. Calcular porcentajeReprobados = (Aprobados/cantAlumnos)*100
asignando el resultado.
10. Imprimir “El porcentaje de aprobados es “porcentajeAprobados”%”
11. Imprimir “El porcentaje de reprobados es “porcentajeReprobados”%”
12. Terminar.

Existe una amplia variedad de tipos de problemas en los cuales se pueden


aplicar algoritmos, por ejemplo:

Aplicaciones financieras: Existen miles de aplicaciones de algoritmos en


sistemas que realizan el tratamiento de información financiera como:
sistemas de control de nominas, registros de ingresos y egresos, calcular
graficas de tendencias en mercados, entre muchas otras aplicaciones.
Aplicaciones de algoritmos genéticos: Los algoritmos genéticos son
empleados en el modelado de estructuras moleculares a través de
algoritmos de optimización numérica, principalmente en los campos de la
química y la biología. Gracias al crecimiento exponencial en la velocidad de
procesamiento de los equipos informáticos, ha acelerado el resultado de
investigaciones en estos campos.

Aplicaciones en logística y transporte: Existen algoritmos para resolver


problemas de movilidad de personas y mercancías, el principal ejemplo es
el sistema de posicionamiento global (GPS por sus siglas en inglés), que
permiten el rastreo del medio de transportación en tiempo real, calculando
en tiempo real la ruta más optima de movilidad disminuyendo los tiempos
de traslado.

¿Qué es una estructura de datos?

R. Es un grupo de datos integrado por tipos de datos de primitivos o


incluso otras estructuras de datos que comparten ciertas
propiedades.

Existen estructuras de composición homogéneas (datos del mismo


tipo) y heterogéneas (de tipos diversos).
Además, existen estructuras de datos que poseen como uno o mas
de sus elementos a otra estructura de datos, a esto le llamamos
anidamiento de estructuras.

Como ejemplos de estructuras de datos tenemos:

1. Arreglos: estructuras de datos primitivos, homogéneas y de


tamaño fijo que representan valores con relaciones compartidas.
2. Pilas: Una estructura lineal de datos a la cual se le pueden
añadir o quitar datos solo por sus extremos, por lo cual sus
elementos solo pueden ser eliminados en el orden inverso en el
cual se ingresaron, debido a esto las pilas se les conocen como
estructuras LIFO (Last-Input, First-Output)
3. Colas: Estructura lineal en la que cada nuevo elemento se
posiciona por un lado y los existentes se eliminan por el otro. Es
decir, el orden de eliminación va desde el primero que entro en la
lista. Por ello en este caso las colas son conocidas como
estructuras FIFO(First-in,First-Output).

Cada una de estas estructuras pueden ser implementadas forma dinámica


estática y nativa.
Las estructuras de implementación estática son aquellas que se definición
con una capacidad de almacenamiento que no varia a lo largo de la
ejecución del programa.
Las estructuras dinámicas se implementan de manera que su capacidad de
almacenamiento varíe de acuerdo con la cantidad de valores que son
almacenados en memoria.

Las estructuras de implementación nativas son propias de los lenguajes


orientados a objetos, donde existen bibliotecas de clases de estas y pueden
gestionar la memoria de manera estática o dinámica.

¿Qué es un tipo de dato abstracto?

Un tipo de dato cuya representación y las operaciones que se hacen sobre


estas son definidas por el programador tomando como base los tipos de
datos primitivos propios del lenguaje de programación.

Un ejemplo de este tipo de estructuras es una lista enlazada que es un


conjunto de datos cuyo almacenamiento en memoria no es continuo, por lo
que para hacer referencia a cada uno de sus elementos se emplean
punteros a direcciones en memoria.

A continuación, vemos algunas imágenes que ejemplifican este concepto

También podría gustarte