35
LENGUAJES DE PROGRAMACION Un lenguaje de programación es un lenguaje que puede ser utilizado para controlar el comportamiento de una máquina, particularmente una computadora. Consiste en un conjunto de reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos, respectivamente. Aunque muchas veces se usa lenguaje de programación y lenguaje informático como si fuesen sinónimos, no tiene por qué ser así, ya que los lenguajes informáticos engloban a los lenguajes de programación y a otros más, como, por ejemplo, el HTML . Según la forma de ejecución Lenguajes compilados Naturalmente, un programa que se escribe en un lenguaje de alto nivel también tiene que traducirse a un código que pueda utilizar la máquina. Los programas traductores que pueden realizar esta operación se llaman compiladores. Éstos, como los programas ensambladores avanzados, pueden generar muchas líneas de código de máquina por cada proposición del programa fuente. Se requiere una corrida de compilación antes de procesar los datos de un problema. Los compiladores son aquellos cuya función es traducir un programa escrito en un determinado

Lenguajes de Programacion

Embed Size (px)

Citation preview

LENGUAJES DE PROGRAMACION

Un lenguaje de programación es un lenguaje que puede ser utilizado para controlar el comportamiento de una máquina, particularmente una computadora. Consiste en un conjunto de reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos, respectivamente. Aunque muchas veces se usa lenguaje de programación y lenguaje informático como si fuesen sinónimos, no tiene por qué ser así, ya que los lenguajes informáticos engloban a los lenguajes de programación y a otros más, como, por ejemplo, el HTML.

Según la forma de ejecución

Lenguajes compilados

Naturalmente, un programa que se escribe en un lenguaje de alto nivel también tiene que traducirse a un código que pueda utilizar la máquina. Los programas traductores que pueden realizar esta operación se llaman compiladores. Éstos, como los programas ensambladores avanzados, pueden generar muchas líneas de código de máquina por cada proposición del programa fuente. Se requiere una corrida de compilación antes de procesar los datos de un problema.

Los compiladores son aquellos cuya función es traducir un programa escrito en un determinado lenguaje a un idioma que la computadora entienda (lenguaje máquina con código binario).

Al usar un lenguaje compilado (como lo son los lenguajes del popular Visual Studio de Microsoft), el programa desarrollado nunca se ejecuta mientras haya errores, sino hasta que luego de

haber compilado el programa, ya no aparecen errores en el código.

Lenguajes interpretados

Se puede también utilizar una alternativa diferente de los compiladores para traducir lenguajes de alto nivel. En vez de traducir el programa fuente y grabar en forma permanente el código objeto que se produce durante la corrida de compilación para utilizarlo en una corrida de producción futura, el programador sólo carga el programa fuente en la computadora junto con los datos que se van a procesar. A continuación, un programa intérprete, almacenado en el sistema operativo del disco, o incluido de manera permanente dentro de la máquina, convierte cada proposición del programa fuente en lenguaje de máquina conforme vaya siendo necesario durante el proceso de los datos. No se graba el código objeto para utilizarlo posteriormente.

La siguiente vez que se utilice una instrucción, se le debe interpretar otra vez y traducir a lenguaje máquina. Por ejemplo, durante el procesamiento repetitivo de los pasos de un ciclo, cada instrucción del ciclo tendrá que volver a ser interpretado cada vez que se ejecute el ciclo, lo cual hace que el programa sea más lento en tiempo de ejecución (porque se va revisando el código en tiempo de ejecución) pero más rápido en tiempo de diseño (porque no se tiene que estar compilando a cada momento el código completo). El intérprete elimina la necesidad de realizar una corrida de compilación después de cada modificación del programa cuando se quiere agregar funciones o corregir errores; pero es obvio que un programa objeto compilado con antelación deberá ejecutarse con mucha mayor rapidez que uno que se debe interpretar a cada paso durante una corrida de producción.

ALGUNOS LENGUAJES DE PROGRAMACIÓN:

ABAP

ABC

Ada

ActionScript

Afnix

ALGOL

APL

ASP

ASP.NET

AWK

B

BASIC

BCPL

Befunge

Boo

C

C++

C#

Caml

Clipper

CLIPS

CLU

COBOL

CORAL

D

Delphi

DIV

Dylan

Eiffel

Erlang

Ensamblador

Extended ML

Euphoria

FORTRAN

Gambas

GML

GRAFCET

FP

Haskell

Icon

Inform

INTERCAL

ISWIM

J

Java

JavaScript

Joy

KWC

LADDER

Lexico

Lingo

Lisp

Logo

Lua

MAGIC

Mainsail

Mesa

Miranda

ML

Modula

Modula-2

Modula-3

Natural

NetREXX

Oberon

Object REXX

Parlog

Perl

PHP

PL/1

Plankalkül

PostScript

PowerBuilder

Prolog

Python

Rapid

REXX

RPN

RPG

Ruby

Sail

Sather

Scheme

Scriptol

Seed7

Self

Sh

Simula

Smalltalk

Snobol

SPARK

Squeak

SR

Standard ML

TI-Basic

TCL

VBA

Visual Basic

