Turbo Pascal

Opinión sobre

Turbo Pascal

Impresión Total (4): Evaluación Total Turbo Pascal

 

Todas las opiniones sobre Turbo Pascal

 Escribir mi propia opinión


 


Aprendiendo a programar

5  13.03.2006

Ventajas:
Fácil de entender, sintaxis sencilla, código que se puede transportar, etc .

Desventajas:
Que no se pueden programar demasiadas cosas .

Recomendable: Sí 

Detalles:

Facilidad de uso

Facilidad de instalación

Característica/funciones extras:

Manual de instruccones

Soporte de fábrica:

Relación calidad precio

más


AeNiMa_

Sobre mí: ...

usuario desde:18.11.2003

Opiniones:227

Confianza conseguida:121

Comparte esta opinión en Google+
Esta opinión ha sido evaluado como muy útil de media por 29 miembros de Ciao

En mi carrera (Ing. Informática) casi todo se basa en la programación, digamos que si no sabes programar el fracaso en cursos superiores está asegurado por lo que es muy importante coger buena base de programación en primero. No todos los lenguajes de programación son iguales, cada cual tiene sus cosas: sus matices, sintaxis, palabras reservadas, etc pero la base es la misma, si sabes hacer un bucle en Pascal sabes hacerlo en cualquier otro lenguaje ya que la idea y lo que hay por debajo es lo misma.

Supongo que a la gente que en su vida haya tocado estos temas todo lo que voy a contar le va a sonar a chino (o más), lo siento por ello pero es un tema bastante específico. Intentaré explicarlo lo más fácilmente posible.


═╩══╩══╩══ TURBO PASCAL: LAS BASES ══╩══╩══╩═
Pascal es un lenguaje cuya finalidad es la de aprender, es decir, la única pretensión de su creador, Niklaus Wirth, fue usarla para que la gente aprendiera a programar. A finales de 1970 empieza a difundirse rápidamente y pronto se convierte en uno de los lenguajes más usados en el ambito universitario a la hora de aprender.

Podéis leer más acerca de la historia de Pascal y Turbo Pascal en Wikipedia: http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Pascal

Evidentemente en cada universidad se empieza a programar en lenguajes distintos: Modula 2, Ada, C... pero uno de los lenguajes que más pueden ayudar a gente que nunca ha programado es Turbo Pascal o simplemente Pascal.

Pascal y Turbo Pascal es básicamente lo mismo, pero en la versión Turbo se añaden más cosas, digamos que es más completo. Por ejemplo para encabezar un programa en Pascal hay que poner PROGRAM Lo_que_sea(input,output); y en Turbo Pascal lo del (input,output) se puede omitir.

Yo cuando llegué el año pasado no tenía ni idea de programar, jamas lo había hecho y no puse todo es esfuerzo que debía en ello, por eso otro año más estoy "aprendiendo a programar".

Al principio se programa con "pseudocógido", algo que una máquina no reconoce pero nos enseña a guiarnos. Es "programación en un papel" y nuestro profesor al principio nos decía que lo hicieramos todo en pseudocógido y después lo pasaramos a Pascal pero es un rollo :P Es como poner tu idioma el programa con tus palabras. Por ejemplo un programa que sume:
PROGRAMA Suma;
VARIABLES
a, b, resultado: enteros;
EMPIEZA
escribir(Dame el primer numero)
leer(a)
escribir(Dame el segundo numero)
leer(b)
resultado = a +b
escribir(La suma es ' resultado ')
FIN
Como veis es un programa hecho con nuestras palabras, de momento no hay ningún lenguaje de programación que sea asi pero al principio escribir los programas de esa manera nos ayudará.

Lo más importante a la hora de ponerte es saber bien lo que tienes que hacer e incluso hacerte esquemas en un papel sobre lo que buscas y como conseguirlo. Para hacer un programa de 30 líneas que te diga los colores del arco iris quizas no necesites ningún esquema pero si quieres realizar un ajedrez o algo más complejo tendrás que saber muy bien lo que haces.
Turbo Pascal en ese sentido es fácil de entender ya que las palabras que utilizamos para elaborar nuestro programa son palabras que utilizamos día a día. "Mientras... hacer", "Si... Entonces... Sino...", "Desde ... hasta... hacer...", son algunos ejemplos de la sintaxis utilizada, no en español pero sí en Inglés. Pero vamos, en inglés que usa en este sentido es muy sencillito.


