sábado, 30 de julio de 2011

ENTRADA Y SALIDA


En computación, entrada/salida, también abreviado E/S o I/O (del original en inglés input/output), es la colección de interfaces que usan las distintas unidades funcionales(subsistemas) de un sistema de procesamiento de información para comunicarse unas con otras, o las señales (información) enviadas a través de esas interfaces. Las entradas son las señales recibidas por la unidad, mientras que las salidas son las señales enviadas por ésta.
El término puede ser usado para describir una acción; "realizar una entrada/salida" se refiere a ejecutar una operación de entrada o de salida. Los dispositivos de E/S los usa una persona u otro sistema para comunicarse con una computadora. De hecho, a los teclados y ratones se los considera dispositivos de entrada de una computadora, mientras que losmonitores e impresoras son vistos como dispositivos de salida de una computadora. Los dispositivos típicos para la comunicación entre computadoras realizan las dos operaciones, tanto entrada como salida, y entre otros se encuentran los módems y tarjetas de red.
Es importante notar que la designación de un dispositivo, sea de entrada o de salida, cambia al cambiar la perspectiva desde el que se lo ve. Los teclados y ratones toman como entrada el movimiento físico que el usuario produce como salida y lo convierten a una señal eléctrica que la computadora pueda entender. La salida de estos dispositivos son una entrada para la computadora. De manera análoga, los monitores e impresoras toman como entrada las señales que la computadora produce como salida. Luego, convierten esas señales en representaciones inteligibles que puedan ser interpretadas por el usuario. La interpretación será, por ejemplo, por medio de la vista, que funciona como entrada.
En arquitectura de computadoras, a la combinación de una unidad central de procesamiento (CPU) y memoria principal (aquélla que la CPU puede escribir o leer directamente medianteinstrucciones individuales) se la considera el corazón de la computadora y cualquier movimiento de información desde o hacia ese conjunto se lo considera entrada/salida. La CPU y su circuitería complementaria proveen métodos de entrada/salida que se usan en programación de bajo nivel para la implementación de controladores de dispositivos.
Los sistemas operativos y lenguajes de programación de más alto nivel brindan conceptos y primitivas de entrada/salida distintos y más abstractos. Por ejemplo, un sistema operativo brinda aplicativos que manejan el concepto de archivos. El lenguaje de programación C define funciones que les permiten a sus programas realizar E/S a través de streams, es decir, les permiten leer datos desde y escribir datos hacia sus programas.
Una alternativa para las funciones primitivas especiales es la mónada de E/S, que permite que los programas describan su E/S y que las acciones se lleven a cabo fuera del programa. Esto resulta interesante, pues las funciones de E/S introducirían un efecto colateral para cualquier lenguaje de programación, pero ahora una programación puramente funcionalresultaría práctica.

ASIGNACION

Es el término que utiliza Microsoft para referirse a un sistema de archivos, formado por clústers o unidades de asignación.

SECUENCIALES


A diferencia de los sistemas combinacionales, en los sistemas secuenciales, los valores de las salidas, en un momento dado, no dependen exclusivamente de los valores de las entradas en dicho momento, sino también dependen del estado anterior o estado interno. El sistema secuencial más simple es el biestable, de los cuales, el de tipo D (o cerrojo) es el más utilizado actualmente.
La mayoría de los sistemas secuenciales están gobernados por señales de reloj. A éstos se los denomina "síncronos" o "sincrónicos", a diferencia de los "asíncronos" o "asincrónicos" que son aquellos que no son controlados por señales de reloj.

DIAGRAMA ESTRUCTURADO (NASSI.SCHNEIDERMAN)

En programación de computadores un diagrama Nassi-Shneiderman (o NSD por sus siglas en inglés) es una representación gráfica que muestra el diseño de un programa estructurado.
Fue desarrollado en 1972 por Isaac Nassi y Ben Shneiderman, este diagrama también es conocido como estructograma, ya que sirven para representar la estructura de los programas.

