miércoles, 23 de marzo de 2011

Colegio de Ciencias y Humanidades
Plantel Sur
Grupo: 671
Cibernética
Alumno: Maradán Trejo De La Rosa
Historia de Pascal

Índice.

1.-Historia de Pascal.
2.-Impacto en el mercado.
3.-Compiladores disponibles.
4.-Versiones existentes.
5.-Estructura de un programa en Pascal.
6.-Instrucciones y comandos de Pascal.
Introducción.
Pascal es un lenguaje de programación desarrollado por el profesor suizo Niklaus Wirth entre los años 1968 y 1969 y publicado en 1970. Su objetivo era crear un lenguaje que facilitara el aprendizaje de programación a sus alumnos, utilizando la programación estructurada y estructuración de datos. Sin embargo con el tiempo su utilización excedió el ámbito académico para convertirse en una herramienta para la creación de aplicaciones de todo tipo.

Pascal se caracteriza por ser un lenguaje de programación estructurado fuertemente tipificado. Esto implica que; el código está dividido en porciones fácilmente legibles llamadas funciones o procedimientos. De esta forma Pascal facilita la utilización de la programación estructurada en oposición al antiguo estilo de programación monolítica; aparte de que el tipo de dato de todas las variables debe ser declarado previamente para que su uso quede habilitado.

A diferencia de lenguajes de programación descendientes de "C" (un lenguaje de programación), Pascal utiliza el símbolo ":=" para la asignación en vez de "=". Si bien el segundo es más conocido, la práctica ha demostrado que muchos usuarios utilizan el símbolo de igualdad para comparar valores en lugar del comparador de "C" que es el símbolo ==.

Esta sintaxis conduce a muchos errores o bugs difíciles de rastrear en código "C". Dado que Pascal no permite asignaciones dentro de expresiones y utiliza sintaxis distintas para asignaciones y comparaciones, no sufre estos errores.

Además sus programas tienen definidas dos partes: declarativa y ejecutiva.

En la primera debe aparecer todo lo que se usará en la segunda, de lo contrario se detecta como desconocido y evita ciertas incomprensiones como veremos más adelante. En la parte declarativa se enuncian Unit existentes, procedimientos, funciones, variables, constantes y nuevos tipos de datos estructurados.

Otra diferencia importante es que en Pascal, el tipo de una variable se fija en su definición; la asignación a variables de valores de tipo incompatible no están autorizadas (en C, en cambio, el compilador hace el mejor esfuerzo para dar una interpretación a casi todo tipo de asignaciones).

Esto previene errores comunes donde variables son usadas incorrectamente porque el tipo es desconocido; y también evita la necesidad de notación húngara, que vienen a ser prefijos que se añaden a los nombres de las variables y que indican su tipo.

1.- Historia de Pascal.

Wirh inventó el lenguaje como una forma de mejorar el por aquel entonces arcaico Algol. No es el primer lenguaje que Wirth diseña, posteriormente inventó el Modula-2 y el Oberon. Sin embargo, paradójicamente, esos dos lenguajes han sido ampliamente superados por el Extended Pascal y el Object Pascal. De todos esos lenguajes, Pascal es el que más éxito ha tenido.

Aunque nace a principios de los 70, Pascal cobra auténtica vida a partir de principios/mediados de los 80, popularizado por el fabuloso Turbo Pascal de MS-DOS para PC, y sobre todo el Apple Pascal. Pascal ha sido tan popular hasta mediados de los 90, que una gran parte (la mayor parte) de las aplicaciones desarrolladas para Mac estaban realizadas en Pascal, así como una enorme parte también de los programas de MS-DOS.

Fue Borland (compañía de software) la que, hasta el Turbo Pascal 7, se encargó de la mayor parte de la evolución de este lenguaje. A mediados de los 90, con el boom de Windows y el renacimiento de los sistemas Unix (entre ellos Linux) como ordenadores servidores primero y luego como estaciones de trabajo, motivó que Pascal pasara a un segundo plano en sustitución de el ya usado "C".

En ese momento, prácticamente solo Delphi (Object Pascal para Windows) consiguió mantenerse en la brecha, pero conformándose con una pequeña parte del mercado solamente.

El paso de Turbo Pascal a Delphi también trajo como consecuencias que apareciera Kylix, que no es más que un Delphi multiplataforma. No caló lo suficiente, debido a la licencia cerrada, y a que imponía que el programa compilado fuera GPL.

