Académique Documents
Professionnel Documents
Culture Documents
ndice
Lenguajes Orientados a Procedimientos.................................................................................... 4
Fortran.................................................................................................................................. 4
Requerimientos para su instalacin........................................................................................ 4
Caractersticas.................................................................................................................... 4
Ventajas y Desventajas........................................................................................................ 5
Tipos de datos.................................................................................................................... 5
Instrucciones de control....................................................................................................... 6
Manejo de archivos........................................................................................................... 12
Ejemplo........................................................................................................................... 13
Cobol.................................................................................................................................. 14
Requerimientos para su instalacin...................................................................................... 14
Caractersticas.................................................................................................................. 15
Ventajas y Desventajas...................................................................................................... 16
Tipos de datos.................................................................................................................. 16
Instrucciones de control..................................................................................................... 18
Manejo de archivos........................................................................................................... 19
Ejemplo........................................................................................................................... 19
Pascal................................................................................................................................ 21
Requerimientos para su instalacin...................................................................................... 21
Caractersticas.................................................................................................................. 22
Ventajas y Desventajas...................................................................................................... 22
Tipos de datos.................................................................................................................. 23
Instrucciones de control..................................................................................................... 23
Manejo de archivos........................................................................................................... 27
Ejemplo........................................................................................................................... 29
BASIC................................................................................................................................ 31
Requerimientos para su instalacin...................................................................................... 31
Caractersticas.................................................................................................................. 32
Ventajas y Desventajas...................................................................................................... 33
Tipos de datos.................................................................................................................. 33
Instrucciones de control..................................................................................................... 34
Manejo de archivos........................................................................................................... 34
Ejemplo........................................................................................................................... 35
C........................................................................................................................................ 37
Requerimientos para su instalacin...................................................................................... 37
Caractersticas.................................................................................................................. 38
Ventajas y Desventajas...................................................................................................... 39
Tipos de datos.................................................................................................................. 39
Instrucciones de control..................................................................................................... 40
Manejo de archivos........................................................................................................... 42
Ejemplo........................................................................................................................... 46
Bibliografa.......................................................................................................................... 47
Fortran
Fortran (previamente FORTRAN) (contraccin del ingls Formula Translating System) es
un lenguaje de programacin de alto nivel de propsito general, procedimental e imperativo,
que est especialmente adaptado al clculo numrico y a la computacin cientfica.
Desarrollado originalmente por IBM en 1957 para el equipo IBM 704, y usado para
aplicaciones cientficas y de ingeniera, el FORTRAN vino a dominar esta rea de la
programacin desde el principio y ha estado en uso continuo por ms de medio siglo en
reas de cmputo intensivo tales como la prediccin numrica del tiempo, anlisis de
elementos finitos, dinmica de fluidos computacional (CFD), fsica computacional y qumica
computacional. Es uno de los lenguajes ms populares en el rea de la computacin de alto
rendimiento y es el lenguaje usado para programas que evalan el desempeo (benchmark)
y el ranking de los supercomputadores ms rpidos del mundo.
Caractersticas
El lenguaje fue diseado teniendo en cuenta que los programas seran escritos en tarjetas
perforadas de 80 columnas. As por ejemplo, las lneas deban ser numeradas y la nica
alteracin posible en el orden de ejecucin era producida con la instruccin goto. Estas
caractersticas han evolucionado de versin en versin. Las actuales contienen
subprogramas, recursin y una variada gama de estructuras de control.
Ventajas y Desventajas
Lo que fue la primera tentativa de proyeccin de un lenguaje de programacin de alto nivel,
tiene una sintaxis considerada arcaica por muchos programadores que aprenden lenguajes
ms modernos. Es difcil escribir un bucle "for", y errores en la escritura de slo un carcter
pueden llevar a errores durante el tiempo de ejecucin en vez de errores de compilacin, en
el caso de que no se usen las construcciones ms frecuentes. Algunas de las versiones
anteriores no posean facilidades que son consideradas muy tiles, tal como la asignacin
dinmica de memoria.
Se debe tener en cuenta que la sintaxis de Fortran fue orientada para el uso en trabajos
numricos y cientficos. Muchas de sus deficiencias han sido abordadas en revisiones
recientes del lenguaje. Por ejemplo, Fortran 95 posee comandos mucho ms breves para
efectuar operaciones matemticas con matrices y dispone de tipos. Esto no slo mejora
mucho la lectura del programa sino que adems aporta informacin til al compilador.
Por estas razones Fortran no es casi usado fuera de los campos cientficos y del anlisis
numrico, pero permanece como el lenguaje preferido para desarrollar aplicaciones de
computacin numrica de alto rendimiento.
Tipos de datos
INTEGER Este tipo de dato sirve para representar en el ordenador nmeros enteros. Las
constantes de tipo entero se escriben mediante los dgitos de su representacin decimal,
precedidos por el signo, que es opcional si el nmero es positivo: (signo)dddddddddd. 243 +2
-15
REAL simple precisin Para representar nmeros reales con precisin estndar. Las
constantes de tipo real simple precisin se pueden escribir de las dos maneras siguientes:
notacin decimal es la notacin habitual, con punto decimal: (+/-)ccccccc.dddddd, notacin
cientfica o exponencial se escribe el nmero en notacin decimal acompaado de una
indicacin sobre la potencia de 10 por la que va multiplicado: (+/-)cc.dddddE(+/-)ee -15.36 6.
-1e3(=-1000.) 33.E-9(=0.000000033)
REAL doble precisin Para representar nmeros reales con precisin superior. Las
constantes reales doble precisin se escriben en su notacin cientfica, sustituyendo la E por
una D: (+/-)ccccccc.ddddddD(+/-)ee 1.0D25 -.345677788D-3
COMPLEX simple precisin Para representar nmeros complejos en simple precisin
(tambin existe en doble precisin). Las constantes complejas simple precisin se escriben
como un par de nmeros reales, entre parntesis y separados por una coma: (parte real,
parte imaginaria) (-123.456,1.003E+2)
CHARACTER Para representar cadenas de caracteres (texto). Las constantes se escriben
delimitando los caracteres entre apostrofes (comilla simple) o comillas dobles: abcdefghijklm
"nopqrstuvwxyz" (-123.456,1.003E+2) El resultado es: "Hola! : esto es un texto"
LOGICAL Para representar los valores lgicos, verdaderos y falsos: .TRUE. .FALSE.
Instrucciones de control
Condicional if-then
La sentencia if-then (en espaol: si-entonces) ejecuta instrucciones slo si se cumple una
condicin. Si la condicin es falsa, no se hace nada.
La sintaxis es la siguiente:
if (condicin) then
! qu hacer cuando la condicin es verdadera
end if
Condicional if-then-else
La sentencia if-then-else (si-entonces-o-si-no) decide entre dos secuencias de
instrucciones a ejecutar dependiendo si una condicin es verdadera o falsa. La sintaxis es la
siguiente:
if (condicin) then
! qu hacer cuando la condicin es verdadera
else
! qu hacer cuando la condicin es falsa
end if
Por ejemplo, el siguiente programa recibe como entrada un ao e indica si es bisiesto o no:
program bisiesto
implicit none
integer :: year
Condicional select-case
La sentencia select-case (seleccionar-caso) decide qu instrucciones ejecutar
dependiendo del valor de una expresin. Es una manera abreviada de escribir varios if uno
despus del otro.
La sintaxis es la siguiente:
select case (expresin)
case (valor1)
! qu hacer cuando expresin == valor1
case (valor2)
! qu hacer cuando expresin == valor2
...
case default
! qu hacer cuando no se cumpli
! ninguno de los caso anteriores
end select
Por ejemplo, el siguiente programa recibe un nmero entero como entrada e indica si es par
o impar:
program par
implicit none
integer :: n
print *, 'Ingrese un numero'
read *, n
select case (mod(n, 2))
case (0)
print *, 'El numero es par'
case (1)
print *, 'El numero es impar'
end select
En un mismo caso es posible poner varios valores separados por comas. Por ejemplo, el
siguiente programa recibe como entrada un carcter, y lo clasifica como vocal, consonante,
dgito o smbolo:
program clasifica_letras
implicit none
character :: c
print *, 'Ingrese un carcter'
read *, c
select case (c)
case ('a', 'e', 'i', 'o', 'u')
print *, c, ' es una vocal minuscula'
case ('A', 'E', 'I', 'O', 'U')
print *, c, ' es una vocal mayuscula'
case ('b', 'c', 'd', 'f', 'g', 'h', 'j', &
'k', 'l', 'm', 'n', 'p', 'q', 'r', &
's', 't', 'v', 'w', 'x', 'y', 'z')
print *, c, ' es una consonante minuscula'
case ('B', 'C', 'D', 'F', 'G', 'H', 'J', &
'K', 'L', 'M', 'N', 'P', 'Q', 'R', &
'S', 'T', 'V', 'W', 'X', 'Y', 'Z')
print *, c, ' es una consonante mayuscula'
case ('0', '1', '2', '3', '4', &
'5', '6', '7', '8', '9')
print *, c, ' es un digito'
case default
print *, c, ' es un simbolo'
end select
end program clasifica_letras
Ciclo do-while
El ciclo do-while (hacer mientras) ejecuta una secuencia de instrucciones mientras una
condicin sea verdadera.
La sintaxis es:
do while (condicin)
! qu hacer mientras la condicin se cumple
end do
Por ejemplo, el siguiente cdigo toma un nmero, y lo eleva al cuadrado hasta pasar de mil:
do while (n < 1000)
n = n ** 2
end do
En general, el ciclo do while se utiliza cuando no se puede saber de antemano cuntas veces
se ejecutar un ciclo, pero s qu es lo que tiene que ocurrir para que se termine.
La condicin es evaluada al comienzo de cada iteracin. Si la condicin deja de ser
verdadera en medio de la iteracin, el ciclo no termina, sino que contina hasta el final. Por
ejemplo, el siguiente ciclo se ejecuta tres veces, a pesar de que la condicin siempre deja de
cumplirse despus de la primera asignacin:
n=2
do while (n < 10)
n=n*6
n=n-9
end do
Ciclo do
El ciclo do (hacer) ejecuta una secuencia de instrucciones un nmero determinado de
veces. Para llevar la cuenta, utiliza una variable de control que toma distintos valores en cada
iteracin.
La sintaxis es:
do variable = inicio, final
! qu hacer para cada valor de la variable de control
end do
En la primera iteracin, la variable de control toma el valor inicio. Al final de cada iteracin, el
valor de la variable de control aumenta automticamente. Cuando se pasa de largo del
valor final, el ciclo termina.
Por ejemplo, el siguiente programa muestra los cubos de los nmeros del 1 al 20:
do i = 1, 20
print *, i, i ** 3
end do
do i = 1, 100, 2
print *, i, sqrt(real(i))
end do
Tanto la variable de control como los valores inicial, final y de incremento deben ser de tipo
entero. La variable de control es una variable como cualquier otra, y debe ser declarada
apropiadamente al comienzo del programa.
Un ciclo do es una manera abreviada de escribir un tipo especial de ciclo dowhile. Los
siguientes dos ciclos son equivalentes (cuando inc es positivo):
do i = inicio, fin, inc
print *, i
end do
i = inicio
do while (i <= fin)
print *, i
i = i + inc
end do
Salir de un ciclo
Adems de las condiciones de trmino propias de los ciclos do y do while, siempre es posible
salir de un ciclo en cualquier momento usando la sentencia exit. Lo lgico es que sea usada
dentro de un condicional, para evitar que todos los ciclos se terminen a la primera.
Por ejemplo, en el programa para determinar si un nmero es primo o no, la bsqueda de
divisores puede ser terminada prematuramente apenas se encuentra el primero de ellos:
es_primo = .true.
do d = 2, n - 1
if (mod(n, d) == 0) then
es_primo = .false.
exit
end if
end do
La sentencia cycle se usa para saltar a la iteracin siguiente sin llegar al final de la que est
en curso.
Por ejemplo, el siguiente programa muestra el seno, el coseno y la tangente de los nmeros
del 1 al 30, pero omitiendo los que terminan en 7:
do i = 1, 30
if (mod(i, 10) == 7) then
cycle
end if
print *, i
print *, 'Seno: ', sin(real(i))
print *, 'Coseno: ', cos(real(i))
print *, 'Tangente:', tan(real(i))
end do
Ciclo infinito
Existe un tercer tipo de ciclo que no tiene ninguna condicin de trmino. Se llama ciclo
infinito y la sintaxis es:
do
! hacer algo
end do
Manejo de archivos
Ejemplo
Cobol
El lenguaje COBOL (acrnimo de COmmon Business-Oriented Language, Lenguaje Comn
Orientado a Negocios) fue creado en el ao 1959 con el objetivo de crear un lenguaje de
programacin universal que pudiera ser usado en cualquier ordenador (ya que en los aos
1960 existan numerosos modelos de ordenadores incompatibles entre s), y que estuviera
orientado principalmente a los negocios, es decir, a la llamada informtica de gestin.
Requisitos de software
El sistema debe cumplir los requisitos de software descritos en esta seccin antes de instalar
Rational COBOL Generation Extension para zSeries.
Prerrequisitos de software
Para poder instalar este producto, debe instalar uno de los elementos de software siguientes:
Tenga en cuenta que para instalar la versin 6.0.1 (o posterior) de Rational Application
Developer o Rational Software Architect, primero debe instalar la versin 6.0 del producto y
despus actualizar el producto a la versin 6.0.1 o posterior utilizando la herramienta de
actualizacin Actualizador de productos de Rational. Consulte el apartado Instalar
actualizaciones.
Si no instal la caracterstica opcional EGL cuando instal Rational Application Developer o
Rational Software Architect, debe instalar esta caracterstica para poder instalar Rational
COBOL Generation Extension para zSeries. Consulte el apartado Instalar la caracterstica
EGL.
Si actualiz Rational Application Developer o Rational Software Architect a la versin 6.0.1 o
posterior antes de instalar la caracterstica EGL, deber actualizar tambin la caracterstica
EGL. Consulte el apartado Actualizar la caracterstica EGL.
Para obtener informacin acerca de los requisitos de software para la instalacin de Rational
Application Developer o Rational Software Architect, consulte la gua de instalacin del
producto correspondiente.
Tenga en cuenta que cuando instala Rational COBOL Generation Extension para zSeries,
este comparte el entorno de desarrollo comn de Rational Application Developer o Rational
Software Architect. (IBM Rational Software Development Platform solo se instala una vez.)
Rational Application Developer y Rational Software Architect tienen la misma interfaz de
usuario, llamada entorno de trabajo. Cuando instala Rational COBOL Generation Extension
para zSeries, se aaden funciones al entorno de trabajo a travs de los conectores. Un
conector es un mdulo de software que aade funcionalidad a un programa o una aplicacin
existente.
Requisitos de hardware
Requisitos de espacio de disco:
Para instalar Rational COBOL Generation Extension para zSeries, necesitar 200 MB
de espacio de disco en sistemas Windows o 225 MB de espacio de disco en sistemas
Linux.
Tenga en cuenta que esto es adems del espacio de disco necesario para instalar
Rational Application Developer o Rational Software Architect.
Tambin ser necesario espacio de disco adicional si baja la imagen electrnica para
instalar IBM Rational COBOL Generation Extension para zSeries.
El resto de requisitos de hardware son los mismos que para Rational Application Developer y
Rational Software Architect. Consulte la gua de instalacin del producto correspondiente.
Caractersticas
convertir los nmeros a binario y que son inaceptables en temas comerciales, COBOL
puede emplear y emplea por defecto nmeros en base diez. Para facilitar la creacin de
programas en COBOL, la sintaxis del mismo fue creada de forma que fuese parecida al
idioma ingls, evitando el uso de smbolos que se impusieron en lenguajes de
programacin posteriores.
Pese a esto, a comienzos de los ochenta se fue quedando anticuado respecto a los
nuevos paradigmas de programacin y a los lenguajes que los implementaban. En la revisin
de 1985 se solucion, incorporando a COBOL variables locales, recursividad, reserva de
memoria dinmica y programacin estructurada.
En la revisin de 2002 se le aadi orientacin a objetos, aunque desde la revisin de 1974
se poda crear un entorno de trabajo similar a la orientacin a objetos, y un mtodo de
generacin de pantallas grficas estandarizado.
Antes de la inclusin de las nuevas caractersticas en el estndar oficial, muchos fabricantes
de compiladores las aadan de forma no estndar. En la actualidad este proceso se est
viendo con la integracin de COBOL con Internet. Existen varios compiladores que permiten
emplear COBOL como lenguaje de scripting y de servicio web. Tambin existen compiladores
que permiten generar cdigo COBOL para la plataforma .NET y EJB.
Ventajas y Desventajas
En COBOL todo son ventajas ya que adems de llevar incorporado un sistema de
tratamiento de ficheros indexados de gran estabilidad y robustez hoy en da se pueden hacer
aplicaciones COBOL de interfaz grfico con SQL incrustado, lo que permite que mediante
aplicaciones cobol se pueda acceder a la mayor parte de bases de datos SQL del mercado.
Por si esto fuera poco la escalabilidad de potencia de proceso de los ordenadores que
soportan el lenguaje COBOL hace de ste el lenguaje ideal para desarrollo de aplicaciones
que deban soportar un gran nmero de usuarios
Muchos han sido los lenguajes que han pretendido competir con COBOL llegndose incluso
a pronosticar que COBOL tena los das contados. La realidad sin embargo es que muchos
de estos lenguajes han desaparecido y el COBOL sigue vigente actualmente. En contraste
con otros lenguajes ms de moda actualmente podramos definir de esta forma las
principales caractersticas y ventajas del lenguaje COBOL:
Autodocumentado
Simple
No propietario
Eficiente
Universal
Abierto
Completo
Escalable
Maduro
Portable
Fiable y probado
Tipos de datos
DATA DIVISION
FUNCIN
Se describen los datos que van a ser usados, creados, o producidos por el programa.
Se describe la estructura de los ficheros que se van a utilizar, as como las variables
utilizadas en el programa y que no son parte de los ficheros.
FORMATO
DATA DIVISION.
[FILE SECTION.
{ Entrada de descripcin de ficheros....}
{ Entrada de descripcin de registros...}]
[WORKING-STORAGE SECTION.
[ Entrada de descripcin de variables o registros ]]
TIPOS DE DATOS
Una de las caractersticas tpicas de los datos que se usan en las aplicaciones de gestin es
la variedad de formas y estructuras.
Los datos se clasifican en:
Campos Independientes
Campos Compuestos
Tablas
CAMPOS INDEPENDIENTES
Instrucciones de control
Sentencia SORT en un programa COBOL
Hemos visto en otros artculos como hacer un SORT en un JCL. En este artculo veremos
cmo hacerlo en un programa cobol. Utilidad? Depende. Lo cierto es que pudiendo hacerlo
por JCL, no tiene caso hacerlo en un programa. Pero quin sabe! Tal vez alguno de los
lectores puedan darnos una idea de su uso prctico: D.
SORT:
La sentencia SORT en cobol sirve para ordenar registros por un campo clave que le
indiquemos. Podremos elegir varias claves y definir si el orden ser ascendente o
descendente. Para el ejemplo, hemos creado un fichero temporal en nuestro programa que
utilizaremos para generar en l la informacin ordenada. Como registros a ordenar,
utilizaremos una tabla interna, de tal forma que no necesitaremos utilizar ficheros en ningn
momento.
La informacin ordenada se cargar desde el fichero temporal al registro de salida, que
podra utilizarse a lo largo de la ejecucin. Nosotros nos pararemos cuando tengamos
nuestra informacin ordenada, y la "display aremos" mostrndola por SYSOUT.
Manejo de archivos
XML PARSE: de XML a fichero plano con COBOL.
El XML parse es una utilidad del COBOL que podis encontrar en el propio manual de IBM.
Pero, alguna vez has tenido que usarlo? Y digo ms, alguna vez has tenido que usarlo
para transformar un XML que subido a host se convirtiese en un fichero de ms de 500.000
registros?
Se puede decir que para pequeos textos no tiene mucha dificultad, pero como a nosotros
nos gusta el riesgo, vamos a explicar cmo transformar un fichero bien "gordo" con el XML
PARSE.
Al final de este artculo podris descargaros el cdigo completo del programa de ejemplo.
Lo primero que tenemos que hacer es "subir" el fichero xml que tengamos en local a nuestro
servidor. En nuestro ejemplo vamos a suponer que tendremos un fichero plano de longitud
fija 129, y unos 500.000 registros.
Ejemplo
Esquema de un programa cobol
Los programas cobol se dividen en partes llamadas "DIVISION" que a su vez se separan en secciones llamadas
"SECTION". Vamos a ver el esquema bsico que todo programa cobol debe tener:
IDENTIFICATION DIVISION.
PROGRAM-ID. PRUEBA1.
Nombre del programa. Debe coincidir con el nombre externo del programa.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SPECIAL-NAMES.
DECIMAL-POINT IS COMMA.
Nosotros usamos los puntos como separadores de miles y la coma como el separador de decimales.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
En esta parte se definen los ficheros en caso de que los haya.
SELECT FICHERO1
Nombre de fichero.
ACCES MODE IS SEQUENTIAL
Tipo de acceso: SEQUENTIAL para los planos, INDEXED para los indexados.
FILE STATUS IS FS-FICHERO1
Variable donde guardar el file-status (cdigo de control de errores de acceso a ficheros).
DATA DIVISION.
FILE SECTION.
FD FICHERO1 RECORDING MODE IS F
Fichero con longitud fija. Si fuese de longitud variable pondramos V.
BLOCK CONTAINS 0 RECORDS
RECORD CONTAINS 129 CHARACTERS.
Longitud del fichero.
01 REG-FICHERO1 PIC X(129).
Donde guardaremos la informacin.
WORKING-STORAGE SECTION.
En ella definimos las variables que usaremos en el programa.
01 WX-VARIABLE PIC X.
Definicin de variables lo veremos ms adelante.
LINKAGE SECTION.
rea de comunicacin con otros programas
01 AREA-LINKAGE PIC X.
PROCEDURE DIVISION. / PROCEDURE DIVISION USING AREA-LINKAGE.
Si hay un rea definida en la linkage debemos incluir el USING en la procedure.
Aqu es donde va el programa en s. La estructura general ser:
0000-PRINCIPAL.
PERFORM 1000-INICIO
PERFORM 2000-PROCESO
UNTIL CUMPLE-CONDICION
PERFORM 3000-FINAL
La numeracin de prrafos suele ser esa, pero cada empresa puede tener su propia nomenclatura estndar.
El proceso en un programa se suele repetir n veces, hasta que se cumple la condicin indicada en el UNTIL.
En el prrafo de final se incluye la instruccin de finalizacin de ejecucin:
STOP RUN para programas principales.
GOBACK para rutinas.
Se pueden definir tantos prrafos como queramos, pero la estructura de todos ellos ser la siguiente:
1000-INICIO.
cdigo con instrucciones a realizar
.
Pascal
Pascal es un lenguaje de programacin desarrollado por el profesor suizo Niklaus Wirth entre
los aos 1968 y 1969 y publicado en 1970. Su objetivo era crear un lenguaje que facilitara el
aprendizaje de programacin a sus alumnos, utilizando la programacin estructurada y
estructuracin de datos. Sin embargo con el tiempo su utilizacin excedi el mbito
acadmico para convertirse en una herramienta para la creacin de aplicaciones de todo
tipo.
Epox
Free Pascal est escrito en Pascal (el compilador est creado usando Free Pascal),
es un compilador estable y potente. Tambin distribuido libremente bajo la licencia GPL.
Este sistema permite mezclar cdigo Turbo Pascal con cdigo Delphi, y soporta muchas
plataformas y sistemas operativos.
Turbo Pascal fue el compilador Pascal dominante para PC durante los aos 1980 y
hasta principios de los aos 1990, muy popular debido a sus magnficas extensiones y
tiempos de compilacin sumamente cortos. Actualmente, versiones viejas de Turbo
C,
basado
en GNU
Compiler
Pascal (hasta la 7.0) estn disponibles para descargarlo gratuito desde el sitio de Borland
(es necesario registrarse).
Kylix fue una versin de Delphi para el sistema operativo Linux promovida por la
antigua Borland reiterando la rama de Pascal de sus productos. Como descendiente de
Delphi cuenta con una librera de objetos mejorada llamada CLX, que es la versin para
Linux de la VCL. Sin embargo el proyecto ya se haba descontinuado mucho antes de
que Borland vendiera todos sus productos de desarrollo a Embarcadero Technologies,
actual dueo de Delphi.
TMT. Pascal.
Caractersticas
Otra diferencia importante es que en Pascal, el tipo de una variable se fija en su definicin; la
asignacin a variables de valores de tipo incompatible no estn autorizadas (en C, en
cambio, el compilador hace el mejor esfuerzo para dar una interpretacin a casi todo tipo de
asignaciones). Esto previene errores comunes donde variables son usadas incorrectamente
porque el tipo es desconocido; y tambin evita la necesidad de notacin hngara, que vienen
a ser prefijos que se aaden a los nombres de las variables y que indican su tipo.
Ventajas y Desventajas
Ventajas del lenguaje pascal
Para los aos 1980 principio de los 90 el programa Pascal fue criticado por no
producir cdigos industriales.
Obsoleto.
Tipos de datos
Los tipos de datos ms comunes en pascal son:
TIPO DATO
char
byte
integer
Real
Boolean
shortint
word
longint
String
RANGO
Caracter ASCII
0 a 255
-32,768 a 32,767
1E-38 a 1E+38
TRUE o FALSE
-128 a 127
0 a 65535
-2147483648 a 214748364
Cadena 255 caracteres
Para el caso de strings se prodra usar cualquiera de los dos siguientes formatos:
Var
Nombre: string;
Carrera: string[30];
Para el primer caso pascal reserva 255 bytes de memoria, para el caso de carrera pascal
solo reservara 30 bytes, es obvio cual de los dos casos es ms eficiente.
Instrucciones de control
Existen estructuras selectivas y estructuras repetitivas.
Estructuras selectivas
Hacen que el curso del programa se bifurque en una u otra direccin dependiendo de las
condiciones que se cumplan durante su ejecucin.
end;
Las proposiciones no son ms que algn valor booleano que se indique como true o false. Es
decir, la proposicin a evaluarse puede estar conformada por una expresin que se traduzca
en true o en false, o por una variable booleana que contenga un valor de true o false. De
cualquiera de las dos formas, la sentencia if siempre comparar la proposicin con el valor
true, y ejecutar las instrucciones que contiene si esa proposicin coincide con este valor
true. As, podra escribirse algo como:
if (variable1) and (variable2) then
Considerando a variable1 y variable2 como dos variables booleanas.
Tambin puede expresarse la negacin de una proposicin anteponiendo la palabra
reservada not, que equivale a decir que el resultado de la evaluacin debe ser falso:
if not proposicin then
sentencia
En este caso, la sentencia if tambin evaluar el valor de verdad de la condicin
comparndolo con true: si la proposicin indicada no se cumple, entonces el resultado ser
true.
2. CASE: se utiliza para seleccionar una opcin de entre varias. Es una forma de evitar
mltiples if. La expresin a evaluar es llamada selector y consta de la palabra case
seguida de una variable de tipo ordinal y la palabra reservada of. Luego se establece una
lista de sentencias de acuerdo a diferentes valores que puede adoptar la variable.
Opcionalmente, se puede establecer un bloque else para el caso de que la variable adopte
un valor que no coincida con ninguna de las sentencias de la lista. Finalizada la estructura
del case se coloca un end; (en este caso no se corresponde con ningn begin). El formato
es el siguiente:
case variable_ordinal of
valor1: sentencia 1;
valor2: sentencia2;
valor3: sentencia3;
else
sentencia4;
end;
Estructuras iterativas
Permiten que una sentencia o un bloque de cdigo se repitan una determinada cantidad de
veces.
1. FOR: realiza una iteracin una cantidad de veces especfica. Para ello necesita una
variable de tipo ordinal, a la que asignar valores dentro del rango que se le especifique,
incrementndose en uno. Por ejemplo, si se declara una variable llamada cuenta de tipo
integer, se puede utilizar un for con el siguiente formato:
for cuenta:= 5 to 9 do
sentencia
En este caso la sentencia se ejecutar cinco veces, ya que la variable cuenta primero
adoptar el valor 5, luego el valor 6, y as hasta llegar al 9, en que repetir la sentencia por
ltima vez.
Por supuesto los valores pueden reemplazarse por variables o por constantes, siempre que
ellos hayan sido declarados y se les haya asignado algn valor previamente:
for cuenta:= 1 to maximo do
sentencia
Una variante es asignar los valores decrementando la variable. Es decir, para el primer
ejemplo, la variable adoptara primero el valor 9, luego el 8, y as sucesivamente hasta llegar
al 5 y terminar la iteracin. Esto se efecta mediante la palabra reservada downto:
for cuenta:= 9 downto 5 do
sentencia
2. WHILE: Se evala una proposicin (o un grupo de ellas unidas por conectores lgicos) y,
de resultar verdadera, se ejecutan las sentencias, repitindose el proceso hasta que la
proposicin deje de ser verdadera. En este caso es importante prever que en algn momento
la proposicin se vuelva falsa, porque de lo contrario se entrara en un bucle infinito. Por
ejemplo, si se utilizara un while para llevar la cuenta de algo, el formato sera similar al
siguiente:
contador:= 0;
read(edad);
while edad <= 21 do
begin
contador:= contador + 1;
read(edad);
end;
En este caso se utilizan dos variables de tipo entero, contador y edad, y el bloque de
cdigo incrementa la variable contador en 1 cada vez que se lee de teclado una edad
menor o igual a 21.
Notar que se inicializ la variable contador en 0, para evitar que se sume contenido
basura, y que previamente a evaluar la proposicin se le dio un valor a la variable edad
(asignado por teclado), ya que de lo contrario se estara evaluando contenido basura en la
primera iteracin. Luego, dentro del bloque, se vuelve a asignar un valor a la variable a
travs del teclado, para que exista la posibilidad de que la proposicin resulte falsa en algn
momento.
El while se caracteriza por evaluar la condicin (comparndola con el valor true) antes de
ejecutar el bloque de cdigo. Es decir, si la proposicin fuera falsa en la primera evaluacin,
el bloque nunca se ejecuta.
3. REPEAT: similar al while, funciona a la inversa de l: evala una proposicin o una serie
de ellas y repite una sentencia o un bloque de cdigo hasta que se cumpla una condicin
(hasta que la condicin se vuelva verdadera, es decir, hasta que valga true). En este caso,
en primer lugar se ejecutan las sentencias y luego se evala, y la iteracin se realizar
mientras la proposicin no sea verdadera. El formato es el siguiente:
contador:=0;
repeat
read (edad);
contador:= contador+1;
until edad > 21;
En este caso existe una excepcin en cuanto a la regla de encerrar el bloque de cdigo entre
etiquetas begin y end, aunque si se colocan no afectan la ejecucin del programa.
Manejo de archivos
Hemos visto cmo acceder a los ficheros de texto y a los ficheros "con tipo". Pero en la
prctica nos encontramos con muchos ficheros que no son de texto y que tampoco tienen un
tipo de datos claramente repetitivo.
Muchos formatos estndar como PCX, DBF o GIF estn formados por una cabecera en la
que se dan detalles sobre el formato de los datos, y a continuacin ya se detallan los datos
en s.
Existe otra diferencia con los ficheros que hemos visto hasta ahora, y es que cuando
abrimos un fichero sin tipo con "reset", debemos indicar el tamao de cada dato
(normalmente diremos que 1, y as podemos leer variables ms o menos grandes
indicndolo con el dato "cuantos" que aparece en BlockRead).
As, abriramos el fichero con
reset( fichero, 1 );
En el caso de Turbo Pascal para MsDos, existe una limitacin en cuanto a tamao de los
datos: los bloques que leemos con "BlockRead" deben tener un tamao menor de 64K (el
resultado de multiplicar "cuantos" por el tamao de cada dato).
El significado de "Resultado" es el siguiente: nos indica cuantos datos ha ledo realmente. De
este modo, si vemos que le hemos dicho que leyera 30 fichas y slo ha ledo 15, podremos
deducir que hemos llegado al final del fichero. Si no usamos "resultado" y tratamos de leer
las 30 fichas, el programa se interrumpir, dando un error.
Para escribir bloques de datos, utilizaremos "BlockWrite", que tiene el mismo formato que
BlockRead, pero esta vez si "resultado" es menor de lo esperado indicar que el disco est
lleno.
Esta vez, es en "rewrite" (cuando abrimos el fichero para escritura) donde deberemos indicar
el tamao de los datos (normalmente 1 byte).
Ejemplo
El siguiente programa muestra el uso de las diferentes partes que conforman un programa en
lenguaje Pascal.
Program MiPrimerPrograma; {cabecera}
Uses
Crt; {declaraciones}
Const
iva =0.10;
Type
cadena =string[35];
meses =1..12;
Var
sueldo :real;
numero :integer;
nombre :cadena;
Nmes :meses;
begin
ClrScr; {Limpia la pantalla}
Write ('Escribe tu nombre : '); {Visualiza
informacin en pantalla}
ReadLn(nombre); {Leer un dato del
teclado}
WriteLn ('Bienvenido ', nombre);
{Visualiza informacin en pantalla}
tecla}
Readkey;
ClrScr;
BASIC
En
la programacin
de
computadoras,
siglas
de Beginner's Allpurpose Symbolic Instruction Code (Cdigo simblico de instrucciones de propsito
general para principiantes en espaol), es una familia de lenguajes de
programacin de alto nivel. El BASIC original, el Dartmouth BASIC, fue diseado en 1964
por John George Kemeny y Thomas Eugene Kurtz en el Dartmouth College en Nuevo
Hampshire, Estados Unidos, como un medio para facilitar la programacin en ordenadores a
estudiantes (y profesores) que no fueran de ciencias. De aquella, casi todo el uso de los
ordenadores requera codificar software hecho a medida, con lo cual quedaba restringida a
personas con formacin como cientficos y matemticos. BASIC originalmente fue
desarrollado como una herramienta de enseanza. El lenguaje y sus variantes llegaron a
estar ampliamente disponibles en los microcomputadores a finales de los aos 1970 y en los
aos 1980. BASIC sigue siendo popular a da de hoy en un puado de dialectos altamente
modificados, y en nuevos lenguajes, influenciados por BASIC tales como Microsoft Visual
Basic o Gambas en GNU/Linux. En el ao 2006, el 59% de los desarrolladores para la
plataforma .NET usaban Visual Basic .NET como su nico lenguaje.
Caractersticas
La sintaxis mnima de BASIC slo necesita los comandos LET, INPUT, PRINT, IF y GOTO.
Un intrprete que ejecuta programas con esta sintaxis mnima no necesita una pila. Algunas
de las primeras implementaciones eran as de simples. Si se le agrega una pila, se pueden
agregar tambin ciclos FOR anidados y el comando GOSUB. Un intrprete de BASIC con
estas caractersticas necesita que el cdigo tenga nmeros de lnea.
Los nmeros de lnea fueron un aspecto muy distintivo del BASIC clsico. Sin embargo, el
uso de nmeros de lnea tiene la desventaja de requerir que el programador estime cuntas
lneas ocupar la parte del programa que escribe. Este requerimiento se cumple
generalmente incrementando los nmeros de lnea en un intervalo regular, como 10, pero
esto lleva a problemas a la hora que el cdigo despus agregado exceda el espacio
disponible entre las lneas originales. Para aliviar este problema de los primeros intrpretes
de BASIC, los usuarios expertos pronto escribieron sus propios programas utilitarios para
renumerar sus programas, despus del ingreso inicial. Ms tarde aparecieron intrpretes de
BASIC que incluan un comando especfico RENUMBER, el que permita renumerar
rpidamente (y las veces que se quisiera) todo el cdigo nuevamente, con cualquier intervalo
entre lneas indicado y a partir de un nmero entero dado; eliminando as el principal
problema de la numeracin de lneas obligatoria.
do
loop
while
until
exit
on... goto
gosub
Casi todos los dialectos de BASIC incluyen el comando REM (remark), que posteriormente
fue sustituido por el smbolo (apstrofo o comilla simple). Es un comando no ejecutable, se
utiliza a los fines de incluir lneas y notas aclaratorias en el cdigo fuente, para la mejor
comprensin (y documentacin) del programa.
Variantes recientes como Visual Basic han introducido algunas caractersticas orientadas a
objetos, y hasta herencia en la ltima versin. La administracin de memoria es ms fcil que
con muchos otros lenguajes de programacin procedurales por el uso de un Recolector de
basura (y a costas de la velocidad de ejecucin).
Ventajas y Desventajas
Es importante aclarar que una de las grandes desventajas en comparacin con lenguajes
como COBOL, RPG es que no maneja como parte integrada el acceso a archivos directos o
RANDOM. Se tena que apoyar en una aplicacin externa para poder acceder de manera
directa un registro de algn archivo.
Tipos de datos
BASIC es reconocido por tener muy buenas funciones para manipular cadenas de
caracteres. Los primeros dialectos ya tenan un juego de funciones fundamentales (LEFT$,
MID$, RIGHT$) para extraer y/o reemplazar subcadenas fcilmente. Como las cadenas son
utilizadas en aplicaciones diarias, esta era una ventaja considerable sobre otros lenguajes al
momento de su introduccin.
El Dartmouth BASIC original soportaba nicamente datos de tipo numrico y cadenas. No
haba un tipo entero. Todas las variables numricas eran de coma flotante. Las cadenas eran
de tamao dinmico. Soportaba arreglos de ambos, nmeros y cadenas, en una o dos
dimensiones.
Cada dialecto moderno de BASIC posee al menos los tipos de datos numricos y cadena.
Estos tipos de datos se pueden distinguir usando un posfijo: los identificadores de cadenas
terminan con $ (signo dlar, ejemplo la variable NOMBRE$), mientras que los numricos
sencillamente no llevan posfijo; a menos que se requiera indicar y forzar explcitamente qu
tipo de numrico es, por ejemplo A% es entero, A! es real simple precisin y A# es real doble
precisin.
En BASIC las variables no necesitan forzosamente ser declaradas antes de usarse, excepto
los arreglos de ms de 10 elementos; aunque versiones BASIC relativamente modernas
poseen la opcin (considerada buena prctica de programacin) para obligar al programador
a declarar toda variable antes de su uso (una directiva como OPTION EXPLICIT). La
declaracin de variables en BASIC se hace usando la palabra clave DIM.
Muchos dialectos tambin soportan tipos numricos adicionales, como enteros de 16 y 32
bits (simple y long, respectivamente), adems de sus nmeros de coma flotante.
Adicionalmente algunos permiten la utilizacin de tipos de datos definidos por el usuario,
similar a los "records" de Pascal, o las "structs" de C.
Versiones modernas de BASIC (como VBA) soportan una gran variedad de tipos de datos
primitivos (o intrnsecos), adems de los definidos por el usuario.
La mayora de los dialectos de BASIC soporta arreglos en todos sus tipos de datos; es
comn tambin el soporte para arreglos multidimensionales
Ejemplos:
Dependiendo del dialecto de BASIC y del uso del enunciado OPTION BASE, el primer ndice
de los arreglos que se declaren ser 1, por defecto es cero.
En los ejemplos anteriores, si no se declara previamente "OPTION BASE 1", el primero es un
arreglo en dos dimensiones de enteros 16 bits, con ndices que van desde 0 hasta 100
(matriz de 101 x 101 elementos); en tanto que el segundo es un arreglo de enteros en una
sola dimensin, de 0 a 30 (vector de 31 elementos). Observar que las dos formas de
declaracin de enteros son equivalentes, explicitndolo o con el uso del posfijo %.
Anlogamente para cadenas o string de caracteres, que en este caso adems son de
longitud variable (dinmicas, por defecto).
Instrucciones de control
Viejos dialectos de BASIC no permitan a los programadores escribir sus propios
procedimientos. Los programadores en cambio deban escribir sus programas con un gran
nmero de enunciados GOTO para hacer las derivaciones de flujo y retorno del programa.
Esto poda producir un cdigo fuente muy confuso (la mayora de las veces era as),
comnmente conocido como Cdigo espagueti; el cual era sumamente difcil de mantener,
mucho menos por programadores ajenos al desarrollo del software.
Con la inclusin posterior de enunciados GOSUB (Go-Subroutine) se ramificaba el programa
a especies de subrutinas, sin parmetros o variables locales. Ellas proveen una forma de
implementar una suerte de procedimientos (realmente no lo son, sencillamente es un "salto y
retorno") y estructurar ms el programa, evitando bastante la utilizacin de la daina
sentencia GOTO.
La mayora de las versiones de BASIC ms modernas, como Microsoft QuickBASIC (19851988) y BASIC PDS (Profesional Developmen System - 1990) aadieron soporte completo
para subrutinas, funciones y programacin estructurada. Esta es otra rea donde BASIC
difiere de muchos lenguajes de programacin. Sin embargo la primitiva GOSUB se ha
mantenido hasta las versiones actuales, por razones compatibilidad.
BASIC, como Pascal, hace una distincin entre un procedimiento que no devuelve un valor
(llamado subrutina) y un procedimiento que lo hace (llamado funcin). Muchos otros
lenguajes (como C) no hacen esa distincin y consideran todo como una funcin (algunas
que devuelven un valor void [vaco]).
Mientras que las funciones que devuelven un valor son una adicin relativamente reciente a
los dialectos de BASIC, muchos de los primeros sistemas soportaban la definicin de
funciones matemticas en lnea, con DEF FN (DEFine FunctioN [DEFinir FunciN]). El
Dartmouth BASIC original tambin soportaba funciones al estilo de Algol, as como
subrutinas desde sus primeros tiempos.
Manejo de archivos
BASIC no tiene una biblioteca externa estndar como otros lenguajes como C. En cambio, el intrprete (o
compilador) contiene una biblioteca incorporada de procedimientos intrnsecos. Estos procedimientos
incluyen la mayora de las herramientas que un programador necesita para aprender a programar y
escribir aplicaciones sencillas, as como funciones para realizar clculos matemticos, manejar cadenas,
entrada desde la consola, grficos y manipulacin de archivos.
Ejemplo
Ejemplo 1: Hola Mundo!
PRINT "Hola Mundo!"
iTrue = -1
'Flag en Verdadero
'Salida
'Salida
C
C es
un lenguaje
de
programacin originalmente
desarrollado
por Dennis
M.
Ritchie entre 1969 y 1972 en los Laboratorios Bell,2 como evolucin del anterior lenguaje B,
a su vez basado en BCPL.
Al igual que B, es un lenguaje orientado a la implementacin de Sistemas Operativos,
concretamente Unix. C es apreciado por la eficiencia del cdigo que produce y es el lenguaje
de programacin ms popular para crear software de sistemas, aunque tambin se utiliza
para crear aplicaciones.
Se trata de un lenguaje de tipos de datos estticos, dbilmente tipificado, de medio nivel pero
con muchas caractersticas de bajo nivel. Dispone de las estructuras tpicas de los lenguajes
de alto nivel pero, a su vez, dispone de construcciones del lenguaje que permiten un control
a muy bajo nivel. Los compiladores suelen ofrecer extensiones al lenguaje que posibilitan
mezclar cdigo en ensamblador con cdigo C o acceder directamente a memoria o
dispositivos.
La primera estandarizacin del lenguaje C fue en ANSI, con el estndar X3.159-1989. El
lenguaje que define este estndar fue conocido vulgarmente como ANSI C. Posteriormente,
en 1990, fue ratificado como estndar ISO (ISO/IEC 9899:1990). La adopcin de este
estndar es muy amplia por lo que, si los programas creados lo siguen, el cdigo es portable
entre plataformas y/o arquitecturas.
Caractersticas
Propiedades
Es un lenguaje muy flexible que permite programar con mltiples estilos. Uno de los
ms empleados es el estructurado "no llevado al extremo" (permitiendo ciertas licencias
de ruptura).
Por defecto, el paso de parmetros a una funcin se realiza por valor. El paso por
referencia se consigue pasando explcitamente a las funciones las direcciones de
memoria de dichos parmetros.
Tipos de datos agregados ( struct ) que permiten que datos relacionados (como un
empleado, que tiene un id, un nombre y un salario) se combinen y se manipulen como un
todo (en una nica variable "empleado").
Carencias
Ventajas y Desventajas
Ventajas
Lenguaje muy eficiente puesto que es posible utilizar sus caractersticas de bajo nivel
para realizar implementaciones ptimas.
en
existencia,
Desventajas
El mayor problema que presenta el lenguaje C frente a los lenguajes de tipo de
dato dinmico es la gran diferencia en velocidad de desarrollo: es ms lento programar en C,
sobre todo para el principiante. La razn estriba en que el compilador de C se limita a traducir
cdigo sin apenas aadir nada. La gestin de la memoria es un ejemplo clsico: en C el
programador ha de reservar y liberar la memoria explcitamente. En otros lenguajes (como
BASIC, Matlab o C#) la memoria es gestionada de forma transparente para el programador.
Esto alivia la carga de trabajo humano y en muchas ocasiones evita errores, aunque tambin
supone mayor carga de trabajo para el procesador.
El mantenimiento en algunos casos puede ser ms difcil y costoso que con ciertos lenguajes
de ms alto nivel. El cdigo en C se presta a sentencias cortas y enrevesadas de difcil
interpretacin.
Cabe destacar el contexto y poca en la que fue desarrollado C. En aquellos tiempos existan
muy pocos programadores, los cuales, a su vez, eran prcticamente todos expertos en el
rea. De esta manera, se asuma que los programadores eran conscientes de sus trabajos y
capaces de manejar perfectamente el lenguaje. Por esta razn es muy importante que los
recin iniciados adopten buenas prcticas a la hora de escribir en C y manejar la memoria,
como por ejemplo un uso intensivo de indentacin y conocer a fondo todo lo que implica el
manejo de punteros y direcciones de memoria.
Tipos de datos
Instrucciones de control
Manejo de archivos
El estndar de C contiene varias funciones para la edicin de ficheros, stas estn definidas
en la cabecera stdio.h y por lo general empiezan con la letra f, haciendo referencia a file.
Adicionalmente se agrega un tipo FILE, el cual se usar como apuntador a la informacin del
fichero. La secuencia que usaremos para realizar operaciones ser la siguiente:
Fopen
"a": abrir un archivo para escritura al final del contenido, si no existe se crea.
"r+b rb+": Abre un archivo en modo binario para actualizacin (lectura y escritura).
Adicionalmente hay tipos utilizando "b" (binary) los cuales no sern mostrados por ahora y
que solo se usan en los sistemas operativos que no pertenecen a la familia de unix.
Fclose
Esta funcin sirve para poder cerrar un fichero que se ha abierto.
El prototipo correspondiente de fclose es:
Un valor de retorno cero indica que el fichero ha sido correctamente cerrado, si ha habido
algn error, el valor de retorno es la constante EOF.
Un ejemplo pequeo para abrir y cerrar el archivo llamado fichero.in en modo lectura:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char** argv)
{
FILE *fp;
fp = fopen ( "fichero.in", "r" );
if (fp==NULL) {fputs ("File error",stderr); exit (1);}
fclose ( fp );
return 0;
}
Lectura
Un archivo generalmente debe verse como un string (una cadena de caracteres) que est
guardado en el disco duro. Para trabajar con los archivos existen diferentes formas y
diferentes funciones. Las funciones que podramos usar para leer un archivo son:
Las primeras dos de estas funciones son muy parecidas entre s. Pero la tercera, por el
numero y el tipo de parmetros, nos podemos dar cuenta de que es muy diferente, por eso la
trataremos aparte junto al fwrite que es su contraparte para escritura.
Fgets
Esta funcin est diseada para leer cadenas de caracteres. Leer hasta n-1 caracteres o
hasta que lea un cambio de lnea '\n' o un final de archivo EOF. En este ltimo caso, el
carcter de cambio de lnea '\n' tambin es ledo.
El prototipo correspondiente de fgets es:
Escritura
As como podemos leer datos desde un fichero, tambin se pueden crear y escribir ficheros
con la informacin que deseamos almacenar, Para trabajar con los archivos existen
diferentes formas y diferentes funciones. Las funciones que podramos usar para escribir
dentro de un archivo son:
Fputs
La funcin fputs escribe una cadena en un fichero. La ejecucin de la misma no aade el
carcter de retorno de lnea ni el carcter nulo final. El valor de retorno es un nmero no
negativo o EOF en caso de error. Los parmetros de entrada son la cadena a escribir y un
puntero a la estructura FILE del fichero donde se realizar la escritura.
El prototipo correspondiente de fputs es:
#include <stdio.h>
int main ( int argc, char **argv )
{
FILE *fp;
char cadena[] = "Mostrando el uso de fputs en un fichero.\n";
fp = fopen ( "fichero.txt", "r+" );
fputs( cadena, fp );
fclose ( fp );
return 0;
}
Ejemplo
Bibliografa
https://es.wikipedia.org/wiki/Fortran#Especificaciones
http://www.escet.urjc.es/~inf_iq/Temas/manual%20compilador.pdf
http://html.rincondelvago.com/lenguajes-de-programacion_8.html
https://es.wikipedia.org/wiki/C_(lenguaje_de_programaci
%C3%B3n)#Ventajas
http://profesores.fi-b.unam.mx/carlos/lcpi/p09/TIPOS%20DE%20DATOS
%20EN%20C.pdf
http://elvex.ugr.es/decsai/c/apuntes/control.pdf
http://profesores.fi-b.unam.mx/carlos/lcpi/p09/TIPOS%20DE%20DATOS
%20EN%20C.pdf
http://recursostic.educacion.es/observatorio/web/en/software/program
acion/972-tipos-de-datos
http://lenguajedeprogramacinucnblog.blogspot.mx/2011/10/guiainstalacion-de-dev-c.html
http://blog.freniche.com/2011/01/05/que-necesitas-instalar-paraprogramar-en-c-en-windows/
https://es.wikipedia.org/wiki/BASIC#Procedimientos_y_Control_de_Flujo
http://www.moodlecchazc.unam.mx/moodleccha/mod/book/view.php?
id=6529&chapterid=130
http://www.nachocabanes.com/pascal/cupas5/cupas07c.php
http://www.consultoriocobol.com/2010/11/xml-parse-de-xml-ficheroplano-con.html
http://www.consultoriocobol.com/2011/02/sentencia-merge-en-unprograma-cobol.html
http://www.consultoriocobol.com/2011/02/sentencia-sort-en-unprograma-cobol.html
http://www.consultoriocobol.com/2011/01/esquema-de-un-programacobol.html
https://es.wikipedia.org/wiki/COBOL#Caracter.C3.ADsticas
https://es.wikipedia.org/wiki/Fortran
http://docplayer.es/2333418-Instalacion-y-utilizacion-del-compiladorgfortran.html