c iNDlCE CARACTERiSnCAS DESEABLES

61

Transcript of c iNDlCE CARACTERiSnCAS DESEABLES

Page 1: c iNDlCE CARACTERiSnCAS DESEABLES
Page 2: c iNDlCE CARACTERiSnCAS DESEABLES

c iNDlCE

O N

I.- INTRODUCCI~N

11.- CARACTERiSnCAS DESEABLES

111.- COMO ES EL SEW

IV.- EL SISTEMA

IV.l HARDWARE IV.2 SOFTWARE

V. - FUNCIONAMIENTO

VI.- RESULTADOS-

VIL- CONCLUSIONES

VIII.- DIAGRAMAS

VIII.- BIBLIOGRAF~A.

1

Page 3: c iNDlCE CARACTERiSnCAS DESEABLES

El lenguaje humano es un medio de comunicación por medio del cual se expresan pensamientos y sentimientos a nuestros semejantes y a nosotros mismos. Pero, que sucede cuando una persona sufre de una deficiencia en la producción de voz?. Actualmente existen muchos sitios y programas planeados para la rehabilitación de voz; el fin que se persigue es corregir o mejorar lo mas posible la deficiencia en el habla, pero estos métodos de rehabilitación son diversos y algunos sumamente costosos y utilizan elementos que van desde los mas simples, como son las figuras de papel, hasta los mas sofisticados (computadoras); esto a su vez involucra una preparación cada vez mas especializada por parte del terapista, un cambio en el desarrollo de la sesión con el paciente y hasta la misma relación terapista - paciente.

Uno de estos elementos que cada vez se hace mas y mas presente es el uso de la computadora como herramienta terapéutica y junto con esto el desarrollo de programas cada vez mas elaborados y costosos.. Estos programas o sistemas son, conocidos como entrenadores de voz y su finalidad es ayudar al terapista durante su sesión a 'I ensayar y entrenar la voz ' O ,

teniendo como patrón los sonidos, sílabas, palabras etc., emitidos por el terapista y reflejados en la pantalla de la computadora., Uno de estos sistemas comerciales y de los más populares es el "SPEECHVIEWER de IBM , el cual convierte los elementos acústicos del habla en desplegados gráficos, además de analizar algunos elementos del habla, a su vez, los desplegados gráficos pueden ser sincronizados con el audio.. El software de este sistema ocupa una memoria de 640 Kb, el paquete incluye una bocina de 8 ohms, una tarjeta convertidora, un micrófono direccional, y una PC/1 de ISM; El 'SpeechViewer" fue diseñado principalmente para niños.

Otro sistema popular es el llamado 'I PC LOBO" 'I de IBM, este sistema no solo adquiere señales de voz sino también presenta una serie de imágenes útiles para pacientes que presentan perdida total del habla.

t

Page 4: c iNDlCE CARACTERiSnCAS DESEABLES

En las siguientes paginas se presenta el diseño de un " entrenador de voz 'I con las características básicas pero sobre todo económico.

3

Page 5: c iNDlCE CARACTERiSnCAS DESEABLES

L Cuales serian las características básicas que debería cumplir un sistema de esta naturaleza.?

En general el sistema debe de contar con un elemento a través del cual se captaría la voz del usuario, una vez hecha la adquisición de la voz se presentaría un despliegue en pantalla de lo adquirido y al final, si así se desea, el sistema debe reproducir lo que ya fue adquirido. En resumen esto es:

1.- El sistema debe presentarse al usuario de manera sencilla. así como también el maneio del mismo. 2.- El sistema debe ser capaz de interactuar con la persona que lo utiliza. 3.- Si consideramos que generalmente las personas que reciben entrenamiento de voz presentan alguna deficiencia auditiva, el sistema debe ser capaz de proporcionar un medio de retroalimentación al paciente utilizando los otros sentidos del paciente como la vista y tal vez el tacto y el olfato.

Page 6: c iNDlCE CARACTERiSnCAS DESEABLES

El Sistema Entrenador de Voz (SEV) presenta un despliegue visual de la seiíal acústica en forma similar a un espectrograma y/o o una gráfica de puntos,. La representación de la seiíal acústica de está manera, presenta todas las características del patrón de voz, y como la finalidad es analizar el patrón de voz para poder corregir, mejorar u obtener una mejor calidad en la producción de voz. En el caso del despliegue en forma de espectrograma., este se realiza considerando al tiempo en el eje X y a la amplitud en el eje Y, el trazo es desplegado utilizando intervalos de duración de 0.5 segundos , 1.0 S, 1.5 S, 2.0 S