═╩══╩══╩═ ESTRUCTURA DE UN PROGRAMA ═╩══╩══╩═
La estructura de los programas en Pascal están bastante claritas, es siempre igual.
1- Lo primero que tenemos que poner siempre es la cabecera del programa:
PROGRAM Calculadora;
2- Podremos definir o no algunas constantes, números o letras que durante la ejecución del programa no vayan a cambiar, se definen dentro de CONST. Si no hay constantes podemos saltarnos este paso.
3- Además de los tipos de datos que vienen en Turbo Pascal (integer, real, char y boolean) podremos definir tipos de datos a nuestro gusto dentro de TYPE.
4- Subprogramas. Cuando empezamos a programar más en serio vemos que en muchos casos repetimos código o que si intentamos meter todo en el programa principal quedaría demasiado grande por eso antes de empezar con el programa principal se ponen los subprogramas aunque lo indicado y lo mejor es escribir antes el programa principal y luego empezar a escribir los subprogramas. Las dos cabeceras reservadas para subprogramas son FUNCTION (para funciones) y PROCEDURE (para procedimientos). Además dentro de los subprogramas podemos modificar variables del programa principal y devolverla o no modificada según metamos o no la palabra VAR dentro del encabezamiento.
5- Lo siguiente que tenemos que definir son las constantes. Raro (o más bien muy corto) es el programa que no use variables. Van dentro de VAR.
6- Programa principal. El último lugar está reservado para el programa principal, es donde de guardan las instrucciones que van a hacer que nuestro programa funcione y éste va entre las palabras reservadas BEGIN y END; aunque dentro de él pueden haber más BEGINs y ENDs.

Además entre las lineas de código que más tarde serán compiladas podemos meter comentarios que ayuden a entender el código

Fotos de Turbo Pascal
  • Turbo Pascal Fotografía 3907746 tb
  • Turbo Pascal Fotografía 3907747 tb
  • Turbo Pascal Fotografía 3907748 tb
  • Turbo Pascal Fotografía 3907749 tb
Turbo Pascal Fotografía 3907746 tb
Abrir archivo .pas
si lo queremos leer. Estos comentarios pueden ir entre llaves {} o entre paréntesis con estrellita (* *). Estos comentarios no son compilados y no ocupan espacio en el programa compilado.

Un ejemplo no real de un programa podría ser (que nadie lo intente copiar y pegar porque no funciona, es un ejemplo para que se vea la estructura, nada más):

PROGRAM Bocadillo_de_atun; {Encabezamiento}

TYPE
tBocadillo=(pan,atun,mantequilla); {Definición del tipo de datos}

PROCEDURE HacerBocadillo(VAR p, a, m:tBocadillo); {Un subprograma}
BEGIN
writeln('Me gustan los bocadillos de atun');
writeln('Cojo un trozo de ',p,',le pongo ',m,' y finalmente un poco de ',a);
END;

VAR {Variables}
pa,at,ma:tBocadillo;
bocadillo:integer;

BEGIN {Programa Principal}
HacerBocadillo(pa,at,ma);
writeln('Esta rico el bocata');
IF bocadillo=10 THEN
writeln('Uhmmm, excelente')
ELSE
writeln('Sabe a caca');
readln;
END.

Para leer bien un programa también es imporante el sangrado, es decir, que el código no esté alineado con las palabras reservadas de BEGIN y END y cosas así como también habéis visto en el ejemplo del IF, las instrucciones que corresponden al IF están alineadas con el IF. Turbo Pascal no te lo alinea por defecto, sin embargo si en Linux usais Emacs y tenéis instalado una librería de Pascal y le dais al tabulador os alinéa solo el programa. Es una de las cosas que no me gustan de Turbo Pascal, que no alinea y para no liarte tienes que estar muy atento a que corresponde cada línea.