Basado en un diseño top-down (de lo complejo a lo simple ó divide y vencerás), el problema que resolver es dividido en subproblemas cada vez más pequeños - y simples - hasta que solo queden instrucciones simples y construcciones para el control de flujo. El diagrama Nassi-Shneiderman refleja la descomposición del problema en una forma simple usando cajas anidadas para representar cada uno de los subproblemas. Para mantener una consistencia con los fundamentos de la programación estructurada, los diagramas Nassi-Shneiderman no tienen representación para las instrucciones GOTO.
Los diagramas Nassi-Shneiderman se utilizan muy raramente en las tareas de programación formal. Su nivel de abstracción es muy cercano al código de la programación estructurada y ciertas modificaciones requieren que todo el diagrama sea redibujado.
Los diagramas Nassi-Shneiderman son (la mayoría de las veces) isomórficos con los diagramas de flujo. Todo lo que se puede representar con un diagrama Nassi-Shneiderman se puede representar con un diagrama de flujo. Las únicas excepciones se dan en las instrucciones GOTO, break y continue.

PSEUDOCODIGO

El pseudocódigo (o falso lenguaje) es utilizado por programadores para describir algoritmos en un lenguaje humano simplificado que no es dependiente de ningún lenguaje de programación. Por este motivo puede ser implementado en cualquiera lenguaje por cualquier programador que utilice el pseudocódigo.

Las principales características de este lenguaje son:
  1. Se puede ejecutar en un ordenador
  2. Es una forma de representación sencilla de utilizar y de manipular.
  3. Facilita el paso del programa al lenguaje de programación.
  4. Es independiente del lenguaje de programación que se vaya a utilizar.
  5. Es un método que facilita la programación y solución al algoritmo del programa.
Todo documento en pseudocódigo debe permitir la descripción de:
  1. Instrucciones primitivas.
  2. Instrucciones de proceso.
  3. Instrucciones de control.
  4. Instrucciones compuestas.
  5. Instrucciones de descripción.
Estructura a seguir en su realización:
  1. Cabecera.
    1. Programa.
    2. Modulo.
    3. Tipos de datos.
    4. Constantes.
    5. Variables.
  2. Cuerpo.
    1. Inicio.
    2. Instrucciones.
    3. Fin.

[editar]

DIAGRAMA DE FLUJO

Un diagrama de flujo es una representación gráfica de un algoritmo o proceso. Se utiliza en disciplinas como la programación, la economía, los procesos industriales y la psicología cognitiva. Estos diagramas utilizan símbolos con significados bien definidos que representan los pasos del algoritmo, y representan el flujo de ejecución mediante flechas que conectan los puntos de inicio y de término.

TOP-DOWN Y BOTTOM.UP


Top-down y Bottom-up son estrategias de procesamiento de información características de las ciencias de la información, especialmente en lo relativo al software. Por extensión se aplican también a otras ciencias sociales y exactas.
En el modelo Top-down se formula un resumen del sistema, sin especificar detalles. Cada parte del sistema se refina diseñando con mayor detalle. Cada parte nueva es entonces redefinida, cada vez con mayor detalle, hasta que la especificación completa es lo suficientemente detallada para validar el modelo. El modelo "Top-down" se diseña con frecuencia con la ayuda de "cajas negras" que hacen más fácil cumplir requerimientos aunque estas cajas negras no expliquen en detalle los componentes individuales.
En contraste, en el diseño Bottom-up las partes individuales se diseñan con detalle y luego se enlazan para formar componentes más grandes, que a su vez se enlazan hasta que se forma el sistema completo. Las estrategias basadas en el flujo de información "bottom-up" se antojan potencialmente necesarias y suficientes porque se basan en el conocimiento de todas las variables que pueden afectar los elementos del sistema.

OPERADORES Y OPERANDOS

Los operadores aritméticos permiten la realización de operaciones matemáticas con los valores (variables y constantes). 

Los operadores aritméticos pueden ser utilizados con tipos de datos enteros o reales. Si ambos son enteros, el resultado es entero; si alguno de ellos es real, el resultado es real. 



Operadores Aritméticos 
+ Suma 
- Resta 
* Multiplicación 
/ División 
mod Modulo (residuo de la división entera) 

Ejemplos:
Expresión   Resultado
7 / 2   3.5
12 mod 7   5
4 + 2 * 5   14

EXPRECIONES