y 2.5 s. En el caso de la gráfica de puntos tiene como característica principal la alta resolución , y nuevamente graficando de izquierda a derecha con el tiempo en el eje de coordenadas X y la amplitud en el eje de coordenadas Y. Pero, que es lo que nos permite observar y/o apreciar estas gráficas? Si hablamos en general, podemos decir que nos permite el análisis de las propiedades fisicas del habla, y en particular el hecho de considerar variaciones de tiempo ó intervalos de tiempo es que en 0.5 S obtengo una gran resolución de la señal adquirida mientras que en el caso contrario se permite el análisis de más información en menor resolución , así como la detección de errores que se producen al generar la voz, identificación de intensidades, transiciones que pueden ser abruptas o no dependiendo de los elementos que se manejen durante la terapia (como pueden ser vocales, consonantes, fonemas etc..) y algunos factores dinámicos como puede ser la velocidad de las articulaciones. La gráfica en alta resolución permite observar la distribución e identificación de los componentes, tiempos de silencio durante la pronunciación, identidad de segmentos. Pero la información combinada de ambas gráficas permite al terapista detectar y enfocarse al problema en específico del paciente y para el paciente es una herramienta de retroalimentación visual ,y de estímulación al observar modificaciones en la producción de su voz.

Page 7: c iNDlCE CARACTERiSnCAS DESEABLES

IV.- EL SISTEMA SlEV

El sistema está dividido en dos partes el hardware y el software.

DIAGRAMA A BLOQUES DEL SISTEMA SR/

HhKm HhKm

c

Page 8: c iNDlCE CARACTERiSnCAS DESEABLES

IV.1.- EL HARDWARE

El hardware esta dividido en tres etapas o bloques antes de que la señal adquirida sea procesada por el software. Las etapas son:

a) Entrada de Audio. b) Filtro Analógico. c) Etapa de adquisición WD).

a) ENTRADA DE AUDIO.

Para adquirir la señal de voz se utiliza un micrófono de tipo comercial, piezoelectrico y unidireccional, y se hacen varias consideraciones: la primera es el ruido del medio ambiente que rodea a la señal de voz y la segunda es la amplitud con la que esta señal se recoge, por lo tanto el ancho de banda de la señal de voz esta limitado por la parte inferior para evitar ruido, abarcando todo el ancho de banda de voz, y hacia la parte superior limitando la banda de voz.- Esta etapa consiste en un pre-amplificador con control de sensibilidad para permitir registrar niveles de voz de 20 (3 75 dB SPL a una distancia de 20 cm. del micrófono. A continuación se ubica un filtro pasa-altas con una frecuencia de corte de 6000 Hz con 40 dB por década de pendiente de caída, seguido de un amplificador de audio que incluye un circuito que permite suprimir el ruido ambiental. El diagrama 1 muestra el circuito antes mencionado.

b) FILTROS ANALÓGICOS.

Cuando se pronuncia una palabra, una sílaba, etc.. o algo tan "sencillo" como una vocal o consonante , para poder emitir el sonido, las cuerdas vocales comienzan a articular produciendo diferentes vibraciones a varias frecuencias, la mezcla de todas estas nos da el sonido característico de una palabra, una vocal, una consonante.

7

Page 9: c iNDlCE CARACTERiSnCAS DESEABLES

La señal que sale del amplificador de nuestro sistema SN, es una señal "completa" esto es, lleva todas las componentes de frecuencia, ademas de la intensidad, duración etc.. con que fue pronunciada una palabra o una letra.. Para descomponerla en frecuencias se utilizan siete filtros pasabanda con pendientes de corte de 40 dB por década, centrados en las frecuencias de 125, 250,500,100082000,3000 y 4000 Hz, abarcando el ancho de banda de la voz,. El diagrama 2 muestra el circuito arriba referido.

C) ADQUISICI~N.,

La adquisición de realiza empleando una tarjeta de conversión de propósito general, de tipo comercial. Cuenta con 12 bits, 16 canales analógicos multiplexados de entrada y una frecuencia de muestres máxima de 30 KHz para un solo canal; instalada en una ranura de expansión de la computadora.