Visual C++

Fénix

Flow-Matic

Forth

Objective-C

Ocaml

Occam

Oz

Pascal

Visual DialogScript

Visual Foxpro

Yurix

ZPL

PROGRAMACIÓN MODULAR

La programación estructurada es una técnica de diseño de programas que

comenzó a ponerse en

práctica a principios de los años 70. Su utilización tiene como objetivo paliar

algunas deficiencias:

1. Los programas que están constituidos por un único bloque, más o menos grande,

de código, dependiendo de la complejidad y tamaño de la aplicación, por ejemplo

5000 ó 6000 líneas de código sin comentar, sin documentar y sin estructurar, esto

es, sin hacer uso de un sólo submódulo, son programas pocos legibles, difíciles de

depurar y modificar y poco reutilizables.

2. Un problema complejo no puede solucionarse de una sola vez y con un único

algoritmo; además, existen operaciones que se repiten una y otra vez a lo largo del

programa, de tal manera que es necesario el mismo bloque de código pero con

diferentes datos. Con el fin de dar solución a los puntos anteriores se introdujo la

programación estructurada. Su objetivo primordial es resolver un problema, más

o menos complejo, dividiéndolo en otros más sencillos, que

ligados convenientemente, nos den la solución del problema original.

Cada subproblema se representará mediante uno o varios módulos según su

complejidad. La idea es que estos módulos sean independientes, es decir, que se

puedan modificar o reemplazar sin afectar al resto del programa o que puedan ser

reutilizados en otros programas. Supongamos el siguiente ejemplo. “Un profesor

quiere crear un programa para gestionar la notas de sus alumnos. Quiere que

dicho programa le permita realizar tareas tales como asignar notas, cambiar notas,

ver las notas según las distintas calificaciones, etc.” Un posible división del

problema en módulos sería: Esta subdivisión nos permitiría, fácilmente, cambiar

la forma de visualizar a los alumnos, reutilizar el módulo “Visualizar” en otro

programa y sobre todo es mucho más fácil de comprobar su funcionamiento.

Por tanto, las ventajas del diseño modular se traducen, principalmente, en que los

programas son:

más fáciles de escribir y probar (los módulos pueden escribirse y probarse

separadamente)

más fáciles de mantener y documentar.

Programación Estructurada.

Se refiere a un conjunto de técnicas que han ido evolucionando. Estas técnicas aumentan considerablemente la productividad del programa reduciendo el tiempo requerido para escribir, verificar, depurar y mantener los programas. La programación estructurada utiliza un número limitado de estructuras de control que minimizan la complejidad de los problemas y que reducen los errores. Ésta incorpora entre otros elementos: el diseño descendente, recursos abstractos y estructuras básicas. La programación estructurada es una forma de escribir programación de ordenador de forma clara, para ello utiliza únicamente tres estructuras: secuencial, selectiva e iterativa; siendo innecesario y no permitiéndose el uso de la instrucción o instrucciones de transferencia incondicional ( GOTO ).

¿QUÉ ES UNA INTERFAZ GRAFICA DE USUARIO?

En el contexto del proceso de interacción persona-ordenador, lainterfaz gráfica de

usuario (IGU), es el artefacto tecnológico de unsistema interactivo que posibilita, a

través del uso y la representación del lenguaje visual, una interacción amigable con

un sistema informático.

La interfaz gráfica de usuario (en inglés Graphical User Interface,GUI) es un tipo

de interfaz de usuario que utiliza un conjunto de imágenes y objetos gráficos

(iconos, ventanas, tipografía) para representar la información y acciones

disponibles en la interfaz. Habitualmente las acciones se realizan

mediante manipulación directa para facilitar la interacción del usuario con

la computadora.

Surge como evolución de la línea de comandos de los primerossistemas

operativos y es pieza fundamental en un entorno gráfico.

Como ejemplo de interfaz GUI podemos citar el escritorio o desktopdel sistema

operativo Windows y el entorno X-Window de Linux.

About these ads

IdentificadorLos identificadores (IDs) son símbolos léxicos que nombran entidades. El concepto es análogo al

de "nombres de procesamiento de la información". Nombrar las entidades hace posible referirse a

las mismas, lo cual es esencial para cualquier tipo de procesamiento simbólico.

Identificadores en lenguajes informáticos[editar]

En los lenguajes informáticos, los identificadores son elementos textuales (también

llamados símbolos) que nombran entidades del lenguaje. Algunas de las de entidades que un

identificador puede denotar son las variables, las constantes, los tipos de dato, lasetiquetas,

las subrutinas (procedimientos y funciones) y los paquetes, también conocidos como palabras raras.

En muchos lenguajes algunas secuencias tienen la forma léxica de un identificador pero son

conocidos como palabras clave (opalabras reservadas). Lo habitual es que si un identificador se

corresponde con una palabra clave o reservada, éste ya no pueda utilizarse para referirse a otro tipo

de entidades como variables o constantes (en unos pocos lenguajes, como PL/1, esta distinción no

está del todo clara).

Los lenguajes informáticos normalmente ponen restricciones en qué caracteres pueden aparecer en