Expresión (Del lat. expressĭo, -ōnis), etimológicamente, movimiento del interior hacia el exterior, es decir, una presión hacia afuera, es la demostración de ideas o sentimientos. La expresión puede quedar como un acto íntimo del que se expresa o transformarse en un mensaje que un emisor transmite a un receptor, con lo que se convierte en comunicación.

Según la forma de lenguaje utilizado para la expresión se diferencian tipos o formas de expresión:
  • La expresión artística, en arte, mediante el lenguaje artístico;
  • expresión literaria, en literatura, mediante el lenguaje literario;
  • expresión poética, en poesía, mediante el lenguaje poético;
  • expresión teatral, en teatro, mediante los anteriores y además el lenguaje escénico;
  • la expresión corporal es el comportamiento exterior espontáneo o intencional, que traduce emociones o sentimientos mediante el lenguaje corporal (que también forma parte de disciplinas artísticas como el mimo, la danza y el propio teatro);
  • la expresión facial es la manifestación de los sentimientos a través del rostro;
  • la expresión sonora a través de señales acústicas inteligibles;
  • y la expresión oral mediante el habla; su opuesto es la expresión escrita.



TIPOS DE DATOS

En los lenguajes de programación y en otros programas utilitarios tales como una planilla de calculos, un tipo de dato es un atributo de una parte de los datos que indica al ordenador (y/o al programador) algo sobre la clase de datos sobre los que se va a procesar. Esto incluye imponer restricciones en los datos, como qué valores pueden tomar y qué operaciones se pueden realizar. Tipos de datos comunes son: enteros, números de coma flotante (decimales), cadenas alfanuméricas, fechas, horas, colores, coches o cualquier cosa que se nos ocurra. Por ejemplo, en Java, el tipo "int" representa un conjunto de enteros de 32 bits cuyo rango va desde el -2.147.483.648 al 2.147.483.647, así como las operaciones que se pueden realizar con los enteros, como la suma, resta y multiplicación. Los colores, por otra parte, se representan como tres bytes denotando la cantidad de rojo, verde y azul, y una cadena de caracteres representando el nombre del color; las operaciones permitidas incluyen la adición y sustracción, pero no la multiplicación.
Éste es un concepto propio de la informática, más específicamente de los lenguajes de programación, aunque también se encuentra relacionado con nociones similares de las matemáticas y la lógica.
En un sentido amplio, un tipo de datos define un conjunto de valores y las operaciones sobre estos valores.1 Casi todos los lenguajes de programación explícitamente incluyen la notación del tipo de datos, aunque lenguajes diferentes pueden usar terminología diferente. La mayor parte de los lenguajes de programación permiten al programador definir tipos de datos adicionales, normalmente combinando múltiples elementos de otros tipos y definiendo las operaciones del nuevo tipo de dato. Por ejemplo, un programador puede crear un nuevo tipo de dato llamado "Persona" que especifica que el dato interpretado como Persona incluirá un nombre y una fecha de nacimiento.
Un tipo de dato puede ser también visto como una limitación impuesta en la interpretación de los datos en un sistema de tipificación, describiendo la representación, interpretación y la estructura de los valores u objetos almacenados en la memoria del ordenador. El sistema de tipificación usa información de los tipos de datos para comprobar la verificación de los programas que acceden o manipulan los datos.

METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS POR MEDIO DE LA COMPUTADORA