Aquí es importante aclarar que cada canal de entrada al convertidor corresponde a cada uno de las salidas de los siete filtros pasabanda, y están en el siguiente orden: al filtro de menor frecuencia le corresponde el canal uno de la tarjeta y al filtro de mayor frecuencia (4000 Hz) le corresponde el octavo canal de la tarjeta . El canal O recibe la señal "completa" proveniente del amplificador. Ver apéndice.

El hardware a la salida de la computadora incluye dos etapas:

a) Etapa de Conversión D/ A c) Amplificador de Audio.

a) ETAPA DE CONVERSIóN D/A

La etapa de conversión se utiliza para reproducir las señales de voz ya adquiridas con la finalidad de evaluar su desarrollo durante el uso frecuente de terapias,. En esta etapa se utiliza la misma tarjeta de conversión que se utilizo

Page 10: c iNDlCE CARACTERiSnCAS DESEABLES

para la adquisición (ver apéndice) .

b) AMPLIFICADOR DE AUDIO.

A la salida del convertidor tenemos un circuito amplificador y 2 filtros RC para la eliminación de algún ruido que pueda generarse., y utilizamos un amplificador de audio, tipo comercial, muy popular en el mercado (LM389) para amplificar la salida a la bocina . El usuario cuenta aquí con un control de intensidad.

LA COMPUTADORA

La computadora utilizada es una compatible con IBM PC XT o AT teniendo como mínimo una configuraron de 640 Kb de memoria en RAM, disco duro de 20 Mb, tarjeta gráfica y monitor CGA.

IV.2.- EL SOCTWARE

9

Page 11: c iNDlCE CARACTERiSnCAS DESEABLES

IV.2.- EL SoFlwAwE

El control de todo el sistema lo realiza el software, el cual presenta al usuario varias opciones en forma de mnús permitiendo la interacción entre el usuario y la maquina. El sofiware esta realizado en Turbo Pascal, versión 5.0 y esta dividido en tres unidades principales:

a) Adquisición.

b) Graficación en alta resolución

c] Espectros.

10

Page 12: c iNDlCE CARACTERiSnCAS DESEABLES

a) ADQUISICI~N

El programa de adquisición se realizo en lenguaje ensamblador y presenta las siguientes opciones:

a) El primer canal o primera entrada del multiplexor a través del cual se desea comenzar a muestrear la señal.

b) El ultimo canal o ultima entrada del multiplexor del que se desean datos.

c) El numero de muestras deseadas por canal, Hay que recordar que a cada salida de filtro le corresponde una entrada del multiplexor de 16 canales y que cada salida representa una componente de la señal de voz adquirida. El numero de datos adquiridos será el numero de canales a muestrear por el numero de datos a adquirir por canal.

d) La frecuencia de muestre0 es de 2Khz, esta frecuencia siempre es fija.

b) GRAFICACIÓN EN ALTA RESOLUCIóN

En un arreglo se tiene la información obtenida de cada canal, en esta opción se permite al usuario graficar un canal o frecuencia o varios canales o frecuencia de manera que se representa la distribución en tiempo y las características de cada componente de la señal de voz adquirida que como ya se menciono la información representada es de valiosa ayuda para el paciente como para el terapista

c) ESPECTRO.

Esta gráfica esta elaborada en forma de barras semejando a un espectro,

11

Page 13: c iNDlCE CARACTERiSnCAS DESEABLES

la representación del espectro muestra, entre otras cosas, muchos de los elementos fonéticos del habla que pueden ser la diferencia entre una buena o una mala producción del sonido hablado. Cada canal o frecuencia tiene un color diferente, el espectro presenta dos opciones, la primera es un espectro "plano" que tiene como amplitud (intensidad) el eie y y el tiempo se maneja en el eje x en un intervalo de 0.5s a 2.5~~ cubriendo el ancho de banda. La segunda opción presenta al espectro en un sistema coordenado de 3 dimensiones en donde al eje x se le considera el tiempo, al eje y la frecuencia y al eje z la intensidad. Todos los canales adquiridos son desplegados en una sola pagina en cada caso.

d) El software está elaborado en pascal 5.0, el programa esta dividido en 3 unidades principales que son las mas grandes y las principales del programa., una unidad que contiene las variables globales del programa y unidades de utilería.

Estas unidades son:

UNIDAD PRINCIPAL : coordina la función de todas las demás unidades