un identificador. Por ejemplo, en las primeras versiones de C y C++, los identificadores están

restringidos para que sean una secuencia de una o más letras ASCII, dígitos numéricos (que en

ningún caso deben aparecer como primer carácter) y barras bajas. Las versiones posteriores de

estos lenguajes, así como otros muchos más lenguajes modernos soportan casi todos los

caracteres Unicode en un identificador. Una restricción común es que no está permitido el uso de

espacios en blanco ni operadores del lenguaje.

En lenguajes de programación compilados, los identificadores generalmente son entidades

en tiempo de compilación, es decir, entiempo de ejecución el programa compilado contiene

referencias a direcciones de memoria y offsets más que identificadores textuales (estas direcciones

de memoria u offsets, han sido asignadas por el compilador a cada identificador).

En lenguajes interpretados los identificadores están frecuentemente en tiempo de ejecución, a veces

incluso como objetos de primera clase que pueden ser manipulados y evaluados libremente.

En Lisp, éstos se llaman símbolos.

Los compiladores e intérpretes normalmente no asignan ningún significado semántico a un

identificador basado en la secuencia de caracteres actual. Sin embargo, hay excepciones. Por

ejemplo:

En Perl una variable se indica utilizando un prefijo llamado sigil, que especifica aspectos de

cómo se interpreta la variable en lasexpresiones.

En Ruby una variable se considera automáticamente como inmutable si su identificador

empieza con una letra mayúscula.

En Fortran, la primera letra de una variable indica si por defecto es creada como entero o

como flotante.

Tipo de datoTipo de dato informático 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, etc.

Por ejemplo, por lo general 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 son la suma, la resta, y la multiplicación. Los colores, por su 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 en este caso incluyen

la adición y la 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

la matemática 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ías diferentes. 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 específica que el dato interpretado como Persona incluirá, por

ejemplo, 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, la 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.

Índice

  [ocultar] 

1   Tipos de datos primitivos

2   Tipos simples

3   Tipos compuestos

4   Tipo de dato abstracto

5   Tipo puntero y referencia

6   Tipos algebraicos

7   Tipos objeto

8   Tipo función

9   Notas

10   Referencias

11   Véase también

Tipos de datos primitivos[editar]

Artículo principal: Tipos de datos primitivos

Los tipos de datos hacen referencia al tipo de información que se trabaja, donde la unidad

mínima de almacenamiento es el dato, también se puede considerar como el rango de valores

que puede tomar una variable durante la ejecución del programa.

DATOS PRIMITIVOS:

NINGUNO

CARACTERES

El tipo de dato carácter es un dígito individual el cual se puede representar como numéricos (0

al 9), letras (a-z) y símbolo ($,_). NOTA: En lenguaje java la codificación Unicode permite

trabajar con todos los caracteres de distintos idiomas.

Tipo de dato Rango Tamaño de bits

char 0 a 65535 16 bits

NUMÉRICOS Este tipo de dato puede ser real o entero, dependiendo del tipo de dato que se

vaya a utilizar.

Enteros: son los valores que no tienen punto decimal, pueden ser positivos o negativos y el

cero.

tipo de dato: byte tamaño= 8 bits

tipo de dato: short tamaño= 16 bits

tipo de dato: int tamaño= 32 bits

tipo de dato: long tamaño= 64 bits

Reales: estos caracteres almacenan números muy grandes que poseen parte entera y parte

decimal.

tipo de dato: float= 32 bits

tipo de dato: double= 64 bits

BOOLEANOS

Este tipo de dato se emplea para valores lógicos, los podemos definir como datos comparativos

dicha comparación devuelve resultados lógicos.

tipo de dato: boolean Rango= true - false

Tipos simples[editar]

IntroducciónSe pueden utilizar muchos lenguajes para programar una computadora. El más básico es el lenguaje de maquina, una colección de instrucciones muy detallada que controla la circuiteria interna de la maquina. Este es el dialecto natural de la maquina. Muy pocos programas se escriben actualmente en lenguaje de maquina por dos razones importantes: primero, porque el lenguaje de maquina es muy incomodo para trabajar y segundo por que la mayoría de las maquinas se pide programar en diversos tipos de lenguajes, que son lenguajes de alto nivel, cuyas instrucciones son más compatibles con los lenguajes y la forma de pensar humanos como lo es el lenguaje c que además es de propósito general.Debido a que los programas diseñados en este lenguaje se pueden ejecutar en cualquier maquina , casi sin modificaciones. Por tanto el uso del lenguaje de alto nivel ofrece tres ventajas importantes, sencillez, uniformidad y portabilidad.1.1. Lenguaje de programación: Sistema de símbolos y reglas que permite la construcción de programas con los que la computadora puede operar así como resolver problemas de manera eficaz.Estos contienen un conjunto de instrucciones que nos permiten realizar operaciones de entrada / salida, calculo, manipulación de textos, lógica / comparación y almacenamiento / recuperación.

Los lenguajes de programación se clasifican en: Lenguaje Máquina: Son aquellos cuyas instrucciones son directamente entendibles por la computadora y