En el momento en que Borland pasó de Turbo Pascal a Delphi, apareció Free Pascal. Free Pascal es un intento de la comunidad de código libre de hacer un compilador compatible con Turbo Pascal para todas las plataformas más famosas (incluido Linux, OS X y Windows). Desde la versión 2.0, Free Pascal es además compatible con Delphi.

Free Pascal es, hoy en día, el sistema preferido para programar en Pascal multiplataforma. Su IDE principal, el Lazarus, un clon del Delphi, corre tanto en Windows como en OS X como en Linux.

Lazarus y Free Pascal son la gran esperanza del lenguaje de programación Pascal, y de los entornos de desarrollo multiplataforma en general. Su desarrollo es muy activo, y con toda seguridad tiene un futuro prometedor.

2.-Impacto en el mercado.

Casi todo el mundo intentó pasarse a "C" a mediado de los 90 pero no consiguió calar del todo por su extrema complejidad. Su sistema de objetos, los macros, los crípticos nombres de funciones, los namespaces tan difíciles de manejar, los templates, la STL y otra serie de cosas, hicieron que rápidamente mucha gente pasara de querer usar esa herramienta que todo el mundo proclamaba que era tan potente, a buscar alternativas que fueran más simples y prácticas.

Sun, la compañía del Java, se gasto una millonada en promocionar su lenguaje, y tuvo un gran éxito, sin duda debido no solo al dinero en publicidad, sino a la gente que escapaba escaldada del "C".

En realidad, Java no es un lenguaje fácil de aprender, pero comparado con "C", se podía considerar como algo sencillo.

Borland, una compañía con no tanto dinero como Sun, no pudo competir con Pascal, y se tuvo que conformar sacando su propia máquina virtual de Java. Pero Delphi no ha dejado nunca de existir. Aun hoy sigue sacando versiones Delphi, con gran éxito, aunque no consigue subir significativamente su porcentaje de participación en el mercado.

Posteriormente Microsoft compró la mayor parte de Borland. Con ello se abandonó Kylix, Linux, y se hizo a Borland 100% Windows. Esta estrategia prácticamente ha arruinado el avance de Pascal frente a otros lenguajes, en el entorno corporativo.

3.-Compiladores disponibles.

Esto es un listado de los compiladores disponibles al público:
-Epox
-GNU Pascal (GPC), escrito en C, basado en GNU Compiler Collection (GCC). Se distribuye bajo licencia GPL.
-Free Pascal está escrito en Pascal (el compilador está creado usando Free Pascal), es un compilador estable y potente. También distribuido libremente bajo la licencia GPL. Este sistema permite mezclar los codigos de mas utilidad en el mercado de la programacion, y soporta muchas plataformas y sistemas operativos.
-Turbo Pascal fue el compilador Pascal dominante para PC durante los años 1980 y hasta principios de los años 1990, muy popular debido a sus magníficas extensiones y tiempos de compilación sumamente cortos. Actualmente, versiones viejas de Turbo Pascal (hasta la 7.0) están disponibles para descargarlo gratuito desde el sitio de Borland.
-Delphi es un producto tipo RAD (Rapid Application Development) de Borland. Utiliza el lenguaje de programación Delphi, descendiente de Pascal, para crear aplicaciones para la plataforma Windows. Las últimas versiones soportan compilación en la plataforma .NET.
-Kylix es la versión más nueva de Borland reiterando la rama de Pascal de sus productos. Es descendiente de Delphi, con soporte para el sistema operativo Linux y una librería de objetos mejorada. El compilador y el IDE están disponibles para uso no comercial. Actualmente este proyecto está descontinuado.
-Lazarus es un clon de Delphi, basado en Free Pascal es software libre.
-Midlet Pascal para la plataforma J2ME.
-TMT Pascal.

4.-Versiones existentes.

La versión original de Turbo Pascal fue escrita en 1982 por un joven danés llamado Anders Heilsberg y vendida en Europa como Kompass Pascal. Philipe Kahn la llevo a Estados Unidos y creó la empresa Borland International con la filosofía de venta directa del compilador a los usuarios y a un precio módico.

El primer compilador comercializado incorporaba un editor y un compilador integrado, lo cual supuso una novedad en el campo de los compiladores, ya que normalmente se comercializaban ambos programas por separado.

 Esta primera versión(1.0) estaba disponible para máquinas que corrían bajo CP/M y MS-DOS.