La solución de un problema por computadora, requiere de siete pasos, dispuestos de tal forma que cada uno es dependiente de los anteriores, lo cual indica que se trata de un proceso complementario y por lo tanto cada paso exige el mismo cuidado en su elaboración. Los siete pasos de la metodología son los siguientes:
1. Definición del problema
2. Análisis de la solución
3. Diseño de la solución
4. Codificación
5. Prueba y Depuración
6. Documentación
7. Mantenimiento
1.-Definición del problema
Es el enunciado del problema, el cual debe ser claro y completo. Es fundamental conocer y delimitar por completo el problema, saber que es lo se desea realice la computadora, mientras esto no se conozca del todo, no tiene caso continuar con el siguiente paso.
2.-Análisis de la solución
Consiste en establecer una serie de preguntas acerca de lo que establece el problema, para poder determinar si se cuenta con los elementos suficientes para llevar a cabo la solución del mismo, algunas preguntas son:
?Con qué cuento? Cuáles son los datos con los que se va a iniciar el proceso, qué tenemos que proporcionarle a la computadora y si los datos con los que cuento son suficientes para dar solución al problema.
?Qué hago con esos datos? Una vez que tenemos todos los datos que necesitamos, debemos determinar que hacer con ellos, es decir que fórmula, cálculos, que proceso o transformación deben seguir los datos para convertirse en resultados.
?Qué se espera obtener? Que información deseamos obtener con el proceso de datos y de que forma presentarla; en caso de la información obtenida no sea la deseada replantear nuevamente un análisis en los puntos anteriores.
Es recomendable que nos pongamos en el lugar de la computadora y analicemos que es lo que necesitamos que nos ordenen y en que secuencia para producir los resultados esperados.
3.-Diseño de la solución
Una vez definido y analizado el problema, se procede a la creación del algoritmo (Diagrama de flujo ó pseudocódigo), en el cual se da la serie de pasos ordenados que nos proporcione un método explícito para la solución del problema.
Es recomendable la realización de pruebas de escritorio al algoritmo diseñado, para determinar su confiabilidad y detectar los errores que se pueden presentar en ciertas situaciones. éstas pruebas consisten en dar valores a la variable e ir probando el algoritmo paso a paso para obtener una solución y si ésta es satisfactoria continuar con el siguiente paso de la metodología; de no ser así y de existir errores deben corregirse y volver a hacer las pruebas de escritorio al algoritmo.
4.- Codificación
Consiste en escribir la solución del problema (de acuerdo al pseudocódigo); en una serie de instrucciones detalladas en un código reconocible por la computadora; es decir en un lenguaje de programación (ya sea de bajo o alto nivel), a esta serie de instrucciones se le conoce como PROGRAMA.
5.- Prueba y Depuración
Prueba es el proceso de identificar los errores que se presenten durante la ejecución del programa; es conveniente que cuando se pruebe un programa se tomen en cuenta los siguientes puntos:
1. - Tratar de iniciar la prueba con una mentalidad saboteadora, casi disfrutando la tarea de encontrar un error.
2. - Sospechar de todos los resultados que arroje la solución, con lo cual se deberán verificar todos.
3. - Considerar todas las situaciones posibles, normales y aún las anormales.
La Depuración consiste en eliminar los errores que se hayan detectado durante la prueba, para dar paso a una solución adecuada y sin errores.
6.- Documentación
Es la guía o comunicación escrita que sirve como ayuda para usar un programa, o facilitar futuras modificaciones. A menudo un programa escrito por una persona es usado por muchas otras, por ello la documentación es muy importante; ésta debe presentarse en tres formas: EXTERNA, INTERNA y AL USUARIO FINAL.
Documentación Interna
Consiste en los comentarios o mensajes que se agregan al código del programa, que explican las funciones que realizan ciertos procesos, cálculos o fórmulas para el entendimiento del mismo.
Documentación Externa
También conocida como Manual Técnico, está integrada por los siguientes elementos: Descripción del Problema, Nombre del Autor, Diagrama del Flujo y/o Pseudocódigo, Lista de variables y constantes, y Codificación del Programa, esto con la finalidad de permitir su posterior adecuación a los cambios.
Manual del Usuario
Es la documentación que se le proporciona al usuario final, es una guía que indica el usuario como navegar en el programa, presentando todas las pantallas y menús que se va a encontrar y una explicación de los mismos, no contiene información de tipo técnico.
7.- Mantenimiento
Se lleva a cabo después de determinado el programa, cuando se ha estado trabajando un tiempo, y se detecta que es necesario hacer un cambio, ajuste y/o complementación al programa para que siga trabajando de manera correcta. Para realizar esta función, el programa debe estar debida mente documentado, lo cual facilitará la tarea. ---Estoy invitando a todos los maestros y profesionales de esta area y/o carrera a colaborar construyendo este sitio dedicado a esta hermosa y util profesion aportando el material apropiado a cada uno de los mas de 1,000 temas que lo componen.

DEFINICIÓN DE LENGUAJES DE ALGORITMOS