no necesitan traducción posterior para que la CPU pueda comprender y ejecutar el programa. Las instrucciones en lenguaje maquina se expresan en términos de la unidad de memoria más pequeña el bit (dígito binario 0 ó 1).

Lenguaje de Bajo Nivel (Ensamblador): En este lenguaje las instrucciones se escriben en códigos

alfabéticos conocidos como mnemotécnicos para las operaciones y direcciones simbólicas. Lenguaje de Alto Nivel: Los lenguajes de programación de alto nivel (BASIC, pascal, cobol, fortran, etc.)

son aquellos en los que las instrucciones o sentencias a la computadora son escritas con palabras similares a los lenguajes humanos (en general en ingles), lo que facilita la escritura y comprensión del programa.

1.2. Algoritmo. La palabra algoritmo se deriva de la traducción al latín de la palabra árabe alkhowarizmi, nombre de un matemático y astrónomo árabe que escribió un tratado sobre manipulación de números y ecuaciones en el siglo IX.La solución a cualquier problema de cómputo involucra la ejecución de una serie de acciones en orden especifico. Un procedimiento para resolver un problema en términos de: a) Las acciones a ejecutarse y b) el orden en el cual estas acciones deben ejecutarse se llama algoritmo.Un ejemplo de un algoritmo para llegar a la escuelaa.b. Salir de la camac. Quitarse la pijamasd. Darse un bañoe. Vestirsef. Desayunar

1.3 Programa.oo Secuencia de instrucciones mediante las cuales se ejecutan diferentes acciones de acuerdo con

los datos que se estén procesando.oo Es un algoritmo desarrollado para ser utilizado por la computadoraoo Expresión de un algoritmo en un lenguaje preciso que puede llegar a entender una máquina de

cómputo.g. Utilizar el transporte ( autobús, carro , bicicleta, etc)

2. Fases para la creación de un programa.2.1 Definición del ProblemaEsta fase está dada por el enunciado del problema, el cual requiere una definición clara y precisa. Es importante que se conozca lo que se desea que realice la computadora; mientras esto no se conozca del todo no tiene mucho caso continuar con la siguiente etapa.2.2 Análisis del ProblemaUna vez que se ha comprendido lo que se desea de la computadora, es necesario definir:Los datos de entrada.Cual es la información que se desea producir (salida)Los métodos y fórmulas que se necesitan para procesar los datos.Una recomendación muy practica es el 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.2.3 Diseño del AlgoritmoLas características de un buen algoritmo son:Debe tener un punto particular de inicio.Debe ser definido, no debe permitir dobles interpretaciones.

Debe ser general, es decir, soportar la mayoría de las variantes que se puedan presentar en la definición del problema.Debe ser finito en tamaño y tiempo de ejecución.2.4 CodificaciónLa codificación es la operación de escribir la solución del problema (de acuerdo a la lógica del diagrama de flujo o pseudocódigo), en una serie de instrucciones detalladas, en un código reconocible por la computadora, la serie de instrucciones detalladas se le conoce como código fuente, el cual se escribe en un lenguaje de programación o lenguaje de alto nivel.2.5 Prueba y DepuraciónLos errores humanos dentro de la programación de computadoras son muchos y aumentan considerablemente con la complejidad del problema. El proceso de identificar y eliminar errores, para dar paso a una solución sin errores se le llama depuración.La prueba consiste en la captura de datos hasta que el programa no presente errores (los más comunes son los sintácticos y lógicos).2.6 DocumentaciónEs la guía o comunicación escrita es sus variadas formas, ya sea en enunciados, procedimientos, dibujos o diagramas.A menudo un programa escrito por una persona, es usado por otra. Por ello la documentación sirve para ayudar a comprender o usar un programa o para facilitar futuras modificaciones (mantenimiento).La documentación se divide en tres partes:Documentación InternaDocumentación ExternaManual del Usuario

Documentación Interna: Son los comentarios o mensaje que se añaden al código fuente para hacer mas

claro el entendimiento de un proceso. Documentación Externa: Se define en un documento escrito los siguientes puntos:

Descripción del ProblemaNombre del AutorAlgoritmo (diagrama de flujo o pseudocódigo)Diccionario de DatosCódigo Fuente (programa)

Manual del Usuario: Describe paso a paso la manera como funciona el programa, con el fin de que el

usuario obtenga el resultado deseado.

2.7 MantenimientoSe lleva acabo después de terminado el programa, cuando se detecta que es necesario hacer algún cambio, ajuste o complementación al programa para que siga trabajando de manera correcta. Para poder realizar este trabajo se requiere que el programa este correctamente documentado

Leer más: http://www.monografias.com/trabajos38/programacion/programacion.shtml#ixzz2xSYJ9TCs

PROGRAMACIÓNLOS DATOS Y OPERACIONES BÁSICAS.1. IDENTIFICADOR. Un identificador es una serie de caracteres formados por letras, dígitos y el carácter subrayado ( _ ) que no inicie con dígito, asi mismo es el nombre que damos a todo lo que manipulamos dentro de un programa (variables, constantes, funciones, etc). Por ejemplo variables, constantes, funciones, tipos definidos por el usuario etc.2. TIPOS DE DATOS. Todos los datos tienen un tipo asociado con ellos. Un dato puede ser un simple carácter, tal como b, un valor entero tal como 35. El tipo de dato determina la naturaleza del conjunto de valores que puede tomar una variable.

