Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INTRODUCCION:
Durante el cuatrimestre anterior al tratar las bases de datos, definimos los conceptos bsicos y
trabajamos con el utilitario de Microsoft ACCESS, pero lo hicimos de una manera interactiva,
es decir generbamos una serie de condiciones y obtenamos el resultado, modificbamos algo
y de inmediato veamos el cambio en los registros, pero siempre ejecutando operaciones de a
una, es decir finalizada una y obtenidos los resultados pasbamos a la otra y as
sucesivamente.
Durante este segundo cuatrimestre veremos otra manera de trabajar las BDD, sobre todo cuando
uno pretende adaptarlas perfectamente a un requerimiento especfico que es generando
Programas o Archivos de rdenes, las cuales se ejecutan de manera secuencial una a
continuacin de la otra sin requerir la intervencin del usuario para pasar a la siguiente.
Un Archivo de rdenes es un programa de computadoras que est compuesto por una serie
ordenada de instrucciones (rdenes) que se ejecutan en secuencia luego de iniciada su
ejecucin.
Supongamos que deseamos obtener el listado de una tabla; desde ACCESS debamos realizar
los siguientes pasos:
1. Cargar Windows
2. Cargar ACCESS
3. Usando Archivo- Abrir - abrir la BDD
4. Seleccionar del men de objetos Tablas
5. Seleccionar la deseada y abrir
6. Luego ir a Archivo- Imprimir
7. Completar los cuadros de dilogo y seleccionar Aceptar
Con un archivo de rdenes los pasos se simplifican notablemente pues si tenemos por ejemplo
un programa en DBASE O CLIPPER que diga:
Use CLIENTES
List Apellido, Saldo, vendedor
Close all
A este archivo supongamos que lo llamamos listado, slo basta un paso que es escribir:
Do listado y aparece el listado en la impresora.
La secuencia de rdenes de que hablbamos para ser entendida debe ser dada en un
determinado Lenguaje.
COMPONENTES DE UN LENGUAJE:
En general se puede decir que los componentes de un Lenguaje de Programacin son los
mismos que los de uno humano. En efecto, se pueden separar en dos elementos constitutivos:
Por ejemplo: para preguntar la edad en castellano se dice Qu edad tienes? En Ingls, para
nombrar otro lenguaje es: How old are you? . Ambas construcciones tienen una sintaxis
distinta ya que la traduccin literal de una a la otra no concuerda. Sin embargo, ambas quieren
decir lo mismo, es decir, tienen una Semntica idntica.
Igual sucede con los lenguajes de programacin, lo que vara de uno a otro es la sintaxis, no
la semntica.
Obviamente, habr herramientas que se adaptan mejor a determinadas acciones que otras y del
anlisis del problema a resolver se basar la eleccin del lenguaje a emplear.
Por ejemplo: Llevando este problema a la vida cotidiana. Para resolver el problema de clavar
un clavo en la pared, se puede utilizar una pinza, la mano, el canto de una llave francesa, un
destornillador pesado.......o un martillo.
De igual manera sucede en la programacin. Por Ej. Si se debe crear un programa para la
administracin de grandes cantidades de datos, se puede resolver, aunque con mucho esfuerzo
usando FORTRAN.
C
Lenguaje de propsitos generales. Tiene mucha difusin y alcance. Generan programas
pequeos y permite la programacin de bajo nivel o sea orientada a controlar el hardware.
Adems es la base de otros lenguajes como el CLIPPER.
En cuanto a su sintaxis es similar al PASCAL pero ms flexible.
PASCAL
Y especficamente el Turbo Pascal es un lenguaje de propsitos generales que es
extremadamente didctico, tiene muchas facilidades para el manejo de pantalla y archivos y
posee limitada capacidad de programacin en bajo nivel.
Lo que sigue a continuacin son los procesos de traduccin que debe sufrir un programa escrito
por el programador en cualquier lenguaje para obtener un Programa Ejecutable, es decir,
autnomo, que no requiera cada vez que se intente hacerlo correr ningn soporte. Los
programas interpretados no necesitan ser traducidos ya que este proceso lo cumple el intrprete
cada vez que se lo quiera ejecutar.
Se puede usar como Editor el del sistema operativo EDIT, el BLOCK DE NOTAS de Windows
o el WORD, teniendo en cuenta de seleccionar Cdigos ASCII al guardar el trabajo.
Al archivo fuente as creado se le debe efectuar una primera traduccin mediante otro
programa llamado Compilador.
El Compilador no es otra cosa que un Analizador Sintctico, o sea que verifica que lo que est
escrito en el programa fuente cumple con las reglas sintcticas del lenguaje. Las funciones que
cumple en secuencia son las siguientes:
Verifica sintcticamente dicho cdigo. Toma lo escrito por el programador y lo compara con
un patrn. Si algo no entiende muestra un mensaje de error.
Si no hubo errores al trmino del anlisis sintctico, el cdigo fuente ha sido transformado a
una forma mas entendible para la mquina, generando una tabla de smbolos donde es
ubicado cada elemento del programa (Variables, constantes, identificadores, etc.) segn la
funcin que cumplen o la relacin que tenga con el conjunto. Esta tabla se puede ver as:
Es decir, qu es; dnde est; qu influencia tiene en el conjunto del programa y cul es el
valor, si es que lo tiene...... de todo lo que el programador escribi en el Programa Fuente.
Produce el Cdigo Objeto que es una mezcla de dos cosas, un cdigo binario y una tabla de
smbolos. ESTO NO ES AN EL PROGRAMA EJECUTABLE.
Cuando se hace un programa sucede lo mismo, fijarse que en la tabla de smbolos que se
muestra arriba no est la direccin del procedimiento Raz Cuadrada (SqRt), ya que el
programador no lo escribi en el Fuente. Por lo tanto para insertarla en el programa que
estamos creando debemos recurrir a una Librera que debemos enlazar con nuestro cdigo, de
tal modo de completar la tabla de smbolos que es el esqueleto del programa. Los huecos
dejados en el Cdigo Objeto producido por el Compilador se rellenan pasando a ste a travs
del tercer y ltimo componente que toma parte en la generacin de un programa ejecutable, el
Linker (Enlazador).
El Linker busca en las libreras que el programador le indica para completar los espacios vacos
que se encuentran en el Cdigo Objeto. El resultado ahora s es el Cdigo Ejecutable.
El Linker hace que el programador no necesite escribir siempre, para todos los programas,
secuencias que ya fueron alguna vez implementadas y que deben estar indefectiblemente en
todos ellos.
La metodologa para implementar los tres procesos vistos depende del lenguaje a aplicar, pero
es importante destacar que siempre se cumplen. En el caso de CLIPPER por ejemplo el
programador tiene que invocar a las tres etapas en forma separada.
1. EDICIN
2. COMPILACIN
3. LINKEO
Un programa intrprete del tipo de los generados en DBASE III; DBASE IV, FOXPRO, etc.
Se caracteriza porque traduce las instrucciones a las computadoras lnea por lnea y aunque
poseen una gran versatilidad para realizar los programas, la velocidad de ejecucin suele ser
muy lenta, al estar obligados a traducir simultneamente dichas instrucciones. CLIPPER
convierte el lenguaje intrprete en un lenguaje de mquina dotado de una gran rapidez de
ejecucin, ya que analiza las instrucciones de una sola vez, y con una absoluta autonoma, pues
no necesita del software de DBASE para activar los programas.
Este ltimo archivo puede ser activado directamente desde el sistema operativo sin
necesidad de cargar previamente CLIPPER o DBASE ya que en el programa ejecutable
producido se encuentran todos los elementos necesarios para que este funcione de manera
autnoma.
El CLIPPER apareci en el mercado en 1985 con el nico objeto de servir de compilador a los
programas de DBASE III PLUS y hasta 1990 realiz dos versiones Autumn86 y Summer87
que tuvieron mucho xito sobre todo para aquellos programadores que no se conformaban con
mostrar sus aptitudes en un lenguaje interactivo.
El Summer87 ya est escrito en lenguaje C lo cual le otorga una potencia superlativa para ser
usado en programacin, posteriormente aparece CLIPPER 5.2 que logra aumentar la potencia
de sus predecesores al perfeccionar el sistema extendido para conectar con C.
Los Diseadores de CLIPPER han puesto especial cuidado en hacer compatible su producto
del ao 93 CLIPPER 5.2 con los formatos de bases de datos y archivos ndices creados por
otros sistemas como ser FOXPRO, PARADOX y DBASE IV.
ARCHIVOS CLIPPER: Aunque en Clipper se denomina archivo de base de datos a los que
contiene los datos propiamente dichos, existen varios tipos de archivos entre los que hay que
destacar los siguientes:
Dado que este fichero es la fuente del futuro programa, se denomina fichero fuente (source en
ingls).
La lnea se enva ahora como texto al Compilador (compiler). Clipper interpreta la lnea,
detecta que debe enviar algo por pantalla; el texto no obstante no se visualiza por la pantalla,
sino que se graba en un fichero creado expresamente y que contiene ms o menos lo siguiente :
existe un texto llamado HOLA que debe visualizarse por la pantalla; para ello la
computadora necesita un poco de espacio de memoria y un programa para la salida por
pantalla.
Este fichero se llama fichero objeto y contiene clasificadas por grupos, las lneas de programa
elaboradas con instrucciones rdenes para su posterior tratamiento. El contenido de este
fichero se denomina Cdigo Objeto. Este cdigo no es el programa mquina, sino las
instrucciones de montaje del mismo.
A continuacin se enva el cdigo objeto a travs del Linker (linkeditor). El linkeditor se ocupa
de fabricar el programa en cdigo mquina.
COMPILADOR
Leer y preparar lneas de programa
LINKEDITOR
Transformar comandos en rutinas de
mquina
PROGRAMA
Ejecutar rutinas mquina
Los compiladores adems tienen otras ventajas para el programador experto que en este
momento an no vienen al caso.
Lo primero que debemos hacer es seleccionar cual ser nuestro editor de texto en el cual
teclearemos el programa y adems tener instalado CLIPPER, en nuestro caso para asegurar que
el alumno se inicie en estos menesteres incluiremos un disco de 3,5 el cual contendr una
versin de Summer87 con el cual se trabajar con las mismas prestaciones que CLIPPER pero
con un programa ms didctico.
Si no est seguro de que el programa que tiene previsto utilizar como editor realmente produce
ficheros de texto, puede realizar el siguiente pequeo test:
En la pantalla debera visualizarse el texto completo almacenado sin ningn carcter extrao de
por medio.
Encender el equipo
abrir inicio, programas, seleccionar MS-DOS
Teclear CD\ <enter>
Teclear MD CLIPPER <enter>
Teclear CD CLIPPER <enter>
Luego coloque el disco que viene con el manual en la unidad A:\
Copia todos los archivos de la aplicacin Summer87 de Clipper dentro del directorio sealado
junto al editor de texto Edit.exe que figura en el disco entregado .
Ejecute el editor
Para ejecutar el editor debe encontrarse dentro del directorio Clipper o sea en la parte izquierda
de la pantalla se debe leer C:\CLIPPER , si solo dice C:\ debe teclear CD CLIPPER <enter>
La extensin .PRG indica que este fichero es un CDIGO FUENTE para Clipper.
Si observamos el contenido del disco (tecleando el comando DIR<enter>) veremos entre otros
los ficheros:
HOLA.PRG el cdigo fuente con las lneas de programa
HOLA.OBJ el cdigo objeto con los comandos para el linkeditor
HOLA.EXE el programa terminado
Si algo no sale bien, el compilador y el linkeditor visualizan mensajes de error en ingls ( por
ej. 4 errors detected = 4 errores detectados) . Los mensajes del compilador incluyen el nro. de
lnea donde se produce el error, los mensajes del linkeditor indican el nombre de la lnea de
programa en la cual se ha detectado un error. En ocasiones la bsqueda del error, suele ser muy
laboriosa.
ASSIGNMENT error
CLEAR error
CLOSE error En el caso de un mensaje de error de los
COUNT error arriba mencionados, debe asegurarse de
DELETE error que las palabras de comando y expresiones
DO error se encuentren correctamente introducidas.
FILTER error
FOR error Comprobar tambin la secuencia correcta
LOCATE error en el cdigo fuente.
PARAMETERS error
RELATION error
SET error
SET not recognized
INFORMATICA III PAGINA NRO. 10
INGENIERA ADRIANA MARIA ANGELA VINCENTI DE GARCIA-IPECCOM@TERRANET.COM.AR
ARMADA ARGENTINA
ESCUELA DE INFANTERIA DE MARINA
SISTEMA ABIERTO DE NIVEL MEDIO
SET switch error
SUM error
USE error
WAIT error
El mensaje de error se visualiza, si el
cdigo fuente llama un fichero.PRG que no
existe. S este fichero.PRG se encuentra en
Cannot open,assumed external otro fichero.OBJ que se linkedita con el
fichero.OBJ de llamada, igualmente
funcionar el programa.EXE
Este mensaje de error tambin se visualiza
si en una estructura DO WHILE DO
CASE se ha indicado errneamente la
palabra de comando WHILE CASE.
El compilador detecta otros errores producidos por una estructuracin incorrecta del programa y
se puede visualizar uno de los siguientes mensajes de error:
Existe un gran nro. de mensajes de linkedicin y avisos que se producen raras veces
bajo circunstancias normales.
Los errores que se producen durante la ejecucin del programa se visualizan en la lnea
superior de la pantalla. El programa se detiene hasta que el usuario responde con el
acuse de recibo con una de las 3 opciones indicadas (Q/A/I)
Errores DOS
En el caso de errores de lgica, es decir que su prg. funcione de forma no esperada, deben
buscarse los errores realizando un test de escritorio.
Analizando un listado de la porcin del prg. que creemos produce el error y realizando un
seguimiento lnea por lnea hasta descubrir por donde se escapa. El seguimiento de los
valores de las variables y de la posicin de sentencia actual mediante una hoja de papel puede
resultar de mucha utilidad.
La lnea 1 es una lnea de comentario que sirve nicamente para informacin y no se tiene en
cuenta en el programa (mquina) definitivo. Todas las lneas comentario comienzan con un
carcter *.
Esta posibilidad de comentar los programas mediante * y && debe utilizarse con
mucha frecuencia ya que representa la nica posibilidad de poder realizar despus
modificaciones del programa sin mayores esfuerzos. Un programa sin comentarios es
como la ruleta rusa, durante un tiempo todo va bien, pero luego...
En resumen:
Pero adems debemos recordar que en esta evolucin CLIPPER cre su propio est de rdenes
algunas de las cuales veremos durante este cuatrimestre no para convertir al alumno en un
programador profesional sino para dotarlo de las herramientas como para crear pequeos
programas, compilarlos y ejecutarlos.
Una base de datos surge desde el momento que deseamos ordenar con un formato
determinado una gran cantidad de datos de manera que su manipulacin sea rpida y efectiva.
Los Sistemas de Gestin de Base de Datos sirven para organizar de una manera racional
todos los datos de forma que se encuentren agrupados fsicamente en tablas de informacin
independientes pero relacionadas entre s de algn modo.
Las Bases de Datos Relacionales son aquellas que contienen sus datos organizados en forma
de matriz, en la que cada fila de la matriz es un registro de informacin y cada columna
comprende datos de una misma naturaleza.
Ejemplo :
Campos de la tabla 1
Campos de la tabla 2
En este caso, las tablas 1 y 2 se encuentran relacionadas por el campo comn CODIGO
Sabemos que la mayor parte de los lectores estn familiarizados con el concepto de fichero
(archivo de datos en soporte magntico), pero de cualquier modo consideramos conveniente dar
un pequeo repaso a este concepto.
Un fichero est constituido por un conjunto de registros. Cada registro est a su vez, formado
por un conjunto de campos, cada uno de los cuales est destinado a contener un determinado
tipo de informacin, a este fichero archivo de base de datos, se le asigna un nombre y una
extensin ( .DBF)
Consideremos, por ejemplo, la lista de los abonados al servicio telefnico. La gua telefnica
en su conjunto, constituye el fichero.
Es evidente que los apellidos y los nombres podrn repetirse, pero se trata de una circunstancia
fortuita y no buscada.
Hagamos dos ltimas consideraciones que sern de utilidad para lo que expondremos a
continuacin. La primera se refiere a la conveniencia de asignar a cada campo un nombre
conciso, que no ha de tener ms de ocho letras y que precisaremos para citarlo en todos los
momentos que sea necesario; la segunda es que resulta recomendable siempre, por motivos en
los que profundizaremos ms adelante, indicar para cada campo si est destinado a alojar datos
de carcter alfanumricos(t), numricos (n) o lgicos (l) .
Cada campo tiene una longitud prefijada segn el nmero mximo de caracteres que puede
almacenar y los datos numricos se ajustan al margen derecho, caso contrario se alinean a la
izquierda.
La longitud total del registro es igual a la suma de las longitudes de los campos
CAMPOS DE CARACTERES : pueden contener cualquier cosa. Textos con longitud fija,
cifras y caracteres especiales (por ejemplo: Nombre)
CAMPOS DE FECHA: la fecha es un tipo de dato especial, diseado para trabajar con fechas
de la misma forma natural con la computadora que sin ella.
Aunque el tipo Date (fecha) parece ser muy necesario en un sistema de Gestin de base de
Datos, no todos los sistemas lo ofrecen, la mayora de nosotros estamos acostumbrados a
trabajar con fechas en el ms o menos estndar formato Americano de MM/DDD/AA, los
europeos prefieren el formato DD/MM/AA, mientras que los japoneses AA/MM/DD.
Las computadoras leen de izquierda a derecha y lo que es ms importante, tambin hacen las
comparaciones de Izquierda a derecha, a menos que realicemos alguna accin especial, no
podemos ordenar o comparar fechas y esperar obtener el resultado correcto.
El tipo de datos DATE, resuelve este problema. La fecha realmente se guarda con el formato
que la computadora prefiere, pero se visualiza en su formato preferido.
La Longitud de un campo fecha se fija automticamente en 8 bytes (espacios de caracteres)
cifras y caracteres de separacin( por ejemplo: cumpleaos), Clipper no conoce la coma en la
representacin numrica.
Se utiliza el estilo americano con un punto para separar las cifras decimales.
En las posiciones decimales deberemos tener en cuenta que del nmero total indicado se
descuentan las posiciones decimales y la posicin del punto (Si en la longitud indicamos 9
posiciones y dos decimales ..> 6 corresponden a la parte numrica, una ms para el punto y 2
valores numricos posteriores a l)
CAMPOS LOGICOS: Son campos especiales que se usan preferentemente cuando los datos
pueden tener uno de dos valores posibles. Los valores normalmente se expresan como
verdadero falso [ s/no].
Un campo se identifica como lgico cuando se crea la base de datos se modifica su estructura.
Al tipear l la longitud se fija como hemos visto automticamente a 1 byte.
INFORMATICA III PAGINA NRO. 18
INGENIERA ADRIANA MARIA ANGELA VINCENTI DE GARCIA-IPECCOM@TERRANET.COM.AR
ARMADA ARGENTINA
ESCUELA DE INFANTERIA DE MARINA
SISTEMA ABIERTO DE NIVEL MEDIO
El contenido de estos campos siempre se expresan como .T. .Y. con los puntos enfatizando
que se trata de valores lgicos. Los campos lgicos nunca se usan en comparaciones, la
comparacin es implcita. (Ejemplo : Conforme?)
CAMPOS MEMO: Otro tipo especial de datos permite usar campos de longitud variable para
guardar texto. Ejemplos de tipos de datos mantenidos en campo MEMO podran ser :
memorandos, resmenes, comentarios generales, etc. Para especificar un campo de tipo memo
deberemos pulsar la tecla M .
simplemente escribiendo el texto deseado; el fichero auxiliar no ocupa espacio hasta que los
datos son realmente introducidos en el campo MEMO; una vez introducidos, se ocupa el
espacio tanto como se necesite. El tamao mximo es de 4096 bytes. (Ejemplo: Comentario)
Una base de Datos relacional se debe caracterizar por su capacidad para introducir y actualizar
datos como para visualizarlos. Las funciones ms tiles de una base de datos son:
FASES DE LAS OPERACIONES CON FICHEROS: Todas las operaciones con ficheros no
importa como estan concebidos se desarrollan en tres faces
FACE DE APERTURA
FACE INTERMEDIA
FACE DE CIERRE
Es aquella en la que se indica cual es el nombre del fichero y que soporte exterior utiliza
Fase intermedia:
Es aquella en la que se procede a leer modificar o escribir los registros
Fase de cierre:
Es aquella en la que se reagrupa la info dentro de los bloques
Demos ahora, juntos, los primeros pasos en el mundo de las bases de datos.
Una serie de rdenes o comandos, a introducir a travs del teclado, permiten comunicar al
programa, en cualquier instante, las funciones que deseamos ejecutar.
Para las ilustraciones que siguen haremos uso de los comandos tpicos del Clipper que es uno
de los paquetes de software ms populares en esta categora.
Ejemplo nro. 2:Hemos aprendido a crear un fichero y definir sus campos. Vamos a utilizar este
conocimiento para crear un archivo relativo a intrpretes de traduccin simultnea. Ello nos
permitir ir progresando de forma gradual en la utilizacin de las bases de datos.
CREATEINTERPRETES
APELLIDO,20,C
NOMBRE,15,C
IDIOMAS,60,C
TARIFA,5,N
COMPROMISOS,120,A
Algunas reglas que han de observarse en la introduccin de los datos son las siguientes: para
APELLIDO Y NOMBRE no hay que aclarar nada.
El campo COMPROMISOS indica precisamente, separados por comas, los das en los que el
intrprete est comprometido, bajo la forma de da-mes.
Pongamos un ejemplo concreto: los cinco primeros registros podran ser los ilustrados en
la figura:
Apellido Nombre Idiomas Tarifas compromisos
Gmez Luis Francs,Ingls,Alemn 20.000 2-6,3-6,4-6
Prez Pablo Ingls,Ruso,alemn 18.000 2-6,18-6
Alvarez Carlos Francs,Ingls,Ruso 20.000 2-6,19-6,21-6
Martnez David Ingls,Sueco,Ruso 20.000 20-6,8-7
Franco Manuel Francs,Chino 15.000 21-6,30-6,3-89
En el supuesto de haber creado el archivo y de haber introducido los datos antes indicados,
veamos ahora cmo utilizarlos.
Un archivo real, para que merezca ser controlado, deber contener un centenar de registros.
Nuestro mini-archivo, de cinco registros, slo sirve a ttulo de ejemplo.
USE INTERPRETES
DISPLAY ALL FOR Idiomas = Francs AND COMPROMISOS <> 3-6
El segundo activa la funcin de solicitud y visualiza en la pantalla todos los registros relativos a
los intrpretes que conocen el francs y que no estn comprometidos el da 3 de junio.
Tambin en este caso hay que destacar el hecho de que un programa adecuado hubiera
necesitado bastantes ms dos instrucciones.
La funcin descripta y los comandos utilizados nos proporcionan el punto de partida para
algunas consideraciones de inters.
Las diversas funciones que una base de datos es capaz de desarrollar son activadas por el
usuario mediante una ms rdenes que contienen inicialmente un verbo ingls, seguido por
otros elementos especficos.
El verbo indica, por lo general, la funcin a activar, mientras que lo que sigue tiende a
precisar y delimitar el significado del verbo.
As se consigue que cada comando tenga una estructura formal propia que el usuario deber
conocer a priori para poder ejecutar de forma correcta el propio comando.
Dicho de otro modo, tendr que conocer el lenguaje con el que har funcionar la base de
datos.
Desde el punto de vista conceptual esta circunstancia no es muy diferente del conocimiento de
un lenguaje de programacin.
Los comandos que han de aprenderse en el estudio de una base de datos son menos
numerosos que los de un lenguaje de programacin, al menos en el sentido de que con
el conocimiento de un nmero limitado de comandos, los ms importantes, se pueden
conseguir resultados significativos.
Otras funciones :
Adems de permitir la fcil y rpida obtencin de la informacin que satisfaga las restricciones
impuestas por diversas clases de vnculos y condiciones, lgicamente relacionadas entre s, una
base de datos permite una segunda funcin tpica que es la de la obtencin e impresin de
informes basados en la lista de los diversos registros, ordenados por campos particulares,
aplicando ciertos criterios y con la exclusin ocasional de aquellos registros en los que
determinados campos satisfacen, o no, unas condiciones lgicas preestablecidas.
De este modo, por ejemplo, en una lista de empleados de una empresa podrn incluirse o
excluirse todos aquellos que tengan hijos a su cargo o todos aquellos que tengan una antigedad
de servicio superior a un valor predeterminado u otras diversas restricciones con los ms
variados criterios.
Es tambin posible introducir dentro del formulario totales y subtotales, bien sea como un
recuento de registros que satisfagan determinadas condiciones ( por lo que respecta a uno ms
campos), bien como suma de los datos contenidos en determinados campos.
Ejemplo nro.3:
Como acabamos de comentar cada fichero esta constituido por registros ( en mayor o menor
numero segn los casos) formados todos ellos por los mismos campos ( Bloques mnimos de
informacin de una BDD).
Sin embargo de un fichero a otro, el nmero tipo y caracterstica de los campos que forman
cada uno de los registros puede variar enormemente segn veremos.
Imaginemos un fichero al cual llamaremos Factura y que pretende recoger toda la informacin
de las facturas emitidas por un pequeo comercio, en l cada registro tendr como campos la
fecha de la factura, la mercadera vendida, el comprador , el importe , el total y la fecha de
pago.
Algunas reglas que han de observarse en la introduccin de los datos son las siguientes: Para la
fecha de la factura, mercadera vendida, comprador no hay que aclarar nada, el Importe, igual al
campo total es un dato numrico de valor mximo 99999.
CREATE FACTURA
FECHAFAC,8,F
ARTICULO,30,C
NOMBRE,35,C
IMPORTE,10,N
TOTAL,15,N
FPAGO ,8,N
Pongamos un ejemplo concreto: los dos primeros registros podran ser los ilustrados en la
siguiente figura:
Otro fichero sin embargo en el cual pretendamos llevar nuestra cartera de proveedores podr
tener como campos los siguientes:
empresa, tipo de mercadera que vende, contacto, telfono, direccin.
Vemos pues que, aunque la filosofa sea la misma, la forma de desarrollarla ser distinta en
cada caso.
Normalmente los registros no son ledos escritos del disco en forma individual, uno a uno, sino
que se reagrupan en bloques, lo cual permite optimizar el proceso de entrada/salida de los datos.
El bloque puede contener uno o ms registros dependiendo de las dimensiones del registro y de
las dimensiones del bloque.
Es de gran utilidad la escritura y la consiguiente lectura en bloques tanto para limitar el nmero
de los accesos necesarios a los dispositivos de entrada y salida como para optimizar el espacio
de disco.
El control del comienzo y final de bloques se realiza en forma automtica por el sistema
operativo. Por consiguiente nosotros los usuarios no tenemos que preocuparnos como se realiza
la lectura / escritura
Ejemplo nro. 4 :
Los cdigos postales se componen de cifras, pero como no es de esperar que hay clculos en
este campo, es preferible introducir el tipo C .
Ejemplo nro. 5 :
Los nombres pueden variar naturalmente, slo deben cumplir las normas. En cuanto al nmero
de posiciones debemos tener en cuenta que ms adelante podemos dar entrada a elementos que
necesiten una longitud mayor que las necesarias actualmente.
Por ello debemos prever un poco de juego eligiendo longitudes de campo algo ms grandes.
Con este material podemos determinar fcilmente la mayora de los datos. Sobre todo tengamos
en cuenta modificaciones eventuales hechas a mano otras irregularidades; ya que stas pueden
indicar fallos en la administracin actual de los datos.
Ejemplo nro. 6 :
Trabajemos sobre el diseo de una base de datos para una inmobiliaria de nombre ABC
Es decir la ESTRUCTURA DEL FICHERO puede crearlo con cualquiera de estos programas
de bases de datos, los cuales son perfectamente compatibles con CLIPPER y luego usarlos
como se indica mas adelante.
Tambin puede utilizar la funcin DBU.EXE del CLIPPER y crear la estructura indicada.
Al teclear DBU<enter> aparece un men en ingles que nos permite la entrada de los nombres
de los campos.
Para crear la estructura del archivo *.DBF con la aplicacin Summer87 y luego de haberlo
ejecutado con la orden DBU<ENTER> oprima la tecla F3 y <enter> donde dice DATABASE,
aparecer la siguiente ventana :
Introduzca en ella los nombres de los campos segn el diseo de la estructura creada, indicando
tipo de campo y longitud .
Donde dice File teclear el nombre del archivo a crear, por ejemplo VIDEO.DBF <enter>
TRABAJO PRACTICO 1 A
INTRODUCCIN-LENGUAJES DE PROGRAMACIN
INTRODUCCIN-LENGUAJES DE PROGRAMACIN
11. SI TODO ANDA BIEN AL TECLEAR DIR <ENTER> PODR VISUALIZAR LOS
TRES ARCHIVOS
HOLA.PRG HOLA.OBJ HOLA.EXE
14. COMPLELO
15. LINKEDITELO
16. EJECTELO
TRABAJO PRACTICO 2 B
INTRODUCCIN A LAS BASES DE DATOS Y CREACIN DE LA
ESTRUCTURA
2. ENCIENDA EL EQUIPO
UNIDAD 2
DISEO DE PANTALLA:
Por una parte existen programas que proporcionan una impresin HIGH TECH (Alta
tecnologa). Por otra parte existen programas, en los cuales apenas se puede
reconocer su propsito, debido al diseo tan sofisticado de las pantallas que
camuflan la funcin del mismo.
En la pantalla debe reflejarse la imagen de una ficha, es decir, toda informacin de una
sentencia de datos debe presentarse de una vez. El lugar estratgico para ello es el
centro de la pantalla, ya que lo importante en este programa son los datos.
Las informaciones generales, como nombre del programa, fecha, etc. necesitan su lugar. En
nuestro ejemplo se encuentran arriba del todo. Durante la ejecucin del mismo,
deben proporcionrsele rdenes o comandos, tipeados desde el teclado. El lugar
para ello es directamente debajo de los datos.
Finalmente es importante dejar al final una lnea libre para comentarios/mensajes que la
computadora har al usuario.
Resulta conveniente marcar estas reas (es decir, que sean visibles); las lneas ayudan a
estructurar la mscara de pantalla. El usuario debe saber ms adelante exactamente el lugar
donde puede encontrar la informacin necesaria, en el
Informacin caso de volver a su tarea, interrumpida por cualquier
razn.
Las lneas 1 a 3 son lneas de comentario. Estos
comentarios pueden resultar tiles, si despus de un
Datos tiempo deseamos modificar un programa. Sin estos
INFORMATICA III PAGINA NRO. 33
INGENIERA ADRIANA MARIA ANGELA VINCENTI DE GARCIA-IPECCOM@TERRANET.COM.AR
Control
Mensajes
ARMADA ARGENTINA
ESCUELA DE INFANTERIA DE MARINA
SISTEMA ABIERTO DE NIVEL MEDIO
comentarios resulta bastante ms difcil encontrar la informacin deseada en los ficheros de
programa .
La lnea 4 est vaca, lo cual tambin es una forma de claridad a los programas : las lneas de
comandos se relacionan por grupos. Clipper al compilar ignora las lneas vacas.
Las lneas 6 y 8 dibujan los marcos anteriormente mencionados. Todas las lneas que comienzan
con el carcter @ se refieren a la pantalla indica posicin. A continuacin del carcter @ se
indican valores para lnea y columna en la cual debe ocurrir algo.
En este caso se debe dibujar un marco hasta ( TO ) otra posicin, de la cual se indica la lnea y
la columna. La palabra DOUBLE (doble ) provoca que el marco se dibuje con doble lnea.
La lnea 0 no se utiliza, ya que en sta pueden visualizarse mensajes de Clipper. De esta forma
se dispone de 24 lneas con 80 columnas, enumeradas de 0 a 79. Mediante este sistema de
coordenadas puede definirse claramente cualquier posicin de la pantalla.
En la lnea 11 se utiliza una funcin en lugar de un texto entre comillas. Una funcin es un
subprograma que genera un valor.
La funcin DATE( ) utilizada lee la fecha actual del da del sistema operativo y la transfiere al
programa.
La lnea 12, igual que la 4 se encuentran vacas. El comando final del programa RETURN de la
lnea 13 ya se conoce.
1 *Programa.: MSCARA.PRG
2 *Contenido: Visualizacin de la mscara bsica
3 *Autor....: Su nombre
4
5 CLEAR
6 @ 01,00 TO 04,79 DOUBLE
7 @ 05,00 TO 20,79 DOUBLE
8 @ 21,00 TO 23,79 DOUBLE
9 @ 02,02 SAY ADMINISTRACIN PELCULAS VIDEO
10 @ 02,63 SAY Fecha:
INFORMATICA III PAGINA NRO. 34
INGENIERA ADRIANA MARIA ANGELA VINCENTI DE GARCIA-IPECCOM@TERRANET.COM.AR
ARMADA ARGENTINA
ESCUELA DE INFANTERIA DE MARINA
SISTEMA ABIERTO DE NIVEL MEDIO
11 @ 02,70 SAY DATE ( )
12
13 RETURN
todos los programas se pueden copiar en Word, seleccionado la segunda columna que
es la que contiene los comandos y luego clic en copiar; una vez hecho esto y ejecutado el
editor de texto (por ejemplo: edit mascara.prg) selectar pegar. Solo resta guardarlo , luego
compilarlo, linkeditarlo y ejecutarlo
El resultado del ejercicio anterior es de utilidad, pero tiene dos pequeos errores estticos:
PUEBLO
ARMADA ARGENTINA
ESCUELA DE INFANTERIA DE MARINA
SISTEMA ABIERTO DE NIVEL MEDIO
La aristocracia transmite las rdenes a los funcionarios y por debajo se encuentra el pueblo
esperando las instrucciones para realizar el trabajo.
a la prctica. Los funcionarios deben ser capaces de dar instrucciones de trabajo y controlar los
resultados.
Este esquema puede parecer anticuado; pero no obstante puede transferirse a la estructura de
programas de una computadora. El punto de partida es un programa que se arranca desde el
sistema operativo.
Programa Principal
Programa Programa
Por una parte, falta la instruccin para utilizar el formato de fecha europeo en la
visualizacin.-
Y por la otra no se ha determinado qu se desea hacer despus de finalizar la mscara.-
INFORMATICA III PAGINA NRO. 36
INGENIERA ADRIANA MARIA ANGELA VINCENTI DE GARCIA-IPECCOM@TERRANET.COM.AR
ARMADA ARGENTINA
ESCUELA DE INFANTERIA DE MARINA
SISTEMA ABIERTO DE NIVEL MEDIO
Dado que el prg. MSCARA forma una unidad de funcionamiento completa, deberemos
proporcionarle las condiciones marginales a travs de otro programa de nivel superior. A este
programa lo llamaremos FILM.PRG
1 *Programa.: FILM.PRG
2 *Contenido: administracin de datos para pelculas de video
3 * Autor....: Su nombre
4
5 SET DATE FRENCH
6 SET MESSAGE TO 24
7 DO UDF
8 DO TECLAOFF
9
10 DO FIGLOBAL
11 Selecc = 1
12
13 DO MASCARA
14 DO FICOMPRO
15
16 USE VIDEO INDEX VIDEO
17 DO FITEXT
18 DO FISAY
19
20 DO WHILE .T.
21 DO FIMENU
22 DO CASE
23 CASE SELECC = 1
24 DO FIUBICAR
25 CASE selecc = 2
26 DO FINUE
27 CASE selecc = 3
28 DO FICORR
29 CASE selecc = 4
30 DO FIBORRAR
31 CASE selecc = 5
32 DO FIPLUS
33 CASE selecc = 6
34 DO FIMINUS
35 CASE selecc = 7
36 DO FIVISION
37 CASE selecc = 8
38 DO FISELECC
39 OTHERWISE
40 EXIT
41 CASE selecc = 9
42 DO FIINDEX
43 CASE selecc = 10
INFORMATICA III PAGINA NRO. 37
INGENIERA ADRIANA MARIA ANGELA VINCENTI DE GARCIA-IPECCOM@TERRANET.COM.AR
ARMADA ARGENTINA
ESCUELA DE INFANTERIA DE MARINA
SISTEMA ABIERTO DE NIVEL MEDIO
44 DO FILIST
45 OTHERWISE
46 EXIT
47 ENDCASE
48 DO FISAY
49 ENDDO
50
51 CLEAR
52 RETURN
Como se ve las modificaciones no son drsticas, pero todos los problemas anteriores estn
resueltos. La fecha est en formato europeo y se puede salir del programa pulsando la tecla
enter bien la letra F. Despus de finalizar el programa se borra la pantalla y se visualiza el
prompt del MS-DOS
Dado que el pequeo programa MSCARA recibe sus comandos directamente desde FILM,
sin realizar funciones especiales de administracin o de control, la jerarqua obtenida es
comparable a la de un pen.
Es importante diferenciar entre programas que ejecutan funciones determinadas y aquellos que
crean un sistema de programas con los mismos.
Un hecho tpico, es que los subprogramas funcionales pueden llamarse desde cualquier posicin
en el sistema, en el momento que hacen falta, y las restantes funciones caben nicamente en un
lugar determinado.
Este programa no hace absolutamente nada, se ocupa nicamente de que el Clipper encuentre el
programa correspondiente para DO FIBORRAR y aquellos otros que an no se desarrollaron
en el programa FILM. Por ello el programa FILM se ha de modificar nuevamente
El resto de los comandos los explicaremos durante el desarrollo de las distintas etapas de
creacin.
LA CREACIN DE LA VARIABLE:
Como variables pueden imaginarse cajones en los cuales se guardan valores que no caben en
los campos de la base de datos, que no obstante son necesarios para el
procedimiento del programa.
Clipper administra estos valores automticamente, lo nico que debe hacerse es depositar un
valor en el cajn y darle un nombre (la variable se inicializa). Esto se realiza
mediante el carcter de asignacin =
VARIABLE FUNCION
A= 4 Asigna el valor 4 a una variable con el nombre de A. A partir de
este momento puede usarse A para todos los valores numricos.-
Ha de tenerse en cuenta que una variable tenga en todos los casos el contenido deseado ( de lo
contrario obtendremos un mensaje de error ...> TYPE CONFLICT IN...
Aparte de esto, rigen las mismas normas para las variables que para los campos. El nombre
puede componerse de hasta 10 caracteres, no debe contener caracteres especiales aparte de - y
no debe comenzar con un nmero.
Por ej: Cuenta cte. puede reconocerse ms fcilmente como Cuenta Corriente, que
Si lo hubiramos llamado cuentcor cc
Hasta ahora el programa presenta una pantalla bien estructurada, pero el rea de datos an est
completamente vaca.
En esta rea se deben visualizar los datos de la ficha de datos. La visualizacin en el rea de
datos se compone de dos partes diferentes :
La descripcin de los campos es importante por la simple razn de que la mayora de las
entradas por s solas no resultan bastante claras como para autoexplicarse.
Por ej :
1972 podra ser el ao de aparicin de una pelcula, pero tambin puede
1973 significar cualquier otra cosa.
1 *Programa: FITEXT.PRG
2 *Contenido: Visualizacin de los textos para los datos del film
3 *Autor: Su nombre
4
5 @ 06,01 CLEAR TO 19,78
6
7 *Visualizar todos los textos para los datos especficos del film
8 @ 06,02 SAY TITULO ...............:
9 @ 07,02 SAY GENRO...............:
10 @ 08,02 SAY DIRECTOR...............:
11 @ 10,02 SAY ACTOR...............:
12 @ 11,02 SAY ACTOR...............:
13 @ 11,02 SAY ACTOR...............:
14 @ 13,02 SAY MUSICA...............:
15 @ 14,02 SAY PAIS...............:
16 @ 15,02 SAY AO...............:
INFORMATICA III PAGINA NRO. 40
INGENIERA ADRIANA MARIA ANGELA VINCENTI DE GARCIA-IPECCOM@TERRANET.COM.AR
ARMADA ARGENTINA
ESCUELA DE INFANTERIA DE MARINA
SISTEMA ABIERTO DE NIVEL MEDIO
17 @ 16,02 SAY LONG...............:
18
19 *Visualizar todos los datos especficos del cassette
20 @ 06,57 SAY CASSETTE...............:
21 @ 07,57 SAY SISTEMA...............:
22 @ 08,57 SAY TIPO...............:
23 @ 10,57 SAY FECHA...............:
24 @ 11,57 SAY FUENTE...............:
25 @ 12,57 SAY ESTADO...............:
26 @ 14,57 SAY SONIDO...............:
27 @ 15,57 SAY COLOR...............:
28 @ 16,57 SAY LONGPLAY...............:
29
31 *Visualizar texto para las lneas de comentario
31 @ 18,57 SAY COMENTARIO...............:
32
33 RETURN
Este comando contiene un solo comando que an no conoce: @..CLEAR TO en lnea 5 . Con
este comando se borrar un rea determinada de la pantalla.
Este comando tiene gran importancia, ya que los marcos deben mantener una cierta estabilidad
en la pantalla, que no podra lograrse borrando constantemente toda la pantalla con CLEAR y
visualizndola a continuacin nuevamente, el parpadeo molesta bastante al usuario del
programa.
En este caso no es muy necesario el borrado del rea de datos, porque an se encuentra vaca.
Luego de ejecutar el programa FILM.EXE el resultado del mismo deber tener el siguiente
aspecto :
ACTOR.......: FECHA........: / /
ACTOR.......: FUENTE .....:
ACTOR.......: ESTADO .....:
MSICA.....:
PAIS............: SONIDO......:
AO............: COLOR........:
LONG........: LONGPLAY.....:
COMENTARIO
Podemos imaginar la mscara como una hoja de papel posicionada en la pantalla, con
determinadas posiciones recortadas en las cuales aparecen los datos.
Los comandos entre DOWHILE (ejecuta hasta) y ENDDO (final de DO) se ejecutan
continuamente hasta que la condicin WHILE de la lnea 20 ya no se cumple. Entre las lneas
22 DO CASE (ejecuta si corresponde) y la lnea 47 ENDCASE ( final de case) pueden
comprobarse diversas condiciones CASE ( en caso de...) .
En este caso EXIT (salida) en lnea 46 se ocupa de que la ejecucin contine en la lnea
siguiente a ENDDO.
El comando final de programa RETURN en lnea 52 del programa FILM finaliza el prg.
completo y bifurca al sistema operativo. En este caso a diferencia con un RETURN de un
subprograma, se cierran todos los ficheros abiertos. Por ello no se necesitan comandos para el
cierre del fichero VIDEO.
Los comandos DO WHILE <condicin> y ENDDO permiten repetir determinadas partes del
programa (bucle); los comandos intermedios se ejecutan tantas veces como sea necesario y
hasta que se cumpla la condicin de interrupcin.
Despus de la ejecucin de FITEXT comienza el bucle con la condicin .T., es decir que los
comandos siguientes se ejecutan mientras que la condicin sea verdadera .T. es el smbolo para
el s lgico, la condicin por ello siempre ser verdadera.
Se puede finalizar el bucle, en el caso de que se almacene otro valor que no sean los indicados
en la variable selecc, utilizando el comando EXIT y se contine en la lnea despus de
ENDDO.
CASE <Condicin> Comprueba la condicin. Si resulta >T> ejecuta todas las lneas hasta
el siguiente CASE, OTHERWISE ENDCASE. Si es >F> (falso)
contina con el siguiente CASE.
Las lneas entre DOWHILE y ENDDO deberan sangrarse para poder reconocer mejor el
bucle (el programa bien explicado); lo mismo que las lneas entre DO CASE Y ENDCASE
deben sangrarse (indentarse).
Los bucles y diferenciaciones de casos pueden anidarse. En este caso, debe tenerse en cuenta
que las estructuras no deben solaparse.
CORRECTO INCORRECTO
DO WHILE DO WHILE
DO CASE DO CASE
CASE ENDDO
CASE CASE
OTHERWISE CASE
ENDCASE OTHERWISE
ENDDO ENDCASE
El programa FINUE se llama desde FILM, por lo tanto es hora de confeccionar el programa:
1 *Programa : FINUE.PRG
2 *Contenido: Nuevas entradas de datos en el fichero VIDEO
3 *Autor........: Su Nombre
4
5 @ 03,02 SAY Entrada nuevo Film
6
7 APPEND BLANK
8
9 DO FIGET
INFORMATICA III PAGINA NRO. 44
INGENIERA ADRIANA MARIA ANGELA VINCENTI DE GARCIA-IPECCOM@TERRANET.COM.AR
ARMADA ARGENTINA
ESCUELA DE INFANTERIA DE MARINA
SISTEMA ABIERTO DE NIVEL MEDIO
10
11 @ 24,02 SAY Por favor introducir los datos
12
13 READ
14
15 RETURN
Es un prg. Pequeo; de hecho varios programas pequeos con funciones muy claras valen ms
que programas voluminosos donde continuamente se ha de buscar una lnea determinada. Para
el Clipper en definitiva da lo mismo si el cdigo objeto se compone de dos veinte
subprogramas.
En lnea 9 se llama al programa FIGET que an nos queda a confeccionar, la lnea 11 visualiza
para el usuario una breve indicacin de lo que debe hacer. El comando READ (leer), provoca la
entrada de datos en s.
Este comando se comprende mejor haciendo pruebas. Introduzcamos el siguiente programa:
1 *Programa : FIGET.PRG
2 *Contenido : Entrada de los datos en el fichero VIDEO
3 *Autor.........: Su nombre
4
5 *Introducir los datos especficos del film
6 @ 06,14 GET VIDEO -> TITULO
7 @ 07,14 GET VIDEO -> GENRO PICTURE @A!
8 @ 08,14 GET VIDEO -> DIRECT
9 @ 10,14 GET VIDEO -> ARTS1
10 @ 11,14 GET VIDEO -> ARTS2
11 @ 12,14 GET VIDEO -> ARTS3
12 @ 13,14 GET VIDEO -> MUSICA
13 @ 14,14 GET VIDEO -> PAIS
14 @ 15,14 GET VIDEO -> ANIO PICTURE # # # #
15 @ 16,14 GET VIDEO -> DURAC
16
17 *Introducir todos los datos especficos del cassette
18 @ 06,67 GET VIDEO -> CASSETTE
19 @ 07,67 GET VIDEO -> SISTEMA
20 @ 08,67 GET VIDEO -> TIPO
21 @ 10,67 GET VIDEO -> FECHA
22 @ 11,67 GET VIDEO -> FUENTE
23 @ 12,67 GET VIDEO -> CONTAD PICTURE 99999
24 @ 14,67 GET VIDEO -> CUALSON
25 @ 15,67 GET VIDEO -> COLOR PICTURE !;
26 VALID (VIDEO > COLOR $ SN)
27 @ 16,67 GET VIDEO -> LARGAD PICTURE !;
28 VALID (VIDEO > LARGAD $ SN)
29
INFORMATICA III PAGINA NRO. 45
INGENIERA ADRIANA MARIA ANGELA VINCENTI DE GARCIA-IPECCOM@TERRANET.COM.AR
ARMADA ARGENTINA
ESCUELA DE INFANTERIA DE MARINA
SISTEMA ABIERTO DE NIVEL MEDIO
30 *Introducir notas
31 @ 18,14 GET VIDEO -> NOTA1
32 @ 19,14 GET VIDEO -> NOTA2
33
34 RETURN
Al ejecutar el programa Film (luego de compilado y linkeditado) deberamos obtener el
siguiente resultado:
ACTOR.......: FECHA........: / / / /
ACTOR.......: FUENTE .....:
ACTOR.......: ESTADO .....:
MSICA.....:
PAIS............: SONIDO......:
AO............: COLOR........:
LONG........: LONGPLAY.....:
COMENTARIO
Los comandos GET en FIGET determinan las posiciones, en las cuales deben leerse los
contenidos de los diversos campos del fichero VIDEO.
La relacin entre el nombre del fichero y los nombres de los campos se expresa mediante la
secuencia de caracteres -> , una flecha estilizada.
La asignacin del nombre de fichero y del nombre de los campos en principio slo es necesaria
si se encuentran abiertos varios ficheros al mismo tiempo. Pero dado que sirven para aumentar
la seguridad, claridad y legibilidad de los programas debera utilizarse en todos los casos. El
comando READ del programa FINUE activa todos los campos anteriormente preparados con
GET para la entrada de datos.
El cursor (la marca de escritura en la pantalla) se posiciona al principio del primer campo de
entrada. Introduzcamos letras hasta llegar al final de Ttulo; el cursor salta al campo Genro .
Aqu introduzcamos una sola letra y pulsemos la tecla <ENTER> . El cursor nuevamente salta
al campo siguiente. La secuencia de los campos de entrada est determinada por el orden de las
lneas GET del programa, al modificar este orden cambia su camino a travs de los campos
de entrada.
Las posiciones fundamentales de manejo durante el tratamiento de un comando READ son las
siguientes:
INFORMATICA III PAGINA NRO. 46
INGENIERA ADRIANA MARIA ANGELA VINCENTI DE GARCIA-IPECCOM@TERRANET.COM.AR
ARMADA ARGENTINA
ESCUELA DE INFANTERIA DE MARINA
SISTEMA ABIERTO DE NIVEL MEDIO
Tecla Accin
Flecha derecha Un carcter hacia la derecha en el campo
Flecha izquierda Un carcter hacia la izquierda en el campo
Flecha arriba Un GET hacia atrs
Flecha abajo Un GET hacia delante
Enter Un GET hacia adelante, en el ltimo GET se finaliza READ
Insert Activa / Desactiva la modalidad de insercin / sobreescribir
Delete Se borra un carcter en la posicin del cursor
Pg Up / Pg Down Finalizacin instantnea de READ y almacenamiento de los datos
introducidos
Home Salta al comienzo del campo
End Salta al ltimo carcter del Campo
Control (CTRL) + Home Salta al primer campo
Control (CTRL) + End Salta al ltimo Campo
Control (CTRL) + Una palabra a la derecha
Control (CTRL) + Una palabra a la izquierda
Control (CTRL) + T Borra la siguiente palabra
Control (CTRL) + V Borra hasta el final del campo
Control (CTRL) + U Restaura la modificacin realizada
ESC Cancela la entrada de datos (interrupcin de la misma)
Despus de finalizar el READ, se graban los datos en los campos de VIDEO. Clipper olvida
los comandos GET tratados, de manera que antes de un nuevo READ debe prepararse en
primer lugar nuevamente la entrada con comandos GET.
A = 10
A=5
? 5 *A 50 SI/NO
...................................................................................................................................
UNIDAD 3
Qu entendemos por MEN ?...> Una lista de instrucciones posibles, que tenemos
disponibles en pantalla , para as poder seleccionar aquella funcin de deseemos ejecutar en
el programa
Men
Ingreso de datos
Listado
INFORMATICA III PAGINA NRO. 51
Impresin
INGENIERA ADRIANA MARIA ANGELA VINCENTI DE GARCIA-IPECCOM@TERRANET.COM.AR
ARMADA ARGENTINA
ESCUELA DE INFANTERIA DE MARINA
SISTEMA ABIERTO DE NIVEL MEDIO
Esta forma de manejar un programa se denomina control de menes. Aparte de las mscaras
de pantalla, estos menes representan la segunda porcin importante de la Interface de
usuario.
La seleccin de los puntos del men debe ser claro y veloz, si es necesario deber incorporarse
una palabra clave para la seleccin de las distintas funciones, as como tambin una breve
explicacin sobre las mismas.
1 *Programa:FIMENU.PRG
2 *contenido : Men visualizacin y seleccin
3 *Autor.......: Su nombre
4
5 @ 03,02 SAY Men Film
6
7 SET KEY 18 TO TECLAOFF
8 SET KEY 3 TO TECLAOFF
9
10 @ 22,02 CLEAR TO 22,77
11 @ 22,02 PROMPT Ubicar;
12 MESSAGE Buscar pelcula por Cassette;
13 + ttulo
14 @ 22,09 PROMPT Nuevo;
15 MESSAGE Introducir datos de un film nuevo
16
17 @ 22,15 PROMPT Modificar;
18 MESSAGE Modificar datos del film visualizado
19 @ 22,25 PROMPT Borrar;
20 MESSAGE Borrar datos del film visualizado
21 @ 22,32 PROMPT +;
22 MESSAGE Visualizar un film hacia delante
23 @ 22,34 PROMPT -;
24 MESSAGE visualizar un film hacia atrs
25 @ 22,37 PROMPT Visin;
26 MESSAGE Visualizar pelculas en forma de listado
27 @ 22,44 PROMPT Seleccin;
28 MESSAGE Reducir reas de Visualizacin;
29 + a pelculas seleccionadas
30 @ 22,54 PROMPT Index;
31 MESSAGE Seleccin de la clasificacin;
32 + de pelculas
33 @ 22,50 PROMPT Listar;
34 MESSAGE Imprimir lista de pelculas
35 @ 22,59 PROMPT Final;
36 MESSAGE Finalizar programa
37
INFORMATICA III PAGINA NRO. 52
INGENIERA ADRIANA MARIA ANGELA VINCENTI DE GARCIA-IPECCOM@TERRANET.COM.AR
ARMADA ARGENTINA
ESCUELA DE INFANTERIA DE MARINA
SISTEMA ABIERTO DE NIVEL MEDIO
38 MENU TO selecc
39
40 SET KEY 18 TO
41 SET KEY 3 TO
42
RETURN
Esto ofrece la ventaja de poder representar lneas de programa ms largas. Adems los
programas resultan ms claros. Podemos introducir ambas lneas en una en cuyo caso debemos
omitir el punto y coma.
Este comando asigna el texto que sigue a continuacin de MESSAGE a las distintas opciones
del men. No obstante todava Clipper no sabe visualizar el texto; esta informacin pertenece a
los comandos del sistema de programas y por ello al principio del programa FILM.
En la lnea 5 se visualiza un texto, para la cabecera de pantalla. Los espacios en blanco despus
del texto son importantes, para sobreescribir eventualmente los restos de mensajes anteriores.
La llamada de programa DO FIMENU en lnea 18 se ocupa del men. Las instrucciones CASE
significan que se dispone de cinco puntos de men.
El men con sus mensajes, representa un papel importante en la comunicacin entre el usuario
y la computadora; por esto las informaciones deben ser precisas y comprensibles . Dado que
aqu se puede realizar su seleccin no nicamente con las teclas de flechas enter, sino tambin
de forma directa utilizando las letras iniciales de cada opcin, debe evitarse iniciales iguales. El
segundo punto del men con la misma letra inicial; no podr seleccionarse con una sola
pulsacin de tecla.
INFORMATICA III PAGINA NRO. 53
INGENIERA ADRIANA MARIA ANGELA VINCENTI DE GARCIA-IPECCOM@TERRANET.COM.AR
ARMADA ARGENTINA
ESCUELA DE INFANTERIA DE MARINA
SISTEMA ABIERTO DE NIVEL MEDIO
Aqu puede resultar til la consulta de un diccionario de sinnimos para encontrar la palabra
clave que comience con la letra correcta.
Antes de que tenga sentido visualizar hacia delante y atrs, deberemos confeccionar un
subprograma que visualiza los datos en la pantalla, porque sin este programa no podemos ver el
salto de una sentencia a la otra.
1 *Programa : FISAY.PRG
2 *Contenido : Visualizacin de los datos del fichero VIDEO
3 *Autor.........: Su nombre
4
5 SET COLOR TO W -;N.NW
6
7 *Visualizar los datos especficos del film
8 @ 06,14 SAY VIDEO -> TITULO
9 @ 07,14 SAY VIDEO -> GENRO
10 @ 08,14 SAY VIDEO -> DIRECT
11 @ 10,14 SAY VIDEO -> ARTS1
12 @ 11,14 SAY VIDEO -> ARTS2
13 @ 12,14 SAY VIDEO -> ARTS3
14 @ 13,14 SAY VIDEO -> MUSICA
15 @ 14,14 SAY VIDEO -> PAIS
16 @ 15,14 SAY VIDEO -> ANIO
17 @ 16,14 SAY VIDEO -> DURAC
18
19 *Visualizar todos los datos especficos del cassette
20 @ 06,67 SAY VIDEO -> CASSETTE
21 @ 07,67 SAY VIDEO -> SISTEMA
22 @ 08,67 SAY VIDEO -> TIPO
23 @ 10,67 SAY VIDEO -> FECHA
24 @ 11,67 SAY VIDEO -> FUENTE
25 @ 12,67 SAY VIDEO -> CONTAD
26 @ 14,67 SAY VIDEO -> CUALSON
27 @ 15,67 SAY VIDEO -> COLOR
28 @ 16,67 SAY VIDEO -> LARGAD
29
30 *Visualizar notas
31 @ 18,14 SAY VIDEO -> NOTA1
32 @ 19,14 SAY VIDEO -> NOTA2
33
34 SET COLOR TO
35
36 RETURN
Los comandos GET conocidos de FIGET han sido reemplazados por comandos SAY . La
salida con SAY como puede observarse, no funciona nicamente con textos, sino tambin con
campos.
La llamada de FISAY se realiza en dos puntos: en la lnea 14 finaliza la parte preparativa del
bucle de programa con la visualizacin de la primera sentencia del fichero VIDEO, ya que
despus de USE se encuentra seleccionada la primera sentencia de un fichero. Debido a la
visualizacin resaltada de los datos a diferencia de las denominaciones - representadas en
intensidad normal- puede diferenciarse claramente entre programa y datos.
Dado que la entrada de datos se realiza en video inverso, es decir negro en fondo blanco, y la
visualizacin de la sentencia actual es en intenso pero con fondo negro, puede reconstruirse
claramente el proceso de transferencia de datos desde la mscara de entrada al fichero.Aparte
de la posibilidad de diferenciar entre datos y texto de programas, estos dos puntos representan
un paso importante hacia la confeccin de un programa cmodo del usuario:
Despus del arranque del programa se visualizan los datos de la primera sentencia de datos, lo
cual corresponde a la apertura del fichero; se ve la primera ficha.
Si se busca una ficha determinada se hojea ficha por ficha hasta encontrar la deseada(el hojear
hacia delante y hacia atrs, ya est previsto en el men efectuando la seleccin con las teclas +
y - ).
Si hemos llegado al final del fichero, ya no tiene sentido seguir hojeando hacia delante. Se
sobreentiende que esto debe ser evitado de antemano, es decir que el programador debe
determinar qu es lo que debe pasar en este caso.
Para ello el comando IF EOF ( ) en la lnea 7 IF (en caso de) es la forma simplificada de la
diferenciacin de casos con DO CASE, comprobndose no varios, sino un nico caso. Si la
condicin despus de IF es verdadera, se ejecutan todas las lneas hasta el ENDIF; si de lo
contrario es falsa, se ignoran estas lneas.
La condicin en este caso se llama EOF ( ) (end of file = final de fichero) y es una funcin que
devuelve el valor verdadero .T. si se ha llegado al final del fichero y el valor .F. en caso
contrario.
En la lnea 8 se encuentra la instruccin para el caso de que EOF ( ) devuelva el valor .T. lo
cual significa que se ha llegado al final del fichero. En este caso se bifurca con GO TOP
(desplazar al principio) nuevamente a la primera sentencias de datos.
Las lneas 7 a 9 podran traducirse entonces como si se ha llegado al final del fichero, volver
a la primera sentencia de datos. El efecto logrado es el de los tambores redondos que no
tienen comienzo ni final.
La condicin en la lnea 7 en este caso no es EOF ( ), sino BOF ( ) (begin of file = inicio del
fichero) y GO BOTTOM en la lnea 8 posiciona en la ltima sentencia de datos del fichero.
GO TOP
SKIP 1
SKIP
Al hojear en las entradas del fichero VIDEO, seguramente encontraremos alguna sentencia que
necesita una correccin incluso puede ser borrada. La diferencia entre la
introduccin de una nueva sentencia de datos y la modificacin posterior de una
sentencia almacenada es mnima
1 *Programa :FICORR.PRG
2 *Contenido: Modificacin de datos en el fichero VIDEO
3 *Autor :Su nombre
4
5 @ 03,02 SAY Modificacin Film
6
7 DO FIGET
8
9 @ 24,02 SAY Por favor modifique los datos visualizados
10
11 READ
12 RETURN
Dado que las lneas GET han sido aisladas en el subprograma FIGET, pueden ser utilizadas
tambin para FICORR. De esta forma se ahorra tiempo y espacio .
INFORMATICA III PAGINA NRO. 58
INGENIERA ADRIANA MARIA ANGELA VINCENTI DE GARCIA-IPECCOM@TERRANET.COM.AR
ARMADA ARGENTINA
ESCUELA DE INFANTERIA DE MARINA
SISTEMA ABIERTO DE NIVEL MEDIO
Algo parecido ocurre en la lnea 14 con el carcter # . En este caso se permiten nicamente
cifras y espacios en blanco ( no las letras y caracteres especiales) an tratndose de un campo
tipo carcter . Aqu a diferencia con la primera no se selecciona la funcin con @; que es vlida
para todos los caracteres del campo, sino que se utiliza una plantilla.
Cada carcter de la plantilla representa un carcter del campo de entrada. De la misma forma
que no se aceptan los caracteres no permitidos en la entrada.
Los nueves en la lnea 23, significan que se permiten nicamente las cifras y no los espacios
en blanco.
En las lneas 25 y 26 se define en primer lugar una mini-plantilla PICTURE, que al introducir
el nico carcter, convierte al mismo en maysculas.
Ahora podramos preguntarnos, porqu los campos S/N no han sido definidos como campos
lgicos?. La respuesta se compone de dos partes:
En segundo lugar un campo lgico acepta nicamente dos opciones, lo que no permite dejar
el campo en blanco ( ).
Con un campo de una sola posicin pueden diferenciarse 10 casos con cifras y muchos ms
contando las letras y caracteres especiales. Los campos lgicos suelen utilizarse ms en
entradas de ficheros controladas por programa (por ej. : si una factura ha sido pagada.)
A veces ocurre que alguna sentencia de datos ya no se necesita. A lo mejor hemos prestado
nuestra cinta preferida y no recordamos a quien, o bien hemos pulsado la opcin nueva
repetidas veces y no sabemos que hacer con la nueva sentencia creada. En esos casos podemos
realizar un recicle de estas sentencias utilizando la opcin modificacin para actualizar los
datos bien podemos desear borrar los datos del fichero. No obstante en cualquier momento
podemos recordar a quien prestamos la cinta y recuperarla:
1 *Programa : FIBORRAR.PRG
2 *Contenido : Borrado de datos del fichero VIDEO
3 *Autor.........: Su Nombre
4
5 @ 03,02 SAY Borrar Film
6
7 borrar = N
8 @ 24,02 SAY Desea realmente borrar la pelcula visualizada (S/N);
9 GET borrar PICTURE ! VALID (borrar $ SN)
10 READ
11
12 IF BORRAR = J
13 DELETE
14 @ 24,02 SAY La pelcula ha sido borrada, se reorganiza el fichero
15 PACK
16 GO TO
17 ENDIF
18
19 RETURN
En primer lugar se coloca una marca de borrado a la sentencia actual (comando DELETE, lnea
13. En la lnea 14 se visualiza un mensaje de informacin para el usuario.
El comando PACK elimina todas las sentencias marcadas para el borrado del fichero. Despus
de esta operacin el programa se encuentra en el final del fichero, en posicin EOF ( ) . Para
El procedimiento PACK puede tardar algn tiempo si se han de eliminar muchas sentencias
largas. (an cuando se supone raras veces se han de borrar sentencias de este fichero). El
comando DELETE efecta el borrado lgico.(los marca para borrar *).
NOTA ACLARATORIA:
Hasta aqu ya estn incluidos todos los conceptos bsicos necesarios para comprender las
nociones de programacin en un lenguaje estructura como el Clipper.
Existen numerosos comandos de Clipper, que permiten elaborar sofisticados programas, que no
solo ejecuten las operaciones indicadas en los ejercicios precedentes sino que permitan una
adecuada visualizacin en pantalla, indexacin de datos para favorecer las bsquedas y
ordenamientos, sofisticadas salidas por impresora tipo formularios o listados.
Todos ellos pueden encontrarse en el manual de Clipper 5.00 que se ha utilizado como
bibliografa de apoyo para elaborar el presente manual.
El diskkette de apoyo que se brinda con el presente manual contiene una versin del programa
Clipper llamada Summer 87 ; con el cual se podrn editar, compilar, linkeditar y posteriormente
ejecutar cada uno de los programas dados como ejemplo.
Los programas son muy sencillos y ms si Ud. los copia en WORD y pega en el Editor (edit),
slo tendr que guardarlo con el nombre adecuado(* .PRG) , compilarlo (*.OBJ) ,linkeditarlo
(*.exe) y finalmente ejecutarlo (nombre del archivo <enter>)
EVALUACION GLOBAL
CONSIDERACIONES FINALES:
MATERIA
MODULO
APELLIDO
NOMBRES
JERARQUIA
DESTINO
TRABAJO PRACTICO 1 A
INTRODUCCIN-LENGUAJES DE PROGRAMACIN
DISEO DE PANTALLA
A = 10
Nombre Contenido
de la
Variable
Carcter de asignacin
A=5
? 5 *A 50 SI / NO