Archive for 2014
ESTRUCTURAS DE CONTROL
La programacion estructurada es un estilo con el que se busca elaborar programas fáciles de entender. Para ello, la programacion estructurada hace uso de tres estructuras básicas de control:
- Estructura Secuencial
- Estructura Selectiva
- Estructura Repetitiva o iterativa
Estructura Secuencial
Indica que las instrucciones de un programa se ejecutan una despues de la otra, en el mismo orden en el cual aparecen en el programa, 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.
Un ejemplo en pseudocódigo de la estructura secuencial es el siguiente:
PSEUDOCÓDIGO Nombre
VARIABLES
Nombre: Tipo de dato
CONSTANTES
Nombre = Valor
INICIO
accion
accion1
accion2
.
.
.
accionN
FIN
Ejemplo en diagrama de flujo:
Estructura Selectiva.
Ejemplo en diagrama de flujo:
Estructura Selectiva.
También conocida como la estructura SI-VERDADERO-FALSO, plantea la seleccion entre dos alternativas con base en el resultado de la evaluacion de una condición; equivale a la instruccion IF de todos los lenguajes de programacion.
Ejemplos:
En este diagrama de flujo, la variable CONDICION se va a evaluar; si CONDICION es FALSE se ejecutan las operaciones que se asignen, y si es TRUE se ejecutan las operaciones respectivas, arrojando un resultado.
Ejemplos:
En este diagrama de flujo, la variable CONDICION se va a evaluar; si CONDICION es FALSE se ejecutan las operaciones que se asignen, y si es TRUE se ejecutan las operaciones respectivas, arrojando un resultado.
Estructura Repetitiva o Iterativa.
También llamada la estructura HACER-MIENTRAS-QUE. Corresponde a la ejecución repetida de una instrucción mientras que se cumple una determinada condición.
Ejemplo:
En este diagrama de se muestra la (Condición) que sera evaluada; si el resultado de la evaluación es FALSO, se dirige hacia el Fin u otra acción del diagrama, mientras que si la evaluación resulta VERDADERO, ejecuta operaciones y regresa a evaluar la condición. El programa se detiene hasta que la (condición) resulte falsa y salga del ciclo.
Ventajas de la Programación Estructurada.
Con la programación estructurada, elaborar un buen programa de computadora, ya que demanda esfuerzo, creatividad, habilidad y cuidado. Sin embargo con este modelo de estructuras obtenemos grandes ventajas:
- Los programas son mas fáciles de entender. Un programa estructurado puede ser leído en secuencia, de arriba hacia abajo, sin necesidad de estar saltando de un sitio a otro en la lógica.
- Se reduce considerablemente el esfuerzo a realizar pruebas. El seguimiento de las fallas o depuración de los programas se facilita debido a la lógica mas visible, de tal forma que los errores se pueden detectar y corregir mas fácilmente.
- Se crean programas mas sencillos y mas rápidos.
Diagramas de Flujo
¿Que es un diagrama de flujo?
Un flowchart (por su nombre en inglés) es una de las técnicas de representación gráfica de algoritmos mas antigua ya la vez mas utilizada, aunque su empleo ha disminuido considerablemente desde la aparición de lenguajes de programación estructurados. Un diagrama de flujo utiliza símbolos estándar unidos por flechas llamadas lineas de flujo, que indican la secuencia en que se debe ejecutar.
En la siguiente imagen se muestran los símbolos básicos utilizados en un diagrama de flujo.
Reglas para elaborar un diagrama de flujo.
- Los Diagramas de flujo deben escribirse de arriba hacia abajo, y/o de izquierda a derecha.
- Los símbolos se unen con líneas, las cuales tienen en la punta una flecha que indica la dirección que fluye la información procesos, se deben de utilizar solamente líneas de flujo horizontal o verticales (nunca diagonales).
- Se debe evitar el cruce de líneas, para lo cual se quisiera separar el flujo del diagrama a un sitio distinto, se pudiera realizar utilizando los conectores. Se debe tener en cuenta que solo se vana utilizar conectores cuando sea estrictamente necesario.
- No deben quedar líneas de flujo sin conectar
- Todo texto escrito dentro de un símbolo debe ser legible, preciso, evitando el uso de muchas palabras.
- Todos los símbolos pueden tener más de una línea de entrada, a excepción del símbolo final.
- Solo los símbolos de decisión pueden y deben tener mas de una línea de flujo de salida.
Ventajas de los diagramas de flujo
- Favorecen la comprensión del proceso al mostrarlo como un dibujo. El cerebro humano reconoce muy fácilmente los dibujos. Un buen diagrama de flujo reemplaza varias páginas de texto.
- Permiten identificar los problemas y las oportunidades de mejora del proceso. Se identifican los pasos, los flujos de los re-procesos, los conflictos de autoridad, las responsabilidades, los cuellos de botella, y los puntos de decisión.
- Muestran las interfaces cliente-proveedor y las transacciones que en ellas se realizan, facilitando a los empleados el análisis de las mismas.
- Son una excelente herramienta para capacitar a los nuevos empleados y también a los que desarrollan la tarea, cuando se realizan mejoras en el proceso.
- Al igual que el pseudocódigo, el diagrama de flujo con fines de análisis de algoritmos deprogramación puede ser ejecutado en un ordenador, con un IDE como Free DFD.
1.3 Interpretes y Compiladores
1.3.1 Definicion de Intérpretes y Compiladores, Ambiente integral del Lenguaje C
¿Que es un Interprete?
¿Que es un Compilador?
Es un programa informático que traduce un programa escrito en un lenguaje de programación a otro lenguaje de programación (generalmente a lenguaje máquina), generando un programa equivalente que la maquina sea capaz de interpretar. Este proceso se conoce como compilación.
De esta manera, un programador puede diseñar un programa en un lenguaje mucho más cercano a como piensa un ser humano, para luego compilarlo a un programa más manejable por una computadora.
Como parte importante de este proceso de traducción, el compilador informa a su usuario de la presencia de errores en el programa fuente.
Diferencias.
¿Que es un Interprete?
Es un programa informático capaz de analizar y ejecutar otros programas escritos en un lenguaje de alto nivel. Los interprete realizan la traducción del código a medida que sea necesario, típicamente, lo hace instrucción por instrucción, y normalmente no guardan el resultado de dicha instrucción.
Los interpretes suelen ser más lentos que los compiladores debido a la necesidad de traducir el programa mientras se ejecuta, pero a cambio son más flexibles como entornos de programación y depuración.
Su acción equivale a la de un intérprete humano, que traduce las frases que oye sobre la marcha, sin producir ningún escrito permanente.
¿Que es un Compilador?
Es un programa informático que traduce un programa escrito en un lenguaje de programación a otro lenguaje de programación (generalmente a lenguaje máquina), generando un programa equivalente que la maquina sea capaz de interpretar. Este proceso se conoce como compilación.
De esta manera, un programador puede diseñar un programa en un lenguaje mucho más cercano a como piensa un ser humano, para luego compilarlo a un programa más manejable por una computadora.
Como parte importante de este proceso de traducción, el compilador informa a su usuario de la presencia de errores en el programa fuente.
Diferencias.
- Un intérprete facilita la búsqueda de errores, pues la ejecución de un programa puede interrumpirse en cualquier momento para estudiar el entorno (valores de las variables, etc.). Además, el programa puede modificarse sobre la marcha, sin necesidad de volver a comenzar la ejecución.
- Un compilador suele generar programas más rápidos y eficientes, ya que el análisis del lenguaje fuente se hace una sola vez, durante la generación del programa equivalente. En cambio, un intérprete se ve obligado generalmente a analizar cada instrucción tantas veces como se ejecute (incluso miles o millones de veces).
- Un intérprete permite utilizar funciones y operadores más potentes, como por ejemplo ejecutar código contenido en una variable en forma de cadenas de caracteres. Usualmente, este tipo de instrucciones es imposible de tratar por medio de compiladores. Los lenguajes que incluyen este tipo de operadores y que, por tanto, exigen un intérprete, se llaman interpretativos. Los lenguajes compilativos, que permiten el uso de un compilador, prescinden de este tipo de operadores.
1.2 Evolución de los Lenguajes de Programación
1.2.1 Definición, características y funciones de los lenguajes de programación.
Existen 4 generaciones de lenguajes de programación, en donde cada uno mejora a sus predecesoras en cuanto a las facilidades que otorga al programador.
Un lenguaje de programación consiste en un conjunto de órdenes o comandos que describen el proceso deseado. Cada lenguaje tiene sus instrucciones y enunciados verbales propios, que se combinan para formar los programas de cómputo. Los lenguajes de programación no son aplicaciones, sino herramientas que permiten construir y adecuar aplicaciones.
Características.
• Facilitan la tarea de programación, ya que disponen de formas adecuadas que permiten ser leídas y escritas por personas.
• Los lenguajes de programación representan en forma simbólica y en manera de un texto los códigos que podrán ser leídos por una persona.
• Son independientes de las computadoras a utilizar.
• Describe el conjunto de acciones consecutivas que un equipo debe ejecutar.
• Permite mayor portabilidad
1. Lenguajes de Máquina
2. Lenguajes ensambladores
3. Lenguajes de alto nivel
4. Lenguajes naturales.
LENGUAJE DE MAQUINA.
El lenguaje máquina, el de mas bajo nivel, representa datos e instrucciones con dígitos binarios (os y 1s), y el elemento ejecutor es la circutería misma de la computadora. Al principio de la comunicación, cada máquina tenia su propio lenguaje, y los programadores tenían sistemas redimentarios para combinar números que representaran instrucciones simples como sumar o comparar. Los métodos de programación con este lenguaje son tediosos e imprácticos, por lo que la comunidad del cómputo se movió rápidamente para desarrollar lenguajes ensambladores.
LENGUAJES ENSAMBLADORES.
En su momento, los lenguajes ensambladores constituyeron un gran avance, en lugar de usar ceros y unos, se utilizan códigos memonicos( para ayudar a la memoria) o abreviaturas fáciles de recordad para las instrucciones. Para usar un lenguaje ensamblador se requiere un lenguaje traductor que convierta los programas en ensamblador a lenguaje máquina que es el único que comprende la computadora. Este traductor se llama lenguaje ensamblador. Aún cuando los ensambladores presentaron un paso adelante, todavía tenían muchos inconvenientes, por ejemplo, que son detallados en extremo y su programación es tediosa, repetitiva y propensa a error.
LENGUAJE DE ALTO NIVEL.
La investigación sobre los lenguajes de alto nivel se inicia en 1945, con el ingeniero alemán Konrad Zuse, pero es hasta el inicio de los 60's que se generaliza su uso, transformando radicalmente la actividad de la programación. Estos lenguajes se asemejan mas a la lengua humana, particularmente el inglés, con menos detallados y con menos declaraciones describen tareas más complejas para la computadora. Como resultado, los programadores logran trabajos de mayor alcance y con menos esfuerzo. Obviamente, se requiere de un traductor de las declaraciones simbólicos de un lenguaje de alto nivel al lenguaje máquina ejecutable por la computadora, estos traductores se llaman compiladores.
Una ventaja de los lenguajes de alto nivel es que se pueden trasladar de una máquina a otra con pocas o nulas modificaciones. Entre los lenguajes de esta generación se encuentran los de propósito general como BASIC, FORTRAN y COBOL, que han sido muy populares, además se encuentran PASCAL, C y sus derivados.
LENGUAJE NATURAL
Se llaman así por su acercamiento a la lengua escrita. El uso de un lenguaje natural con una base de conocimientos produce un sistema basado en el conocimiento. Una clase de estos sistemas son los sistemas expertos, que son base de la inteligencia artificial.
CRONOLOGÍA
FECHA
|
LENGUAJE
|
ACONTECIMIENTO
|
1953
|
FORTRAN
|
Job Backus propone el desarrollo de un nuevo lenguaje
|
1954
|
FORTRAN
|
Un equipo de IBM comienza a trabajar en el FORTRAN
|
1957
|
FORTRAN
|
IBM desarrolla la primera versión
|
1959
|
LISP
|
El profesor John McCarthy y sus alumnos desarrolla el LISP
|
1960
|
ALGOL
|
Se reúnen representantes europeos y de EEUU para la creación de un nuevo lenguaje
|
1960
|
COBOL
|
Fue creado COBOL
|
1962
|
APL
|
Se publica el libro de Kenneth Iverson “A Programming Language
|
Mediado de los 60
|
APL
|
El APL es implantado por IBM en una versión conocida como APL/360
|
1965
|
BASIC
|
Aparece BASIC
|
1966
|
FORTRAN
|
Aparece el FORTRA IV
|
1968
|
ALGOL
|
Se implemento una nueva versión multi-proposito
|
Finales de los 60
|
APL
|
Está disponible para el mercado en general
|
1970
|
PASCAL
|
Niklaus Wirth diseña PASCAL
|
1972
|
PROLOG
|
Se desarrolla en la Universidad de Aix-Marsailles en Francia.
|
1972
|
C
|
Dennis Ritchie crea el lenguaje C.
|
1977
|
FORTRAN
|
Aparece el FORTRAN 77
|
Finales de los 70
|
MODULA-2
|
Niklaus Wirth dirige el desarrollo de MODULA-2
|
Principio de los 80
|
C++
|
Se desarrolla el lenguaje C++
|
1985
|
CLIPPER
|
Se crea CLIPPER
|
1986
|
CLIPPER
|
Aparece CLIPPER AUTUMN'86
|
1987
|
CLIPPER
|
CLIPPER SUMMER'87
|
1990
|
FORTRAN
|
Aparece el FORTRAN 90
|
Principios 90
|
JAVA
|
James Gosling y su equipo comienzan a desarrollar JAVA
|
1993
|
Visual C++
|
Se desarrolla el lenguaje Visual C++
|
1994
|
DELPHI
|
Aparece la primera versión
|
1995
|
JAVA
|
Se lanza al mercado JAVA
|
1999
|
DELPHI
|
Aparece Delphi 5.0 para windows 98 NT/2000
|
Posted by Unknown
1.1.2 Analisis comprativo de Sistemas Operativos
1.1.2 Análisis comparativo de Sistemas Operativos (MS-DOS, LINUX, WINDOWS)
LINUX.
Es un nucleo libre de sistema operativo (también suele referirse al nucleo como kernel) basado en Unix. Es uno de los principales ejemplos de software libre y de código abierto. Linux esta licenciado bajo la GPL y esta desarrollado por colaboradores de todo el mundo.
Linux fue concebido por el entonces estudiante de ciencias de la computacipon finlandés, Linux Torvalds en 1991. Linux consigui rapidamente desarrolladores y usuarios que adoptaron códigos de otros proyectos de software libre para usarlo con el nuevo sistema operativo.
Normalmente Linux se utiliza junto a un empaquetado de software, llamado distribucion Linux y Servidores.
MS-DOS.
El famoso DOS (Disk Operating System), es mas conocido por los nombres de PC-DOS y MSDOS. Fue hecho por la compañia de software Micrsoft. Es el sistema operativo de disco de Microsoft.
Fue el miembro más popular de la familia de sistemas operativos DOS de Microsoft, y el principal sistema para computadoras personales compatible con IBM PC en la decada de 1980 y mediados de 1990, hasta que fue sustituida gradualmente por sistemas opreativos que ofrecias una interfaz gráfica de usuario.
Es un nucleo libre de sistema operativo (también suele referirse al nucleo como kernel) basado en Unix. Es uno de los principales ejemplos de software libre y de código abierto. Linux esta licenciado bajo la GPL y esta desarrollado por colaboradores de todo el mundo.
Linux fue concebido por el entonces estudiante de ciencias de la computacipon finlandés, Linux Torvalds en 1991. Linux consigui rapidamente desarrolladores y usuarios que adoptaron códigos de otros proyectos de software libre para usarlo con el nuevo sistema operativo.
Normalmente Linux se utiliza junto a un empaquetado de software, llamado distribucion Linux y Servidores.
WINDOWS.
Windows es un sistema operativo basado en ventanas. La primera versión se lanzó en 1985 y comenzó a utilizarse de forma generalizada gracias a su interfaz gráfica de usuario (GUI, Graphical User Interface). Hasta ese momento, el sistema operativo más extendido era MS-DOS (Microsoft Disk Operating System).
Microsotf Windows conocido generalmente como Windows, es el nombre de una familia de sistemas operativos desarrollados y vendidos por micrsoft.
Micrsoft introdujo un entorno operativo denominado Windows el 25 de noviembre de 1985 como un complemento de MS-DOS en respuesta al creciente interes de interfaces gráficas de usuario.
Microsoft windows llego a dominar el mercado mundial de computadoras personales con mas del 90% de la cuota de mercado, superando a Mac OS.
Las versiones mas recientes de Windows son Windows 8.1 y Windows 8.
Diferencias entre Linux y Windows.
Instalación. En linux no resulta sencilla, pero permite personalizar totalmente los paquetes que se deseen instalar. En windows, la instalación es muy poco configurable, pero muy sencillo de hacer.
Compatibilidad. Linux no esta detrás de ninguna casa comercial gracias a su elevada popularidad, pero ofrece una alta compatibilidad ofreciendo actualizaciones frecuentes. Windows al ser parte de Microsoft, intenta ofrecer una gran cantidad de drivers, ya que su gran poder económico hace que las empresas mismas de hardware creen sus propios drivers.
Software. Linux, al tener menos software, sufre una menor aceptación por parte de empresas. Windows al ser más fácil de usar en las empresas, posee una gran cantidad de software.
Posted by Unknown
UNIDAD 1 - INTRODUCCIÓN A LA PROGRAMACIÓN.
INTRODUCCIÓN A LA PROGRAMACIÓN
1.1 Sistemas operativos
1.1.1. Definición, características y Función de un sistema operativo.
Definición.
1.1.1. Definición, características y Función de un sistema operativo.
Definición.
Un sistema operativo, es el software básico que controla una computadora. Es el software básico que provee una interfaz entre los programas de la computadora, los dispositivos hardware y el usuario. Sirve de intermediario entre el usuario y la computadora. El sistema operativo define nuestra experiencia con la computadora.
HARDWARE <contolado por> SISTEMA OPERATIVO <controla las> APLICACIONES <usadas por el> USUARIO
Características y Funciones.
Los sistemas operativos controlan diferentes procesos de la computadora. Es el software que nos permite usar todos los programas de nuestro sistema, ademas de organizar y controlar el uso y acceso de los recursos en el sistema. Además oculta la complejidad de la computadora, haciendo que el acceso a ella sea más fácil para el usuario.
Como gestor de recursos, el sistema operativo maneja el funcionamiento de el procesador o CPU, los dispositivos de entrada y salida, la memoria principal, programas en ejecución, y en general, todos los recursos del sistema.
Los sistemas operativos pueden ser de tarea única o multitarea. Los sistemas operativos de tarea única, más primitivos, sólo pueden manejar un proceso en cada momento. Por ejemplo, cuando la computadora está imprimiendo un documento, no puede iniciar otro proceso ni responder a nuevas instrucciones hasta que se termine la impresión.
Todos los sistemas operativos modernos son multitarea y pueden ejecutar varios procesos simultáneamente.Los sistemas operativos pueden emplear memoria virtual para ejecutar procesos que exigen más memoria principal de la realmente disponible. Con esta técnica se emplea espacio en el disco duro para simular la memoria adicional necesaria.
El sistema operativo mas común es Windows, seguido de Macintosh ó Mac OS y Linux. La elección del sistema operativo condiciona las aplicaciones de las que se va a disponer.
PROGRAMA DE ESTUDIOS
UNIDAD I "INTRODUCCION A LA PROGRAMACION"
1.1.Sistemas Operativos
1.1.1. Definición, Características y Función de un Sistema Operativo.
1.1.2. Análisis comparativo de Sistemas Operativos (MS- DOS, LINUX, WINDOWS)
1.2.Evolución de los lenguajes de programación.
1.2.1. Definición, Características y Funciones de los Lenguajes de Programación.
1.3.Interpretes, Compiladores.
1.3.1. Definición de Intérpretes y Compiladores, Ambiente integral del Lenguaje C
UNIDAD II "FUNDAMENTOS DE PROGRAMACION ESTRUCTURADA"
2.1. Estructura general de un programa.
2.2. Tipos de datos y Operadores
2.2.1. Tamaños, Declaración, Modificadores
2.2.2. Operadores Lógicos, Aritméticos y de Asignación
2.3. Funciones de biblioteca.
2.3.1. Funciones de Entrada y Salida.
2.3.2. Funciones Matemáticas
2.4. Funciones generadas por el usuario.
2.4.1. Argumentos y Parámetros Formales
2.4.2. Funciones con y sin Argumentos
2.4.3. Funciones que Regresan Valores
UNIDAD III "ESTRUCTURA DE FLUJO PROGRAMATICO"
3.1. Estructuras de decisión
3.1.1. Simple
3.1.2. Ramificada
3.2. Estructuras de iteración
3.2.1. Pre y Post Condicional, Contador y Acumuladores
3.3. Estructuras de control
3.3.1. Ruptura de un Lazo
UNIDAD IV "ESTRUCTURA DE DATOS"
4.1. Arreglos unidimensionales
4.1.1. Concepto y Forma General
4.1.2. Arreglos Numéricos y de Caracteres
4.2. Arreglos bidimensionales
4.2.1. Concepto y Forma General
4.2.2. Arreglos Numéricos y de Caracteres
4.3. Apuntadores
4.3.1. Concepto
4.3.2. Tipos de Apuntadores
4.3.3. Operaciones con Apuntadores
4.3.4. Relación de Apuntadores con Arreglos
UNIDAD V "APLICACIONES"
5.1. Análisis del problema y elaboración del algoritmo
5.2. Codificación e Implementación
5.3. Pruebas modulares e integrales
5.4. Mantenimiento
BIBLIOGRAFIA
--BRONSON, Gary, J., C++ para ingeniería y ciencias.
International Thomson Editores, Impreso en México, 2000, 862 pp, ISBN: 752987-3
--CEBALLOS, Francisco Javier, Enciclopedia del Lenguaje C.
Computec-Rama. México, 1994.
--COHOON, James P. y Davidson, Jack W., Programación y diseño en C++.
2a edición, 2000, Impreso en España, 1022 pp, ISBN: 84-481-2682-3
--DEITEL, H.M.; Deitel, P.J. Cómo programar en C/C++,
Prentice- Hall, Hispanoamericana, México, 1995.
--JAMSA, Kris, Aprenda y practique C++,
3a edición, 1999, Oxford University Press, Impreso en México, 377 pp, ISBN: 970-613-460-3
--KERNIGHAN, B. W.; D.M. Ritchie, Lenguaje de Programación C. Prentice-Hall.
--PITTS, David, La Biblia de Red Hat Linux,
Anaya Multimedia, Madrid
--SCHILDT, Herbert, Turbo C/C++ Manual de Referencia.
McGraw HillImpreso en México, 1990, 874 pp, ISBN: 84-7615-738-X
--TACKER, Arlen B., Lenguajes de programación.
McGraw-Hill
--TANEMBAUM, A.S., Sistemas Operativos, análisis v diseño. Prentice-Hall
Posted by Unknown