Posteriormente, las versiones 2.0 y 3.0 que se comercializaron en 1984 y 1985 respectivamente; incrementaron las características del compilador, permitiendo 64k para código, datos y pila.

La versión 3.0 (1985) incluyó soporte de solapamientos, gráficos, rutinas de configuración de pantallas y cajas de herramientas; esta versión supuso el auge de Pascal.

En 1987 apareció la versión 4.0, que supuso la aparición del concepto de unidades. Cada unidad tenía su propio segmento de código, hasta 64k, y una vez que una unidad era compilada, otros programas o unidades podían utilizarla sin recompilación.

El resultado fue que los programas Turbo Pascal (ahora archivos .EXE en lugar de .COM) estaban limitados en tamaño solo por la memoria disponible. Con la versión 4.0 llegó el entorno integrado de desarrollo, EID (Integrated Development Environment, IDE).

La versión 5.0 llegó en 1988 y aportó esencialmente herramientas de depuración. El depurador integrador incorporado a TP 5.0 permitía seguimiento (traza) del código, establecer puntos de ruptura y observar a modificar variables, todo ello sin dejar el EID. Otras características fueron la emulación de coprocesadores matemáticos y la incorporación del Turbo Debbugger.

En el año 1989 supuso la introducción de los conceptos de programación orientada a objetos (POO), en un compilador potente y económico: La versión 5.5. El Turbo Debbugger fue mejorado para manejar objetos.
Por fin, la profesionalización de la POO llegó en 1990 con la incorporación al programa de Turbo Vision (Una librería de objetos y la nueva versión 6.0). Otras propiedades específicas son: nuevo EID con soporte ratón, ensamblador incoprporado(BASM), campos privados y métodos para objetos y compilador en la línea de órdenes con modo protegido.

En el año 1992 Borland presentó la que sería última versión de Turbo Pascal 7.0, compatible con todas la anteriores y que ha introducido mejoras significativas, tanto el entorno integrado de desarrollo como el propio lenguaje Pascal y bibliotecas en tiempo de ejecución, así como nuevas directivas y unidades.

Tambien salieron Versiones para el UCSD Pascal:

Versión 1.- Versión original, nunca oficialmente distribuida fuera de la Universidad de California en San Diego. Sin embargo las fuentes de Pascal para las versiones I.3 e I.5 fueron intercambiadas libremente entre los usuarios interesados. Específicamente el parche de la revisión I.5a fue conocido en ser uno de los más estables.

Versión 2.- Distribuido extensamente, disponible en muchos tempranos microcomputadores. Numerosas versiones incluidas las de Apple II, DEC PDP-11, máquinas basadas en los microprocesadores Zilog Z80 y MOS 6502, en los microprocesadores Motorola 68000, y en el IBM PC (en el IBM PC, la versión II fue restringida a un segmento de código de 64K y un segmento de datos de 64K para stack y heap, la versión IV removió el límite del segmento de código pero costó mucho más).

Versión 3.- Versión de encargo escrita para Western Digital para correr en su microcomputador Pascal MicroEngine. Incluye por primera vez soporte para procesos paralelos.

Versión 4.- Versión comercial, desarrollada y vendida por SofTech. Basada en la versión II, no incluyó cambios de la versión III. No se vendió bien debido a la combinación de su estructura de precios, problemas de desempeño debido al interpretador del p-code, y la competencia con sistemas operativos nativos (a menudo corría encima de ellos). Después de que SofTech abandonara el producto, fue recogido por Pecan Systems, una compañía relativamente pequeña formada por usuarios y aficionados del p-System.
5.-Estructura de un programa en Pascal.

Generalmente consta de las siguientes partes:

-Nombre del programa.
-Uso de unidades.
-Constantes.
-Tipos.
-Variables.
-Procedimiento y funciones.
-Begin (inicio del programa).
-Bloque de instrucciones.
-End (final del programa principal).
Ejemplo:
Program Basico; {NOMBRE DEL PROGRAMA}
Uses crt;{USO DE UNIDADES}
Var {DECLARACION DE VARIABLES}
    Nombre : String; {VARIABLE DE TIPO STRING, PARA GUARDAR SOLO TEXTO}