3. VARIABLES. Una variable es un identificador que puede tomar diferentes valores dependiendo del tipo que esta se declare.Una variable es un identificador que puede cambiar de valor durante la ejecución de un programa.Una variable es una posición de memoria donde se puede almacenar una valor para uso de un programa.5. INICIALIZACIÓN DE VARIABLESInicializar una variable es el darle un valor después que se ha declarado pero antes de que se ejecuten las sentencias en las que se emplea.6. CONSTANTES. Constantes son los valores que no pueden ser modificados. En C, pueden ser de cualquier tipo de datos.Además de los ejemplificados anteriormente, Podemos crear constantes de caracteres con barra invertida. Estos corresponden a los caracteres que son imposibles introducir desde el teclado.7. OPERADORESUn operador es un símbolo que indica al compilador que realice manipulaciones lógicas o matemáticas específicas.Los operadores del mismo nivel de precedencia son evaluados por el compilador de izquierda a derecha. Por supuesto, se puede utilizar paréntesis para ordenar la evaluación.También, conviene utilizar paréntesis para hacer más claro el orden en que se producen las evaluaciones, tanto para la persona que lo elabora o para los que después tengan que seguir el programa.Operadores Lógicos:Estos operadores se utilizan para establecer relaciones entre valores lógicos.Estos valores pueden ser resultado de una expresión relacional.Operadores LógicosAnd YOr ONot NegaciónPrioridad de los Operadores LógicosNotAndOrOperadores de Asignación. Los operadores de asignación se utilizan para formar expresiones de asignación, en las que se asigna el valor de una expresión a un identificador. ***** Por definir el operador de asignación** .Cada expresión toma un valor que se determina tomando los valores de las variables y constantes implicadas y la ejecución de las operaciones indicadas.Una expresión consta de operadores y operandos. Según sea el tipo de datos que manipulan, se clasifican las expresiones en:

Aritméticas Relaciónales Lógicas

9. PALABRAS RESERVADAS.Son palabras que tienen un significado especial para el lenguaje y no se pueden utilizar como identificadores.10. COMENTARIOS.

Los comentarios pueden aparecer en cualquier parte del programa, mientras estén situados entre los delimitadores /* comentario */. Los comentarios son útiles para identificar los elementos principales de un programa o para explicar la lógica subyacente de estos.Un diagrama de flujo es la representación gráfica de un algoritmo. También se puede decir que es la representación detallada en forma gráfica de como deben realizarse los pasos en la computadora para producir resultados.Esta representación gráfica se da cuando varios símbolos (que indican diferentes procesos en la computadora), se relacionan entre sí mediante líneas que indican el orden en que se deben ejecutar los procesos.Los símbolos utilizados han sido normalizados por el instituto norteamericano de normalización (ANSI).

Recomendaciones para el diseño de Diagramas de Flujo.Un diagrama de flujo es la representación gráfica de un algoritmo. También se puede decir que es la representación detallada en forma gráfica de como deben realizarse los pasos en la computadora para producir resultados.Esta representación gráfica se da cuando varios símbolos (que indican diferentes procesos en la computadora), se relacionan entre si mediante líneas que indican el orden en que se deben ejecutar los procesos.Los símbolos utilizados han sido normalizados por el instituto norteamericano de normalización (ANSI).

Todo diagrama debe tener un inicio y un fin. Se deben se usar solamente líneas de flujo horizontales y/o verticales. Se debe evitar el cruce de líneas utilizando los conectores. Se deben usar conectores solo cuando sea necesario. No deben quedar líneas de flujo son conectar. Se deben trazar los símbolos de manera que se puedan leer de arriba hacia abajo y de izquierda a

derecha. Todo texto escrito dentro de un símbolo deberá ser escrito claramente, evitando el uso de muchas

palabras.

Evitar la terminología de un lenguaje de programación o maquina. Utilizar comentarios ya sea al margen o mediante el símbolo grafico comentarios para que este sea

entendible por cualquier persona que lo consulte. Si el diagrama abarca mas de una hoja es conveniente enumerarlo e identificar de donde viene y a donde

se dirige.

