Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Materia
1
4 CAPÍTULO 1. INTRODUCCIÓN A LA PROGRAMACIÓN
Capı́tulo 1 En principio, si una receta está suficientemente bien explicada, podrı́a permitir
preparar un plato a alguien que no sepa nada de cocina.
1.1 Algoritmos
La informática se trata de computadores tanto como la astronomı́a se trata
de telescopios. — Edsger Dijkstra.
3
6 CAPÍTULO 2. ALGORITMOS
La entrada del algoritmo, pues, son los valores a, b y c, y la salida son las
raı́ces reales x (que pueden ser cero, una o dos) de la ecuación. En un programa
computacional, los valores de a, b y c deberı́an ser ingresados usando el teclado,
Capı́tulo 2 y las soluciones x deberı́an ser mostradas a continuación en la pantalla.
Al estudiar álgebra aprendemos un algoritmo para resolver este problema.
Es lo suficientemente detallado para que pueda usarlo cualquier persona,
(incluso sin saber qué es una ecuación cuadrática) o para que lo pueda hacer
Algoritmos un computador. A continuación veremos algunas maneras de describir el
procedimiento.
Lenguaje natural
Un algoritmo es una secuencia de pasos para resolver un problema. Los
pasos deben estar muy bien definidos, y tienen que describir sin ambigüedades Durante el proceso mental de diseñar un algoritmo, es común pensar y
cómo llegar desde el inicio hasta el final. describir los pasos en la misma manera en que hablamos a diario. Por ejemplo:
El proceso es una secuencia de sentencias, que debe ser realizada en orden. impreciso: puede tener ambigüedades;
El proceso también puede tener ciclos (grupos de sentencias que son ejecutadas
varias veces) y condicionales (grupos de sentencias que sólo son ejecutadas no universal: personas distintas describirán el proceso de maneras distintas; y
bajo ciertas condiciones).
no estructurado: la descripción no está expresada en función de componentes
simples.
2.2 Cómo describir un algoritmo
Aún ası́, es posible identificar los pasos del algoritmo. Por ejemplo, hay
Consideremos un ejemplo sencillo: un algoritmo para resolver ecuaciones que evaluar la expresión b2 − 4ac, y ponerle el nombre ∆ a su resultado. Esto
cuadráticas. se llama asignación, y es un tipo de instrucción que aparece en casi todos los
Una ecuación cuadrática es una ecuación de la forma ax2 + bx + c = 0, algoritmos. Después de eso, el algoritmo puede usar el nombre ∆ para referirse
donde a, b y c son datos dados, con a 6= 0, y x es la incógnita cuyo valor que se al valor calculado.
desea determinar.
Por ejemplo, 2x2 − 5x + 2 = 0 es una ecuación cuadrática con a = 2, b = −5
Diagrama de flujo
y c = 2. Sus soluciones son x1 = 1/2 y x2 = 2, como se puede comprobar
fácilmente al reemplazar estos valores en la ecuación. El problema es cómo Un diagrama de flujo es una representación gráfica de un algoritmo. Los
obtener estos valores en primer lugar. pasos son representados por varios tipos de bloques, y el flujo de ejecución
El problema computacional de resolver una ecuación cuadrática puede ser es indicado por flechas que conectan los bloques, tal como se muestra en la
planteado ası́: figura 2.1.
5
2.2. CÓMO DESCRIBIR UN ALGORITMO 7 8 CAPÍTULO 2. ALGORITMOS
leer a
leer b
leer c
discriminante = b2 − 4ac
∆ = b2 − 4ac o si no: √
x1 = (−b − √discriminante)/2a
x2 = (−b + discriminante)/2a
sı́
¿∆ < 0? escribir “La primera solución real es:”, x1
escribir “La segunda solución real es:”, x2
no
Código
El producto final de la programación siempre debe ser código que pueda
ser ejecutado en el computador. Esto requiere describir los algoritmos en un
lenguaje de programación. Los lenguajes de programación definen un conjun-
to limitado de conceptos básicos, en función de los cuales uno puede expresar
cualquier algoritmo.
En esta asignatura, usaremos el lenguaje de programación Python para
escribir nuestros programas.
El código en Python para resolver la ecuación cuadrática es el siguiente:
a = float(raw_input('Ingrese a: '))
b = float(raw_input('Ingrese b: '))
c = float(raw_input('Ingrese c: '))
discriminante = b ** 2 - 4 * a * c
if discriminante < 0:
print 'La ecuacion no tiene soluciones reales'
elif discriminante == 0:
x = -b / (2 * a)
print 'La solucion unica es x =', x
else:
x1 = (-b - (discriminante ** 0.5)) / (2 * a)
x2 = (-b + (discriminante ** 0.5)) / (2 * a)
print 'Las dos soluciones reales son:'
print 'x1 =', x1
print 'x2 =', x2
raw_input()
A partir de ahora, usted aprenderá a entender, escribir y ejecutar códigos
como éste.