Begin {INICIO DEL PROGRAMA PRINCIPAL}
    Clrscr;{LLAMADO A UN PROCEDIMIENTO CONTENIDO EN LA UNIDAD CRT, QUE SE USA PARA LIMPIAR LA PANTALLA}
    Nombre:='Tutor de Programación de Turbo Pascal"; {SE ASIGNA EL TITULO A IMPRIMIR A LA VARIABLE NOMBRE}
    Writeln(Nombre);{SE IMPRIME EL NOMBRE EN LA PANTALLA}
    Writeln('Presione [Enter] para terminar');
{OTRO ROTULO INFORMATIVO}
    Readln;{SE ESPERA A QUE SE PRESIONE LA TECLA ENTER}
End.{FINAL DEL PROGRAMA PRINCIPAL}

6.-Instrucciones y comandos de Pascal.

Tablas de las diferentes instrucciones, comandos, variables y ayudas de Pascal.


Operandos Aritmeticos

Operandos Relacionales

Operandos Logicos

- Resta
+ Suma
* Multiplicacion
/ Division real
Div Division entera
Mod Residuo
:= Asignacion
Sqr Potencia 2
Sqrt Raiz 2
< Menor que
> Mayor que
<= Menor igual que
>= Mayor igual que
<> Desigualdad
= Igualdad
And - Y
Or - O
Xor - Bicondicional
Not - Negacion
Ord() - Ordinal
Succ() - Sucesor
Pred() - Antecesor
Inc() - Incremento
Dec() - Decremento



Declaracion de Variables

Tipo

Declaración

Limite Inferior

Limite Superior

Entero
Entero corto
Entero Largo
Entero Extra
Real
Real Corto
Real Doble
Real Largo
Real Extra
Logico
Caracter
Palabra
Arreglo
Texto
Constante
Apuntador
Integer A;
ShorInt A;
LongInt A;
Word A;
Real A;
Single A;
Double A;
Extended A;
Comp A;
Boolean A;
Char A;
String A;
Array{1..N} of integer
Text A;
Const A;
Record=Variable
32000
128
2E -6
0
2.9E39
1.5E -45
5E -324
3.4E -4932
2E -65
True
32000
127
2E 6
65000
1.7E 38
3.4E 38
1.7E 308
1.1E 4932
2E 63
False



For Contador:= 1 to N do
Begin
Sentencia;
End;
De Contador=1 hasta Contador=N
If Condicion = 1 then
Begin
Sentencia;
End;
Else
Begin
Sentencia;
End;
Si Condicion = 1 Entonces



Si no
While Condicion=1 do
Begin
Sentencia;
End;
Mientras Condicion = 1 haz
Repeat
Sentencia;
Until (Condicion = 1);
Repite

Hasta Condicion = 1
Case(Opcion)
1: Sentencia1;
2: Sentencia2;
Else
Sentencia;
En caso de Opcion
Si Opcion = 1
Si Opcion = 2
Si no



Procedimiento

Función

Unidad

Procedure Nombre(Variable:Integer)
Var
Begin
Sentencia;
End;

Begin
Nombre(Variable)
End.
Function Nombre(Variable:Integer) : Real
Var
Begin
Sentencia;
VarReal:=Variable;
End;

Begin
A:=Nombre(X);
End.
Interface
Uses
crt;
Type

Const

Var

Procedure Pausa;
Implementation
Procedure Pausa:
Var
ch:Char;
Begin
ch :=Readkey;
End;
End.



Registros

Conjuntos

Type

Nodo=^Tarjeta;

Tarjeta = Record
Nombre = String[10];
Edad = Integer;
Sig = Nodo
End;

Var
Alumno:Tarjeta
Type

Semana = (Lun,Mr,Mie,Jue,Vie,Sab,Dom);



<><>

APUNTADORES

New(Inicio);
Inicio->Inicio^.Info:=‘Hola’;
Inicio->Inicio^.Siguiente:=NIl;
Aux:=NIL;
New(Aux);
Inicio^.Siguiente:=Aux;
Dispose(Inicio);



<><>

Funciones Varias

Funcion

Descripcion

