You are on page 1of 16

Toda la teoría explicada en clase

1 Solución de problemas.
Las cuatro etapas de la resolución de problemas con una computadora se dan a continuación: 1. Entender el problema: un modo de manejar un problema es la de imaginar el tipo de salida que debe producirse para distintas entradas posibles. Después determinar el tipo de proceso necesario para convertir la entrada en salida. 2. 3. Encontrar un método de solución : esto es, diseñar un algoritmo que le permita definir los pasos que llevarán a la solución del problema. Traducir el método a código de computadora: este paso es generalmente sencillo cuando se ha concretado un método paso a paso y se conoce la sintaxis del lenguaje de programación. Probar y depurar: si la ejecución del programa no es la correcta, se deben encontrar y corregir los errores que contenga. Este proceso se llama depuración. Posteriormente debe ejecutarse el programa con una amplia variedad de entradas para verificar que la lógica del programa esté correcta.

4.

2 Algoritmo
Definición de Algoritmo.
La palabra algoritmo proviene del nombre del matemático islámico Abu Jafar Muhamed ibn Musä al Khwàrizm quien murió en el año 847 A.C.

Un algoritmo para un problema es una secuencia de pasos a seguir, no ambiguos, finitos y determinísticos que llevan a la solución de un problema,

Para poder elaborar un algoritmo, es necesario recordar las siguientes observaciones:

1. El algoritmo debe escribirse como una expresión en algún lenguaje: ♦ ♦ Descripción narrada Notación matemática

Cualquiera que sean los valores de las entradas. Descripción Narrada. La computadora simplemente llevará a cabo paso a paso la lista de las instrucciones formuladas en el programa del usuario. Por ejemplo. Los símbolos más utilizados son los siguientes: .♦ ♦ ♦ Pseudocódigo Diagramas de flujo Lenguaje de computadora. 3 Técnicas para la descripción de algoritmos. la ejecución terminará después de algún número finito de pasos. Se utiliza el lenguaje natural ya sea hablado o escrito. debe diseñar un método adecuado para la solución. la receta para hacer un pastel. Por ello. Exactamente cada pregunta del problema debe ser contestada por la ejecución del algoritmo. 2. Diagramas de flujo: en ésta técnica se utilizan símbolos que representan cada paso de los algoritmos. el usuario y no la computadora. 1. 3. 3. Notación matemática: se expresa mediante fórmulas matemáticas que determinarán las salidas del problema. para que una computadora pueda resolver un problema concreto. 2.

Por ello. debemos evitar escribir .OBSERVACIONES: a) Es importante conservar los diagramas de flujo lo más sencillo posible. y apoyarse en el significado de la simbología.

Conforme aumenta la complejidad del programa. también será más compleja la forma en que se almacenan estos datos. .demasiado texto dentro de cada uno de los símbolos. b) Para un buen estilo de diseño del algoritmo. relacionales o lógicas según sea el caso. y en su lugar. si) Asignarle nombres coherentes a las variables. para ayudar la traducción posterior al lenguaje de programación deseado. Pseudocódigo: es un lenguaje informal para la descripción de algoritmos. de acuerdo con lo que representan y según el contexto del problema. es decir. De esta forma. debido a que es muy flexible y depende del estilo del programador. ni en el símbolo de proceso se pueden incluir operadores relacionales ni lógicos. 4. es necesario conservar la verticalidad del diagrama. 4 Tipos de datos. mientras. Una de las tareas principales de la computadora es almacenar y procesar datos. Para hacer esto. Para ello se deben tomar en cuenta las siguientes reglas: ♦ ♦ ♦ ♦ Los comentarios se denotan con /* */ Se utilizan las estructuras de control de flujo (para. en el símbolo condicional. un programa utiliza estructuras de datos. no deben incluirse asignaciones. Toma características de un lenguaje de programación y de los procesos matemáticos para detallar el problema. y en general. c) Es muy importante utilizar los símbolos adecuados para cada operación a realizar. sin inventar conexiones diferentes a las establecidas. Delimitar el inicio y fin del algoritmo y de las estructuras de control de flujo. formas para almacenar los diferentes datos que van a ser procesados. utilizar sólo el identificador de la variable y las expresiones aritméticas.

