Introducción a los algoritmos
Programa que permite resolver la ecuación de primer grado 
5 
Programa 
que permite 
resolver la 
ecuación de 
primer grado 
a x + b = 0 
? 
a 
b 
x = -b / a 
#include <stdio.h> 
int a,b,x; 
main() 
{ 
printf(“Ingrese valores de EC”); 
scanf(“%d %d”,&a,&b); 
if a ==0 printf (“error”); 
else 
{ 
x = -b / a; 
printf(“La solución es %d:”,x); 
} 
printf(“Fin programa”); 
} 
Algoritmo EC 1er Grado 
Variables 
a,b,x de tipo entero 
Inicio 
Escribir(“Ingrese valores de EC”) 
Leer (a,b) 
Si a = 0 entonces 
escribir (“Error”) 
sino 
Inicio 
x=-b/a 
Escribir (“La solución es:”,x) 
Fin 
Escribir(“Fin programa”) 
Fin
 Entender el problema 
 Conceptualización 
 Objetivo 
 Contexto 
 Buscar soluciones 
 Elegir solución 
 Diseñar solución 
 Descomposición 
 Especificar tareas 
 Modelar solución 
 Implementar solución 
 Validar solución 
8
 Es una situación concreta sobre la cual se quiere 
implementar una solución (ejemplos) 
 Solución: procedimiento que nos lleva a satisfacer ciertos 
requerimientos 
 Esquema básico para la resolución de un problema a través 
de un programa con un enfoque sistémico 
9 
Entrada Salida 
Proceso 
•Datos Externos 
•Datos auto generados 
•Lectura de dispositivo de 
almacenamiento 
•Informes 
•Datos para otro programa 
•Datos grabados en 
dispositivos externos de 
almacenamiento
 Datos: objetos simbólicos que representan 
objetos del mundo real. 
 Ejemplos: 28 de Noviembre de 2014, 3.14 
 Variables: no hace referencia a un objeto 
explícito 
 Ejemplos: velocidad del móvil, factor de crecimiento 
10
 Procedimiento detallado para resolver un 
problema en pasos y en un tiempo finito. 
 Se especifican en base a operaciones básicas 
que controlan las variables y el flujo del 
algoritmo 
 El algoritmo lleva desde un estado inicial a un 
estado final 
 El algoritmo recibe Entradas y entrega Salidas 
11
 Imaginación 
 No reinventar la rueda 
 Dividir para conquistar 
 Para ser efectivo se requiere practicar 
constantemente 
 El diseño de algoritmos es una rama de la 
Ciencia de la Computación 
12
 Lenguaje natural 
 Pseudo código 
 Lenguaje de programación 
 La precisión es importante 
 Un algoritmo no puede ser descrito de forma 
ambigua: 
 Todos tienen que entender lo mismo (incluido el 
computador!) 
13
 Se desea conceptualizar el 
problema de efectuar una 
llamada telefónica en un 
teléfono público que recibe 
monedas de $10, $50 y $100. 
El costo mínimo de la llamada 
es de $100 por 5 minutos. El 
proceso se inicia desde que se 
levanta el auricular y finaliza 
cuando se cuelga. 
14
Estratégia: Dividir para conquistar 
Dividir el problema en subproblemas 
En la resolución de un problema complejo, se divide en 
varios sub problemas y seguidamente se vuelven a 
dividir los sub problemas en otros mas sencillos, 
hasta que puedan implementarse en el computador.

TAREA

  • 1.
  • 5.
    Programa que permiteresolver la ecuación de primer grado 5 Programa que permite resolver la ecuación de primer grado a x + b = 0 ? a b x = -b / a #include <stdio.h> int a,b,x; main() { printf(“Ingrese valores de EC”); scanf(“%d %d”,&a,&b); if a ==0 printf (“error”); else { x = -b / a; printf(“La solución es %d:”,x); } printf(“Fin programa”); } Algoritmo EC 1er Grado Variables a,b,x de tipo entero Inicio Escribir(“Ingrese valores de EC”) Leer (a,b) Si a = 0 entonces escribir (“Error”) sino Inicio x=-b/a Escribir (“La solución es:”,x) Fin Escribir(“Fin programa”) Fin
  • 8.
     Entender elproblema  Conceptualización  Objetivo  Contexto  Buscar soluciones  Elegir solución  Diseñar solución  Descomposición  Especificar tareas  Modelar solución  Implementar solución  Validar solución 8
  • 9.
     Es unasituación concreta sobre la cual se quiere implementar una solución (ejemplos)  Solución: procedimiento que nos lleva a satisfacer ciertos requerimientos  Esquema básico para la resolución de un problema a través de un programa con un enfoque sistémico 9 Entrada Salida Proceso •Datos Externos •Datos auto generados •Lectura de dispositivo de almacenamiento •Informes •Datos para otro programa •Datos grabados en dispositivos externos de almacenamiento
  • 10.
     Datos: objetossimbólicos que representan objetos del mundo real.  Ejemplos: 28 de Noviembre de 2014, 3.14  Variables: no hace referencia a un objeto explícito  Ejemplos: velocidad del móvil, factor de crecimiento 10
  • 11.
     Procedimiento detalladopara resolver un problema en pasos y en un tiempo finito.  Se especifican en base a operaciones básicas que controlan las variables y el flujo del algoritmo  El algoritmo lleva desde un estado inicial a un estado final  El algoritmo recibe Entradas y entrega Salidas 11
  • 12.
     Imaginación No reinventar la rueda  Dividir para conquistar  Para ser efectivo se requiere practicar constantemente  El diseño de algoritmos es una rama de la Ciencia de la Computación 12
  • 13.
     Lenguaje natural  Pseudo código  Lenguaje de programación  La precisión es importante  Un algoritmo no puede ser descrito de forma ambigua:  Todos tienen que entender lo mismo (incluido el computador!) 13
  • 14.
     Se deseaconceptualizar el problema de efectuar una llamada telefónica en un teléfono público que recibe monedas de $10, $50 y $100. El costo mínimo de la llamada es de $100 por 5 minutos. El proceso se inicia desde que se levanta el auricular y finaliza cuando se cuelga. 14
  • 15.
    Estratégia: Dividir paraconquistar Dividir el problema en subproblemas En la resolución de un problema complejo, se divide en varios sub problemas y seguidamente se vuelven a dividir los sub problemas en otros mas sencillos, hasta que puedan implementarse en el computador.