Clrscr;
ClrEol;
DelLine
InsLine;
TextBackground(Color);
Textcolor(Color);
TextMode(Modo);
Window(x,y,x2,y2);
NormVideo;
HighVideo;
LowVideo;
Random(Var);
Randomize;
SizeOf(Var);
Sound(Frec);
NoSound;
Delay;
Halt(Var);
Borra Pantalla
Borra linea actual
Borra linea de texto donde esta el cursor
Inserta linea vacia en posicion actual
Selecciona color de fondo
Selecciona color de primer plano
Define modo de video
Define una ventana de textoen de ESI x,y hasta EIDx2,y2
Restaura atributos de video
Activa pantalla de video de alta intensidad
Activa pantalla de video de baja intensidad
Devuelve un numero aleatorio de cero a Var
Inicializa el generador de numeros aleatorios
Devuelve el numero de bytes requeridos por una variable
Genera un sonido a una frecuencia Frec
Desconecta sonido
Detiene la ejecucion de la siguiente instruccion
Interrumpe la ejecucion de un programa



<><>

Fuciones de Cadena

Funcion

Descripcion

Clreol
Concat(Cad1,Cad2);
Copy(Cad,indice,Lim);
Delete(Cad,indice,Lim);
Deline;
Gotoxy(x,y);
Insert(Cad1,Cad2,indice);
Insline
Length(Cad);
Pos(Cad1,Cad2);
Read(Variable);
Readln(Variable);
Wherex;
Wherey;
Write(Variable);
Writeln(Variable);
Val(Cad,N,Num);
Borra linea actual
Une dos cadenas y el resultado lo deja en cadena1
Devuelve una cadena que va desde el indice hasta el lim
Borra una subcadena que se encuentra en cadena de indice hasta lim
Borra linea de texto donde esta el cursor
Posiciona al cursor en x,y
Inserta en cad1 cad2 desde la posicion de indice
Inserta una linea vacia en la posicion actual
Devuelve la logitud de la cadena
Devuelve la posicion de cad1 dentro de cad2
Lee una entrada y la coloca en una variable
Lee una entrada y la coloca en una variable y retorna
Devuelve posicion del cursor en la horizontal
Devuelve posicion de el cursor en la vertical
Escribe el contenido de la variable en la pantalla
Escribe el contenido de la variable en la pantalla y retorna
Convierte una cadena a un numero n si hay exito Num = 0



<><><> 

Funciones de Entrada / Salida

Funcion

Descripcion

Chr(n);
GetCBreak(Opcion);
KeyPressed;
ReadKey;
Devuelve el caracter que tiene un valor ASCCI de n
Devuelve el estado de CRTL-BREAK
Devuelve true si se ha pulsado una tecla
Lee un caracter de el teclado


Write(‘Mensaje’);
Write(‘Mensaje’,Variable);
Write(‘Mensaje’,Variable:2:3);
Escribe Mensaje en la pantalla
Escribe Mensaje y el valor de la Variable en pantalla
Escribe Mensaje y el valor de la Variable con 2 enteros y 3 decimales



<><>

Fuciones de Archivos

Función

Descripción

VariableArch:Text
VariableArch:File of Integer
Assign(VariableArch,Nombre)
Reset(VariableArch);
Append(VariableArch);
Rewrite(VariableArch);
Seek(VariableArch,Num);
Filesize(VariableArch);
Flush(VariableArch);
Close(VariableArch);
Write(VariableArch,’Hola’);
Read(VariableArch,Variable);
EOF(VariableArch);
EOLN(VariableArch);
{$I+-}
ioresult = 0
Declra una variable de archivo de texto
Declara una variable de archivo tipificado
Asigna un apuntador a un archivo llamado nombre
Añade a un archivo tipificado
Añade a un archivo de texto
Crea y escribe en un archivo
Se posiciona en el registro con posicion Num
Numero de datos en el archivo empezando en cero
Fuerza al buffer a escribir al archivo
Cierra un archivo
Escribe al archivo
Lee de el archivo y deja informacion en variable
Fin de archivo
Fin de linea
Conecta o desconecta Verifiacion de entrada/Salida
Si el archivo existe ioresult = 0



<><>

Funciones de Sistema

Función

Descripción

