Computacion ii angel-chavez-semana1,2,3-objetivo 1
1. República bolivariana de Venezuela
Ministerio del poder popular para la educación superior
Instituto universitario Carlos Soublette
Maracay estado Aragua
Computación II
Bachiller:
Chávez Ángel
C.I: 18.851.115
Mantenimiento Industrial II
Maracay,Mayo de 2014.
2. TIPOS DE ALGORITMOS
Cualitativos: Son aquellos en los que se describen los pasos utilizando
palabras.
Son todos aquellos pasos o instrucciones descritos por medio de palabras que
sirven para llegar a la obtención de una respuesta o solución de un problema
cualquier
Cuantitativos: Son aquellos en los que se utilizan cálculos numéricos para
definir los pasos del proceso.
Son aquellos pasos o instrucciones que involucran cálculos numéricos para
llegar a un resultado satisfactorio
Tipos de algoritmos de razonamiento:
Algoritmos Estáticos: son los que funcionan siempre igual, independientemente
del tipo de problema tratado.
Algoritmos Adaptativos: algoritmos con cierta capacidad de aprendizaje.
Algoritmos Probabilísticos: son algoritmos que no utilizan valores de verdad
booleanos sino continuos. Existen varios tipos de algoritmos probabilísticos
dependiendo de su funcionamiento, pudiéndose distinguir:
§ Algoritmos numéricos: que proporcionan una solución aproximada del
problema.
§ Algoritmos de Montecarlo: que pueden dar la respuesta correcta o respuesta
erróneas (con probabilidad baja).
§ Algoritmos de Las Vegas: que nunca dan una respuesta incorrecta: o bien
dan la respuesta correcta o informan del fallo.
Algoritmo Cotidiano: es la serie de pasos que realizamos en nuestra vida diaria
para realizar las diferentes tareas y actividades comunes, desde los pasos al
levantarnos, así como ir de compras, etc.
Algoritmo Voraz: un algoritmo voraz es aquel que, para resolver un
determinado problema, sigue una meta heurística consistente en elegir la
opción óptima en cada paso local con la esperanza de llegar a una solución
general óptima.
3. Algoritmo Determinista: es un algoritmo que, en términos informales, es
completamente predictivo si se conocen sus entradas.
Algoritmo Heurístico: es un algoritmo que abandona uno o ambos objetivos; por
ejemplo, normalmente encuentran buenas soluciones, aunque no hay pruebas
de que la solución no pueda ser arbitrariamente errónea en algunos casos; o se
ejecuta razonablemente rápido, aunque no existe tampoco prueba de que
siempre será así.
Las heurísticas generalmente son usadas cuando no existe una solución
óptima bajo las restricciones dadas (tiempo, espacio, etc.), o cuando no existe
del todo.
Algoritmo de escalada: la idea básica consiste en comenzar con una mala
solución a un determinado problema y, repetidamente, aplicar optimizaciones a
la misma hasta que esta sea óptima o satisfaga algún otro requisito.
Ciencias en que se apoya la algoritmia para producir soluciones ingeniosas!
· Ciencias de la Computación.
· Matemáticas.
· Ciencias Sociales.
· Ciencias Políticas.
¿Cuál es el uso adecuado de los diagramas de flujo en una organización?
El diagrama de flujo o diagrama de actividades es la representación gráfica del
algoritmo o proceso. Se utiliza en disciplinas como programación, economía,
procesos industriales y psicología cognitiva.
En Lenguaje Unificado de Modelado (UML), un diagrama de actividades
representa los flujos de trabajo paso a paso de negocio y operacionales de los
4. componentes en un sistema. Un diagrama de actividades muestra el flujo de
control general.
En SysML el diagrama de actividades ha sido extendido para indicar flujos
entre pasos que mueven elementos físicos (p.ej., gasolina) o energía (p.ej.,
presión). Los cambios adicionales permiten al diagrama soportar mejor flujos
de comportamiento y datos continuos.
Estos diagramas utilizan símbolos con significados definidos que representan
los pasos del algoritmo, y representan el flujo de ejecución mediante flechas
que conectan los puntos de inicio y de fin de proceso.
Normas de trabajo[editar]
Un diagrama de flujo presenta generalmente un único punto de inicio y un único
punto de término, aunque puede tener más, siempre que cumpla con la lógica
requerida.
Las siguientes son acciones previas a la realización del diagrama de flujo:
Identificar las ideas principales al ser incluidas en el diagrama de flujo. Deben
estar presentes el autor o responsable del proceso, los autores o responsables
del proceso anterior y posterior y de otros procesos interrelacionados, así como
las terceras partes interesadas.
Definir qué se espera obtener del diagrama de flujo.
Identificar quién lo empleará y cómo.
Establecer el nivel de detalle requerido.
Determinar los límites del proceso a describir.
Los pasos a seguir para construir el diagrama de flujo son:
Establecer el alcance del proceso a describir. De esta manera quedará fijado el
comienzo y el final del diagrama. Frecuentemente el comienzo es la salida del
proceso previo y el final la entrada al proceso siguiente.
5. Identificar y listar las principales actividades/subprocesos que están incluidos
en el proceso a describir y su orden cronológico.
Si el nivel de detalle definido incluye actividades menores, listarlas también.
Identificar y listar los puntos de decisión.
Construir el diagrama respetando la secuencia cronológica y asignando los
correspondientes símbolos.
Asignar un título al diagrama y verificar que esté completo y describa con
exactitud el proceso elegido.
Descripción[editar]
En UML 1.x, un diagrama de actividades es una variación del diagrama de
estado UML donde los "estados" representan operaciones, y las transiciones
representan las actividades que ocurren cuando la operación es completa.
El diagrama de mensajes de UML 2.0, mientras que es similar en aspecto al
diagrama de actividades UML 1.x, ahora tiene semánticas basadas en redes de
Petri. En UML 2.0, el diagrama general de interacción está basado en el
diagrama de actividades. El diagrama de actividad es una forma especial de
diagrama de estado usado para modelar una secuencia de acciones y
condiciones tomadas dentro de un proceso.
La especificación del Lenguaje de Modelado Unificado (UML) define un
diagrama de actividad como:
“… una variación de una máquina estados, lo cual los estados representan el
rendimiento de las acciones o subactividades y las transiciones se provocan
por la realización de las acciones o subactividades.”1
El propósito del diagrama de actividad es modelar un proceso de flujo de
trabajo (workflow) y/o modelar operaciones.
Una Operación es un servicio proporcionado por un objeto, que está disponible
a través de una interfaz.
6. Una Interfaz es un grupo de operaciones relacionadas con la semántica.
Tipos de diagramas de flujo[editar]
Formato vertical: En él, el flujo y la secuencia de las operaciones, va de arriba
hacia abajo. Es una lista ordenada de las operaciones de un proceso con toda
la información que se considere necesaria, según su propósito.
Formato horizontal: En él, el flujo o la secuencia de las operaciones, va de
izquierda a derecha.
Formato panorámico: El proceso entero está representado en una sola carta y
puede apreciarse de una sola mirada mucho más rápido que leyendo el texto,
lo que facilita su comprensión, aun para personas no familiarizadas. Registra
no solo en línea vertical, sino también horizontal, distintas acciones simultáneas
y la participación de más de un puesto o departamento que el formato vertical
no registra.
Formato Arquitectónico: Describe el itinerario de ruta de una forma o persona
sobre el plano arquitectónico del área de trabajo. El primero de los flujogramas
es eminentemente descriptivo, mientras que los utilizados son
fundamentalmente representativos.
Simbología y significado[editar]
Óvalo o Elipse: Inicio y término (Abre y cierra el diagrama).
Rectángulo: Actividad (Representa la ejecución de una o más actividades o
procedimientos).
Rombo: Decisión (Formula una pregunta o cuestión).
Círculo: Conector (Representa el enlace de actividades con otra dentro de un
procedimiento).
Triángulo boca abajo: Archivo definitivo (Guarda un documento en forma
permanente).
Triángulo boca arriba: Archivo temporal (Proporciona un tiempo para el
almacenamiento del documento).
Cursograma[editar]
Se trata de la más común y práctica entre todas las clases de diagramas de
flujo. Describe el flujo de información en un ente u organización, sus procesos,
sistemas administrativos y de control. Permite la impresión visual de los
procedimientos y una clara y lógica interpretación.
7. Simbología y normas del cursograma[editar]
Círculo: Procedimiento estandarizado.
Cuadrado: Proceso de control.
Línea continua: Flujo de información vía formulario o documentación en soporte
de papel escrito.
Línea interrumpida: Flujo de información vía formulario digital.
Rectángulo: Formulario o documentación. Se grafíca con un doble de ancho
que su altura.
Rectángulo Pequeño: Valor o medio de pago (cheque, pagaré, etc.). Se grafíca
con un cuádruple de ancho que su altura, siendo su ancho igual al de los
formularios.
Triángulo (base inferior): Archivo definitivo.
Triángulo Invertido (base superior): Archivo Transitorio.
Semióvalo: Demora.
Rombo: División entre opciones.
Trapezoide: Carga de datos al sistema.
Elipsoide: Acceso por pantalla.
Hexágono: Proceso no representado.
Pentágono: Conector.
Cruz de Diagonales: Destrucción de Formularios.
Según la normativa, el flujo presupuesto es de izquierda a derecha y de arriba
hacia abajo, siendo optativo el uso de flechas. Cuando el sentido es invertido
(de derecha a izquierda o de abajo hacia arriba), es obligatorio el uso de la
flecha.
¿Cuál es el uso adecuado de los lenguajes de programación?
Un lenguaje de programación es un lenguaje formal diseñado para expresar
procesos que pueden ser llevados a cabo por máquinas como las
computadoras.
8. Pueden usarse para crear programas que controlen el comportamiento físico y
lógico de una máquina, para expresar algoritmos con precisión, o como modo
de comunicación humana.1
Está formado por un conjunto de símbolos y reglas sintácticas y semánticas
que definen su estructura y el significado de sus elementos y expresiones. Al
proceso por el cual se escribe, se prueba, se depura, se compila (de ser
necesario) y se mantiene el código fuente de un programa informático se le
llama programación.
También la palabra programación se define como el proceso de creación de un
programa de computadora, mediante la aplicación de procedimientos lógicos, a
través de los siguientes pasos:
El desarrollo lógico del programa para resolver un problema en particular.
Escritura de la lógica del programa empleando un lenguaje de programación
específico (codificación del programa).
Ensamblaje o compilación del programa hasta convertirlo en lenguaje de
máquina.
Prueba y depuración del programa.
Desarrollo de la documentación.
Existe un error común que trata por sinónimos los términos 'lenguaje de
programación' y 'lenguaje informático'. Los lenguajes informáticos engloban a
los lenguajes de programación y a otros más, como por ejemplo HTML
(lenguaje para el marcado de páginas web que no es propiamente un lenguaje
de programación, sino un conjunto de instrucciones que permiten estructurar el
contenido de los documentos).
Permite especificar de manera precisa sobre qué datos debe operar una
computadora, cómo deben ser almacenados o transmitidos y qué acciones
debe tomar bajo una variada gama de circunstancias. Todo esto, a través de un
lenguaje que intenta estar relativamente próximo al lenguaje humano o natural.
Una característica relevante de los lenguajes de programación es precisamente
que más de un programador pueda usar un conjunto común de instrucciones
que sean comprendidas entre ellos para realizar la construcción de un
programa de forma colaborativa.
9. Elementos[editar]
Variables y vectores[editar]
Las variables podrían calificarse como contenedores de datos y por ello se
diferencian según el tipo de dato que son capaces de almacenar. En la mayoría
de lenguajes de programación se requiere especificar un tipo de variable
concreto para guardar un dato concreto. Por ejemplo, en Java, si deseamos
guardar una cadena de texto deberemos especificar que la variable es del tipo
String. Por otra parte, en lenguajes como el PHP este tipo de especificación de
variables no es necesario. Además, existen variables compuestas por varias
variables llamadas vectores. Un vector no es más que un conjunto de variables
consecutivas en memoria y del mismo tipo guardadas dentro de una variable
contenedor. A continuación, un listado con los tipos de variables y vectores
más comunes:
Variables tipo Char: Estas variables contienen un único carácter, es decir, una
letra, un signo o un número.
Variables tipo Int: Contienen un número entero.
Variables tipo float: Contienen un número decimal.
Variables tipo String: Contienen cadenas de texto, o lo que es lo mismo, es un
vector con varias variables del tipo Char.
Variables del tipo Boolean: Solo pueden contener un 0 o un 1. El cero es
considerado para muchos lenguajes como el literal "False", mientras que el 1
se considera "True".
Condicionantes[editar]
Los condicionantes son estructuras de código que indican que, para que cierta
parte del programa se ejecute, deben cumplirse ciertas premisas; por ejemplo:
que dos valores sean iguales, que un valor exista, que un valor sea mayor que
otro... Estos condicionantes por lo general solo se ejecutan una vez a lo largo
del programa. Los condicionantes más conocidos y empleados en
programación son:
If: Indica una condición para que se ejecute una parte del programa.
Else if: Siempre va precedido de un "If" e indica una condición para que se
ejecute una parte del programa siempre que no cumpla la condición del if
previo y si se cumpla con la que el "else if" especifique.
10. Else: Siempre precedido de "If" y en ocasiones de "Else If". Indica que debe
ejecutarse cuando no se cumplan las condiciones prévias.
Bucles[editar]
Los bucles son parientes cercanos de los condicionantes, pero ejecutan
constantemente un código mientras se cumpla una determinada condición. Los
más frecuentes son:
For: Ejecuta un código mientras una variable se encuentre entre 2
determinados parámetros.
While: Ejecuta un código mientras se cumpla la condición que solicita.
Hay que decir que a pesar de que existan distintos tipos de bucles, ambos son
capaces de realizar exactamente las mismas funciones. El empleo de uno u
otro depende, por lo general, del gusto del programador.
Funciones[editar]
Las funciones se crearon para evitar tener que repetir constantemente
fragmentos de código. Una función podría considerarse como una variable que
encierra código dentro de si. Por lo tanto cuando accedemos a dicha variable
(la función) en realidad lo que estamos es diciendo al programa que ejecute un
determinado código predefinido anteriormente.
Todos los lenguajes de programación tienen algunos elementos de formación
primitivos para la descripción de los datos y de los procesos o transformaciones
aplicadas a estos datos (tal como la suma de dos números o la selección de un
elemento que forma parte de una colección). Estos elementos primitivos son
definidos por reglas sintácticas y semánticas que describen su estructura y
significado respectivamente.
Sintaxis[editar]
Con frecuencia se resaltan los elementos de la sintaxis con colores diferentes
para facilitar su lectura. Este ejemplo está escrito en Python.
11. A la forma visible de un lenguaje de programación se le conoce como sintaxis.
La mayoría de los lenguajes de programación son puramente textuales, es
decir, utilizan secuencias de texto que incluyen palabras, números y
puntuación, de manera similar a los lenguajes naturales escritos. Por otra parte,
hay algunos lenguajes de programación que son más gráficos en su
naturaleza, utilizando relaciones visuales entre símbolos para especificar un
programa.
La sintaxis de un lenguaje de programación describe las combinaciones
posibles de los símbolos que forman un programa sintácticamente correcto. El
significado que se le da a una combinación de símbolos es manejado por su
semántica (ya sea formal o como parte del código duro de la referencia de
implementación). Dado que la mayoría de los lenguajes son textuales, este
artículo trata de la sintaxis textual.
La sintaxis de los lenguajes de programación es definida generalmente
utilizando una combinación de expresiones regulares (para la estructura léxica)
y la Notación de Backus-Naur (para la estructura gramática).
Mencione y explique dos tipos de lenguajes:
El ordenador sólo entiende un lenguaje conocido como código binario o código
máquina, consistente en ceros y unos. Es decir, sólo utiliza 0 y 1 para codificar
cualquier acción.
Los lenguajes más próximos a la arquitectura hardware se denominan
lenguajes de bajo nivel y los que se encuentran más cercanos a los
programadores y usuarios se denominan lenguajes de alto nivel.
Lenguajes de bajo nivel
Son lenguajes totalmente dependientes de la máquina, es decir que el
programa que se realiza con este tipo de lenguajes no se pueden migrar o
utilizar en otras maquinas.
12. Al estar prácticamente diseñados a medida del hardware, aprovechan al
máximo las características del mismo.
Dentro de este grupo se encuentran:
El lenguaje maquina: este lenguaje ordena a la máquina las operaciones
fundamentales para su funcionamiento. Cnsiste en la combinación de 0's y 1's
para formar las ordenes entendibles por el hardware de la maquina.
Este lenguaje es mucho más rápido que los lenguajes de alto nivel.
La desventaja es que son bastantes difíciles de manejar y usar, además de
tener códigos fuente enormes donde encontrar un fallo es casi imposible.
El lenguaje ensamblador es un derivado del lenguaje maquina y esta formado
por abreviaturas de letras y números llamadas mnemotécnicos. Con la
aparición de este lenguaje se crearon los programas traductores para poder
pasar los programas escritos en lenguaje ensamblador a lenguaje máquina.
Como ventaja con respecto al código máquina es que los códigos fuentes eran
más cortos y los programas creados ocupaban menos memoria. Las
desventajas de este lenguaje siguen siendo prácticamente las mismas que las
del lenguaje ensamblador, ñadiendo la dificultad de tener que aprender un
nuevo lenguaje difícil de probar y mantener.
Lenguajes de alto nivel
Son aquellos que se encuentran más cercanos al lenguaje natural que al
lenguaje máquina.
Están dirigidos a solucionar problemas mediante el uso de EDD's.
Nota: EDD's son las abreviaturas de Estructuras Dinamicas de Datos, algo muy
utilizado en todos los lenguajes de programación. Son estructuras que pueden
cambiar de tamaño durante la ejecución del programa. Nos permiten crear
estructuras de datos que se adapten a las necesidades reales de un programa.
13. Se tratan de lenguajes independientes de la arquitectura del ordenador. Por lo
que, en principio, un programa escrito en un lenguaje de alto nivel, lo puedes
migrar de una máquina a otra sin ningún tipo de problema.
Estos lenguajes permiten al programador olvidarse por completo del
funcionamiento interno de la maquina/s para la que están diseñando el
programa. Tan solo necesitan un traductor que entiendan el código fuente
como las características de la maquina.
Suelen usar tipos de datos para la programación y hay lenguajes de propósito
general (cualquier tipo de aplicación) y de propósito especifico (como
FORTRAN para trabajos científicos).
Lenguajes de Medio nivel
Se trata de un término no aceptado por todos, pero q seguramente habrás
oído. Estos lenguajes se encuentran en un punto medio entre los dos
anteriores. Dentro de estos lenguajes podría situarse C ya que puede acceder
a los registros del sistema, trabajar con direcciones de memoria, todas ellas
características de lenguajes de bajo nivel y a la vez realizar operaciones de alto
nivel.
Generaciones
La evolución de los lenguajes de programación se puede dividir en 5 etapas o
generaciones.
Primera generación: lenguaje maquina.
Segunda generación: se crearon los primeros lenguajes ensambladores.
Tercera generación: se crean los primeros lenguajes de alto nivel. Ej. C,
Pascal, Cobol…
Cuarta generación. Son los lenguajes capaces de generar código por si solos,
son los llamados RAD, con lo cuales se pueden realizar aplicaciones sin ser un
14. experto en el lenguaje. Aquí también se encuentran los lenguajes orientados a
objetos, haciendo posible la reutilización d partes del código para otros
programas. Ej. Visual, Natural Adabes…
Quinta generación: aquí se encuentran los lenguajes orientados a la
inteligencia artificial. Estos lenguajes todavía están poco desarrollados.