2. PseudocódigoMezcla de lenguaje de programación y español (o ingles o cualquier otro idioma) que se emplea, dentro de la programación estructurada, para realizar el diseño de un programa. En esencial, el pseudocódigo se puede definir como un lenguaje de especificaciones de algoritmos.Es la representación narrativa de los pasos que debe seguir un algoritmo para dar solución a un problema determinado. El pseudocódigo utiliza palabras que indican el proceso a realizar.El pseudocódigo se concibió para superar las dos principales desventajas del Diagrama de Flujo: el diagrama de flujo es lento de crear y difícil de modificar sin un nuevo redibujo. Por otra parte el pseudocódigo es mas fácil de utilizar ya que es similar al lenguaje natural.Al contrario de los lenguajes de programación de alto nivel como Pascal o Basic no existe un conjunto de reglas que definan con precisión lo que es y lo que no es pseudocódigo. Varia de un programador a otro.El pseudocódigo requiere de ciertos símbolos que ya tienen significado preciso y establecido a los que se les conoce como palabras clave. Es necesario que exista una palabra clave para la selección y otra para la iteración condicional, así como para las instrucciones adicionales y otras estructuras de control.Programación estructuradaMétodo disciplinado de escribir programas que sean claros, que se demuestren que son correctos y fáciles de modificarUn programa se compone de:a.b. Estructuras de datos.- Los hechos reales, representación en forma de datos, manera en que se

organizan los datos.c. Operaciones primitivas elementales.- Son acciones que se ejecutan sobre los datos para

transformarlos en información.d. Estructuras de control.- Son los métodos que existen para dirigir el flujo de acciones que la

computadora deberá ejecutar sobre los datos manejados por el programa.

Estructura de control secuencialLa computadora ejecutará automáticamente enunciados uno después del otro, en el orden en el cual se han escrito de inicio a fin.

Ejemplo Sumar dos números:PseudocódigoInicioEntero a,b,c declara las variables a utilizar

Leer a,b solicita el valor de a y bc= a+b suma a y b y lo almacena en cImprimir c muestra el resultado almacenado en la variable cfinDiagrama de flujo

 

ESTRUCTURA DE CONTROL SELECTIVAExisten tres tipos de estructuras de control selectivas, estas se basan en una condición o en una opción para decidir la parte del programa por el que pasará.a.b. Simple b)Doble o compuesta c)Múltiple

Selectiva simple.- evalúa una condición, si esta es verdadera ejecuta la acción o acciones especificadas, si es falsa no realiza ninguna acción.

Nota: Si existe sola una instrucción o sentencia dentro de la condición no es necesario marcarlos con inicio y fin, en caso contrario si, como se muestra en el diagrama anterior.Selectiva doble o compuesta.- evalúa una condición, si esta es verdadera ejecuta la acción o acciones especificadas, si es falsa ejecuta otra acción o acciones.

Nota: Si existe sola una instrucción o sentencia dentro de la condición no es necesario marcarlos con inicio y fin como en este caso que la condición fue falsa, en caso contrario si, en este ejemplo cuando la condición fue verdadera.Ejemplo: Imprimir si un número es positivo o negativo

Nota: las variables no se especifican en el diagrama de flujo, pero si en el pseudocódigo .

BIBLIOGRAFÍA D Appleby, y J.J. VandeKopple, Lenguajes de programación: paradigma y práctica, McGraw-Hill

Interamericana, 1998 T.W. Pratt y M.V. Zelkowitz, Lenguajes de programación: diseño e implementación, Prentice-Hall

Hispanoamericana, 3 ed., 1998 R. Sethi, Lenguajes de programación: conceptos y constructores, Addison-Wesley Iberoamericana, 1992

Leer más: http://www.monografias.com/trabajos38/programacion/programacion2.shtml#ixzz2xSYZwKmJ

     

Presentación               Programación              Control                Prácticas

 En esta sección presentamos algunos

ejemplos sencillos y resueltos de programación de autómatas así como una serie de automatismos sin resolver para que puedas crear tus propios programas. Todos los ejemplos tienen la misma disposición:

  Definición de las entradas, salidas y

estados del sistema  Realización del GRAFCET del sistema  Realización del DIAGRAMA DE

RELES o ESQUEMA DE CONTACTOS   Los ejemplos que te presentamos están

dispuestos de menor a mayor complejidad y deben ser suficientes para poder resolver los ejemplos sin resolver.

 En el apartado de prácticas podrás

comprobar y ejecutar los programas que realices.

  

¿Qué es programación modular?

Uno de los métodos más conocidos para resolver un problema es dividirlo en problemas más pequeños, llamados subproblemas. De esta manera, en lugar de resolver una tarea compleja y tediosa, resolvemos otras más sencillas y a partir de ellas llegamos a la solución. Esta técnica se usa mucho en programación ya que programar no es más que resolver problemas, y se le suele llamar diseño descendente, metodología del divide y vencerás o programación top-down.

Es evidente que si esta metodología nos lleva a tratar con subproblemas, entonces también tengamos la necesidad de poder crear y trabajar con subprogramaspara resolverlos. A estos subprogramas se les suele llamar módulos, de ahí viene el nombre de programación modular. En Pascal disponemos de dos tipos de módulos: los procedimientos y las funciones.

Veamos un ejemplo de cómo emplear el diseño descendente para resolver un problema. Supongamos que un profesor quiere crear un programa para gestionar lasnotas de sus alumnos. Quiere que dicho programa le permita realizar tareas tales como asignar notas, cambiar notas, ver las notas según distintas calificaciones, etc. A continuación tines un esquema que representa una de las posibles divisiones del problema en módulos.

Volver al inicio de la páginaPasar al siguiente apartado sobre los procedimientos

 

Los procedimientos