UNIDAD DE GRÁFICOS (GRAFTUNIT.PAS) : solo realiza funciones gráficas en alta resolución, esta unidad es la mas larga, presenta varias opciones: almacenar datos, buscar datos , y realiza el despliegue de los mismo en dos formas.

UNIDAD DE BARRAS(raya.pas): solo realiza desplegados semejando un espectro, presenta dos formas de despliegue de datos y las opciones de almacenar o buscar datos.

UNIDAD de PARÁMETROS: contiene los parámetros globales de todo el programa

UNIDADES DE UTILERíA. (dates.pas, menuunit.pas) .

I t

Page 14: c iNDlCE CARACTERiSnCAS DESEABLES

Los datos captados por la tarjeta convertidora son recibidos en un arreglo de datos de tipo entero , al mismo tiempo se recibe el numero de canales muestreados y el numero de datos adquiridos por canal.. (variables globales).

13

Page 15: c iNDlCE CARACTERiSnCAS DESEABLES

El hardware presenta la opción de poder controlar la sensibilidad y la amplitud de la señal , mientras que el software permite controlar la entrada de datos para ser procesados. En el laboratorio se realizaron algunas pruebas para ajustar la sensibilidad y la amplitud de la señal de entrada. El usuario del sistema solo tiene que accesar al sistema SEV y elegir del menú principal I alguna opción de las mencionadas previamente para comenzar a trabajar, para la adquisición solo necesita el uso de un micrófono y presionar la tecla de "entrada" para comenzar a adquirir los datos, después elegir el tipo de desplegado de la señal adquirida. Resumiendo todo I o antes mencionado el sistema funciona:

A través del micrófono de entrada se captura un segmento, de duración variable, de la voz del paciente. Después de amplificada la señal del micrófono se pasa por un conjunto de ocho filtros analógicos cuyas salidas se traducen en niveles de voltaje DC a ser digitalizados y capturados posteriormente por la computadora. El tamaño del segmento de voz a digitalizar se eligió de 0.5 a 2.5 segundos en incrementos de 0.5 segundos. ( S e considera que la muestra es representativa). Considerando que el tiempo mínimo en que es posible observar el voltaje de DC a la salida de cada uno de los ocho filtros es de 26 milisegundos, el número de datos que es posible capturar es variable, razón por la cuál la visualización gráfica en la pantalla se realiza por páginas. Las gráficas se exhiben, tal como se describe en las páginas anteriores

!

14

Page 16: c iNDlCE CARACTERiSnCAS DESEABLES

La operación del dispositivo en el laboratorio es aceptable aún cuando tiene limitaciones en el rango de frecuencias superiores a 3 kHz. Esto se debe en parte a la velocidad del convertidor A/D y a la forma de obtener el voltaje DC representativo de la salida de cada uno de los ocho filtros empleados. Aún se encuentra en evaluación cuales son las limitaciones y alcances del sistema en el esquema propuesto. Esto hace sentido considerando que para lograr una mayor fidelidad en la obtención del espectro en frecuencia de la señal de voces necesario incorporar medios (electrónicos y/o de programación) que en "liempo real" sean capaces de obtener el espectro de frecuencia de la señal de voz, con las consiguientes repercusiones en el costo.

15

Page 17: c iNDlCE CARACTERiSnCAS DESEABLES

El diseiío de dispositivos como el aquí descrito es un lugar común dentro del conjunto de instrumentos dedicados a tareas de habilitación / rehabilitación de un paciente con problemas en la producción de voz. Como se ha mencionado, existen varios sistemas aplicables a la rehabilitación de voz, sin embargo, en nuestro país por razones de costo, estos dispositivos son solo localizables en instituciones gubernamentales y en uno que otro particular estando fuera del alcance del paciente de recursos medios o bajos. Un sistema como el presentado puede ser una alternativa para estos pacientes, su costo en realidad no es bajo pero es muy inferior a los sistemas existentes en mercado.

Page 18: c iNDlCE CARACTERiSnCAS DESEABLES

1.- Circuito amplificador de entrada de audio. 2.- Circuito de filtros pasabanda. 3.- Circuito amplificador de salida de audio.

a) Diagrama a bloques del hardware b) Diagrama a bloques del .%hare

GRÁFICAS

a) Gráficas de alta resolución b) Espectros

omos

A) Disco con diagramas de hardware B) 3 Fotografias del sistema SEV mostrando:

l.-% muestra el sistema SEV integrado a la microcomputadora 2.-Se muestra el frente de la caja conteniendo el hardware del SEV a excepción de la tarjeta convertidora que se encuentra en el interior de la microcomputadora. Se aprecia el control de intensidad de volumen el control de amplitud de la señal captada por el micrófono y el control de nivel de la señal. Ademas del plug de entrada del micrófono. 3.-Se muestra la parte posterior de la caja del hardware, donde se aprecia el conector de salida hacia la microcomputadora. Como se ha mencionado la información de salida es la salida de cada uno de los filtros, y se recibe de la microcomputadora la señal analógica hacia la bocina. Se aprecia el conector de la bocina. 4.- Se muestra el hardware, se puede apreciar la tarjeta conteniendo los filtros, el circuito amplificador de entrada a los

17

Page 19: c iNDlCE CARACTERiSnCAS DESEABLES

filtros y el circuito amplificador de salida a la bocina la tarjeta de la fuente, y las conexiones a los controles, y el micrófono. 5.- 6.- y 7.- se presentan señales gráficas adquiridas, las gráficas con en alta resolución, en todos los casos se observan los cambios de intensidad perfectamente definidos así como cambios en las características dinámicas (velocidad, tiempos de pausa, cambios de tono) , en la fotografia no. #7 se tiene en la parte superior una señal de ruido , y en la parte inferior una señal producida por un vocablo repetido varias veces.

APÉNDICE

D) Manual de usuario del programa

E) Sohare

18

Page 20: c iNDlCE CARACTERiSnCAS DESEABLES

Y

6

>

8 S c

-. I

U

4- m & O r)

8

Page 21: c iNDlCE CARACTERiSnCAS DESEABLES

S6 k

2.2 k

Page 22: c iNDlCE CARACTERiSnCAS DESEABLES

3.3 k '"" 1 "'Y

r

Page 23: c iNDlCE CARACTERiSnCAS DESEABLES

8 . . . ..

L.

i

.. + . . .

+ i

. + i t 1 i +

:+ + ;

Page 24: c iNDlCE CARACTERiSnCAS DESEABLES

!3L *" Q

Page 25: c iNDlCE CARACTERiSnCAS DESEABLES

N N N H N N " N I N N N N 1 NI

N N H N N a N

I N

Page 26: c iNDlCE CARACTERiSnCAS DESEABLES

N

W

E

a=

W r 0 V

O m

P cn m c m m

n

"

- m m

"

" N -

m

m m n

e

Page 27: c iNDlCE CARACTERiSnCAS DESEABLES
Page 28: c iNDlCE CARACTERiSnCAS DESEABLES
Page 29: c iNDlCE CARACTERiSnCAS DESEABLES
Page 30: c iNDlCE CARACTERiSnCAS DESEABLES
Page 31: c iNDlCE CARACTERiSnCAS DESEABLES

i

El menlj principal presen tu 3 opciones, cada una de ellas esta relacionada con cada una de la unidades principales [ver Cbdigo]