═╩══╩══╩══╩═ PALABRAS RESERVADAS ═╩══╩══╩══╩═
Esta sintaxis viene ya predefinida en Turbo Pascal por lo que nosotros no podemos volver a describir algo que se llame "FOR" o que se llame "WHILE" porque nos dará un error.
Son todo palabras en mayúsculas (no os penséis que soy yo que ahora me ha dado por escribir en mayúsculas), aunque si lo ponéis en minúsculas no pasará nada, no es "case sensitive" (no reconoce entre mayúsulas y minúsculas en este caso), pero por comodidad de lectura es mejor poner estas palabras en mayúscula.

Algunas de las palabras reservadas más utilizadas son:
- AND: (y) define la "y" lógica. Por ejemplo x AND y
- ARRAY: se usa en la definición de arrays. Por ejemplo tArray = ARRAY [1..3,1..3] of integer. Hemos definido un tipo tArray que tiene dos dimensiones que van de 1 a 3, como una matriz de 3x3.
- BEGIN: (empezar) con esta palabra reservada empezamos todos un bloque de instrucciones.
- CASE: (caso) una de las palabras reservadas para estructuras de iteración. Es decir, sería algo como "en caso de que sea x entonces....". Se puede sustituir por un IF.
- CONST: (constante) se usa al principio para definir constantes. Por ejemplo la constante PI: 3.1416 o lo que queramos poner como constante. Va antes que el programa principal y los subprogramas.
- DIV: (dividir) es la división entera de números naturales. los llamados "integer". Si intentais hacer un div de dos números reales os dará error.
- DO: (hacer) se usa detrás de los WHILE y los FOR e indica lo que se tiene que hacer, por ejemplo. WHILE x<3 DO....
- DOWNTO: (bajar hasta) en los bucles FOR se usa para que en vez de aumentar la variable se disminuya. En los FOR normalmente se hace algo como FOR i:=1 TO 10 DO.... y cada vez que se ejecute el bucle esa "i" aumentará en 1 hasta que se llegue a 10. El DOWNTO hace todo lo contrario, en vez de sumar, resta. Por ejemplo: FOR i:=20 DOWNTO 10 DO....
- ELSE: (sino) utilizado en los IF para dar una alternativa si no se cumple lo que está dentro del IF. Es como si nosotros decimos: si esta noche vienes vamos al cine, sino me quedaré en casa. En Turbo Pascal es algo como "IF vienes esta noche THEN iremos al cine ELSE me quedaré en casa"
- END: (final) siempre que hay un BEGIN tiene que haber un END para indicar donde acaba ese bloque de instrucciones. El END del final del programa va seguido de un punto "END.", el de un IF sin nada "END" y el de los subprogramas y demás BEGINs dentro de subprogramas y programa principal con punto y coma "END;"
- FILE: (fichero) sirve para declarar archivos de acceso directo.
- FOR: (hasta) como os adelanté antes se usa para hacer bucles sabiendo de antemano cuantas veces se va a repetir. Es como un "Desde que x vale 10 hasta 20 haz lo siguiente", es decir, "FOR x:=10 TO 20 DO".
- FORWARD: (adelante) se usa en los subprogramas para usar uno que esté escrito después. Es un poco lio y no le dimos demasiada importancia.
- FUNCTION: (función) es uno de los subprogramas que podemos construir en Pascal, las funciones las cuales devuelven un valor. Las podemos llamar como queramos, por ejemplo: FUNCTION CalcularSuma(x,y:integer):integer; Es decir, una función que calcule la suma a la cual le entran dos parámetros x e y, y saca un valor integer.
- IF: (si) es una de las palabras para hacer estructuras iterativas. Es justo lo explicado antes en el ELSE.
- IN: (en) se usa para saber si hay una letra o un numero en un conjuto o en un string.
- MOD: (resto) nos da el resto de una división entera, es decir, no puede ser un número real (con decimales).
- NIL: (vacio) en el tema de punteros se usa para señalar un puntero vacio.
- NOT: (no) es simplemente una negación.
- OF: (de) se usa en el tema de ficheros.
- OR: (o) es la "o" lógica. "O coges esto o coges lo otro".
- PACKED: (empaquetado) se usa en la definición de ARRAYS pero no he visto demasiado de ésta.
- PROCEDURE: (procedimiento) otro de los subprogramas que podemos construir. Pueden devolver varios valores o no devolver nada. Yo los prefiero antes que las funciones, pero para gustos... Los encabezamientos pueden ser por ejemplo: PROCEDURE DecirAlgo(VAR x:char); Es decir, esa x será algún caracter que después será devuelto al programa principal.
- PROGRAM: es la cabecera que indica el principio de programa. Todos los programas tienen que llevar esta palabra. PROGRAM CalcularCosas;
- RECORD: (grabar) una de las palabras utilizadas en el tema de registros. Se usa antes que la definición de variables.
- REPEAT: (repetir) otra de las palabras que podemos usar para haceer bucles: "Repite la suma hasta que x sea 10": REPEAT x:=x+1 UNTIL x=10;
- SET: (juego de algo) se usa para definir un tipo de datos, el tipo conjunto.
- STRING: (cadena) son las cadenas de caracteres. Es distinto usar cadenas que usar "char" que son solo una letra.
- THEN: (entonces) utilizado en los IF's para indicar en ... entonces...
- TO: (hasta) utilizado en los FOR para saber hasta donde tengo que llegar. FOR x:=10 TO 100: tengo que llegar hasta 100.
- TYPE: (tipo) es la palabra que se usa para definir tipos de datos del programador. TYPE tDias=(lunes,martes,miercoles);
- UNTIL: (hasta)se usa en los bucles REPEAT para saber cuando tengo que parar.
- VAR: (variable) es la palabra que utilizamos para defirnir las variables que vamos a usar en el programa. Si vamos a usar la variable "mama" tenemos que definirla con anterioridad. VAR mama:char;
- WHILE: (mientras) el bucle por excelencia: mientras se cumpla una condición el bucle se ejecutará. Es bastante peligroso lo de los bucles infinitos asique tener cuidado.
- WITH: (con) se utiliza para acceder a los registros.

