Sei sulla pagina 1di 7

Politécnico Colombiano Jaime Isaza Cadavid– Fundamentos de Programación 1

CONCEPTO DE ALGORITMO
El objetivo fundamental de este curso es enseñar a resolver problemas mediante un computador.
El programador de computadores es antes que nada una persona que resuelve problemas, por lo
que para llegar a ser un programador eficaz se necesita aprender a resolver problemas de un
modo riguroso y sistemático. A lo largo de todo el curso nos referiremos a la metodología
necesaria para resolver problemas mediante programas, concepto que se denomina metodología
de la programación. El eje central de esta metodología es el concepto de algoritmo.

Un algoritmo es un método para resolver un problema. Aunque la popularización del termino ha


llegado con el advenimiento de la era informática, algoritmo proviene de Mohammed al-
KhoWârizmi, matemático persa que vivió durante el siglo IX y alcanzó gran reputación por el
enunciado de las reglas paso a paso para sumar, restar, multiplicar y dividir números decimales; la
traducción al latín del apellido en la palabra algorismus derivó posteriormente en algoritmo.
Euclides, el gran matemático griego (del siglo IV a.C.) que inventó un método para encontrar el
máximo común divisor de dos números, se considera con Al-Khowarizmi el otro gran padre de la
algoritmia (ciencia que trata de los algoritmos).

El profesor Niklaus Wirth —inventor de Pascal, Modula-2 y Oberon— tituló uno de sus mas
famosos libros, Algoritmos + Estructuras de datos = Programas, indicando que solo se puede
llegar a realizar un buen programa con el diseñoo de un algoritmo y una correcta estructura de
datos. Esta ecuación será una de las hipótesis fundamentales consideradas en este curso.

Para llegar a la realización de un programa es necesario el diseño previo de un algoritmo, de


modo que sin algoritmo no puede existir un programa.

Los algoritmos son independientes tanto del lenguaje de programación en que se expresan como
de la computadora que los ejecuta. En cada problema el algoritmo se puede expresar en un
lenguaje diferente de programación y ejecutarse en una computadora distinta; sin embargo, el
algoritmo será siempre el mismo. Así, por ejemplo, en una analogía con la vida diaria, una receta
de un plato de cocina se puede expresar en español, ingles o francés, pero cualquiera que sea el
lenguaje, los pasos para la elaboración del plato se realizaran sin importar el idioma del cocinero.

En la ciencia de la computación y en la programación, los algoritmos son más importantes que los
lenguajes de programación o las computadoras. Un lenguaje de programación es tan solo un
medio para expresar un algoritmo y una computadora es solo un procesador para ejecutarlo. Tanto
el lenguaje de programación como la computadora son los medios para obtener un fin: conseguir
que el algoritmo se ejecute y se efectué el proceso correspondiente.

Dada la importancia del algoritmo en la ciencia de la computación, un aspecto muy importante


será el diseño de algoritmos.

El diseño de la mayoría de los algoritmos requiere creatividad y conocimientos de las técnicas de


programación. En esencia, la solución de un problema se puede expresar mediante un algoritmo.

Algoritmo: Formalmente se define un algoritmo como un conjunto de pasos, procedimientos o


acciones que nos permiten alcanzar un resultado o resolver un problema.
Politécnico Colombiano Jaime Isaza Cadavid– Fundamentos de Programación 2

Muchas veces se aplican algoritmos de manera inadvertida, inconsciente o automáticamente.


Esto generalmente se produce cuando el problema al que nos enfrentamos se ha resuelto con
anterioridad varias veces.

Características de los algoritmos.

Las características fundamentales que debe cumplir todo algoritmo son:

• Un algoritmo debe ser preciso e indicar el orden de realización de cada paso.


• Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el
mismo resultado cada vez.
• Un algoritmo debe ser finito. Si se sigue un algoritmo, se debe terminar en algún momento;
o sea, debe tener un número finito de pasos.

La definición de un algoritmo debe incluir tres partes : Entrada, Proceso y Salida. En el ejemplo
de una receta de cocina:

Entrada : Ingredientes y utensilios empleados.


Proceso: elaboración de la receta en la cocina.
Salida : Terminación del plato (por ejemplo, "Pato a la Naranja")