$. y el tipo de valor que puede ser almacenado en ella será determinado por el programador al momento de declarar la variable. @. el cual debe construirse de acuerdo con las siguientes reglas. el valor en dicha casilla cambiará tantas veces lo necesite en el programa. seguida de letras. los operadores más frecuentes se clasifican de la siguiente forma: . Se toma como referencia de longitud máxima de 8 caracteres (aunque algunos lenguajes aceptan hasta 127) 5. en cambio. etc. No se pueden utilizar espacios en blanco 3. Aunque el número y tipo de operadores depende del lenguaje de programación que se esté utilizando. inicio del programa. Para una variable.La forma más sencilla de almacenar datos en un programa es mediante el uso de variables y constantes. %. en donde el valor será determinado por el programa. No se puede utilizar ningún otro símbolo como #. 1. al. 2. La posición en memoria puede ser vista como una casilla de memoria. ya sean constantes o variables. *. 4. números o el carácter "_". Un programa asigna una posición de memoria a cada variable o constante que sea declarada en el programa. para una constante. El identificador debe empezar con una letra. su valor es fijado una vez. A toda variable o constante se le asigna un nombre o identificador. El identificador debe tener relación con el problema. y no puede cambiar durante el transcurso de éste. 5 Operadores Los operadores nos permiten realizar operaciones aritméticas entre los datos. /.