Otras palabras reservadas que se usan menos y son más expecíficas son: ABSOLUTE, ASM, DESTRUCTOR, IMPLEMENTATION, INTERFACE, OBJECT, PRIVATE, SHR, UNIT, VIRTUAL, CONSTRUCTOR, EXTERNAL, INLINE, INTERRUPT, SHL, USES, XOR...

Además de estas palabras reservadas tenemos otros procedimientos. Los que siempre usamos son los "readln" para leer una linea y hacer un retorno de carro, es decir, como un punto y aparte, un "writeln", para leer una linea con retorno de carro, "write" para leer y no cambiar de línea. Para asignar valores se utilizan dos punto y un igual, es decir :=


═╩══╩══╩══╩═ TIPOS DE DATOS ═╩══╩══╩══╩═
Aunque por lo que me han contado, en segundo hay una asignatura muy difícil donde hacen mucho incapie en los de los tipos de datos en primero podemos definir nuestro tipos de datos dento de TYPE o si no los necesitamos usar los que ya vienen definidos.

- INTEGER: incluye todos los números positivos y negativos enteros del -32768 al 32767, es decir, no incluye a los decimales y a los que vayan más alla de estos números. Si queremos usar algo mayor que 32767 podremos usar los datos "longint". Con estos números podemos usar "div" para la división entera, "mod" para el resto, "sqr" para el cuadrado, "abs" para el valor absoluto, "pred" para calcular el predecesor de un número y "succ" para el sucesor.
Ejemplos de integer son 2, 5, -64, 6448, 0, -5488....

- REAL: incluyen más números que los integer, donde sí podemos usar decimales. Aqui podemos sumar, restar, dividir con "/", etc, pero no podemos usar el "div" ni "mod" ni "succ" ni "pred" reservado solo para los ordinales (integer, char y boolean) pero si las otras operaciones y otras como "ln" para el logaritmo neperiano, "exp" para el exponencial en base e, "cos" para coseno, "sin" para seno, "sqrt" para raiz cuadrada, "arctan" arco de la tangente, etc. Una de las cosas que más me extrañan es que directamente no podamos elevar a un número que no sea dos ningún otro número, por ejemplo para hacer 2 elevado a 6 no se puede poner 2^6 ni nada de eso porque da error :-/ Para hacerlo podemos hacer un apaño que es poner "Exp(y*ln(x))".
Podemos convertir reales a integer por medio del truncamiento y redondeamiento.
Ejemplos de real son: 0.0244, 4.95E-05 (expresado en notación ciéntifica por defecto), -265.64, 1E+01. Para expresarlo sin notación científica podemos poner al lado lo que queremos dejar para el número entero y para el decimal: por ejemplo "writeln(numero:2:3);", si le metemos el numero 1.18254 deja dos espacios para el número entero y tres para el decimal, saldría algo como " 1.182".