Un procedimiento es un subprograma que realiza una tarea específica. Para invocarlo, es decir, para hacer que se ejecute, basta con escribir su nombre en el cuerpo de otro procedimiento o en el programa principal. Pero, hay que tener muy en cuenta que su declaración debe hacerse antes de que sea llamado por otro módulo.

Una vez que has construido varios programillas en Pascal, crear un procedimiento no es nada complicado, pues tiene prácticamente la misma estructura que un programa. Veamos las secciones que comparten y no comparten un procedimiento y un programa principal:

Mientras que en el programa la cabecera consta de la palabra reservada program seguida del nombre del programa, en un procedimiento se compone de la palabra procedure seguida del nombre del procedimiento y una lista de parámetros que es opcional.

Las secciones de declaración de constantes (const), de tipos (type) y de variables (var) también pueden aparecer en la estructura de cualquier procedimiento.

Respecto al cuerpo del procedimiento, decir que al igual que el de un programa se delimita por las palabras reservadas begin y end, y en su interior puede contener sentencias simples o estructuradas.

Por último, comentar que ambos difieren en el signo de puntuación que marca su final, ya que en un programa es el punto y en un procedimiento es el punto y coma.

Todas estas diferencias y similitudes que hemos comentado, puedes apreciarlas en los siguientes esquemas que representan las estructuras de un programa y de un procedimiento:

program nombre_programa; const declarar_ctes; type declarar_tipos; var declarar_vars; (*aquí irían los

subprogramas*)

begin cuerpo_programa

end .

procedure nombre (lista_parametros); const declarar_ctes; type declarar_tipos; var declarar_vars;

(*aquí irían los

subprogramas*)

begin cuerpo_procedimiento

end ;

Los parámetros (argumentos)Como habrás observado, con los procedimientos nos llega un concepto nuevo, el de los parámetros. A los parámetros

también se les conoce como argumentos y tienen la misión de comunicar al procedimiento con el programa que lo llama. Por ejemplo, si quieres hacer un subprograma que multimplique dos números, lo más cómodo es que al llamar al procedimiento le pases los valores que participarán en la operación. Podría ser algo como:

procedure producto (a,b : integer; var rdo : integer) ; (* resto del procedimiento *)

En el ejemplo anterior se observan las dos clases de argumentos que existen en Pascal:

Los parámetros por valor Los parámetros por referencia

Los parámetros por valor tiene dicho nombre porque lo que recibe el subprograma no son más que copias de los valores de los datos que el programa invocador le pasa. Por tanto si en el procedimiento modificamos alguno de estos valores, los datos originales permaneceran inalterados. En el ejemplo, son a y b.

En cambio, en los parámetros por referencia lo que se pasa al procedimiento son los datos en sí. Y si éste los modifica, los cambios permanecerán una vez que la ejecución vuelva al módulo que invocó al procedimiento. Se utilizan para obtener valores de los cálculos que haga un subprograma, y en el anterior ejemplo es rdo.

¿Cómo se especifica que un parámetro es por valor o por referencia?

Pues es tan sencillo como anteponer la palabra reservada var cuando quieres que un argumento sea considerado como referencia. Esto se observa claramente con el parámetro rdo del ejemplo.

nota: si no tienes muy clara la diferencia entre parámetros por valor y por referencia, te aconsejo que vayas

al ejemplo sobre procedimientos del que dispones en este tema, estoy seguro que te ayudará.

Volver al inicio de la páginaPasar al siguiente apartado sobre variables globales y locales

 

Las variables globales y locales

Despues de estudiar los procedimientos de Pascal y las diferencias entre parámetros por valor y por referencia, es hora de tratar otro aspecto clave en la programación modular: la distinción entre variables globales y locales.

Veamos un ejemplo que, como siempre, nos ayudará en la explicación de estos nuevos conceptos:

program varsGlobalesLocales; var

vGlobal : integer;

procedure nombreProc(param : integer); var

vLocal : integer; begin vLocal := 2 * param; vGlobal := vLocal

end; (*cuerpo principal del programa*) begin vGlobal := 1; nombreProc(4); writeln('vGlobal vale : ',vGlobal) end.

Una variable local es una variable que está declarada dentro de un subprograma, y se dice que es local al subprograma. Y lo que la caracteriza es que su valor sólo está disponible mientras se ejecuta el subprograma. Dicho de otra manera, el programa principal no tiene conocimiento alguno de las variables locales de susprocedimientos y funciones.

Las variables declaradas en la sección correspondiente a esta labor en el programa principal se denominan variables globales. Y a diferencia de las locales, su valor está disponible tanto en el cuerpo del programa principal como en el de cualquiera de los subprogramas declarados.

En el ejemplo anterior se declara una variable local llamada vLocal, y si se intentase usarla en el cuerpo del programa principal, por ejemplo para asignarle un valor, recibiríamos un error del compilador. También se declara una variable global (vGlobal), cuyo valor se cambia en el cuerpo del procedimiento, y este cambio permanece después de ejecutarlo, pues el resultado que se mostraría en pantalla sería : vGlobal vale : 8.

