algoritmos

¿QUE ES UN ALGORITMO?


RTA: (proviene del latin dixit algorithmus y éste a su vez del matemático persa al jwarzmi). Permite hallar la solucion de los problemas quese nos dan en la vida cotidiana, dado un estado inicial y una entrada atraves de pasos bien definidos llega a la solucion de un ploblema.


TIPOS DE ALGORITMOS


CUALITATIVOS: Son aquellos que se describen los pasos utilizados en la palabras.

CUANTITATIVOS: Son aquellos que utilizan los calculos numericos para definir los del proceso.



TIPOS DE LENGUAJE


GRAFICOS O DIAGRAMA DE FLUJO: es la representacion grafica de las operaciones que realiza un algoritmo.



















NO GRAFICOS O PSEUDOCODIGO: Representa en forma descriptiva de una forma no grafica.

inicio
lee: n1, n2
ejecute: n1>n2
imprime: 'el numero mayor'
fin


CARACTERISITICAS DE ALGORITMICOS: son las siguientes



  • Debe tener un punto particular de inicio



  • debe ser definido, ni permitir dobles interpretaciones.



  • soportar la mayoria de las variantes que se pueden presentar en la definicion del problema.



  • debe ser finito en tamaño y en tiempo de ejecucion.





METODOLOGIA PARA LA SOLUCION DE PROBLEMAS : Para la solucion de ploblemas de un computador


DEFINICION DEL PROBLEMA: Es el enunciado de un problema en cual debe ser claro y entendible, debe ser fundamentalmente conocer y delimitar un problema de una computadora. Ej : el DFD


ANALISIS DEL PROBLEMA: Establece una serie de preguntas para determinar la solucion de un problema.



los datos de entrada: es determinar o encontrar la informacion de un proceso determinado.




¿cual es la informacion que desea producir (salida): dar conocer si el proceso esta correctamente o incorrectamente.




los metodos y formulas que se necesitan para procesar los datos: que de la solucion a problema de la vida cotidiana, analizando varios procedimientos que se deben tener en cuenta para la solucion de problemas.






DISEÑO DEL ALGORITMO: El diseño del algoritmo de DFD se deben tener en cuenta los siguentes procedimientos:



  • Al descargar el DFD aparece un inicio y un fin y la herramientas de uso algoritmo.



  • definir otener procedimientos, es decir los tipos de datos y las variables que se utilizaran en un DFD.



  • DFD hace las intrucciones necesarias para resolver el problema.



  • El DFD toma los datos especificos como entrada y luego seguir una secuencia hasta obtener resultado. y si no hay un error debe corregir o hacerle ajustes.


PRUEBA DE ESCRITORIO: el programa de DFD es herramienta que podemos obtener una informacion acerca de como seguir los pasos de un problema , sin embargo en la prueba de escritorio es la ejcucion del programa.



TIPOS DE DATOS: es un conjunto de valores que puede tomar durante el programa, se dividen en dos:



SIMPLES: como su nombre lo indica son los tipos basicos de pascal, los cuales son:



numericos: una varible numerica puede ser o tomar como valores positivos o negativos, por ejemplo: 1,2,3 o -1,-2,-3 etc..



logicos: permite usar variables que disponen dos posibles valores: V(Verdadero)o F(Falso) y otros valores que nos sirven identificar un objeto como: si/no, funciona/no funciona, on/of, etc.



alfanumerico string(cadena): consiste en contener una variable con mas caracteres, por ejemplo: el nombre de la persona o un sujeto que lo identifica una variable.




ESTRUCTURADOS : son agrupaciones de otros tipos de datos y los mas comunes son los siguientes:




  • vectores y matrices (array):sirve para agrupar las variables de un tipo con unico nombre. y las matrises igual podemos crear vectores de cualquier tipo simple, podemos crear vectores tomando como tipo de base de otro vector.



  • registro: es tipo un tipo de agrupacion de elementos diferentes, tanbien se denominan en tipos de registro.



  • archivo: estan almacenados en lo que comunmente se llaman archivos y estan ordenados por nombre, punto o extenciones. Estas propiedades estan asociadas com expresiones como (jpeg, html, java, entre otros) y estos pequeños grupos estan asociados a un tipo de archivao.



  • apuntadores: los apuntadores son variablesque guardan direcciones en c y c++ y estos proporcionan mucha utilidad al programador para accesar y manipular los datos de una manera que nos sea posible en otros lenguajes.





OPERADOR: es un artefacto que actua sobre otro objeto por ejemplo (numero, vector, funcion,etc) que se escrive a la derecha dado como un resultado de igual o distinta naturaleza.





Aritméticas: son operadores que realiza diferentes actividades reales de una aritmetica, pòr ejemplo : a+b+c = d entre otros conocimientos matematicos. en cuanto aritmeticos de punteros como C++ se dispone:



+: suma binaria; mas unitario




++: incremento unitario ( dos clases)