- CHAR: son los carácteres ASCII representables en por el ordenador de 8 bits (un bit es el elemento más pequeño de información que puede manejar un ordenador), es decir, 256 números. Sólo podemos representar un caracter mediante comillas y podemos realizar operaciones como el sucesor, predecesor y hallar el número ASCII del carácter y viceversa.
Ejemplos de char: 'a', 'z', '@', 'T'...

- BOOLEAN: son los valores lógicos, los del álgebra booleana, FALSE y TRUE y podemos hacer su sucesor, predecesor, comparación mediante >, <, =, <>, AND, OR, etc.


═╩══╩══╩══╩══╩═ EL ENTORNO ═╩══╩══╩══╩══╩═
El entorno de programación es una ventana azul de MS-DOS la cual es muy sencilla de usar pero bastante "retro", que nadie se espero algo "3D".

Para empezar tenemos que instalarlos el Turbo Pascal 7.0 disponible para bajar por internet, Emule o cualquier sitio, no tenéis que pagar por ello. En nuestro caso el profesor se ofreció a grabarnos un CD con el Turbo Pascal pero no hace falta ni un CD puesto que no llega a los 5MB.
Podéis bajarlo por ejemplo de:
http://www.simonhuggins.com/courses/progbegin/pascal/download/
http://www.clasespart.com.ar/download.htm
http://www.webplain.de/turbopascal/downloads.php
Buscando en Google Turbo Pascal download os saldrán muchas páginas, lo importante es que sea y que la versión sea por lo menos la 7.

Una vez instalado lo abrimos y nos ocupará toda la pantalla aunque podemos hacerla pequeña pulsando "alt + intro".

Podemos ver en la barra gris de arriba que tenemos un pequeño menu que en muchos casos nos ayudará a la hora de depurar nuestro programa.

- File: todo lo relacionado con abrir ficheros, los directorios donde se pueden encontrar e incluso el comando para imprimir. El menú es bastante del año el pum por lo que las cadenas de caracteres largas no las reconoce y las deja como LOQUESEA~, vamos, como en el DOS. Al guardar un archivo lo guardará con la extensión de Pascal, es decir .pas.

- Edit: lo típico: para cortar, pegar, deshacer, etc.

- Search: tanto como para buscar palabras como errores.

- Run: es de las cosas más utiles del entorno ya que antes de compilarlo podemos ir ejecutandolo para asi depurar el código y ver si da errores o no. Para ir viendo exactamente por donde se mete el código pulsando en "Step Over" y pulsando repetidas veces F7 una linea verde ira linea a linea en nuestro código diciendo por donde se mete.

- Compile: aqui compilamos y construimos el ejecutable de nuestro programita. Al final será un .exe, un ejecutable en MS-DOS.

- Debug: otra de las ayudas a la depuración de código la encontramos en el menú de Debug. Podemos meter "breakpoints", es decir, puntos donde no queremos que se meta al correr el código, podemos ver los valores que toma una variable con Watch

- Tools: herramientas varias como añadir mensajes.

- Options: opciones que afectan a la configuración del entorno como por ejemplo los colores, el ratón, los directorios, el depurador, etc.

- Windows: si tenemos muchas ventanas abiertas podemos organizarlas en cascada, por titulo, etc.

- Help: en la ayuda podemos encontrar como es la sintaxis de una palabra, para que sirve, las unidades principales y bastantes cosillas más.

Como os decía este entorno no os sangra las líneas por lo que en ese aspecto tenéis que tener cuidado y darle al tabulador o al espacio bastantes veces.

Es bastante prehistórico pero para lo que lo queremos nos sobra y nos llega, además asi nos aseguramos que vale para cualquier Windows porque en Mac o en Linux no.