nota: aunque en el ejemplo se hace, no es una buena práctica en programación tratar con variables globales en los subprogramas, porque pueden aparecer errores debidos a algún cambio no previsto en una de estas variables. Este tipo de errores son conocidos como efectos laterales y se evitan usando los parámetros en la comunicación de un programa con sus procedimientos.

Volver al inicio de la páginaPasar al siguiente ejemplo sobre los procedimientos

 

Un ejemplo con los procedimientos

Después de hablar de procedimientos, parámetros por valor y por referencia y variables globales y locales, es la hora de presentarte un ejemplo con el que puedas reforzar lo que hemos visto. Con él se pretende que queden absolutamente claros estos conceptos porque son fundamentales en la programación.

En el ejemplo, tienes a la izquierda el código de un programa en el que hay un procedimiento. A la derecha, tienes tres casillas en las que debes introducir numéros enteros para variables que participan en el programa. Después de dar los valores, deberías examinar el código y determinar qué salida crees que se producirá. Por último, pulsando el botón puedes ver la salida real y compararla con la que tenías en mente.

Volver al inicio de la páginaPasar al siguiente apartado sobre las funciones predefinidas

 

Las funciones predefinidas

Este tema trata de la programación modular, y como ya hemos dicho, Pascal nos ofrece dos tipos de módulos. Uno ya lo hemos comentado, los procedimientos, y el otro, es el que vamos a tratar ahora, las funciones.

La división a más alto nivel que se suele hacer con las funciones, es la que las divide según quien sea el autor de las mismas. Así tenemos funciones predifinidas oestándar, y funciones de usuario. Las de usuario las trataremos más adelante. Ahora nos centraremos en las predefinidas.

Las funciones predefinidas, también llamadas estándar, son las que el propio lenguaje Pascal pone a disposición del programador. Por ejemplo, si necesitas calcular el valor absoluto de un número, no es necesario que construyas la función, pues ya se dispone de una que lo hace.

Dependiendo del tipo de compilador de Pascal que uses, dispondrás de más o menos funciones estándar, pero siempre tendrás un grupo básico que comparten todos. A continuación se citan unas cuantas funciones de las básicas: 

sin(x:real) seno de x cos(x:real) coseno de x

sqr(x:real) cuadrado de x sqrt(x:real) raíz cuadrada de x

abs(x:real) valor absoluto de x ln(x:real)logaritmo neperiano de x

int(x:real) parte entera de x frac(x:real) parte decimal de x

pred(x:tipo ordinal)

predecesor de xsucc(x:tipo ordinal)

sucesor de x

pi (*no args.*)valor de la constante pi

odd(x:integer) si x es o no impar

Volver al inicio de la páginaPasar al siguiente apartado sobre funciones de usuario

 

Funciones definidas por el usuario

Las funciones de usuario son, como su nombre indica, las que el propio usuario declara, de igual manera que declara procedimientos. Las funciones nacen con el propósito de ser subprogramas que siempre tienen que devolver algún valor.

Las dos principales diferencias entre procedimientos y funciones son:

Las funciones siempre devuelven un valor al programa que las invocó.

Para llamar a un procedimiento se escribe su nombre en el cuerpo del programa, y si los necesita, se incluyen los parámetros entre paréntesis. Para invocar una función es necesario hacerlo en una expresión.

Veamos el esqueleto básico que comparten las funciones: 

function nombre [(p1,p2,...)] : tipo; const lista_ctes; type lista_tipos; var lista_vars; (*declaracion de subprogramas*)

begin (* cuerpo de la función *)

nombre := valor_devuelto

end;

Comentemos la sintaxis de una función que aparece en el cuadro anterior:

La lista de parámetros (p1,p2,...) está encerrada entre corchetes porque es opcional como en los procedimientos.

tipo es el tipo del dato que devolverá la función. Así podemos dividir las funciones en lógicas (boolean), enteras (integer), reales (real) y de carácter (char)

Y al final del cuerpo de la función es obligatorio asignarle un valor del tipo devuelto al nombre de la función, porque como ya hemos dicho una función siempre devuelve un valor.

Ahora es el momento de que vayas a un divertido ejemplo sobre las funciones disponible en este tema. Aunque más que ejemplo, se le podría llamar juego, ya que en él tienes la posibilidad de construir varias funciones pudiendo comprobar si son o no correctas.

Volver al inicio de la páginaPasar al siguiente ejemplo sobre las funciones

 

Un ejemplo sobre las funciones

A continuación tienes un ejemplo para que refuerces lo aprendido en el punto anterior sobre las funciones. El ejemplo es como un pequeño juego con el que se pretende construir una función. Para ello, puedes seleccionar lo que quieres que haga la función y las instrucciones que la forman.

En la izquierda, además de poder seleccionar el objetivo, tienes un cuadro que contiene las instrucciones disponibles. En la parte derecha tienes tres selectores para marcar que instrucciones quieres utilizar, y también tienes un cuadro para comprobar si la función es o no correcta. Suerte!!

nota: para que un programa sea considerado como correcto no basta con que funcione, sino que también es necesario que no contenga instrucciones que no aporten nada.