La resolución de un problema exige el diseño de un algoritmo que resuelva el problema propuesto.

METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS POR MEDIO DE COMPUTADORA

DEFINICIÓN DEL PROBLEMA

Esta fase está dada por el enunciado del problema, el cual requiere una definición clara y precisa.
Es importante que se conozca lo que se desea que realice la computadora; mientras esto no se
conozca del todo no tiene mucho caso continuar con la siguiente etapa.

ANÁLISIS DEL PROBLEMA

Una vez que se ha comprendido lo que se desea de la computadora, es necesario definir:

Modelamiento. Esta compuesto por los diferentes datos que se pueden presentar y sus
respectivas variables ejemplo:

Datos de entrada.

Datos Auxiliares

Datos de Salida. Corresponde a la información que se desea producir

Precondiciones. Corresponde a las especificaciones de las variables de entrada y auxiliare

Postcondiciones. Corresponde las especificaciones de las variables de salida, Los métodos y


fórmulas que se necesitan para procesar los datos.
Politécnico Colombiano Jaime Isaza Cadavid– Fundamentos de Programación 3

Una recomendación muy practica es el que nos pongamos en el lugar de la computadora y


analicemos que es lo que necesitamos que nos ordenen y en que secuencia para producir los
resultados esperados.

Diseño del Algoritmo

Las características de un buen algoritmo son:

Debe tener un punto particular de inicio.


Debe ser definido, no debe permitir dobles interpretaciones.
Debe ser general, es decir, soportar la mayoría de las variantes que se puedan presentar en la
definición del problema.
Debe ser finito en tamaño y tiempo de ejecución.
Tipos De Datos

Todos los datos tienen un tipo asociado con ellos. Un dato puede ser un simple carácter, tal como
‘b’, un valor entero tal como 35. El tipo de dato determina la naturaleza del conjunto de valores que
puede tomar una variable.

Pseudocódigo

Es la herramienta de programación para la representación no gráfica de algoritmos donde las


instrucciones se escriben en palabras similares al lenguaje natural, facilitando así la escritura
como la lectura de programas. Aunque no existen reglas para la escritura de un pseudocódigo en
español hay una serie de notación estándar que utilizaremos durante el curso y que ya está muy
empleada por algunos libros. Las palabras reservadas básicas se representarán en letra negrita.

Sintaxis General

algoritmo_<nombre>
var.
Entero : <lista de variables enteras>
Real : <lista de variables enteras>
Cadena : <lista de variables enteras>
Carácter: <lista de variables enteras>
Logica : <lista de variables enteras>

Inicio

Diferentes estructuras

Fin

• Donde <nombre> corresponde al nombre que se le asigna a la solución (lo escoge el


usuario).
• En var solo se enumeran los tipos de variables que hayan resultado en el análisis
Politécnico Colombiano Jaime Isaza Cadavid– Fundamentos de Programación 4

• Entre inicio y fin iran las diferentes estructuras que se van trabajando, las cuales pueden
ser:
o Secuenciales
o Selectivas
o Cíclicas

Estructuras Secuenciales

La estructura secuencial es aquella en la que una acción (instrucción) sigue a otra en secuencia.
Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y así
sucesivamente hasta el fin del proceso. Una estructura secuencial se representa de la siguiente
forma:

Inicio
Accion1
Accion2
.
.
AcciónN
Fin

- Asignación: La asignación consiste, en el paso de valores o resultados a una zona de la


memoria. Dicha zona será reconocida con el nombre de la variable que recibe el valor. La
asignación se puede clasificar de la siguiente forma: ←

• Simples: Consiste en pasar un valor constate a una variable (a ← 15)


• Contador: Consiste en usarla como un verificador del numero de veces que se realiza
un proceso (a ← a + 1)
• Acumulador: Consiste en usarla como un sumador en un proceso (a ← a + b)
• De trabajo: Donde puede recibir el resultado de una operación matemática que
involucre muchas variables (a ← c + b * 2 / 4).
+
- Lectura: La lectura consiste en recibir desde un dispositivo de entrada (p.ej. el teclado) un valor.
Esta operación se representa en un Pseudocódigo como sigue:

Leer (a, b)

Donde “a” y “b” son las variables que recibirán los valores

- Escritura: Consiste en mandar por un dispositivo de salida (peje. monitor o impresora) un