Operadores lógicos. negación) && (and.1. == Se hace una distinción con el operador de igualdad. !=. y el resultado será el residuo de una división entera. o) Para resolver expresiones con operadores lógicos. equivale a decir "a la variable x se le asigna el mismo valor que tiene y " 3. Operadores aritméticos. <=. || (or. Así se tiene x == y se traduce como "¿es x igual a y?. 2. conocidas como tablas de verdad: x ! (NOT) Falso Verdadero Verdadero Falso x y && (AND) Falso Falso Falso Falso Verdadero Falso Verdadero Falso Falso Verdadero Verdadero Verdadero x Falso y Falso II (OR) Falso .*.-. y). Los cuales son: ! (not. Operadores de relación Los cuales son: >. >=. / y el mod. o módulo de la división. <. El mod se lee como módulo de la división. en tanto que x=y. que no es el mismo de asignación: ==. se utilizan las siguientes tablas. Los cuales son: +. El operador mod sólo se aplica a operandos tipo entero.

>=. mod <.Falso Verdadero Verdadero Verdadero Falso Verdadero Verdadero Verdadero Verdadero 4.. ! (Not. /. !=.(Resta) && (AND) || (OR) = 2. negación) () Paréntesis *. <=. Los operadores aritméticos se aplican teniendo en cuenta su jerarquía (precedencia) y de izquierda a derecha. el único operador de asignación es: = Las reglas para resolver una expresión aritmética son las siguientes: 1. . La jerarquía se muestra a continuación: - (Unario).+. Operadores de Asignación Por el momento. >. respetando la jerarquía de operadores en esta. Si una expresión contiene paréntesis. se evalúa primero la subexpresión entre paréntesis. ==.

Cuídate de no cambiarles nombre.6 Reglas para la elaboración de algoritmos. ya sea por que se le solicita como entrada o por que se le asigna dentro del algoritmo. ==. !=).-. En el símbolo de proceso. *. 4. Respeta las reglas para la creación de identificadores al momento de crear los nombres para tus variables. Toda variable debe tener un valor.: x >z y==5 Si se trata de una condición compuesta. OR. en el algoritmo sólo podrás utilizar el nombre que le has asignado. y los operadores lógicos (AND. >=. ni significado. 3. Identificar todas las variables que intervienen en el problema a resolver. NOT ó &&. 2. En el símbolo condicional. /. >. sólo se pueden utilizar los operadores relacionales (<. <=. durante el desarrollo de tu algoritmo. mod) y asignación (=) 5. ||. ! ) Ejem. te puedes auxiliar de una tabla como la que se muestra a continuación: Nombre de la variable Posibles valores Descripción Cómo tomará su valor Una vez que las has identificado.. 1. Para ello. el formato será: . sólo se pueden utilizar los operadores aritméticos (+.

. su formato será: variable = variable/valor operador variable/valor Ejem.(variable operador variable/valor) AND/OR (variable operador variable/valor) 7. De la misma forma. en el caso de una operación de asignación.: x=y*3 7 Estructuras de control de flujo La verdadera ventaja de utilizar una computadora para la resolución de problemas consiste en su capacidad de procesar un gran volumen de datos a una gran velocidad. permitiéndonos repetir el mismo proceso sobre datos diferentes. Las estructuras de control de flujo nos permiten tomar decisiones o repetir una secuencia de pasos sobre diferentes datos.

si la condición es verdadera. se ejecutará la Acción 3. En ambos casos. nos-permite seleccionar entre dos posibles alternativas de acción. Cuando se ejecutan más de una acción en las ramas falsa o verdadera.7. /* más acciones */ Fin Sino Inicio Acción2 . es necesario delimitar el inicio y el fin de cada rama. Este tipo de estructura. /* más acciones */ Fin . de tal forma que el pseudocódigo debe escribirse: Si condición Inicio Acción 1 . Su forma general es: Estructura condicional Estructura condicional En este caso..1 Estructura de Selección Simple y Doble. terminada la estructura. se ejecuta la Acción 2. se ejecuta la Acción1. si es falsa.

en el símbolo de decisión no se puede utilizar el símbolo de asignación. Los operadores lógicos se utilizan para unir dos o más condiciones. Por ejemplo: x>y && y<z 5. se comparen utilizando un operador relacional y no uno de asignación. ejemplo: z > x+y z = x+y Correcto Incorrecto 4. sólo deben utilizarse expresiones con operadores aritméticos y/o lógicos. en este caso se tiene una estructura de selección simple: Condicional Simple Condicional Simple OBSERVACIONES: 1. es permitido siempre y cuando. esta estructura no presenta la rama "Sino". En el símbolo de decisión. . ni asignar valores a una variable. El símbolo de decisión o condicional (el rombo) no puede utilizarse para ninguna otra cosa que no sea para tomar una decisión (preguntar). No se pueden leer datos de entrada. (el rombo). ni utilizarlo como símbolo de salida. 2.Acción3 En ocasiones. 3. Si se requiere utilizar símbolos aritméticos. Por consiguiente.

. Su forma general es: Seleccionar variable Caso opción1: acción1 Caso opción2: acción2 Caso opción3: acción3 Caso opción4: acción4 En otro caso: acción N Condicional múltiple Condicional múltiple 7. debe existir una rama "Si". 7.2 Estructura de Selección Múltiple. si existe una rama Sino. nos permite seleccionar entre más de dos posibles alternativas de acción. Ese el proceso de ciclos. y el grupo de líneas que se ejecutan varias veces se llama el "cuerpo del ciclo". Las tres estructuras disponibles para ciclos son: la estructura "para". basta solucionar una sola vez el problema.2 Ciclos. "mientras" y "hacer". Un ciclo es ventajoso cuando se ha de repetir esencialmente la misma tarea un número especificado de veces. En un pseudocódigo. En tales casos. Este tipo de estructura. Una posibilidad poderosa de la computadora es su capacidad de ejecutar el mismo grupo de líneas.6.

. Una variable (el contador) se incrementa o decrementa. se deben delimitar colocando las palabras inicio y fin.7. ya que se conoce con exactitud cuantas veces se va a llevar a cabo la misma tarea. Su forma general es: Para variable = limite_inferior Hasta variable <= limite_superior en Inc/Dec Acción1 Acción2 Ciclo controlado por contador Ciclo controlado por contador De la misma forma que en la estructura condicional. OBSERVACIONES A) La variable a utilizar como contador o variable de control.3 Ciclo controlado por contador. es decir. no se le pueden asignar incrementos o decrementos diferentes de 1. Este ciclo es el más sencillo. y la acción se ejecuta hasta que la variable llegue al límite superior. si realiza más de una acción dentro del ciclo.

