Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Las cuatro etapas de la resolucin de problemas con una computadora se dan a continuacin: 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. Despus determinar el tipo de proceso necesario para convertir la entrada en salida.
2. Encontrar un mtodo de solucin: esto es, disear un algoritmo que le permita definir los pasos que llevarn a la solucin del problema. 3. Traducir el mtodo a cdigo de computadora: este paso es generalmente sencillo cuando se ha concretado un mtodo paso a paso y se conoce la sintaxis del lenguaje de programacin. Probar y depurar: si la ejecucin del programa no es la correcta, se deben encontrar y corregir los errores que contenga. Este proceso se llama depuracin. Posteriormente debe ejecutarse el programa con una amplia variedad de entradas para verificar que la lgica del programa est correcta.
4.
2 Algoritmo
Definicin de Algoritmo.
La palabra algoritmo proviene del nombre del matemtico islmico Abu Jafar Muhamed ibn Mus al Khwrizm quien muri en el ao 847 A.C.
Un algoritmo para un problema es una secuencia de pasos a seguir, no ambiguos, finitos y determinsticos que llevan a la solucin de un problema,
1. El algoritmo debe escribirse como una expresin en algn lenguaje: Descripcin narrada Notacin matemtica
2. Exactamente cada pregunta del problema debe ser contestada por la ejecucin del algoritmo.
3. Cualquiera que sean los valores de las entradas, la ejecucin terminar despus de algn nmero finito de pasos.
Por ello, para que una computadora pueda resolver un problema concreto, el usuario y no la computadora, debe disear un mtodo adecuado para la solucin. La computadora simplemente llevar a cabo paso a paso la lista de las instrucciones formuladas en el programa del usuario.
2. Notacin matemtica: se expresa mediante frmulas matemticas que determinarn las salidas del problema.
3. Diagramas de flujo: en sta tcnica se utilizan smbolos que representan cada paso de los algoritmos. Los smbolos ms utilizados son los siguientes:
OBSERVACIONES:
a) Es importante conservar los diagramas de flujo lo ms sencillo posible, y apoyarse en el significado de la simbologa. Por ello, debemos evitar escribir demasiado texto dentro de cada uno de los smbolos, y en su lugar, utilizar slo el identificador de la variable y las expresiones aritmticas, relacionales o lgicas segn sea el caso. b) Para un buen estilo de diseo del algoritmo, y en general, para ayudar la traduccin posterior al lenguaje de programacin deseado, es necesario conservar la verticalidad del diagrama, sin inventar conexiones diferentes a las establecidas. c) Es muy importante utilizar los smbolos adecuados para cada operacin a realizar. De esta forma, en el smbolo condicional, no deben incluirse asignaciones; ni en el smbolo de proceso se pueden incluir operadores relacionales ni lgicos.
4. Pseudocdigo: es un lenguaje informal para la descripcin de algoritmos, debido a que es muy flexible y depende del estilo del programador. Toma caractersticas de un lenguaje de programacin y de los procesos matemticos para detallar el problema. Para ello se deben tomar en cuenta las siguientes reglas: Los comentarios se denotan con /* */ Se utilizan las estructuras de control de flujo (para, mientras, si) Asignarle nombres coherentes a las variables, de acuerdo con lo que representan y segn el contexto del problema.
4 Tipos de datos.
Una de las tareas principales de la computadora es almacenar y procesar datos. Para hacer esto, un programa utiliza estructuras de datos, es decir, formas para almacenar los diferentes datos que van a ser procesados. Conforme aumenta la complejidad del programa, tambin ser ms compleja la forma en que se almacenan estos datos.
Un programa asigna una posicin de memoria a cada variable o constante que sea declarada en el programa. La posicin en memoria puede ser vista como una casilla de memoria, en donde el valor ser determinado por el programa, y el tipo de valor que puede ser almacenado en ella ser determinado por el programador al momento de declarar la variable.
Para una variable, el valor en dicha casilla cambiar tantas veces lo necesite en el programa; en cambio, para una constante, su valor es fijado una vez, al, inicio del programa, y no puede cambiar durante el transcurso de ste.
A toda variable o constante se le asigna un nombre o identificador, el cual debe construirse de acuerdo con las siguientes reglas.
1.
El identificador debe empezar con una letra, seguida de letras, nmeros o el carcter "_".
2. No se pueden utilizar espacios en blanco 3. No se puede utilizar ningn otro smbolo como #, $, %, /, *, @, etc. 4. Se toma como referencia de longitud mxima de 8 caracteres (aunque algunos lenguajes aceptan hasta 127)
5 Operadores
Los operadores nos permiten realizar operaciones aritmticas entre los datos, ya sean constantes o variables.
Aunque el nmero y tipo de operadores depende del lenguaje de programacin que se est utilizando, los operadores ms frecuentes se clasifican de la siguiente forma:
1. Operadores aritmticos. Los cuales son: +,-,*, / y el mod, o mdulo de la divisin. El operador mod slo se aplica a operandos tipo entero. El mod se lee como mdulo de la divisin, y el resultado ser el residuo de una divisin entera.
2. Operadores de relacin Los cuales son: >, >=, <, <=, !=, ==
Se hace una distincin con el operador de igualdad, que no es el mismo de asignacin: ==. As se tiene x == y se traduce como "es x igual a y?, en tanto que x=y, equivale a decir "a la variable x se le asigna el mismo valor que tiene y "
Para resolver expresiones con operadores lgicos, se utilizan las siguientes tablas, conocidas como tablas de verdad:
x y && (AND) Falso Falso Falso Falso Verdadero Falso Verdadero Falso Falso Verdadero Verdadero Verdadero
x y II (OR) Falso Falso Falso Falso Verdadero Verdadero Verdadero Falso Verdadero Verdadero Verdadero Verdadero
Las reglas para resolver una expresin aritmtica son las siguientes:
1.
Los operadores aritmticos se aplican teniendo en cuenta su jerarqua (precedencia) y de izquierda a derecha. La jerarqua se muestra a continuacin:
() Parntesis *, /, mod <, <=, ==, >, >=, !=,+,- (Resta) && (AND) || (OR) =
2.
Si una expresin contiene parntesis, se evala primero la subexpresin entre parntesis, respetando la jerarqua de operadores en esta.
Identificar todas las variables que intervienen en el problema a resolver. Para ello, te puedes auxiliar de una tabla como la que se muestra a continuacin:
Nombre de la variable
Posibles valores
Descripcin
Una vez que las has identificado, en el algoritmo slo podrs utilizar el nombre que le has asignado. Cudate de no cambiarles nombre, ni significado, durante el desarrollo de tu algoritmo.
2. Toda variable debe tener un valor, ya sea por que se le solicita como entrada o por que se le asigna dentro del algoritmo.
3. Respeta las reglas para la creacin de identificadores al momento de crear los nombres para tus variables.
4. En el smbolo de proceso, slo se pueden utilizar los operadores aritmticos (+,-,, *, /, mod) y asignacin (=)
5. En el smbolo condicional, slo se pueden utilizar los operadores relacionales (<, <=, >, >=, ==, !=), y los operadores lgicos (AND, OR, NOT &&, ||, ! )
Estructura condicional
En este caso, si la condicin es verdadera, se ejecuta la Accin1, si es falsa, se ejecuta la Accin 2. En ambos casos, terminada la estructura, se ejecutar la Accin 3.
Cuando se ejecutan ms de una accin en las ramas falsa o verdadera, es necesario delimitar el inicio y el fin de cada rama, de tal forma que el pseudocdigo debe escribirse:
Si condicin Inicio Accin 1 . /* ms acciones */ Fin Sino Inicio Accin2 .. /* ms acciones */ Fin Accin3
En ocasiones, esta estructura no presenta la rama "Sino", en este caso se tiene una estructura de seleccin simple:
Condicional Simple
Condicional Simple
OBSERVACIONES:
1.
En el smbolo de decisin, (el rombo), slo deben utilizarse expresiones con operadores aritmticos y/o lgicos. Por consiguiente, en el smbolo de decisin no se puede utilizar el smbolo de asignacin. Si se requiere utilizar smbolos aritmticos, es permitido siempre y cuando, se comparen utilizando un operador relacional y no uno de asignacin, ejemplo: z > x+y z = x+y Correcto Incorrecto
2.
3.
4. Los operadores lgicos se utilizan para unir dos o ms condiciones. Por ejemplo: x>y && y<z
5.
El smbolo de decisin o condicional (el rombo) no puede utilizarse para ninguna otra cosa que no sea para tomar una decisin (preguntar). No se pueden leer datos de entrada, ni asignar valores a una variable, ni utilizarlo como smbolo de salida.
6. En un pseudocdigo, si existe una rama Sino, debe existir una rama "Si".
Seleccionar variable Caso opcin1: accin1 Caso opcin2: accin2 Caso opcin3: accin3 Caso opcin4: accin4 En otro caso: accin N
Condicional mltiple
Condicional mltiple
7.2 Ciclos.
Una posibilidad poderosa de la computadora es su capacidad de ejecutar el mismo grupo de lneas. Ese el proceso de ciclos, y el grupo de lneas que se ejecutan varias veces se llama el "cuerpo del ciclo". Un ciclo es ventajoso cuando se ha de repetir esencialmente la misma tarea un nmero especificado de veces. En tales casos, basta solucionar una sola vez el problema. Las tres estructuras disponibles para ciclos son: la estructura "para", "mientras" y "hacer".
Para variable = limite_inferior Hasta variable <= limite_superior en Inc/Dec Accin1 Accin2
Ciclo controlado por contador
De la misma forma que en la estructura condicional, si realiza ms de una accin dentro del ciclo, se deben delimitar colocando las palabras inicio y fin.
OBSERVACIONES
A) La variable a utilizar como contador o variable de control, no se le pueden asignar incrementos o decrementos diferentes de 1, es decir, incrementos tipo 2, 4, 6, 8 o incrementos 0, 0.5 1.0, 1.5, etc., no son correctos, por lo que si se tiene un problema de este tipo, se necesitar utilizar una tipo de ciclo diferente. B) No se debe modificar el valor de la variable de control dentro del cuerpo del ciclo, ya que esto alterara su valor y por consiguiente, el nmero de veces que se repetirn las acciones.
Ciclo mientras
Para formular las condiciones se emplean los smbolos relacionales como >, <, =, etc.
As trabaja un ciclo "mientras": se prueba la condicin, si esta es verdadera, se ejecuta la accin1, y se regresa al principio para volver a probar la condicin. Este proceso se repite hasta que la condicin sea falsa, en cuyo caso, se ejecuta la accin 2.
OBSERVACIONES: a) Es necesario comprobar, mediante el uso de la prueba de escritorio, que el ciclo va a tener fin. b) Se pueden realizar incrementos o decrementos de la variable de control en pasos diferentes de 1, esto es 2,4,6,8, 0,2,0.3, 0.4, etc. c) Si el ciclo depende de una variable de control, sta debe cambiar su valor dentro del cuerpo del ciclo, a diferencia de lo sucedido con el ciclo para. d) El ciclo mientras se debe utilizar cuando primero se requiere hacer una comparacin, y despus repetir un nmero determinado de acciones.
Ciclo hacer
OBSERVACIONES: e) Es necesario comprobar, mediante el uso de la prueba de escritorio, que el ciclo va a tener fin. f) Se pueden realizar incrementos o decrementos de la variable de control en pasos diferentes de 1, esto es 2,4,6,8, 0,2,0.3, 0.4, etc.
g) Si el ciclo depende de una variable de control, sta debe cambiar su valor dentro del cuerpo del ciclo, a diferencia de lo sucedido con el ciclo para. h) El ciclo hacer se debe utilizar cuando primero se requiere hacer un nmero determinado de acciones y despus una comparacin para saber si es necesario seguir repitiendo estas acciones.
8. Prueba de escritorio.
La prueba de escritorio tambin es conocida como trazado del algoritmo, y es muy til para conocer el valor de salida de un algoritmo, o el comportamiento del mismo.
Elaborar una prueba de escritorio es muy sencillo. Para comenzar el trazado del algoritmo, es necesario crear una tabla, con las variables que intervienen en el algoritmo, e ir colocando su valor conforme cambia en el transcurso del algoritmo. Por ejemplo, para el siguiente pseudocdigo, 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