Definición de Algoritmo.
“Un algoritmo se define como un método que se realiza paso a paso para solucionar un problema que termina en un número finito de pasos”.
Las características fundamentales que debe cumplir todo algoritmo son:
Debe ser preciso. e indicar el orden de realización de cada paso.
Debe ser definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez.
Debe ser finito. Si se sigue un algoritmo, se debe terminar en algún momento ; o sea debe tener un número finito de pasos.
La definición de un algoritmo debe describir tres partes : Entrada, Proceso y Salida.
Diseñar un algoritmo para cambiar una llanta a un coche.
Inicio.
Traer gato.
Levantar el coche con el gato.
Aflojar tornillos de las llantas.
Sacar los tornillos de las llantas.
Quitar la llanta.
Poner la llanta de repuesto.
Poner los tornillos.
Apretar los tornillos.
Bajar el gato.
Fin.

ALGORITMOS COTIDIANOS

Son todos aquellos algoritmos que nos ayudan que nos ayudan a resolver problemas diarios y que hacemos casi sin darnos cuenta que estamos siguiendo una metodología para resolverlos.
como los antes vistos problemas matemáticos cambiar una bombilla revisar el televisor etc

DEFINICIÓN DE ALGORITMO


En general, no existe ningún consenso definitivo en cuanto a la definición formal de algoritmo. Muchos autores los señalan como listas de instrucciones para resolver un problema abstracto, es decir, que un número finito de pasos convierten los datos de un problema (entrada) en una solución (salida).1 2 3 4 5 6 Sin embargo cabe notar que algunos algoritmos no necesariamente tienen que terminar o resolver un problema en particular. Por ejemplo, una versión modificada de la criba de Eratóstenes que nunca termine de calcular números primos no deja de ser un algoritmo.7
A lo largo de la historia varios autores han tratado de definir formalmente a los algoritmos utilizando modelos matemáticos como máquinas de Turing entre otros.8 9 Sin embargo, estos modelos están sujetos a un tipo particular de datos como son números, símbolos o gráficas mientras que, en general, los algoritmos funcionan sobre una vasta cantidad de estructuras de datos.3 1 En general, la parte común en todas las definiciones se puede resumir en las siguientes tres propiedades siempre y cuando no consideremos algoritmos paralelos:7
Tiempo secuencial. Un algoritmo funciona en tiempo discretizado –paso a paso–, definiendo así una secuencia de estados "computacionales" por cada entrada válida (la entradason los datos que se le suministran al algoritmo antes de comenzar).
Estado abstracto. Cada estado computacional puede ser descrito formalmente utilizando una estructura de primer orden y cada algoritmo es independiente de su implementación (los algoritmos son objetos abstractos) de manera que en un algoritmo las estructuras de primer orden son invariantes bajo isomorfismo.
Exploración acotada. La transición de un estado al siguiente queda completamente determinada por una descripción fija y finita; es decir, entre cada estado y el siguiente solamente se puede tomar en cuenta una cantidad fija y limitada de términos del estado actual.
En resumen, un algoritmo es cualquier cosa que funcione paso a paso, donde cada paso se pueda describir sin ambigüedad y sin hacer referencia a una computadora en particular, y además tiene un límite fijo en cuanto a la cantidad de datos que se pueden leer/escribir en un solo paso. Esta amplia definición abarca tanto a algoritmos prácticos como aquellos que solo funcionan en teoría, por ejemplo el método de Newton y la eliminación de Gauss-Jordan funcionan, al menos en principio, con números de precisión infinita; sin embargo no es posible programar la precisión infinita en una computadora, y no por ello dejan de ser algoritmos.10 En particular es posible considerar una cuarta propiedad que puede ser usada para validar la tesis de Church-Turing de que toda función calculable se puede programar en una máquina de Turing (o equivalentemente, en un lenguaje de programación suficientemente general):10

DEFINICIÓN DE LENGUAJE