-: resta binaria; menos unitario


--: decremeto unitario (dos clases)


*: multplicacio


/: division


%: resto o modulo




Relacionales: son simbolos que se usan para comparar dos valores, por ejemplo 9>6 es resultado de simbolo es verdadera (true) y lo contrario 9<6>


<: menor que



>: mayor que



LOGICAS: son muy utilisadas en logica proporcionanl, informatica y algebra booleana, los operadores logicos nos proporcionan un resultado a partir de que se cunpla o no se cunpla cierta funcion, esto genera una serie de valores cunpliendo ciertas condiciones.




ESTRUCTURA DE LOS ALGORITMOS: en estas se encuentran las sigientes estructuras que son las secuenciales, condicionales y ciclicas:






  • SECUENCIALES: Es aquélla en la que una acción (instrucción) sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y así sucesivamente hasta el fin del proceso.

- Asignación: La asignación consiste, en el paso de valores o resultados a una zona de la memoria. Dicha zona será reconocida con el nombre de la variable que recibe el valor. La asignación se puede clasificar de la siguiente forma:


• Simples: Consiste en pasar un valor constate a una variable (a=15)


Contador: Consiste en usarla como un verificador del número de veces que se realiza un proceso (a=a+1)


Acumulador: Consiste en usarla como un sumador en un proceso (a=a+b)


De trabajo: Donde puede recibir el resultado de una operación matemática que involucre muchas variables (a=c+b*2/4).


- Lectura: La lectura consiste en recibir desde un dispositivo de entrada (p.ej. el teclado) un valor. Esta operación se representa en un pseudocodigo como sigue:
Leer a, b


Donde “a” y “b” son las variables que recibirán los valores


- Escritura: Consiste en mandar por un dispositivo de salida (p.ej. monitor o impresora) un resultado o mensaje. Este proceso se representa en un pseudocodigo como sigue:
Escribe “El resultado es:”, R


Donde “El resultado es:” es un mensaje que se desea aparezca y R es una variable que contiene un valor.




  • CONDICIONALES:La especificación formal de algoritmos tiene realmente utilidad cuando el algoritmo requiere una descripción más complicada que una lista sencilla de instrucciones. Este es el caso cuando existen un número de posibles alternativas resultantes de la evaluación de una determinada condición.
    Las estructuras selectivas se utilizan para tomar decisiones lógicas; de ahí que se suelan denominar también estructuras de decisión o alternativas.

• Simples: Las estructuras condicionales simples se les conoce como “Tomas de decisión”. Estas tomas de decisión tienen la siguiente forma:
Si entonces
Acción(es)


Fin-si


• Dobles: Las estructuras condicionales dobles permiten elegir entre dos opciones o alternativas posibles en función del cumplimiento o no de una determinada condición. Se representa de la siguiente forma:
Si entonces
Acción(es)si no
Acción(es)


Fin-si


Donde:


Si ………………… Indica el comando de comparación


Condición………… Indica la condición a evaluar


entonces……..…… Precede a las acciones a realizar cuando se cumple la condición


acción(es)………… Son las acciones a realizar cuando se cumple o no la condición


si no……………… Precede a las acciones a realizar cuando no se cumple la condición


Dependiendo de si la comparación es cierta o falsa, se pueden realizar una o mas acciones.


• Múltiples: Las estructuras de comparación múltiples, son tomas de decisión especializada que permiten comparar una variable contra distinta posibles resultados, ejecutando para cada caso una serie de instrucciones específicas. La forma común es la siguiente:


Si entonces
Acción(es)


si no
Si entonces
Acción(es)


si no
.. Varias condiciones



  • CICLICAS:Se llaman problemas repetitivos o cíclicos a aquellos en cuya solución es necesario utilizar un mismo conjunto de acciones que se puedan ejecutar una cantidad especifica de veces. Esta cantidad puede ser fija (previamente determinada por el programador) o puede ser variable (estar en función de algún dato dentro del programa).

Hacer-Para: Son aquellos en que el numero de iteraciones se conoce antes de ejecutarse el ciclo. La forma de esta estructura es la siguiente:
Hacer para V.C = L.I a L.S


Accion1


Accion2


AccionN


Fin-para



Donde: V.C Variable de control del ciclo L.I Limite inferir L.S Limite superior


Hacer-Mientras, Repetir-Hasta: Son aquellos en que el numero de iteraciones no se conoce con exactitud, ya que esta dado en función de un dato dentro del programa.


Hacer-Mientras Que: Esta es una estructura que repetira un proceso durante “N” veces, donde “N” puede ser fijo o variable. Para esto, la instrucción se vale de una condición que es la que debe cumplirse para que se siga ejecutando. Cuando la condición ya no se cumple, entonces ya no se ejecuta el proceso. La forma de esta estructura es la siguiente:


Hacer mientras


Accion1


Accion2


AccionN


Fin-mientras