Sei sulla pagina 1di 16

1 Solucin de problemas.

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,

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

1. El algoritmo debe escribirse como una expresin en algn lenguaje: Descripcin narrada Notacin matemtica

Pseudocdigo Diagramas de flujo Lenguaje de computadora.

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.

3 Tcnicas para la descripcin de algoritmos.


1. Descripcin Narrada. Se utiliza el lenguaje natural ya sea hablado o escrito. Por ejemplo, la receta para hacer un pastel.

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.

Delimitar el inicio y fin del algoritmo y de las estructuras de control de flujo.

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.

La forma ms sencilla de almacenar datos en un programa es mediante el uso de variables y constantes.

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. El identificador debe tener relacin con el problema.

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 "

3. Operadores lgicos. Los cuales son:

! (not, negacin) && (and, y), || (or, o)

Para resolver expresiones con operadores lgicos, se utilizan las siguientes tablas, 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 y II (OR) Falso Falso Falso Falso Verdadero Verdadero Verdadero Falso Verdadero Verdadero Verdadero Verdadero

4. Operadores de Asignacin Por el momento, el nico operador de asignacin es: =

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:

(Unario), ! (Not, negacin)

() 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.

6 Reglas para la elaboracin de algoritmos.


1.

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

Cmo tomar su valor

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 &&, ||, ! )

Ejem.: x >z y==5

Si se trata de una condicin compuesta, el formato ser:

(variable operador variable/valor) AND/OR (variable operador variable/valor)

7. De la misma forma, en el caso de una operacin de asignacin, su formato ser:

variable = variable/valor operador variable/valor Ejem.: x=y*3

7 Estructuras de control de flujo


La verdadera ventaja de utilizar una computadora para la resolucin de problemas consiste en su capacidad de procesar un gran volumen de datos a una gran velocidad, permitindonos 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.

7.1 Estructura de Seleccin Simple y Doble.


Este tipo de estructura, nos-permite seleccionar entre dos posibles alternativas de accin. Su forma general es:
Estructura condicional

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".

7.2 Estructura de Seleccin Mltiple.


Este tipo de estructura, nos permite seleccionar entre ms de dos posibles alternativas de accin. Su forma general es:

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".

7.3 Ciclo controlado por contador.


Este ciclo es el ms sencillo, ya que se conoce con exactitud cuantas veces se va a llevar a cabo la misma tarea. Una variable (el contador) se incrementa o decrementa, y la accin se ejecuta hasta que la variable llegue al lmite superior. Su forma general es:

Para variable = limite_inferior Hasta variable <= limite_superior en Inc/Dec Accin1 Accin2
Ciclo controlado por contador

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.

7.4 Ciclo "mientras"


En este ciclo no se conoce con exactitud cuantas veces se va a repetir el proceso. En este caso, la accin se va a llevar a cabo mientras una determinada condicin sea verdadera, lo que puede ocasionar que no sea ejecutada ni una sola vez. Su forma general es:
Ciclo mientras

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.

7.5 Ciclo "Hacer"


Este ciclo es muy similar al anterior, con la diferencia de que en ste, por lo menos se realiza la tarea una vez. El ciclo "Hacer" primero realiza la accin y despus evala la condicin. Su forma general es
Ciclo hacer

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

Potrebbero piacerti anche