I ( Adquisicibn Unldad Tarleta

GrBficos Unldad Grafunlt

El meno principal se pre- sen tu en forma vertical, - paru moverse dentro de el se u tiliza la barra espa- ciadora o la primera letra de cada opcibn, para ac- cesar Q !a opciOn elegida se presiona "En ter"

I r : Para desplazarse cl Para accesar

IAk3dRk-n(pd I .1 Adquisicibn

Esta rutina solicita la si- guien te in formacibn :

1 .- Se desea con tinuafl 2 .- Cuales son los cana-

les de adqtiisidtm 3 3.- Cuan tos datos se Ad-

quieren por canal ?

Despues de realizada la adquisicibn de datos la rutina regresa al menu Principal

Page 32: c iNDlCE CARACTERiSnCAS DESEABLES
Page 33: c iNDlCE CARACTERiSnCAS DESEABLES

r- VI

S F rF

. . c a VI a & o U L1 o

.-

Page 34: c iNDlCE CARACTERiSnCAS DESEABLES
Page 35: c iNDlCE CARACTERiSnCAS DESEABLES

ylriista;

rna1,nfIdamintegw;

lerpntation

Pcedure

:erainadwboolew,

betpn

rowlot :S 7;

COlLOc := 20;

lastoption tts; aptionStringtlb= 'Allucenar'i

optimStringlZk= 'Bluscar';

optionStr@3k= 'VresD';

Page 36: c iNDlCE CARACTERiSnCAS DESEABLES

rainado:=faIse;

pwt

tsedhoice := Henn(EXPUCaQrm)t

F urwM#ice In c W S e t THEN

c a s userchoice of

1 : hlaacm,

2 : Buscar;

3 I tres@

4 : dosb S I twainado := truq

end

Inti1 terminado = true;

:Irsu;

rd;

optidtnn9[3k= '6)raficas';

optionstringllb= 'S)aIib';

title:= 'Funciones']

dispIayDatwTnrq

aoin d0nm.f alse;

ml;

Repeat

wChaice := HenuEXPENSEMW;

Page 37: c iNDlCE CARACTERiSnCAS DESEABLES

,erChoice In choiceset TIEN

5e userchoice of

. : principal;)

:llenuzI

I gaficas;

: done := true;

1;

Jone = true;

i

Page 38: c iNDlCE CARACTERiSnCAS DESEABLES

.

. .

4

Page 39: c iNDlCE CARACTERiSnCAS DESEABLES
Page 40: c iNDlCE CARACTERiSnCAS DESEABLES
Page 41: c iNDlCE CARACTERiSnCAS DESEABLES
Page 42: c iNDlCE CARACTERiSnCAS DESEABLES
Page 43: c iNDlCE CARACTERiSnCAS DESEABLES

unit qafunit;

interface

irplmtation

const

lidte4 = 14%

fa = 25ooo;

borderYidth = 5;

screenDiv = 5;

apcion : A R M Y M.51 OF S T W =

('A)geg# un r e q i s h ' ,

'B)uscar un registro.',

'Mas las frec.',

'WM frecuencia.',

'Slalir '1;

type

b e g l o = wayU.liriteA1 of integq

cadena = STRrnlq

Page 44: c iNDlCE CARACTERiSnCAS DESEABLES

x,y,nocal,valocintege~

salicboolean;

centrox,centroy:inteqer;

datudrtext;

size:mwd;

p : pointer;

rocedure graficas;

yDiw= SethxY div d;

&x:= (xDiv - 1) 8 r; {esquina inferior derechal

yha= (yDiv - 1) t I

!nd;

.I

Page 45: c iNDlCE CARACTERiSnCAS DESEABLES

e~alapantalla(2,5,xDiv,yDiv,xHax,yHax);

SETVIEWWRT (centroX - xDiv, centroY - yDiv,

centroX + nDiv, centroY + yDiv,

TRUE);

SETBKWLM muu;

( Fill the renu area with color. 1

{ Draw the fkue inside the box. 1

PROCEWRE CalcFontSize;

t

{ The CalcFontsite procedure c o y t e s appropriate

dinensions for the font size. 1

Page 46: c iNDlCE CARACTERiSnCAS DESEABLES

VIM

height, width,

*, YNUr,

verticdSpace,

hwizontSpace : INTEMR;

1,

IonqestOption,

1onpestIndex : BYTE;

BE6IN CalcfontSize I

1ongestIndex := i;

IongestOption := W T H (qcidlongest1ndex.D;

FOR i := 2 TO wOptions M1

IF LEKTH ~opcciordin > lmgest0ption THEN

BE61N

Iongestindex := i;

IongestOption := LEKM (opcidiU

m

{ @te the nurbw of vertical and horizontal

pixels insii the renu fraae. 1

verticalSpace := yHax - 2 t bwderllidth;

horizontSpace := Xlkx - 2 t bwdwllidth;

{ Calculate the appropriate height and

width of a line in the M. 1

.

I

height := wrticalSpace DIV renulines;

Page 47: c iNDlCE CARACTERiSnCAS DESEABLES

width := hwizontSpace;

{ SelFct the font. 1

LTTEXTSME (TRIPLEXFONT, HORIZDIR, 4);

i Adjust the vertical size. 1

{ Adjust the horizontal size. 1

f i r := 21;

REPEAT

E#n; { UcFontSize 1

BIN { Listtiptiom 1

drawbox;

CalcFontSize;

{ Display the options. 1

x := bwderhdth 8 2;

Page 48: c iNDlCE CARACTERiSnCAS DESEABLES

y := bordedidth 4 2;

FOR i := 1 TO raxOptions DO

R E B N

' wimnty (x, y, option ria;

IF i = raxOptions - 1 THEN

y := y t vwtIrkZ

ELSE

y := y + vertlncl

END

rocedure Inicializa;

qin

tiraphDriver:=DETECT;

InitSraph( (jraphkiver, kaphHode,'c:\turbo');

ErrwCode,ataphRewlti

writeln(6raphErrarkgIEnwCode));

if Err- O 6rd: then

begin

nriteln('Errw 6rafico No, ', Errorcode)'; readln;

halt (&

end

!nd,

Page 49: c iNDlCE CARACTERiSnCAS DESEABLES

procedure corpua(vu ux,rhintegw;&o:integer);

bepln

if (redio < un 1 then dnr= d o ;

if W i o ) MX 1 then MX:= da;

end;

m ap=l;

ux:=lista2[apl;

rh=listaXap+q

wdio:=¡istaXap+2f

while ap <= nodatos do

begin

corpua(rax,rin,aedio);

im (ap);

#diw=lista2tapl

end

end;

pfocedure escrla(xPiv,yDiv,xnax,y~integer;var Ax,Ay:red);

var

aqllitudmegw;

Page 50: c iNDlCE CARACTERiSnCAS DESEABLES

lgin

\x:= (flax - xpiv) I nodatos;

aqlitud:= Hax - Rn;

Rv= Cytlax - yDiv) / arplitud

M4

rocedure p in t le jesu ) iv ,yD iv ,xy~ in tegw) ;

egin

setcolor(white1;

line(xDiv,yDiv,xDiv,yNaxl;

linew)iv,ybx,xHax,yHax)

2nd;

begin

ap=i;

setcolodcolw);

posxi:=xDiv;

posyiFyw,

while (ap <= nodatos) da

begin

pta= listaZCap3;

inc(ap1;

posy..=rwnd (Max - pto) 1 Ay) + ypiq

posx:= xltiv + round (ap t Ax);

lineCposxi,posyi,posx,posyl;

pOsxiFpasx;

posyi:=posy;

Page 51: c iNDlCE CARACTERiSnCAS DESEABLES

end;

str(nax,cadt;

outtextxy(xbiv-37,YDv,cad);

aedio:=(nax t rid div 2;

str(redio,cadl;

wttextxy(xDiv-37, yDiv t ((Ynax - YDiv) div 2) ,cad);

str(nin,cad);

outtextxy(xDiv-37,yHax-23,ca8;

eml;

procedure letrwo$osy,no,aax,aircint~);

V X

caLstringC31;

begin

S e t T e x t S t y l e ( d e f a u l t f , ~ ~ ~ r , ~ ;

if (no = UX) then

begin

Ea&=' ';

str(Mx,cad);

outtextxy(xDiv-3S,py,cad)

end;

if (no = rid then

begin

cad:=' ';

str(ain,cad);

outtextxy(xDiv-35,posy ,cad

end

end;

Page 52: c iNDlCE CARACTERiSnCAS DESEABLES

unction Ilenu:char;

ar

respchar;

egin

Page 53: c iNDlCE CARACTERiSnCAS DESEABLES

xDiv:= 6 e t W div 6;

*.= S 1 (XDiv - 1); yDiw Raund(6etHaxY I LO;

yHaxt= yDiv t 12;

retcolw(whitel;

Out7extXY(xDiv + 12, 6etkY-27 , 'P)INTM BIORRAR 5)fHIR');

repeat

respmeadltoy;

respupcasekesp)

until resp in t"P','B','S'~

wnrc=rerg

end;

procedure pintwbmarkdor:inteqer);

var

nusintepq

begin

if color O 1 then

mn OutTextXY(6etW -70,6etHaxY - 2 7 , ' W ' ) ;

readlnhd;

CdMlOlnur);

tlaxHin(ux,min);

p i n t a p u n t P r ; ( E l r q ~ ~ ~ ~ ~ ~ x D i v , y D i v , x ~

size:= iupesize(xDiv,yDiv,xk,yHax);

getllcli(p,rize);

petiuy(XDiv,)rDiv,X1(~yndY,p*);

#ld;

if color = t then

begin

size:= iucpsize(xDiv,yDiv,xninqynilx);

get#r(p,sid;

cleardevice;

putiuge(xDiv,yDiv,p*,NwralPut);

end;

end;

Page 54: c iNDlCE CARACTERiSnCAS DESEABLES

rocedure horizontal;

ar

s:boolean; a,b:integer;

m aqetraxx;

b:=getMxy;

cleardevice;

SetYiewPwt(1,1,8traxy,getraxy,TRUR;

s:=false;

cleardevice;

canal0 (O);

Hax!in(aax,rin);

~calapantallo(q4xdiv,y~v,xux,yux);

escala(xdiv,ydiv,xrax,yux,ax,ayl;

pintaejes(xdiv,ydiv,xrax,yrax);

pintapuntos(Ax,Ay,Haag~xDiv,yDiv,xnax,~x,red);

repeat

case m of

'P' : PINTTMmM(Cm + 2);

'B' : PDcTMBwwAR(1);

'S' : S := TRUE

end;

until 5 = true;

end;

procedure vertical;

var

a p i n t w ,

be9M

SetViewPortU,l,getaaxy,getaaxy,TRiff);

cleardevice;

aw.=o;

escalapirntalla~7,$xdiv,ydiv,x~ax,yHax);

wcala(xdiv,ydiv,xux,yux,ax,ry);

pintaejes(xdiv,ydiv,xux,yrax);

nhile (ap <= canal) do

begin

Page 55: c iNDlCE CARACTERiSnCAS DESEABLES
Page 56: c iNDlCE CARACTERiSnCAS DESEABLES

/M aps,X,fiintegw;

carl,w:char;

BESIN

aps:=l;

~tviewpwt(O,O,getMXS6etMXY, TRUU;

s e t c o l w 0 ;

rectangle(25,25,300,00,50)i

setcolwhlwl;

~ t T e x t % Y ~ 3 0 , 3 5 , ' ~ : '1;

x:=110,

y:=E,

REPEllT

car:= readkey;

if car in NV',,'r,'a'.,'z', '0).,'9', ':', '.'I)

then

begin

c a r k a r ;

OutTextxyk,y,car);

%=X +Q

inseft(cu,filenare,apsl ;

idapsl;

end; if car = #O then

begin

cac=readkey;

Page 57: c iNDlCE CARACTERiSnCAS DESEABLES

dedaps);

delete(filenaae,aps,l);

x:=x - li;

setcolw(b1ack);

outtextxy(x,y,carl);

setcolor(white1;

end

until car = 113

end,

var

existe:bwlean;

dato,apint#pr;

f i lenmcahq

begtn

cleardevice;

FI l €nam=' ';

existe:=false;

assign(Ltuch,filem);

(SI-)

reset(datarch);

{SI+)

if IOREslllT = O then

existe=true

else existe:=false!

if existe then

begin

readln(datarch,canal);

re&(Ltarch,nodatos);

while nat wf(datarch) da

Page 58: c iNDlCE CARACTERiSnCAS DESEABLES

begin

readln(datuch,&to)

aryl[ap]:= dato;

iK(ap1

end

4 n d

!Ise

agin

gotOxy120,121;

writerk Existe &chivo')

d, :lose(datarch)

cd;

ilL"q

ar

existaboolean;

dato,apWegw;

filename:cadeq

egin

clewdevice;

filmaes' ';

noabrearchivo(filenare1;

existe:=false;

assign(datuch,filenaaele);

($14

rewite(datarch);

{$It1

if IORESULT = O then

existe:=true

else existe:=false;

if existe- then

begin

writeln(datarch,canalb

Page 59: c iNDlCE CARACTERiSnCAS DESEABLES
Page 60: c iNDlCE CARACTERiSnCAS DESEABLES

riteln(datarch,nadatos);

For ap:=O to (nodatw 8 (Cana¡+í)) do

begin

dato:=aryl[apS

#iteln(datarch,datoI;

end

nd

1Se

egin

gotoxy(20,M;

write('No Existe Archivo')

!nd;

:lose(datarch)

I@

xedure teruna;

egin

Clcse6raph

nd;

egin

salir:=falsq

clrscr;

inicializa;

setcolorked);

rectangle(5,10,550,1801;

cleardevice;

repeat

listoptims(5):

case lenuselecc o f

'B' : m& 'A' : I\tHACEW,

'1' : VERTICIK;

'U' : fk?RlZO#TCIL;

Page 61: c iNDlCE CARACTERiSnCAS DESEABLES

'S' : =IR := TRUE

end;

cleardevice;

until salir = true;

twuna

end;

end.