ChDir(Cad);
DiskFree(Unidad);
DiskSize(Unidad);
DosExitCode;
DosVersion;
Exec(Prog,Ordenes);
Exit;
FreeMem(Apuntador,Num);
Fsearch(Arch,path,ListDir);
Fslipt(Arch,Path,Dir,Nombre,ext);
GetDir(Unidad,Cad);
GetFTime(Apuntador,Hora);
GetMem(Apuntador,n);
GetTime(Hora,Min,Seg,Cent);
GetVerify(Opcion);
Keep(Codigo);
MkDir(Cad);
Rename(Apuntador,Cad);
RmDir(Dir);
Cambia de directorio actual
Devuelve la cantidad de bytes libre en un disco
Devuelve el numero total de bytes en un disco
Devuelve el codigo de salida en un programa hijo
Devuelve el numero de version actual de el DOS
Se ejecuta un prog con linea de ordenes
Se termina un subprograma o programa
Libera num de memoria de la pila asociada con apuntador
Devuelve cadena y busca en la listDir un nombre de archivo
Divide un archivo en unidad, directorio,nombre y extension
Devuelve el directorio actual en la unidad especificada
Devuelve hora del archivo que apunta apuntador
Reserva n bytes de memoria asigna la direccion a Apuntador
Obtiene tiempo actual de el sistema
Pone el estado de verificacion de el DOS
Deja un programa residente el DOS toma el codigo de salida
Crea un directorio con nombre que tiene cad
Renombra un archivo apuntado con el nombre que tiene Cad
Elimina un directorio especificado sin archivos dentro



<><>

Funciones Matematicas

Función

Descripción

Sin(Var);
Cos(Var);
ArcTan(Var);
Exp(Var);
Ln(Var);
Sqr(Var);
Sqrt(Var);
Abs(Var);
Round(Var);
Trunc(Var);
Frac(Var);
Int(Var);
Ord(Var);
Pi;
Devuelve en radianes el seno de el angulo Var
Devuelve en radianes el coseno de el angulo Var
Devuelve en radianes el arco tangente de el angulo Var
Devuelve el exponencial "e" de Var
Devuelve el logaritmo natural del argumento Var
Devuelve el cuadrado de el argumento Var
Devuelve la raiz cuadrada del argumento Var
Devuelve el valor absoluto de Var
Devuelve el redondeo de Var
Devuelve a Var sin la fraccion
Devuelve la parte decimal de un numero real
Devuelve la parte entera de un real
Devuelve el valor asociado a un caracter ASCCI
Devuelve el valor de Pi



<><>

Funciones de Control

Función

Descripción

Initgraph(Control,Modo,Ruta);
Closegraph;
Restorecrtmode;
Setgraphmode();
Getgraphmode
GetMaxMode;
GetModeName(Num);
GetDriveName;
GetModeRange(A,B,C);
InstallUserDrive(Archivo,Apuntador);
InstallUserFont(Archivo);
SetActivePage(Num);
GraphDefaults;
Graphresult
Grapherrormsg(),
GetFillParttern(Variable);
GetFillSettings(Variable);
GettextSettings(Variable);
GetViewSettings(Variable);
Inicializa modo grafico con control y ruta especificada
Cierra modo grafico
Restaura estado
Establece modo actual de graficos
Devuelve el valor de el modo grafico actual
Devuelve el valor de el modo grafico
Devuelve el nombre de el modo grafico
Devuelve el controlador de graficos
Devuelve en B y C los modos graficos alto y bajo de A
Instala un controlador de graficos que no sea de Borland
Instala una fuente que no sea de Borland
Selecciona pagina de trabajo
Ventana,cursor,colores,tipo de relleno,y texto
Devuelve codigo de error
Despliega informacion de error
Devuelve el relleno de usuario
Devueleve el relleno y color actual
Devueleve fuente, direccion, tamaño y justificacion de texto
Devuelve parametros de ventana actual



Error

Valor

Control

Valor

No hay problema
Graficas no inicializadas
No control,No hardware
No archivo controlador
Controlador Invalido
No RAM para graficas
No RAM para exploracion de fondo
No RAM para exploracion de flujo
No archivo de tipografias
No RAM para tipografias
Modo de copntrol invalido
Error grafico generico
Error grafico de entrada salida
0
-1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
Detected
CGA
MCGA
EGA
EGA64
EGAMONO
IBM8514
HERCMONO
ATT400
VGA
PC3270
0
1
2
3
4
5
6
7
8
9
10



<><>

Funciones de Lineas

Función

Descripción

Setlnstyle(Estilo,Modelo,Grosor);
GetLineSettings(Variable);
GetmaxColor;
SetWritemode(Num);
Pone estilo modelo y grosor de linea
Devuelve estilo,modelo y grosor de lineas
Devuelve el valor mas alto de color en la paleta actual
Pone modo de lineas