<. etc. 0. si esta es verdadera.5. etc. por lo que si se tiene un problema de este tipo. y se regresa al principio para volver a probar la condición. se ejecuta la acción 2. no son correctos. ya que esto alteraría su valor y por consiguiente. =. en cuyo caso.5 1. la acción se va a llevar a cabo mientras una determinada condición sea verdadera.0. B) No se debe modificar el valor de la variable de control dentro del cuerpo del ciclo. 1. En este caso. 8 o incrementos 0. 4.incrementos tipo 2. Así trabaja un ciclo "mientras": se prueba la condición. se necesitará utilizar una tipo de ciclo diferente.4 Ciclo "mientras" En este ciclo no se conoce con exactitud cuantas veces se va a repetir el proceso. OBSERVACIONES: .. 7. lo que puede ocasionar que no sea ejecutada ni una sola vez. el número de veces que se repetirán las acciones. se ejecuta la acción1. Este proceso se repite hasta que la condición sea falsa. Su forma general es: Ciclo mientras Ciclo mientras Para formular las condiciones se emplean los símbolos relacionales como >. 6.

El ciclo "Hacer" primero realiza la acción y después evalúa la condición. Su forma general es Ciclo hacer Ciclo hacer OBSERVACIONES: e) f) g) h) Es necesario comprobar.4. ésta debe cambiar su valor dentro del cuerpo del ciclo.3.6. y después repetir un número determinado de acciones.4. El ciclo mientras se debe utilizar cuando primero se requiere hacer una comparación. esto es 2.6.3.0. que el ciclo va a tener fin. etc. 0. El ciclo hacer se debe utilizar cuando primero se requiere hacer un número determinado de acciones y después una comparación para saber si es necesario seguir repitiendo estas acciones. 7. a diferencia de lo sucedido con el ciclo para. etc. a diferencia de lo sucedido con el ciclo para. Se pueden realizar incrementos o decrementos de la variable de control en pasos diferentes de 1.8.8. por lo menos se realiza la tarea una vez.5 Ciclo "Hacer" Este ciclo es muy similar al anterior. ó 0. 0. Se pueden realizar incrementos o decrementos de la variable de control en pasos diferentes de 1. que el ciclo va a tener fin.4.a) b) c) d) Es necesario comprobar. Si el ciclo depende de una variable de control.2.4. ó 0.2. . ésta debe cambiar su valor dentro del cuerpo del ciclo. con la diferencia de que en éste. mediante el uso de la prueba de escritorio. mediante el uso de la prueba de escritorio. Si el ciclo depende de una variable de control. esto es 2.0.

se tiene la siguiente prueba de escritorio: Inicio suma = 0 Para x=1 Hasta x<=3 en Incrementos suma = suma + x Imprimir(suma) Fin suma 0 1 3 6 x 1 2 3 4 Salida 6 .8. Para comenzar el trazado del algoritmo. La prueba de escritorio también es conocida como trazado del algoritmo. y es muy útil para conocer el valor de salida de un algoritmo. con las variables que intervienen en el algoritmo. e ir colocando su valor conforme cambia en el transcurso del algoritmo. Elaborar una prueba de escritorio es muy sencillo. es necesario crear una tabla. Por ejemplo. o el comportamiento del mismo. para el siguiente pseudocódigo. Prueba de escritorio.