Es la ultima emisiol creada por "Borland" para plataforma modo texto e incorpora un E.I.D (Entorno Integrado de Desarrollo) que permite editar mas de un programa a la vez, ompila, Depura, Ejecuta, Ejecuta paso a paso, etc.
El entorno es se carga de dos maneras: TURBO.EXE (Pa ra PC sin memoria Extendoda), o TPX.EXE (Para PC com memoria extendida).
El entorno es muy amigable contiene una barra de menu y una de edicion multiple. A los distitas ventanas de edicion se accede con la tecla ALT + el numero de ventanacs con F6, se compila con la tecla ALT+F9 , se chequea con la tecla F9 y con ALT + la tecla resaltada las demas cosas.
Palablas reserbadas son aquellas que utilizan exlusibamente el lenguaje para identificar parte de un programa o secuensia por lo tanto no puede ser identificado por ninguna otra cosa.
Progarm <Identificador>
Uses <Unidades>;
Prosedure <Prosedimientos>
Function <Funciones>
Type <Tipos de datos (creados por el usuario)>;
Const <Definicion de constantes>;
Var <Definicion de variables>;
Begin
<Sentensias>
End.
Ademas un programa puede tener subprogramas llamados prosedimientos (Palabla reservada Prosedures) Que guarda la misma estructura que un programa y puede usar funciones definidas por el usuario (Palabla reserbada Function).
Las constantes son areas de memoria a la que se la ssigna un nombre y un valor. Ese valor permanese inalteradamente mientras la ejecusion del programa y se podra haser referencia cada vez que se nesesite a travez de su identificador.
El area de declaracion de constante comiensa con la palabra (CONST). La declaracion de la constante implica un identificador el signo igual "=" y el valor que se le va a asignar. (El tipo de dato es autodefinido).
<ID1> = <VALOR>
<ID2> = <VALOR>
EJEMPLO:
meses = 12,
Horas = 24,
Cartel = 'hola';
Las varibles son areas de memoria que se conservan bajo un identificador. El valor de esta area puede puede cambiarse durante la ejecusion del programa (El cmbio puede produsirse por una asignacion o por una entrada de datos). La declaracion de la bariable comiensa con la palabra reservada (VAR). Cuenta con uno o mas identificadores separados por comases seguido de dos puntos ":" y la descripcion del tipo de datos que contendra la variable (Los tipos de datos pueden ser definidos por el usuario o predefinidos)
EJEMPLO:
<ID1> : <TD1>
A:real;
<ID1>,<ID2>,<ID3>: <TD2>
B,C;D:char;
Turbo pascal prove de 5 tipos pre-definidos de enteros y ellos son:
Tipo |
Rango |
SHORTINT |
-128 ..127 |
INTEGER |
-2147483648 .. 214748647 |
LONGINT |
-214748348 .. 214748367 |
BYTE |
0 .. 255 |
WORD |
0.. 65535 |
Un tipo real tiene un subconjunto de valores que tienen un subconjunto de numeros reales los cuales pueden ser representados en notasion en punto flotante con determinados numeros de dijitos.
Tipo |
Rango |
REAL |
2.910 E -39 .. 1.710 E 38 |
SINGLE |
1.510 E -45 .. 3.410 E 38 |
COMP |
-2 E 63 +1 .. 2 E 63 - 1 |
DOUBLE |
5.010 E -324 .. 1.710 E 308 |
EXTENDED |
.910 E -4932 .. 1.110 E 4932 |
Un tipo ordinal usa el codigo ASCII y estos pueden ser:
Tipo |
Rango |
CHAR |
1 caracter |
SRTING |
255 caracteres |
Operador |
Descripcion |
= |
Igual |
<> |
Distinto o No igual |
> |
Mayor |
< |
Menor |
>= |
Mayor igual |
<= |
Menor igual |
Operador |
Descripcion |
+ |
Mas |
- |
Menos |
* |
Multiplicasion |
/ |
Divicion |
MOD |
Modulo |
DIV |
Divicion entera |
Operador |
Descripcion |
NOT |
NO |
AND |
Y |
OR |
O |
Son cambios internos que permiten en cambiar el valor a una variable.
El el diagrama de flujo se representa como una caja donde se ubica la variable y el valor asignado. El valor que se le otorga a una variable en literal, otra variable, una constante, un resultado de una operacion o una funcion.
Esto en pascal el operador para asignar es el dos punto mas igual ":=". Entonses se pone la variable a asignar el dos punto igual y el valor que queremos que tome.
Ejemplo:
<LITERALl> a:=0;
<VAR> a:=b;
<CONSTANTE> a:=meses;
<FUNCION> a:=sqr(b);
<OPERADOR> a:=b+(c*2);
NOTA: (Siempre se asigna de derecha a izquierday nunca se puede asignar una constantes por que ocasionaria un error semantico, solo se asignan variables);
La entrada son cuando nosotros ingresamos un dato y las salidas es cundo la computadora nos da el resultado.
La entrada se realiza mediante la palabra reservada Read o Readln, la que devemos usar para una entrada de datos es Readln por que si usamos la otra cuando queremos haser otra entrada con otra variable usara la misma cambiando el programa y solo se usa Read para entradas de datos mediante archivos que veremos mas adelante.
La sintaxis de una entrada es:
Readln(a);
Con eso ingresaremos un dato en a, (Es fasil no).
Otra entrada entrada es la readkey es diferente a la entrada readln por que esta es para ingresar sola mente una tecla a la vez o sea una variable char. Esta entrada no esta en lo estandar de pascal que es muy redusido por eso cuando uno quiere ingresar esta estrada previamente se tiene que usar la unidad crt, (USES CRT; )
Las salidas tienen como read dos formas Writeln o Write estas hasen la misma funcion solo con la diferencia que writeln baja de renglon y write no, esto se usa segun la nesesidad.
La sintaxis es:
Write(a);
Esta mostrara el valor de "A" pero le podemos agragar texto tambien.
Write('Ingrese un numero');
En este caso cuando agregamos texto lo ponemos entre comillas simples. Pero en otro caso lo podemos combinar;
Write('El resultado es ',a ,' metros');
Veran que este caso la variable se encuentra estre texto y esta separada por comas y el texto, asi es como deve estar.
Ejemplo de un programa con entrada y salidas:
Program Entradas_y_salidas;
var a:string;
begin
Write('Ingrese una cadena ');
Readln(a);
Writeln('La cadena es ');
readln;
end.
Esto ejecutandose se ve:
Ingrese una cadena hola
La cadena es hola
Las desiciones se utilizan para obtener valores verdaderos o falsos segun lo que queremos desidir, esto nos sirve para cambiar el camino de la programacion segun las diferentes prosesos que podamos hacescomo por ejemplo si queremos ver si un numero es positivo o negativo.
Esta desision en pascal se llaman IF que tradusido es SI y su sintaxis es la siguiente;
Readln(A);
If A > 0 then
write('el numero es positivo');
end;
Esta es una desicion simple pero hay desisiones mas complejas y estas se llaman desiciones anidadas y estas se pueden anidar cunatas beses puedan pero cuidado que se puede pones muy defisil si anidan mucho.Estan se llaman asi por que son desiciones compuestas, y esta es su sintaxis.
Readln(A);
If A > 0 then
begin
Writeln('El numero es positivo');
end
else
begin
Writeln('El numero es negativo');
end;
end;
Vieron que algunas cosas cambiaron como aparesio un begin y end esto es para diferenciar la distintas desiciones y diempre el untimo end que es el end final va con punto y coma . Diran si esto es obligatorio "SI" pero siempre hay una esepcion cuando hay una sola linea dentro del if como en el primer caso.
Las desisiones multiples son como los IF pero ellos van directamente a la sentensia llamada , ademas son mas ordenados y mas fasiles de usar a la hora de tener muchas opciones y su sintaxis es:
op:=readkey;
case espresion of
'desicion':sentensia;
'desicion':sentensia;
end;
var op:char;
begin
write('Ingrese una opcion');
write('A.suma');
write('B.resta');
op:=readkey;
case op of
'A','a':begin
....
end;
'b','B':begin
....
end;
else
write('Apreto otra tecla que no esta en el menu ');
end;
Los siclos repetitivos son parte de la programacion estructurada. Estos nos permiten no repetir tantas veses lo mismo y ademas como sabemos en un programa se nesesitan mas de una vez comprobar algo o conprobar lo mismo para diferentes variables, esto es como un if pero antes de comprovarlo y listo cundo termina buelbe a empesar cuantas veses nosotros queramos. En estos siclos podemos encontrar el FOR, REPEAT, WHILE
El siclo repetitivo es uno de los mas fasiles de usar, este tiene la propiedad que se repite cuantas veses nosotros queramos, " dira si eso lo sijo antes" pero en este le diremos directamaente si lo queremos repetir 5,4,6 o 410 veses sin problemas solo hay que espesificarlo de la siguiente forma.
Su sintaxis es la siguiente:
FOR I := 1 to 10 DO
Begin
...
end;
Esto se dise hasi, "I" es igual a 1 a 10, esto quiere desir que se repetira 10 veses, por que la variable inicial que en este caso es 1 y la final es 10 y cuando "I" llege contando a 10 finalizara, diran ¿porque ? por que las variables inisial y la final son como una contadora.
Program Para;
var a,b:integer;
begin
write('Ingrese un valor para multiplicar');
read(a);
For b := 1 to 10 do
begin
c:=a*b;
writeln(a,'Por ',b,'Es ',c)
end;
readln();{este readln es para dar una pausa a la ejecusion}
end.
Ingrese un valor para multiplicar 2
2 Por 1 Es 2
2 Por 2 Es 4
2 Por 3 Es 6
2 Por 4 Es 8
2 Por 5 Es 10
2 Por 6 Es 12
2 Por 7 Es 14
2 Por 8 Es 16
2 Por 9 Es 18
2 Por 10 Es 20
El siclo repeat tiene como propiedad que repite algo hasta que sea verdadero y tambien se repite porlomenos una vez o sea que cuando programemos sea nesesario que se repita porlomenos una vez o que esto no modifique el programa por que puede causar errores semanticos en el programa. Si no desea que ocurra eso use el siclo while aunque no se confie mucho en este siclo.
Su Sintaxis es:
Repeat
.....
until a >= 10 ;
Es to se repetira hasta que a sea Igual o mayor a 10 o sino solo segira repitiendo hasta que el valor sea verdadero.
NOTA: cuidado cuando usamos acumuladoras o contadoras que el valor que llege a tomar en un siclo repetitivo llegue a ser verdadero.
Nota 2: Cuando use este tipo de siclos repetitivos usa en el prinsipio del porgrama "variable":=0 paraponer limpiar las variables despues que se allan acumulado los datos en la repetisiones anteriores para no traer errores .
Program ejemplo_repetir;
Var a,b,c:integer;
begin
b=0;
write('Ingrese un valor para multiplicar');
read(a);
repeat
b:=b+1;
c:= a*b;
writeln(a,'Por ',b,'Es ',c);
until a = 10;
readln(); {este readln es para dar una pausa a la ejecusion}
end.
En dos se veria
Ingrese un valor para multiplicar 2
2 Por 1 Es 2
2 Por 2 Es 4
2 Por 3 Es 6
2 Por 4 Es 8
2 Por 5 Es 10
2 Por 6 Es 12
2 Por 7 Es 14
2 Por 8 Es 16
2 Por 9 Es 18
2 Por 10 Es 20
Este siclo es como es repeat pero alreves esto quiere desir que tiene la propiedad que se finaliza cuando sea falso, no se ejecuta porlomenos una vez solo cuando la condision sea falsa y se tiene que reitera abajo la entrada del while como en el ejemplo.
Su Sintaxis es:
while a ='f' do
begin
......
end;
NOTA: Cuidado en este siclo ponerle pundo y coma al final de la expresion Do.
Nota 2: Cuando use este tipo de siclos repetitivos usa en el prinsipio del porgrama "variable":=0 paraponer limpiar las variables despues que se allan acumulado los datos en la repetisiones anteriores para no traer errores .
Program Mientras;
var
c:integer;
edad,s,suma:real;
n:string;
begin
c:=0;
edad:=0;
writeln('ingrese su nombre ');
readln(n);
writeln('ingrese la edad ');
readln(edad);
while edad < 21 do
begin
suma:=suma+edad;
c:=c+1;
writeln('ingrese su nombre ');
readln(n);
writeln('ingrese la edad ');
readln(edad);
end;
s:=suma/c;
writeln('el poromedio es ',s:2:2);
readln
end.
En dos se veria
ingrese su nombre Nahuel
ingrese la edad 18
ingrese su nombre Pedro
ingrese la edad 17
ingrese su nombre Juan
ingrese la edad 21
el poromedio es 18.66
Con estos siclos puedes hacer muchas cosas, entonses a practicarlos para poder manejarlos mejor y provarlos para entender lo ya dicho antes.
Las Cadenas o en ingles (STRING), pueden ser manejados con funciones que pascal tiene definidas para modificar cadenas ya existentes al gusto del programador, nos podemos encontrar con la funcion Delete, Concat, Pos, Copy, length Insert, con esta breve pero consisa introduccion veremos a continuacion la sintaxis de cada una.
Delete esta funcion como su nombre lo indica en ingles borra parte de la cadena que le hemos indicado con un valor inicial hasta un valor final.
Var s:string;
begin
s:="Programar lo mas mejor ";
delete(s,18,6);
write(s);
end.
En dos se veria
Programar lo mas
Pos retorna en forma numerica el lugar donde se encuntra el caracter que le pedimos buscar y su sintaxis es.
pos("caracter a buscar", var s:string);
var s:string;
bagin
s:="palabra a buscar";
writeln("la letra a se encuentra el la posicion", pos("a",s));
end.
En dos se veria
la letra a se encuentra en la posicion 2
Concat concatena dos strings o sea une dos cadenas y su sintaxis es:
var s:string;
begin
s:= concat('hola ','amigos');
writeln(s);
end.
En dos se veria
hola amigos
NOTA: Esta funcion no sirve de mucho por que hay formas mas fasiles de concatenar texto y esta es:
S:= 'hola '+'amigos';
Copy como la funcion dise en ingles copia una parte de la cadenay su sintaxis es:
copy(cadena,de_donde,hasta):
var s:string
begin
s:='cadena original ');
s:=copy(s,4,6);
writeln('s);
end.
En dos se veria
ena
Las matrises son como variables que tienen una cantidad de variables internas o sea antes de usar muchas variables usamos una. La Matris se representa de la sigiente manera:
8 | 20 | 9 | 4 | 5 | 9 |
Estas variavles se llaman array sirven para no escrivir una sierta cantidad de variables del mismo tipo se usa una solo arreglo como veremos mas adelante. Su sintaxis es:
NOTA:Siempre entre corchetes tiene que ir el rrango en este caso 1 hasta 50, que despues se usara de sub indise
var
promedio:array [1.3] of integer;
begin
write('Ingrese 3 notas para promediarlas');
for a:=1 to 3 do
begin
readln(promedio[a]);
end;
a:=promedio[1]+promedio[2]+promedio[3]/3);
write('El promedio es ",a);
end.
Con este ejemplo te tubo que quedar un poco claro ¿no?, este es un ejemplo bastante basico pero los array se usan es situasiones que las variables se tienen que almasenar en gran cantidad pero no se tiene que destruir ninguan de esa informasion.Tambien se puede usar los subindises numericos para relasionarlos con algo por ejemplo como hice en el ejemplo los relasione con las notas (el subindise 1 tara laprimer nota en 2 tara la segunda y 3 tara la tersera );
Las marises funcionan de la misma manera que los vectores pero estas estos antes de tenes filas solas tinen filas y columnas esto es así por que son vectores de vectores y le dan la fonra de un cuadro como este:
4 |
10 | 11 |
5 | 1 | 20 |
9 | 7 | 0 |
De otra forma mas sensilla de haser lo mismo es:
var a:= array [1..2,1..2] of real;
c:real;
io:char;
begin
write('Ingrese el impuesto a pagar del departamento ');
readln(c);
write('Ingrese el departamento, 1,2,3,4');
op:=readkey;
case op of
'1':a[1,1]:=c;
'2':a[1,2]:=c;
'3':a[2,1]:=c;
'3':a[2,2]:=c;
end;
end.
NOTA: Emos visto que para ingresar el dato tenemos que ingresar el indise y el sub indise que le dan la posicion a la matriz.
Los tipos son usados para haser "nuevos tipos de variables "lo digo entre comillas por que en realidad es para juntar algo en un solo tipo es el podemos hacer un tipo de una matriz definida o hase tipos con las estasiones ej (otoño, invierrno, primavera, verano). si no entendieron nada a continuasion veremos su sintaxis y la aclarasion de todo esto.
type
vector =array [1..20] of real;
var a:vector;
Entonses aqui emos creado un tipo llamado vector que en realidad es un vector de uno a veinte y este lo podemos usar cunatas veses queramos con el nombre vector siembre y cundo sea nesesario usar un vector de esas caracteristicas por que no queremos derochar mucha memoria.A hora bien veremos otro ejemplo:
type
estacion :(otoño,invierno,primavera,verano),
fruta:(manzana,frutilla,naranja,pera);
var
a:fruta;
b:estacion;
begin
a:=manzana;
b:=verano;
end.