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.
Ejemplo 1: Sistema que realiza dos acciones
Ejemplo 2: Automatización de una
puerta de garaje Ejemplo 3: Automatización de un
puente-grúa
¿Qué es programación modular? Los procedimientos (parámetros)
Variables globales y locales Un ejemplo sobre los
procedimientos Las funciones predefinidas Las funciones de usuario Un ejemplo con las funciones
¿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.