Modos de Linea

Modo

Valor

SoldLn
DotterLn
TiekWidth
CenterLn
DashedLn
UserBitLn
NormWidth
0
1
3
2
3
4
1
Copyput
XorPut
OrPut
AndPut
NotPut
0
1
2
3
4



<><>

Funciones de Texto

Función

Descripción

Outtext(X,Y,’Mensaje’);
Outtext(‘Mensaje);
Textheight(Cadena);
Textwidht(Cadena);
Settextstyle(Tipografia,Direccion,Tamaño);
Settextjustify(Horizontal,Vertical);
Setusercharsize(X,X2,Y,Y2);
Setcolor(Color),
Moveto(X,Y),
Setviewport(X,Y,X2,Y2,Clipon/Clipoff);
Clearviewport;
Cleardevice;
Despliega mensaje desde X,Y
Despliega mensaje en la posicion actual de el cursor
Devuelve el valor en pixeles de la altura de la cadena
Devuelve el valor en pixeles de el ancho de la cadena
Coloca tipografia,direccion y tamaño especificado
Justifica la direccion para el texto
Tamaño definido por el usuario ancho(X,X2) altura(Y,Y2)
Coloca el color para los caracteres
Mueve el cursor a las coordenadas X,Y
Delimita una ventana grafica
Limpia una ventana grafica
Limpia toda la pantalla grafica




<><><>   

Funciones para Paletas

<><><>   

Funciones para Imagenes

<><><>   

Funciones de Cursor y Color

<><>

Formato de Relleno

Modelo

Valor

Descripción

Empty_Fill
Solid_ Fill
Line_ Fill
Ltslash_ Fill
Slash_ Fill
Bkslash_ Fill
Ltkslash_ Fill
Hatch_ Fill
Xhatch_ Fill
Interleave_ Fill
Widedot_ Fill
Closedot_ Fill
User_ Fill
0
1
2
3
4
5
6
7
8
9
10
11
12
Rellena con color de fondo
Rellena con color solido
Rellena con lineas
Rellena con barras claras
Rellena con barras
Rellena con barras inclinadas
Rellena con barras inclinadas claras
Rellena con entramado claro
Rellena con entramado
Rellena con interleaving
Rellena con puntos espaciados
Rellena con puntos juntos
Rellena con modelo definido
<><>

Figuras Geometricas

Figura

Descripción

Putpixel(x,y,color);
Line(x,y,x2,y2);
Linerel(x,y);
Lineto(x,y);
Arc(x,y,Grado1,Grado2,Radio);
Bar(x,y,x2,y2);
Rectangle(x,y,x2,y2);
Pieslice(x,y,Grado1,Grado2,Radio);
Bar3d(x,y,x2,y2,Profundidad,topon/topoff);
Circle(x,y,Radio);
Sector(x,y,Grado1,Grado2,Radiox,Radioy);
Ellipse(x,y,Grado1,Grado2,Radiox,Radioy);
Drawpoly(Sizeof(arreglo) div size(arreglo));
Getaspectratio(x,y);
Setaspectractio(x,y);
Fillellipse(x,y,Radiox,Radioy);
Fillpoly(Sizeof(arreglo) div size(arreglo)());
Floodfill(x,y,Borde));
Setfillstyle(Estilo,Color);
Dibuja un pixel en x,y
Traza una linea de x,y hasta x2,y2
Traza una linea de 0,0 hasta x2,y2
Traza una linea de la ultima linea hasta x,y
Traza un arco de centro x,y de Grado1 a Grado2
Traza una barra de ESI x,y hasta EID x2,y2
Traza un Rectangulo de ESI x,y hasta EID x2,y2
Traza un Pay de centro x,y con radio de Grado1 a Grado 2
Traza una barra en 3D de ESI x,y hasta EID x2,y2
Traza un circulo de centro x,y con Radio
Traza el sector de una elipse de centro x,y con dos Radios
Traza una Elipse de centro x,y con dos Radios
Traza un Poligono contenido en un arreglo
Coloca el radio de rotacion por default
Coloca un radio de rotacion definido
Rellena una Elipse de x,y con dos Radios
Rellena un poligono contenido en un arreglo
Rellena una figura cerrada que tiene color de borde
Coloca estilo de relleno

No hay comentarios:

Publicar un comentario