Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1. Lenguaje de Programación
Los lenguajes de programación son un conjunto de reglas, herramientas y condiciones que nos
permiten crear programas o aplicaciones dentro de una computadora. Estos programas son los
que nos permiten ordenar distintas acciones a la computadora en su “idioma” comprensible por
ella. Como su nombre lo indica, un lenguaje tiene su parte sintáctica y su parte semántica. ¿Qué
quiere decir esto? Que todo lenguaje de programación posee reglas acerca de cómo se deben
escribir las sentencias y de qué forma.
A su vez, los lenguajes de programación se dividen en tres grandes grupos: los lenguajes de
máquina, los lenguajes de bajo nivel y los de alto nivel. Los que pasaremos a explicar a
continuación:
Los lenguajes de máquina son los que entiende una computadora sin la necesidad de realizar
ninguna conversión. Escribirlos resulta extremadamente difícil para un programador
convencional. Hoy en día, nadie programa en éste lenguaje, pero como es necesario para la que
la computadora entienda lo que tiene que hacer, existen programas que se encargan de
transformar el código comprensible por un programador en código comprensible por una
computadora.
Las instrucciones en este tipo de lenguaje se componen de la unidad de memoria más pequeña
que existe dentro de una computadora, que se llama bit. Cada una de estas unidades puede tener
sólo dos valores posibles: 1 o 0. Veamos algunos ejemplos de este tipo de lenguaje:
Para facilitar la tarea del programador, se han diseñado otro tipo de lenguajes, que son más
comprensibles que el de máquina. Esto son el de bajo nivel y el de alto nivel.
Los lenguajes de bajo nivel, también llamados ensambladores, son aquellos cuyas sentencias
están formadas por códigos nemotécnicos (abreviaturas de palabras inglesas).
Son lenguajes que, por más complejos que sean, resultan mucho más comprensibles que los
lenguajes de máquina.
...
inicio: mov cx,25
ini: mov ah,6
mov dl,13
int 21h
mov dl,10
int 21h
loop ini
mov ah,9
lea dx,nombre
push cs
pop ds
int 21h
…
Estos lenguajes son, además, dependientes de la arquitectura de cada procesador, ya que cada
procesador ofrece un conjunto de instrucciones distinto para trabajar en este nivel de
programación. Una vez escrito el programa en este lenguaje, se necesita otro llamado programa
ensamblador, para que traduzca las sentencias en instrucciones comprensibles por la máquina.
Los lenguajes de alto nivel son aquellos que poseen sentencias formadas por palabras similares a
las de los lenguajes humanos. Por lo tanto, resulta mucho más sencillo escribir un programa en un
lenguaje de alto nivel para luego traducirlo en código comprensible para una computadora.
Algunos ejemplos de este tipo de lenguajes son: Pascal, Delphi, Cobol, Foxpro, JAVA y la mayoría
de los lenguajes visuales, como Visual Basic, Visual Foxpro, etc. Además, podemos decir que,
dentro de este conjunto de lenguajes de programación, algunos son de más alto nivel que otros,
pero, en general, todos entran en esta categoría.
En el caso de C, muchos autores opinan que este lenguaje es de nivel medio, o sea, que posee
una escritura sencilla y comprensible por los programadores, pero a la vez ofrece una potente y
variada gama de posibilidades para realizar miles de tareas con una computadora. Se puede decir
que se puede hacer casi lo mismo que con un lenguaje ensamblador. Observe que es posible
insertar código assembler dentro del código de C. En conclusión, C pertenece a un nivel
intermedio entre un lenguaje de bajo nivel y uno de alto nivel.
1.2. Programa
Definición: Secuencia de acciones entendibles por la computadora y que conduce a realizar una
tarea determinada y el correcto tratamiento de los datos.
Los programas constan de una serie de sentencias y estas a su vez de instrucciones que son las
acciones concretas que debe realizar la máquina.
Con unas cuantas excepciones, no existen no existen catálogos para componentes de software. Es
posible pedir programas ya hechos pero sólo como una unidad completa común, no como
componentes que pueden ensamblarse con nuevos programas.
1. Software de Sistemas
El software de sistemas es una colección de programas escritos para servir a otros programas,
como por ejemplo compiladores, editores, utilidades de gestión de archivos, etc.
El software que mide analiza y controla sucesos del medio real conforme ocurre se llama de
tiempo real. Los elementos del software de tiempo real incluye una componente de acumulación
de datos que recolecta y formatea la información de un entorno externo, una componente de
análisis que transforma la información según requiera la información, una componente de control
– salida que responda al entorno externo de una componente de monitorización que coordina a
todos los demás componentes de forma que pueda mantenerse la respuesta en tiempo real.
3. Software de Gestión
Las aplicaciones en esta área reestructuran los datos existentes en orden a facilitar las
operaciones comerciales y gestionar la toma de decisiones.
Este se ha caracterizado por los algoritmos de manejo de números. Las aplicaciones desde la
vulcanología hasta la astronomía, desde el análisis de la presión a la dinámica orbital de los
cohetes espaciales y desde la biología molecular hasta la fabricación automática.
5. Software Empotrado
Este software reside en memoria de sólo lectura y se utiliza para controlar productos y sistemas
de mercados industriales y de consumidores. El software empotrado puede ejecutar funciones
muy limitadas, por ejemplo el control de las teclas de un horno microondas, funciones digitales
en un auto tales como el control de la gasolina.
El procesamiento de palabras, las hojas de cálculo, los gráficos por computadora, juegos gestión
de bases de datos, aplicaciones financieras comerciales y personales, redes externas o acceso a
base de datos son unos cuantos de las cientos de aplicaciones.
No sólo existen varios tipos de Lenguajes de programación, sino que también podemos
encontrar distintas formas de programar una aplicación. Hay diversos paradigmas que nos
permiten encontrar una solución más adecuada a nuestros problemas. La idea es que el
programador los conozca y sepa seleccionar el adecuado para cada situación particular.
Lo que es verdad es que para cada paradigma conviene utilizar ciertos programas de
programación, y no cualquiera. Esto se debe a que la mayoría de los lenguajes fueron
creados para ser utilizados en determinados ambientes de programación.
Algunos lenguajes que se utilizan para este tipo de programación son Basic, Assembler,
Fortram, y COBOL entre otros.
La programación estructurada es una de las más conocidas y antiguas que existen. Sus
fundamentos los impulsó Edsgar Dijkstra hace ya mucho tiempo. Hoy en día, más allá de
que nuevos tipos de programación están copando el mercado, la programación
estructurada perdura en el fondo de los leguajes modernos.
Este tipo de programación se basa en la modularidad de los programas. Esto quiere decir
que los programas se dividen en módulos más pequeños, y cada uno realiza una tarea
específica. Así, la complejidad de un programa determinado también se ve reducida al
dividir sus tareas, que, en su conjunto, permiten la resolución de éste.
Los programas para éste tipo de programación poseen un procedimiento central, que es
el encargado de llamar y controlar el correcto funcionamiento de cada módulo que
compone la aplicación.
Los lenguajes que s utilizan en esta programación son C, Pascal, entre otros.
Las propiedades y los métodos de los objetos se especifican en su clase. Una clase de
objeto vendría a ser el molde de cada instancia particular del objeto. Por lo tanto, cuando
uno programa una aplicación orientada a objetos, define clases y luego crea las instancias
de objetos a través de esas clases para que interaccionen entre sí.
Existen otros conceptos importantes sobre objetos, que son l herencia y el polimorfismo.
Los lenguajes que se utilizan en este tipo de programación son muchos, pero los más
importantes hoy en día son: JAVA, C++, Delphi, Smalltalk y la gran mayoría de los
lenguajes de la nueva plataforma de Microsoft .NET, entre los cuales podemos encontrar
Visual Basic.NET, C# y ASP.NET
¿Existen más?
2. Algoritmo
Definición: Serie de operaciones detalladas y no ambiguas, a ejecutar paso a paso y que conduce
a la resolución de un problema.
Definición: Conjunto de reglas para resolver una cierta clase de problemas o una forma de
describir la solución del mismo, cada una de las acciones de las que consta un algoritmo se
llamará sentencia, y estas deben estar escritas en términos de un cierto lenguaje de
comprensible para el ejecutor (máquina).
2. Un algoritmo debe ser definido, es decir, si se sigue un algoritmo dos veces se debe obtener el
mismo resultado.
3. Un algoritmo debe ser finito, es decir, si se sigue un algoritmo se debe terminar en algún
momento.
2. Diseño de un algoritmo.
3. Codificación de un algoritmo.
2. Diseño de un algoritmo.
Comprende el desarrollo de la secuencia lógica de pasos a seguir para la resolución del problema.
Seguir los pasos del algoritmo y ver si resuelve realmente el problema, el algoritmo de resolución
suele expresarse en previo a la codificación en el lenguaje de programación, en alguna de las
siguientes representaciones:
a) Pseudocódigo
b) Diagrama de flujo
c) Diagrama Estructurado o Diagrama de Chopin
3. Codificación de un algoritmo.
Introducir el programa en la memoria, ejecutarlo y probar sus resultados corrigiendo los errores
hasta su puesta a punto final, es decir:
Depurar el programa
Verificar el programa
Documentar el programa
En la etapa previa a la codificación del algoritmo se realiza una representación gráfica clara y
detallada que refleje la secuencia en que deben ser ejecutadas las diferentes operaciones por la
máquina. Estas representaciones gráficas son las herramientas utilizadas en el análisis de la
programación. Se clasifican en tres grandes grupos:
Pseudocódigo
Tablas de Decisión
Estos son diagramas destinados a describir el flujo de información entre los distintos soportes
físicos de un sistema informático. Reflejan las operaciones normales para el desarrollo del
proceso que realizan los componentes utilizados en un programa.
Representan la estructura a través de módulos o bloques que se han realizado del problema a
resolver. Incluye también el flujo de información entre los diversos módulos, así como e orden de
ejecución de los mismos. Estos diagramas están relacionados con el proceso.
Son las órdenes en secuencia que se deben dar a la máquina para la resolución del problema.
Debe mostrar las operaciones que realiza un programa con el detalle necesario para que una vez
confeccionados se pueda realizar la etapa de codificación.
Los símbolos utilizados sirven para representar operaciones manuales y automáticas con los
diferentes dispositivos del sistema Informático
Símbolo Función
Tarjeta perforada.
Ejemplo:
Una aplicación consiste en la emisión de facturas a partir de los datos introducidos por teclado y
los datos del cliente almacenados en un fichero de disco. La factura se debe presentar en
pantalla y una vez dada la conformidad, escribirla en impresora.
Impresora
Almacenamiento
Los Ordinogramas o Diagramas de Flujo de Detalle y de Macroprocesos o Bloque deben mostrar las
operaciones que realiza un programa con el detalle necesario para que una vez confeccionados se
pueda realizar la etapa siguiente de la programación ( la codificación).
Para lenguajes tales como COBOL es suficiente representar únicamente los grandes bloques de
tratamiento de entrada / salida, proceso y decisión sin tener que detallar las operaciones
elementales.
Principales Símbolos
Comentario.
+ Adición
- Sustracción
* Multiplicación
/ División
^ Exponenciación
Lectura de un fichero de datos de empleados de una empresa ( nombre, edad, nro. Seguro
Social, pago) e impresión de los datos personales de cada empleado así como la suma Total de
sueldos que paga la empresa.
Inicio
ST = 0
N, E, S, P
Si Imprime sueldos
Ultimo empleado? totales
No
ST = ST + P
Fin
Proceso M
Subrutina A Subrutina B
Principal
Módulo A
140 150
Ejercicio
Problema:
Consiste en la emisión de facturas a partir de los datos introducidos por teclado y los datos del
cliente almacenados en un fichero de disco. La factura se debe presentar en pantalla y una vez
dada la conformidad, imprimirla
Inicio
Datos
Datos Clientes
Sí
¿Validación? Factura
No
No
Validación ¿Otro cliente?
Sí
Fin
Inicio
1. Inicio
Entrada de Datos
2. Entrada de Datos
3. Proceso Proceso
Salida de Datos
4. Salida de Datos
5. Fin
Fin
Las estructuras lógicas básicas, necesarias para confeccionar un diagrama de detalle estructurado
se reducen a:
a) Secuenciales
b) Selectivas
c) Iterativas
a) Secuenciales
b) Selectivas
No Sí if
¿? if else ¿? Sí
A B B
c) Iterativas
do w hile while do
B ¿? No
Sí
No
¿?
B
Sí
Ejemplo:
Las estructuras básicas anteriores, pueden componerse reemplazando cada bloque básico por
una de dichas estructuras (Secuenciales, selectivas o repetitivas).
E1
Diagrama básico
M es proceso
M
E1
No
¿?
Sí
E2
No Sí
¿?
E2
A B
2. Las líneas de conexión o de flujo deben ser siempre rectas y si es posible que sean sólo
verticales y horizontales, no cruzarse ni inclinarse, para conseguir lo anterior se recurrir a
conectores numerados convenientemente y solamente en caso estrictamente convenientes.
3. Las líneas que enlazan los símbolos entre si deben estar todas conectadas. Cada línea o flecha
debe entrar en un bloque, en un símbolo de decisión, y terminar en “fin” o unirse a otra flecha.
4. Se deben dibujar todos los símbolos de modo que se pueda seguir el proceso visualmente desde
arriba hacia abajo (Diseño Top-Down) y de izquierda a derecha.
5. Realizar un gráfico claro y equilibrado procurando que el flujo central del diagrama sea la
parte central de la hoja.
7. Se debe dejar un bloque o dos de procesos libres al comienzo del programa, para reservar
posiciones de memoria para variables, acumuladores, etc.
8. Indicar con comentarios al margen o mediante el símbolo gráfico para comentarios las
variables utilizadas y su descripción, procurando no abusar de su uso. Diferenciar las variables
propias del proceso de las pseudovariables o variables ficticias.
Si a = b (positiva)
Si not a<>b (negativa)
10. A cada bloque o símbolo se accesa por arriba y por la izquierda y se sale por abajo y/o por la
derecha.
Las entradas pueden ser variadas pero la salida es única excepto en los casos de símbolos de
decisión.
11. Realizar todas las anotaciones o comentarios marginales al diagrama (en su contexto) para
que éste no sólo sea comprensible por la persona que lo elaboró sino también por cualquier
persona ajena al mismo.
12. Siempre que sea posible, es conveniente que el diagrama no sobre pase una página, sino es
posible numerar adecuadamente las hojas del diagrama y utilizar los correspondientes conectores
de página que indiquen sin duda la dirección correcta del flujo.