resultado o mensaje. Este proceso se representa en un Pseudocódigo como sigue:

Imprimir (“El resultado es:”, R)

Donde “El resultado es:” es un mensaje que se desea aparezca y R es una variable que contiene
un valor.
Politécnico Colombiano Jaime Isaza Cadavid– Fundamentos de Programación 5

Ejemplo

Calcular la nota definitiva a partir de tres notas parciales que tienen igual porcentaje

Algoritmo_Nota

Var
Real : Nota_1, Nota_2, Nota_3, Def

Inicio

Leer (Nota_1, Nota_2, Nota_3)


Def ← (Nota_1 + Nota_2 + Nota_3) / 3
Imprimir (Def)
Fin

Problemas Secuenciales

1) Suponga que un individuo desea invertir su capital en un banco y desea saber cuanto dinero
ganara después de un mes si el banco paga a razón de 2% mensual.

2) Un vendedor recibe un sueldo base mas un 10% extra por comisión de sus ventas, el vendedor
desea saber cuanto dinero obtendrá por concepto de comisiones por las tres ventas que realiza en
el mes y el total que recibirá en el mes tomando en cuenta su sueldo base y comisiones.

3) Una tienda ofrece un descuento del 15% sobre el total de la compra y un cliente desea saber
cuanto deberá pagar finalmente por su compra.

4) Un alumno desea saber cual será su calificación final en la materia de Algoritmos. Dicha
calificación se compone de los siguientes porcentajes:

55% del promedio de sus tres calificaciones parciales.


30% de la calificación del examen final.
15% de la calificación de un trabajo final.

5) Un maestro desea saber que porcentaje de hombres y que porcentaje de mujeres hay en un
grupo de estudiantes.

6) Realizar un algoritmo que calcule la edad de una persona.

Problemas Propuestos

1) Dada un cantidad en pesos, obtener la equivalencia en dólares, asumiendo que la unidad


cambiaría es un dato desconocido.

2) Leer un numero y escribir el valor absoluto del mismo.

3) La presión, el volumen y la temperatura de una masa de aire se relacionan por la formula:


Politécnico Colombiano Jaime Isaza Cadavid– Fundamentos de Programación 6

masa ← (presión * volumen)/(0.37 * (temperatura + 460))

4) Calcular el numero de pulsaciones que una persona debe tener por cada 10 segundos de
ejercicio, si la formula es:

num. pulsaciones ← (220 - edad)/10

5) Calcular el nuevo salario de un obrero si obtuvo un incremento del 25% sobre su salario
anterior.

6) En un hospital existen tres áreas: Ginecología, Pediatría, Traumatología. El presupuesto anual


del hospital se reparte conforme a la siguiente tabla:

Área Porcentaje del presupuesto


Ginecología 40%
Traumatologia 30%
Pediatría 30%

Obtener la cantidad de dinero que recibirá cada área, para cualquier monto presupuestal.

7) El dueño de una tienda compra un articulo a un precio determinado. Obtener el precio en que
lo debe vender para obtener una ganancia del 30%.

8) Todos los lunes, miércoles y viernes, una persona corre la misma ruta y cronometra los
tiempos obtenidos. Determinar el tiempo promedio que la persona tarda en recorrer la ruta en
una semana cualquiera.

9) Tres personas deciden invertir su dinero para fundar una empresa. Cada una de ellas invierte
una cantidad distinta. Obtener el porcentaje que cada quien invierte con respecto a la cantidad
total invertida.

10)Un alumno desea saber cual será su promedio general en las tres materias mas difíciles que
cursa y cual será el promedio que obtendrá en cada una de ellas. Estas materias se evalúan
como se muestra a continuación:

La calificación de Matemáticas se obtiene de la sig. manera:


Examen 90%
Promedio de tareas 10%
En esta materia se pidió un total de tres tareas.

La calificación de Física se obtiene de la sig. manera:


Examen 80%
Promedio de tareas 20%
En esta materia se pidió un total de dos tareas.

La calificación de Química se obtiene de la sig. manera:


Examen 85%
Promedio de tareas 15%
Politécnico Colombiano Jaime Isaza Cadavid– Fundamentos de Programación 7

En esta materia se pidió un promedio de tres tareas.

Potrebbero piacerti anche