Se llama lenguaje (del provenzal lenguatgea y este del latín lingua) a cualquier tipo de código semiótico estructurado, para el que existe un contexto de uso y ciertos principios combinatorios formales. Existen contextos tanto naturales como artificiales.
  • El lenguaje humano se basa en la capacidad de los seres humanos para comunicarse por medio de signos. Principalmente lo hacemos utilizando el signo lingüístico. Aun así, hay diversos tipos de lenguaje. El lenguaje humano puede estudiarse en cuanto a su desarrollo desde dos puntos de vista complementarios: la ontogenia, que remite al proceso de adquisición del lenguaje por el ser humano, y la filogenia.
  • El lenguaje animal se basa en el uso de señales sonoras, visuales, y olfativas, a modo de signos, para señalar a un referente o un significado diferente de dichas señales. Dentro del lenguaje animal están los gritos de alarma, el lenguaje de las abejas, etc.
  • Los lenguajes formales son construcciones artificiales humanas, que se usan en matemática y otras disciplinas formales, incluyendo lenguajes de programación. Estas construcciones tienen estructuras internas que comparten con el lenguaje humano natural, por lo que pueden ser en parte analizados con los mismos conceptos que éste.

BREVES PRACTICAS DE PROGRAMACION

Todo tiene un inicio y la excepción no son los algoritmos comenzamos con un problema cualquiera la bombilla no prende: 
1 revisar si la bombilla esta bien apretada 
( si prende se acabo el problema si no seguimos con el paso2)
2 revisar en otro lugar si hay luz en la casa
3 si nada de esto funciona revisar si la bombilla esta fundida y en este caso comprar otra
así es como sirve un algoritmo son unos pasos que nos sirven para darle solución a un problema tan simple como que no prende la bombilla solo que en un algoritmo se representa gráficamente y se da un inicio y un orden por medio de flechas 

NOTA: con el programa (DFD) es donde podemos crear nuestro algoritmos  y darle solución a los problemas

CONCEPTOS BÁSICOS Y METODOLOGÍAS PARA LA SOLUCIÓN DE PROBLEMAS EN COMPUTADORAS

Los problemas los tenemos todos los días pero lo que no tenemos es como darles una solución en los algoritmos podemos encontrar las respuestas como lo son para problemas como sumas resta u operaciones matemáticas cuando se nos daña el computador u otros objetos electrónicos etc 
muchos problemas son los que podemos solucionar promedio de estos programas hay muchos programas de algoritmos uno de estos muy importante es (DFD) 

INTRODUCCION

Bueno mis queridos seguidores les voy a dar todoun paseo por lo que son los algoritmos espero que los disfruten y les sirvade ayuda

jueves, 28 de julio de 2011

COMO ES UN ALGORITMO ?

ARGUMENTO

Según lo mencionado anterior mente se puede decir que los algoritmos son un sistema utilizado cotidianamente es decir todos los días para resolver casos simples como revisar una torre de computador que no prende o simplemente realizar una suma esto cuenta con tres pasos la entrada proceso y salida que son los que le dan su esquema para que funcione donde la entrada es donde se dan los datos el proceso es donde se hace la operación ya sea suma resta u otras operaciones y la salida es donde se nos arroja o dice cual es el resultado final 

QUE ES UN ALGORITMO ?

En matemáticas, ciencias de la computación y disciplinas relacionadas, un algoritmo (del griego y latín, dixit algorithmus y éste a su vez del matemático persa al juarismi1 ) es un conjunto prescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas a quien deba realizar dicha actividad.2 Dados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene una solución. Los algoritmos son el objeto de estudio de la algoritmia.1
En la vida cotidiana, se emplean algoritmos frecuentemente para resolver problemas. Algunos ejemplos son los manuales de usuario, que muestran algoritmos para usar un aparato, o las instrucciones que recibe un trabajador por parte de su patrón. Algunos ejemplos en matemática son el algoritmo de la división  para calcular el cociente de dos números, el algoritmo de Euclides para obtener el máximo común divisor de dos enteros positivos, o el método de gauss para resolver un sistema lineal de ecuaciones.

PARTES DE UN ALGORITMO

Un algoritmo es una serie de pasos que le dan solución a algún problema sus partes son entrada proceso y salida ejemplo: 

ENTRADA: es donde se escriben los datos necesarios para darle solución al problema

PROCESO: son los pasos necesarios para resolver el problema ya sea suma,resta, multiplicación. división u otros etc

SALIDA: son los resultados que se arrojan como la suma de los datos o las variables (A Y B) según lo que se ha pedido