La alternativa en Mac no sé cual será pero en Linux podemos bajarnos un emulador de MS-DOS (Dosemu) y ejecutar ahi el Turbo Pascal o escribir el cógido en el Emacs o cualquier otro editor de texto que os guste y luego compilarlo con el Free Pascal Compiler (fpc), simplemente poniendo en la consola: fpc codigo.pas. Os generará un ejecutable que podréis ver poniendo de nuevo en la consola ./codigo. Lo malo de esto es que no tenemos la opción "Run", es decir, tenemos que guardar el cógido y en otra consola o cerrando donde estemos trabajando ejecutar el compilador.


═╩══╩══╩══╩══╩═ CONCLUSIÓN ═╩══╩══╩══╩══╩═
Espero no haberos calentado mucho la cabeza con esto del Turbo Pascal jejeje.
Como os decía es un lenguaje básicamente para el aprendizaje ya que actualmente para hacer grandes programas se utilizan otros lenguajes (C++, Java...) que son algo más complicados de entender pero que nos permiten hacer más "burradas" y desde luego hacer cosas que no estén ligadas a verlas en una ventanita de MS-DOS o en una consola de Linux.
Es fácil de entender ya que la sintaxis es muy parecida al lenguaje humano pero desde luego podemos hacer programas muy complicado.
Lo último que he hecho con un esfuerzo tremendo es un conecta cuatro con arrays, subprogramas y demás (ahora os pongo unas capturillas) que tiene unas 250 líneas de código pero que ya empieza a liar bastante y donde tienes que ser muy organizado. 250 líneas no es nada ya que los programas que usamos día a día tienen miles de líneas y por supuesto horas y horas encima.

Hay muchísimos libros que nos pueden ayudar, desde los más facilitos bastante finos hasta unos gordos con un montón de teoría y problemas. En la bilioteca de la universidad tenemos muchos y supongo que las bibliotecas normales también podréis coger alguno aunque el lenguaje ya tenga sus añitos.

Por último os voy a dejar dos mini programitas que funcionan. El primero algo mítico en el mundo de la programación, un "Hola mundo", es decir, el cógido en Turbo Pascal que simplemente diga "Hola Mundo". Es lo más simple que se puede programar ya que no tiene ni variables, ni constantes ni nada de nada.

PROGRAM Hola;
BEGIN
writeln('Hola mundo');
END.

El segundo es un programa que suma dos números enteros. En su momento tuve que hacer una calculadora que sumaba, restaba, etc pero eso es más largo aunque no difícil.

PROGRAM Suma;
VAR
primerdigito,segundodigito,resultado: integer;
BEGIN
writeln('Dame el primer digito');
readln(primerdigito);
writeln('Dame el segundo digito');
readln(segundodigito);
resultado:=primerdigito+segundodigito;
writeln('El resultado de la suma es ',resultado);
readln;
END.


Saludos!!


Comparte esta opinión en Google+
Enlaces Patrocinados
Evaluar esta opinión

¿Cómo de útil te será esta opinión a la hora de tomar tu decisión de compra?

Directrices para las Evaluaciones

Comentarios sobre esta opinión
Majgb

Majgb

01.11.2006 19:57

Je, je, je- Cuántos recuerdos de mis primeros pinitos a la hora de programar...

palentino

palentino

27.05.2006 15:35

Yo también empece a programar con Turbo Pascal en la uni, lo malo es que uno no llega muy lejos con él y acabé aprendiendo C. Recuerdo también que dimos Fortran 77 con el cual no puedes hacer casi nada, pero como era el que manejaba el profe para sus cosas tenías que trabajar con él. En fin, buena opinión, muy currada. Saludos.

masetues

masetues

05.04.2006 20:25

Una opinión digna de la evaluación "excepcional". Un saludo.

Escribe tu comentario

máximo 2000 alcanzado

  Publicar el comentario


Evaluaciones
Esta opinión sobre Turbo Pascal ha sido leída 25314 veces por los usuarios:

"excepcional" por (21%):
  1. masetues
  2. voyager1974
  3. RodryT
y de usuarios adicionales 6

"muy útil" por (79%):
  1. JDoc
  2. LoConde
  3. jesalvfer
y de usuarios adicionales 31

La evaluación total de esta opinión no es únicamente el promedio de las evaluaciones individuales.
Etiquetas relacionadas con Turbo Pascal