foxpro 2.6

Upload: franklin-henriquez

Post on 04-Apr-2018

767 views

Category:

Documents


37 download

TRANSCRIPT

  • 7/31/2019 FOXPRO 2.6

    1/121

    LENGUAJE DE PROGRAMACION III

    SLABO

    I. DATOS GENERALES

    CARRERA PROFESIONAL : INGENIERIA DE SISTEMAS E INFORMATICA

    II. DESCRIPCIN DE LA ASIGNATURA

    La asignatura es de naturaleza prctica y pretende iniciar al estudiante en el manejo de lenguajes deprogramacion orientados a la practica profesional. Este curso esta basado en los solidos conceptostericopracticos sobre algoritmos y estructuras de bases de datos adquiridos en el curso del mismo nombreque es su prerequisto, el cual el alumno debera dominar previamente.

    FoxPRO no slo es un software de gestin de bases de datos relacinales con una interface visual y orientadaa objetos, es adems, un potente lenguaje de programacin estructurada, modular y de procedimientos, quepermite desarrollar todo tipo de aplicaciones tanto comerciales como de las reas de educacin, produccin,administracin, etc. En pequeas y medianas empresas.

    La filosofa de programacin que propone FoxPRO est orientada a eventos y no a mens jerrquicos yanidados como es habitual en otros programas de gestin de bases de datos.

    FoxPRO 2.6 tiene mas de 600 comandos y funciones orientadas principalmente al manejo de bases de datos

    relacinales, pero adems cuenta con generadores de informes, pantallas, mens, etiquetas, consultas (SQL) yaplicaciones.

    A pesar de ser un software basado en DOS, maneja Ventanas, Mens, desplegables (Popup) y algunosobjetos; soporta el ratn (Mouse) con algo de programacion visual; tiene soporte para redes y manejo deaplicaciones multiusuario as como un excelente compilador que muestra los errores de sintaxis.

    III.OBJETIVO GENERAL

    El curso esta diseado para los alumnos de la Universidad Alas Peruanas que se inician en el desarrollo deaplicaciones, siempre con la mira hacia el desarrollo de aplicaciones de la vida real que actualmente son

    usadas en las empresas.

    IV. METODOLOGA

    Durante todo el curso cada alumno dispondr de una PC durante las clases, de manera que pueda escuchar laexposicin y aplicar lo expuesto inmediatamente, reforzando y facilitando as la adquisicin de conocimientospara obtener los resultados solicitados.

    El alumno solicitar la ayuda del docente cuando considere que es necesario para mantener su ritmo deaprendizaje, pero debera poner de su parte practicando un minimo de 4 horas semanales frente a uncomputador fuera de las horas de clase.

    1

  • 7/31/2019 FOXPRO 2.6

    2/121

    V. EVALUACION

    Para las evaluaciones los alumnos podrn apoyarse en sus notas o apuntes del curso, separatas, libros y todo elmaterial que consideren til para el desarrollo de su prueba, teniendo en cuenta que debern trabajar solo yaque la evaluacin ser en forma individual.

    Las prcticas calificadas se desarrollarn en clase con una PC por alumno y pretendern verificar el nivelalcanzado, planteando la solucin de problemas especficos usando como herramienta al FoxPRO.

    El trabajo final de curso consistir de una aplicacin prctica de tema libre, que deber ser desarrollada fuerade horas de clase y sustentada de forma persol en la semana 16.

    Los exmenes parcial y final sern pruebas prcticas, desarrolladas directamente en la PC, en un da y horaespecfico asignados durante las semanas 9 y 17 respectivamente.

    El examen Sustitutorio, ser tomado en la semana 18 del ciclo y consistir en la evaluacin prctica de todo elcurso, pudiendo reemplazar la nota mas baja que el alumno haya obtenido entre el examen parcial (EP) y final(EF).

    En caso la nota del examen Sustitutorio sea ms baja que la nota ms baja del examen parcial o del examenfinal, no se reemplazar ninguna de ellas, quedando el alumno con la nota obtenida hasta antes del examenSustitutorio.

    La nota final se establecer del promedio aritmtico de:

    NF = 30% PP + 10% T + 30% EP + 30% EF

    NF = Nota Final

    PP = Promedio de prcticas

    PT = Trabajos personal sustentado

    EP = Examen Parcial

    EF = Examen Final

    VI. CONTENIDO ANALITICO

    Semana 01

    Uso del Editor Compilador Ejecutor de programas. DO

    Interfaces de usuario: barra de men, ventanas, ayuda, linea de estado, uso del Ratn, utilidades yherramienrtas: archivador, caracteres ASCII y especiales. Tipos y manejo de archivos.

    Variables de memoria, tipos: Carcter, numericas, fecha y logicas. Publicas y privadas, mostrar, guardar,restablecer y borrar.

    Mostrar: ?, ??, AT, PICTURE y FUNCTION.

    Operadores aritmticos: +, , *, /, ^, % y (), Relacionales: =, #, , =, ==, $ y boleanos: .NOT., .AND.,

    2

  • 7/31/2019 FOXPRO 2.6

    3/121

    .OR..

    Semana 02

    Manejo de matrices: Declarar, rellenar, copiar, guardar y recuperar (MEM).

    Funciones: ACOPY(), ADEL(), ADIR(),AELEMENT(), AFDIELD(), AINS(), ALENS(), ASCAN(),ASORT(), ASUBSCRIPT().

    Mostrar datos: @..SAY PICTURE, FUNCTION, @..TO, @..BOX, @..CLEAR, @..CLEAR..TO.., @..FILLTO y WAIT WIND...TIMEOUT, WAIT CLEAR.

    Semana 03

    Captura de datos: GET, READ, validar, consistenciar y detectar errores en entrada de datos PICTURE,FUNTION,

    RANGE, VALID.

    Control de flujo: Condicionales: IF...ELSE...ENDIF, IIF(), DO CASE CASE... OTHER ENDCASE,Repetitivas: DO WHILE...ENDDO y FOR...ENDFOR. Uso de LOOP y EXIT.

    Semana 04

    Desarrollo de programas usando: control de flujo y variables de memoria.

    PRIMERA PRACTICA CALIFICADA.

    Semana 05

    Manejo de bases de datos: CREATE, USE, MODIFY STRUCTURE, CLOSE, DIR. Areas de trabajo:SELECT, CLOSE ALL.

    Manejo y mantenimiento de registros: BROWSE, APPEND, DELETE, RECALL, PACK, SET DELETE,ZAP.

    Filtros: FOR, KEY, SET FILTER TO

    Semana 06

    Organizacin de registros: Fsico y lgico. Sugerencias para llaves.

    Manejo de ndices: tipos (.IDX o .CDX), INDEX ON, SET ORDER, REINDEX, SORT.

    SEGUNDA PRACTICA CALIFICADA.

    Semana 07

    Mover puntero y buscar: SKIP, LOCATE, CONTINUE, SEEK, FIND, SEEK(), FOUND().

    Clculos con campos y registros: REPLACE, CALCULATE: SUM(), MAX(), MIN(), AVG(), STD(), VAR(),AVERAGE, COUNT etc.

    3

  • 7/31/2019 FOXPRO 2.6

    4/121

    Semana 08

    Manipulacin de tablas: SET RELA TO y SET SKIP TO.

    Mostrar, imprimir y exportar datos: LIST ..FOR..TO.., DISPLAY.

    Generador de informes.

    Semana 09

    EXAMEN PARCIAL

    Semana 10

    Programacion orientada a eventos vs orientada a menus jerarquicos.

    Procedimientos y funciones de usario: PROCEDURE, FUNCTION, PARAMETERS, DO.. WITH.. IN..RETURN, SET LIBR TO .., , uso de variables publicas y privadas.

    Uso avanzado de @ GET con funciones en VALID y WHEN. READ CYCLE, SHOW GETS, CLEARTGETS... SHOW OBJETS.

    Inicializar y validar el ingreso de datos. Ejemplos y aplicaciones.

    Semana 11

    Control de objetos: Botones de Radio, Push y Check. Listas, desplegables (POPUP) e invisibles. READCICLE, SHOW GETS, CLEAR GETS,

    Activar y desactivar controles. _CUROBJ, RDLEVEL(), OBJNUM()...

    Otros objetos: GETFILE, PUTFILE, GETEXP, LOCFILE(), FOPEN(), FPUTS(), FREAD(), FGETS(),FCLOSE()...

    Semana 12

    Ventanas: Definir, activar, mostrar, esconder, desactivar, guardar, restaurar, mover, manejar tamaos,limpiar...

    Uso avanzado de BROWSE: FREEZE, KEY, LOCK, WHEN, VALID, IN WINDOW.

    Semana 13

    Programacin de teclas: ON KEY, ON KEY LABEL, ON ERROR, ON ESCAPE, READKEY(), INKEY(),LASTKEY().

    Mens: Tipos (General de sistema, barra simple, desplegable simple y multiple). Definir, activar, seleccionar(ON..). Generador de menus.

    Semana 14

    TERCERA PRACTICA CALIFICADA

    4

  • 7/31/2019 FOXPRO 2.6

    5/121

    Manejo de matrices: Declarar, rellenar, copiar. GATHER, SCATTER, ALEN()...

    Campos memo: APPEND MEMO..FROM.., MODIFY MEMO, @..EDIT, MLINE(), COPY MEMO.. TO..,SAVE WIND.. TO.., REST WIND.. FROM MEMO.., SET MEMOWITDH TO..,

    Semana 15

    Manejo de impresora, consola y archivos: SET DEVICE TO [SCREEN PRINTER FILE [, SET

    PRINTER ON/OFF, SET CONSOLE ON/OFF, EJECT, PCOL(), PROW(), PRINTSTATUS(), CHR(), SETALTERNATE ON/OFF TO , CLOSE ALTERNATE.

    CUARTA PRACTICA CALIFICADA

    Semana 16

    Sistemas multiusuario: SET EXCLUSIVE, FLOCK(), RLOCK(), LOCK(), UNLOCK(), SET REPROCESSTO.., SET MULTILOCK, GETENV() Y NETWARE().

    Macrosustitucin (&) y sentencias SQL.

    Semana 17

    EXAMEN FINAL

    Semana 18

    EXAMEN SUSTITUTORIO

    VII. BIBLIOGRAFA

    Programacin en base a eventos en FoxPRO 2.6 para DOS. Csar A. Bustamante Gutirrez ConsultorioInformtica.

    Programacin bsica con FoxPRO Ramn M. Chord Font Editorial Rama.

    Al da en una hora en FoxPRO 2.6 Jos Carlos Corrales Anaya Multimedia.Gua practica FoxPRO 2.6 Alejandro Domnguez Anaya Multimedia.Separatas de FoxPRO: LPE1, LPE2, LPE3, LPE4 y LPE5 Ing Enrique GarridoLecca Risco Universidad Alas Peruanas. Disponible en pagina Web del curso.

    Ejercicios prcticos de FoxPRO, Ing Enrique GarridoLecca Risco Universidad Alas Peruanas.Disponible en pagina Web del curso.

    Capitulo 1

    Conceptos generales

    Informacin

    Proviene del latn informare que significa noticia, informacin o instruccin. Este termino afecta a todos losfactores susceptibles de ser transmitidos o almacenados. Sin embargo la informacin no solo se transmite sinoque tambin es procesada, que es el hecho de gestionar y transformar la informacin existente en una nueva.

    Informtica

    5

  • 7/31/2019 FOXPRO 2.6

    6/121

    Proviene de la contraccin de las palabras Informacin autoMATICA. Ciencia que se encarga de todo loreferente al tratamiento de la informacin en cualquier medio, texto, radio, TV, computadoras etc

    Computacin

    Ciencia que agrupa al conjunto de tcnicas y mtodos que nos permiten manejar informacin haciendo uso delcomputador como herramienta de trabajo.

    Sistema

    Conjunto de elementos que interactua para lograr la solucin de un problema o situacin. Ejemplos desistema: nervioso, de transito, de irrigacin, legal, de seguridad, de computo etc

    Algoritmo

    Conjunto de etapas o pasos que nos permiten solucionar un problema o situacin.

    Hardware

    Es la parte fsica del computador, es decir la que podemos ver y tocar. Esta compuesta por: CPU o P,memoria RAM, unidades de almacenamiento y perifricos de entrada y salida.

    Software

    Es la parte lgica y el lenguaje del computador. Esta formada por los programas y datos que se usan en uncomputador.

    Firmware

    Es el software cuyo cdigo esta implementado en hardware. Por lo general se trata de algunos tipos especialesde memorias que puede mantener su contenido sin energa elctrica. Ej: ROM, FLASHROM, PROM,EPROM y EEPROM.

    Dgito binario o bit

    Es la representacin mnima de almacenamiento que puede ser un 1 o 0, si o no, on u off, verdadero o falsoetc.

    Byte

    Es el conjunto de 8 bits con el cual se puede representar un carcter. Tambin se la llama palabra u octeto.Normalmente para expresar valores grandes, se usan los mltiplos como:

    KiloByte = KB = 1,000 BytesMegaByte = MB = 1,000 KB = 1'000,000 BytesGigaByte = GB = 1,000 MB = 1'000,000 KB ...TeraByte = TB = 1,000 GB = 1'000,000 MB ...

    ASCII (American Standar Code for Information Interchange)

    Cdigo estndar Americano para el intercambio de informacin. Es una tabla compuesta por 256 (8 bits sea28 valores) caracteres. Ej: A=65, a=97, = 160, =164 etc

    6

  • 7/31/2019 FOXPRO 2.6

    7/121

    Sistemas expertos

    Sistema que simula el proceso de aprendizaje, memorizacin, razonamiento, comunicacin o accin de unhumano en una determinada rama de la ciencia, de forma que podra sustituirle en esas tareas con ciertagaranta de xito. Esas caractersticas le permiten almacenar datos y conocimientos, para luego en base a ellosobtener conclusiones lgicas y realizar acciones como consecuencia de lo anterior. All por 1977 un sistemaexperto era sinnimo de computacin inteligente.

    Inteligencia artificial

    Tcnicas como el reconocimiento de voz e imagen, robtica y una serie de aplicaciones que involucranconocer, comprender y razonar.

    Virus

    Es un programa para computadoras (software de aplicacin) elaborado por alguien. Los virus tiene lacapacidad de realizar ciertas tareas sin la autorizacin ni conocimiento del usuario. Estas tareas van desde lacopia de si mismo (reproduccin o contagio), destruccin de archivos, datos, hardware etc. Se propagan devarias maneras, algunos se duplican cuando se abre un archivo infectado, otros infectan el sector de arranque

    de los discos duros.

    Multimedia

    Tecnologa que consiste en incluir en el computador capacidades de audio y vdeo entre otros dispositivos.Lector CD, tarjetas de sonido y vdeo de alta calidad.

    Realidad virtual

    Tecnologa de avanzada que apoyada en la multimedia permite transportar al usuario a un mundo ficticio o noreal totalmente creado por el computador, valindose de imgenes, sonido y sensaciones (tctiles,temperatura, movimiento etc). Este mundo imaginario es transferido al usuario a travs de un equipo especialconformado por un casco, que oculta la visin del mundo real, proyectando imgenes estereoscopias(simulacin de visin en 3 dimisiones) ante sus ojos y sonido sobre sus oidos. Adems este casco transmitelos movimientos de la cabeza hacia el computador. Tambin se usan controles especiales, guantes y trajes paratransmitir sensaciones tctiles, de temperatura, movimiento etc

    Telemtica

    Es todo lo relacionado con las comunicaciones entre computadoras usando los medios de la telefona, vasatlite, microondas, lneas telefnicas anlogas o digitales, conmutacin de paquetes etc

    Red de rea Local o LAN

    Conjunto de computadoras interconectadas por algn medio de transmisin (alambre, microondas etc) paracompartir recursos de hardware (discos duros, CDs, impresoras, mdem, acceso a Internet etc), hacer procesosdistribuidos (mediante aplicaciones multiusuario) o comunicarse dentro de un mismo local o edificio.

    Circuito Integrado o CHIP

    Rectngulo de silicio de apenas 1 a 16 mm de lado y de apenas 0.025 mm de grosor que contiene de algunasdecenas a varios millones de componentes (transistores, resistencias, etc) formando un circuito lgico. Ej:Micro procesador, memoria RAM, etc.

    7

  • 7/31/2019 FOXPRO 2.6

    8/121

    Memoria RAM:

    Random Access Memory, memoria de acceso aleatorio, es decir que se puede leer, escribir o borrar encualquier parte de ella. Es donde deben estar las instrucciones y datos para que los use el P. Se dice que laRAM es voltil porque pierde todo su contenido al retirarle la energa elctrica.

    Capitulo 2

    Software

    El computador por s solo (hardware) no puede hacer ningn trabajo, ya que es indispensable que primero elhombre le transmita las instrucciones necesarias. A este conjunto de instrucciones especialmente escritas paraser interpretadas por un computador se le llama software.

    Es decir, el software es el conjunto lgico ordenado de instrucciones y datos que usa el computador.

    Tipos de software:

    1. Sistema operativo: Es el que administra el funcionamiento del computadora y facilita la labor de las

    aplicaciones, apoyndolas en tareas bsicas como leer, escribir, copiar, borrar archivos, presentaciones depantalla, entradas por teclado, etc Ej: DOS, Windows 95, OS/2 WARP, CP/M, UNIX, System 7 etc

    2. Lenguajes de programacin: Software especializado que se usa para el desarrollo de programas oaplicaciones, que pueden ser usados directamente por usuarios finales.

    3. Aplicaciones y utilitarios: Tambin denominados paquetes, estn escritos en algn lenguaje deprogramacin y sirven para un fin o tarea especifico:

    Procesadores de texto: Para un fcil desarrollo de todo tipo de documentos. Ej: Word, WordPerfect,WordStar, etc

    Hojas de calculo: Presentan en pantalla una especie de hoja cuadriculada donde uno puede ingresardatos y frmulas, que posteriormente se pueden presentar en tablas o grficos. Ej: Excel, Quattro Pro,Lotus 123, Visi Calc etc

    Manejadores de bases de datos: Permiten realizar todo tipo de operaciones relacionadas con basesde datos, principalmente la bsqueda o extraccin de parte de esos datos imponiendo ciertos criterios.Ej: FoxPRO, dBASE, Clipper, Paradox, R:Base, Access etc

    Presentaciones: Para la preparacin de una presentacin en diapositivas. Ej: Power Point, HarvadGraphics etc

    Integrados: Son varias aplicaciones reunidas en un mismo paquete. Ej: Office, Works, PerfectOffice, Lotus Notes etc

    Procesadores de calculo: Facilitan todo tipo de clculos de diversa ndole tales como: matemticos,estadsticos, financieros etc Ej: MathCad, Eureka, Erwin etc

    Grficos: Permiten el fcil uso de todo tipo de grficos para ingeniera, publicidad, arte, estadsticos,financieros, lineales etc. Ej: AutoCAD, PaintBrush, Corel Draw, PaintSHOP etc

    Autoedicion: Permiten el desarrollo de publicaciones de diseo complejo, incluidos textos endiversas fuentes, grficos, fotos. Ej: Page Maker, Ventura, Corel Perfect, etc

    Asistencia de proyectos: Procesadores para planear y desarrollar proyectos. Ej: Harvard TotalProyect Managet...

    Reconocimiento de caracteres (OCR)Herramientas CASE: Computer Aid Software Enginering. Son paquetes que permiten programarcomputadores, desarrollando aplicaciones de una manera asistida.

    Juegos: Aplicaciones especialmente desarrolladas para el entretenimiento.

    8

  • 7/31/2019 FOXPRO 2.6

    9/121

    Antivirus y antivirus:

    Capitulo 3

    Lenguajes de programacin

    Para que una computadora pueda realizar las funciones y operaciones que deseamos, es necesario suministrarlas instrucciones adecuadas debidamente agrupadas y ordenadas. Este conjunto de instrucciones constituyen

    lo que se denomina un programa o aplicacin.

    Para que estas instrucciones sean comprensibles para el computador y debido a la propia estructura fsica delos mismos, estos programas debern estar expresados como combinaciones de cero y unos o mejor dichoexpresados en cdigo binario o de lenguaje de maquina.

    Debido a las graves dificultades que entraa la programacin en lenguaje de maquina, los profesionales delsoftware han desarrollado lenguajes de programacin mas humanizados que permiten alejar las tareas deprogramacin de las maquinas y acercarlas a los problemas.

    CLASIFICACIONES

    La clasificacin de los lenguajes de programacin no es fcil debido a que las categoras no sonabsolutamente disjuntas.

    1. Por su estructura interna:

    a. Bajo nivel:

    Se caracterizan por poseer una estructura demasiado compleja, lo cual los hace difciles de aprender, entendery aplicar. Ello se debe a su relacin directa con el funcionamiento real de cada uno de los elementos internosdel computador: P, RAM, perifricos etc.

    Son los lenguajes propios o naturales de las computadoras y por ello los programas escritos en bajo nivel nospermiten obtener la mxima velocidad de proceso y un control total de todo el hardware del computador.

    1. Lenguaje de maquina: Cada instruccin esta representada por un valor numrico, el cual se describe enhexadecimal o en binario. La desventaja radica en lo difcil de su codificacin, pero a cambio obtenemos altavelocidad y control. El conjunto de instrucciones que conforman un lenguaje de mquina es determinado porel microprocesador, ya que cada uno tiene un juego de intrucciones propio y diferente al resto.

    2. Lenguaje Ensamblador (Assembler): Es muy similar al anterior solo que cada instruccin estarepresentada por una pequea palabra (nemotecnico), mucho mas fcil de manejar para los humanos que loscdigos hexadecimales, por lo que se le considera un lenguaje codificado y a cada palabra le corresponde una

    instruccin del microprocesador.

    b. Alto nivel:

    Se caracterizan por su similitud con los lenguajes humanos, por lo cual son mas fciles de aprender, entendery usar. Sus principales objetivos son:

    Humanizar las tareas de programacin, acercando los lenguajes de programacin al lenguaje coloquial(de conversacin)

    Hacer compatibles los distintos computadores a travs de la programacin: Un programa escrito en un

    9

  • 7/31/2019 FOXPRO 2.6

    10/121

    lenguaje de alto nivel puede ejecutarse en cualquier computador.

    Como adems estos lenguajes usan nombre simblicos para representar datos, variables, direcciones dememoria, etc y sus instrucciones tienen la categora de macro instrucciones con su uso tendremos salvada latotalidad de las dificultades que presenta la programacin en cdigo o lenguaje de maquina y lo que es masimportante, nos permite acercar las tareas de programacin a los problemas alejndolos de los detallestcnicos relacionados con el computador.

    Ventajas:

    Un programa escrito en un lenguaje de alto nivel puede ser usado, despus de algunas modificaciones,en distintos equipos.

    El tiempo de formacin de los programadores es relativamente corto, en comparacin con el necesariopara aprender los lenguajes de nivel inferior.

    El programador no necesita conocer cmo funciona un computador especfico para poderconfeccionar los programas.

    El tiempo necesario para codificar y poner a punto, es decir los cambios y correcciones posteriores, deun programa en lenguaje de alto nivel es inferior al necesario en el caso de los lenguajes menosevolucionados.

    La reduccin del tiempo expresado en el punto anterior reduce tambin el costo de los programas.

    Inconvenientes:

    El tiempo de ejecucin es mayor, puesto que las instrucciones generadas por el compilador son masnumerosas que las correspondientes al mismo programa escrito directamente en lenguaje de maquina.Este incremento de tiempo es del orden del 15% en promedio.

    No se aprovechan las posibles ventajas de la arquitectura interna del sistema.Se incrementa el uso de memoria interna, tanto por parte del programa ejecutor (runtime) como por elprograma objeto en si.

    Cada vez que se introduce un cambio es necesario compilar el programa fuente nuevamente.

    c. Nivel medio:

    Poseen caractersticas de alto y bajo nivel, por lo que se puede obtener velocidades de proceso muy similaresal bajo nivel, control total del equipo y adems facilidades de programacin. Ejemplos: C++ y ADA

    2. Por su potencia:

    a. Primera generacin: Lenguaje de maquina, no requiere traduccin alguna, el computador es capaz deleerlo directamente.

    b. Segunda generacin: Lenguaje ensamblador dependiente de la maquina, que requiere de una traduccin,

    aunque esta es muy simple porque cada instruccin corresponde a un cdigo solamente.

    c. Tercera generacin: Lenguajes de alto nivel.

    Estn diseados para ser usados por programadores profesionales.Requieren especificaciones de cmo realizar una tarea.Se debe especificar todas las posibles opciones.Requieren de un numero grande de instrucciones.Cdigos pueden ser difciles de leer, entender, mantener y depurar.Originalmente desarrollados para operaciones por lote.

    10

  • 7/31/2019 FOXPRO 2.6

    11/121

    Orientados hacia archivosRequieren de traduccin y cada instruccin es convertida en varias instrucciones de maquina.El programador solo es enfrentado al cdigo fuente que el mismo creo y nunca al cdigo objetoresultante.

    Ej: Fortran, Cobol, Basic, Pascal, C

    d. Cuarta generacin (4GL): Lenguajes ms avanzados que los de alto nivel.

    Requiere la especificacin de la tarea a realizar (el sistema determina cmo efectuarla)Ofrece opciones predeterminadas que el usuario no necesita especificar.El programador no es enfrentado a ningn cdigo, siempre usa la interface.Requiere traduccin y cada instruccin en convertida en muchas instrucciones en lenguaje demaquina.

    Errores fciles de localizar.Orientados hacia bases de datos, objetos OLE.

    1. Orientados a procedimientos

    Ej: dBASE, Clipper, FoxBASE...

    2. Lenguajes de consulta (query) y recuperacin (SQL)

    Ej: SQL server

    3. Lenguajes generadores (de reportes, aplicaciones, pantallas...)

    Son lenguajes que brindan al programador una serie de facilidades que permiten el desarrollo de programas deuna forma mas sencilla y rpida. Los lenguajes de cuanta generacin poseen como caracterstica principal, elpoder generar de forma automtica, el cdigo (programas, procedimientos, funciones, subrutinas) encargadode la realizacin de algunos procesos parciales que intervendrn en un programa o inclusive generar la mayorparte del programa que se requiere. Todo ello a travs de un mtodo conversacional entre el computador y elprogramador.

    Ejemplos: Herramientas CASE, Informix

    CASE: Computer Aid Software Enginering (ingeniera de software asistida por computadora) que permiten alprogramador desarrollar aplicaciones en cortos periodos de tiempo debido a que las herramientas CASEgeneran de forma casi automtica el cdigo (la lista de instrucciones) que se realizan en un proceso muysimple para el usuario.

    Programacin orientada a eventos:

    Programacin de aplicacin que responde a las entradas del usuario (seleccionando mens, botones,formularios etc) o de otras aplicaciones a tiempos regulares.

    Programacin orientado a procedimientos:

    Mtodo de programacin que requiere de una disciplina como FORTRAN, COBOL, BASIC, C, Pascal yXbase. El programador escribe el cdigo en cierto orden para resolver el problema, basado en susconocimientos del proceso y la programacin. La aplicacin resultante fuerza al usuario a seguir un caminopredefinido desde el paso A al paso B. Un ejemplo tpico es el ingreso de datos,

    11

  • 7/31/2019 FOXPRO 2.6

    12/121

    USE filex

    DO WHILE !EOF()

    ? COD,APE,NOM

    SKIP

    ENDDO

    No procedural seria:

    USE filex

    LIST OFF COD,APE,NOM

    Lenguaje orientado a problemas:

    Lenguaje de computacin diseado para manejar un problema particular. Ej: FORTRAN fue diseado para

    ingeniera, COBOL para negocios y GPSS para simulaciones.

    Programacin visual: Programas basados en herramientas visuales como mens, botones y cualquierelemento grfico, que se puede seleccionar de una paleta, se arrastra y suelta donde se desea sobre la pantalla.Esto tambin puede referirse a poder conseguir el cdigo fuente interactuando con diagramas de flujo ygrficos lgicos asociados a cdigos. Ej: Visual BASIC, Visual FoxPRO, Visual C++...

    Orientado a objeto (OOP): Su objetivo es el de aumentar la productividad del programador incrementandola extensibilidad y reutilizando el software, controlando la complejidad y el costo de mantenimiento.

    Ejemplos: C++, Turbo PASCAL, Power Builder...

    3. Por su aplicacin:

    a. Cientficos: Son aquellos cuya aplicacin mas inmediata es resolver problemas de calculo. Histricamenteson los primeros lenguajes evolucionados ya que la formulacin matemtica permite una fcil formacin dellenguaje. Los primeros fueron el SHORT CODE, creado por el Dr Mandy en 1949, para UNIVAC y elSPEED CODING desarrollado en 1953 por Backus y Saldon para IBM. Los mas usado: FORTRAN,PASCAL, BASIC, LOGO, y APL, pero antes de llegar ellos aparecieron otros como: MATH MATIC,UNICODE, IT, GAT y FORTRANSIT.

    b. De gestin: Son lenguajes orientados a la solucin de problemas de tratamiento de datos para la gestin,por lo que predominan las instrucciones dedicadas a procesar instrucciones de entrada y salida. El primero fue

    el FLOWMATIC desarrollado en 1955 por el Dr Hopper para UNIVAC. El lenguaje mas caracterstico deentre los de gestin es el COBOL, seguido por el RPGII.

    c. Polivalentes o aplicacin general: Son los resultados del intento de obtener un lenguaje que cubriera tantoel rea cientfica como el rea de gestin de forma equilibrada. EL primero fue JOVIAL, desarrollado en 1959por la Strategic Air Control System. El mas conocido de estos lenguajes es el PL/1 creado en 1964. Noobstante es obligatorio apuntar en esta parte que casi la totalidad de los lenguajes cientficos han evolucionadohacia la gestin incluyendo entre sus estructuras otras nuevas extradas de los lenguajes clsicos de gestin.Tal es el caso, que con lenguajes como FORTRAN, PASCAL o BASIC se puede resolver con suma facilidadcualquiera de los problemas clsicos de gestin, en principio vedados para estos lenguajes.

    12

  • 7/31/2019 FOXPRO 2.6

    13/121

    d. Especiales: Son lenguajes con algn propsito muy especifico:

    Lenguajes para expresiones algebraicas formales.Lenguajes para manejo de archivos y banco de datos.Control de maquinaria, equipos y herramientas.

    Programas traductores

    El computad es una maquina que a pesar de sus mltiples aplicaciones o posibilidades de uso, solamentepuede comprender y procesar aquella informacin que esta expresada en lenguaje binario, es decir el lenguajede maquina.

    Como entender el computador los programas escritos en otro lenguaje ?

    La respuesta es: implementados en el sistema operativo o bien soportados en unidades de almacenamientoauxiliar, se encuentran unos programas escritos en cdigo maquina cuya misin es convertir un programaescrito en cualquiera de los lenguajes de programacin (medio, alto, 3ra, 4ta generacin u OOP) a lenguaje demaquina (bajo nivel).

    Son los llamados programas traductores, pero existen varios traductores diferenciados fundamentalmente ensu forma de actuar y en el tipo de lenguaje que permiten traducir.

    1. Ensambladores: Son muy elementales, destinados a traduccin de programas escritos en lenguajeensamblador. Debido a que la estructura de una instruccin ensamblador es muy similar a una instruccin encdigo maquina, la traduccin en cdigo maquina, la actuacin de un ensamblador se reduce a un anlisis dela sintaxis de la instruccin y su descodificacin a binario, generando el llamado programa ejecutable. Elprograma en el lenguaje original recibe el nombre de programa fuente. El ensamblador solamente proporcionael programa ejecutable a partir del fuente no detecta errores sintcticos en el anlisis de dicho programa.Como puede deducirse de lo anterior, los ensambladores realizan el trabajo de traduccin en una sola fase, sontraductores de una etapa.

    2. Compiladores: Son los mas usados, ya que traducen los programas escritos en lenguajes de alto nivel. Elproceso de traduccin es mas complejo que en el anterior debido a la presencia de macroinstrucciones, por locual, dicho proceso se desarrolla generalmente en varias etapas, normalmente dos. Una primera etapa, elcompilador realiza una labor de anlisis del programa fuente comprobando la correccin del mismo. Si detectaerrores de tipo sintctico, comunicar los mismos al usuario de alguna forma, dando por terminada su labor. Sino hay errores presentes en el programa, realizara la descomposicin de las macroinstrucciones a operadoreselementales y su traduccin a cdigo maquina, generando el llamado programa objeto. Este programa objetono es todava ejecutable aun estando representando en cdigo maquina. Algunos compiladores mas complejosrealizan estas operaciones en mas fases, siendo estos los compiladores de tres, cuatro etc etapas. En unasegunda etapa, teniendo el programa objeto y con la colaboracin de algn otro programa del sistema(linkeador), se realiza la asignacin de las direcciones reales, inclusin de definiciones y procesos etc que

    permitan finalmente la generacin del llamado programa ejecutable. Una vez concluido estos procesos, elprograma podr ejecutarse cuantas veces se desee sin necesidad de nuevas traducciones o compilaciones.

    3. Intrpretes: Son tambin traductores destinados a los lenguajes de alto nivel, pero con una forma detrabajo distinta a la de los compiladores. Como hemos visto anteriormente un compilador acta sobre todo elprograma fuente en conjunto, mientras que un interprete lo hace instruccin a instruccin: toma unainstruccin del programa fuente, analiza su sintaxis, la descompone en operaciones elementales, descodifica acdigo maquina y por ultimo, la ejecuta. Si durante este proceso, el interprete localiza algn error de tiposintctico, lo comunica al usuario interrumpiendo su accin. Como puede deducirse fcilmente de esta formade actuacin, cuando se necesita ejecutar un programa mediante interprete, es necesario realizar el proceso de

    13

  • 7/31/2019 FOXPRO 2.6

    14/121

    traduccin completo pues como se habr observado, el intrprete no crea el programa ejecutable, con laconsiguiente perdida de tiempo que el analizar instruccin por instruccin provoca.

    Programa fuente:

    Es el programa que escribi el programador. Ello se realiza a travs de un editor de textos.

    Programa objeto:

    Es el resultado de convertir el programa fuente hacia el lenguaje de maquina. Este proceso es realizado por elcompilador. El proceso se denomina compilacin y el cdigo resultado, objeto o compilado.

    Programa ejecutable:

    Es el resultado de agregar al programa objeto: definiciones, datos, procesos y direcciones reales de ejecucinque permitan al programa comportarse de forma conveniente en la memoria del computadora durante suprocesamiento. Esta labor la realiza el montador (linkeador)

    Algoritmo

    Es el conjunto de etapas o pasos que nos permiten solucionar un problema o situacin.

    Criterios de evaluacin de lenguajes de programacin

    Al momento de evaluar un lenguaje de programacin se debe tener en cuenta varios caractersticas:

    Variedad de tipos de datos: Un buen lenguaje de programacin debe contar con un variado nmero de tiposde datos, que le permitan todo tipo de procesos.

    Programacin estructurada: Consiste en desarrollar programas en los cuales cada proceso o parte delprograma est claramente definido y no colisiona con los dems procesos. Esto quiere decir que el programadebe estar desarrollado de una manera organizada que nos permita entenderlo con facilidad para poder hacercorrecciones futuras sin muchas complicaciones. Un buen lenguaje de programacin debe permitirprogramacin estructurada.

    Programacin Orientada a objeto (OOP): Son los que permiten aumentar la productividad delprogramador, incrementando la extensibilidad y reutilizacin del software, as como tambin controlar lacomplejidad y costo del mantenimiento del software.

    Transportabilidad: Un lenguaje es transportable, si es posible escribir un programa en un tipo o modelo decomputador, usando una versin del lenguaje diseada para ese computador y luego poder usar el mismoprograma en otro modelo o tipo de computador, con su respectiva versin del mismo lenguaje, sin necesidad

    de hacer cambios en el programa o quizs muy pocos.

    Generacin de cdigo: Los programas objeto y ejecutables logrados a travs de un lenguaje deben sercompactos y ptimos en su velocidad de proceso.

    Flexibilidad: Un buen lenguaje de programacin, debe permitir la realizacin de correcciones,modificaciones o mejoras, en los programas que se escriben con el, de una forma flexible y sincomplicaciones.

    Acceso a bajo nivel: La ejecucin de rutinas escritas haciendo uso del bajo nivel, permitiendo ganar

    14

  • 7/31/2019 FOXPRO 2.6

    15/121

    velocidad en el procesamiento, por esta razn un buen lenguaje debe permitir algunas formas de acceso haciaeste nivel.

    Fcil de aplicar: Un lenguaje debe ser un mtodo entendible y practico, que brinde facilidades alprogramador, para el desarrollo de aplicaciones.

    Enlace con otros lenguajes: Un buen lenguaje de programacin, debe contener caractersticas que lepermitan ejecutar rutinas escritas en otros lenguajes de programacin. Esta posibilidad es muy importante

    cuando se realizan grandes proyectos de programacin, en los cuales es comn el uso de rutinas o programasescritos en diferentes lenguajes.

    Generacin de libreras: Un buen lenguaje debe permitir agrupar en libreras o archivos, las rutinas que vadesarrollando el programador durante la realizacin de un programa, de tal forma que le sea posible hacer usode ellas en nuevos programas, sin ser necesario reescribirlas, sino simplemente agregarlas de forma inmediataen el cdigo del nuevo programa.

    ALGUNOS LENGUAJES

    FORTRAN

    Fue desarrollado por Backus en 1954, publicando IBM el primer manual en 1956. Su nombre proviene deFORmula TRANslation y es un lenguaje tpicamente de clculo, para misiones cientficas y de ingeniera.Mantuvo durante mucho tiempo las formas bsicas y el estilo que lo acercaban a la gestin, es decir se haperfeccionado hacindose ms potente, pero su estilo sigue siendo el mismo.

    Los tipos de datos permitidos son: enteros reales, complejos y alfanumricos, pudiendo formar con ellosexpresiones numricas, lgicas y alfanumricas. Usa bucles, bifurcaciones, subrutinas externas, etc lo que lehace valido para la resolucin de cualquier tipo de problema cientfico, as como estructura de datostpicamente de gestin, tablas y cualquier tipo de archivo.

    No es necesario numerar todas las sentencias del programa, solo aquellas a que se refiere un bucle obifurcacin. Una de las ventajas de FORTRAN es que las frmulas algebraicas se escriben prcticamenteigual que las frmulas matemticas convencionales.

    COBOL

    Su nombre deriva de COmmon Business Oriented Languaje, fue diseado expresamente para elprocesamiento de datos administrativos y de ndole comercial, que surge como resultado del esfuerzo decreacin de un lenguaje estndar para programar computadoras que procesan datos comerciales. Suscaractersticas fueron establecidas en 1959 por un comit de trabajo integrado por representantes de losprincipales usuarios de lenguajes de computador, fabricantes de computadores y representantes del gobierno,denominado CODASYL (Conference On Data Systems Lenguaje). La ultima versin de COBOL, fue

    aceptada en 1974 por el ANSI (American National Standars Institute).

    Es un lenguaje estructurado, sigue ciertos principios de diseo modular, simplificando las tareas deprogramacin y mejorando la autodocumentacion. COBOL hace una distincin til entre elementos y grupode elementos, formando jerarquas de estructura de datos.

    RPG (Report Program Generator)

    Esta orientado al uso administrativo y por su estructura el programador no necesita conocer la maquina,confiando esta tarea al compilador.

    15

  • 7/31/2019 FOXPRO 2.6

    16/121

    Fue desarrollado por IBM en los aos 60, para usarlo en sus propios sistemas. En 1974 se crea una nuevaversin que mejoraba la potencia del lenguaje y hacia ms sencilla las operaciones de entrada y salida.

    En 1980 aparece el RPGII diseado para entornos mas sofisticados, permitiendo usar programacinestructurada, bases de datos etc

    LOGO

    Fue desarrollado en 1968 por la National Science Fundation como parte de un proyecto de investigacin, conla principal finalidad de acercar a los nios al mundo del computador.

    Es un lenguaje de procedimientos interjectivos, que usando la geometra de una tortuga como base, adentra alos nios en el mundo de la ciencia, las matemticas y el rea de la construcciones de modelos intelectuales.

    El LOGO se compone de rdenes que a su vez forman procedimientos, todo en un modo grfico, que permitedibujar lneas y girar en cualquier direccin, pudiendo crear figuras, sin tener que dibujar punto a punto.

    ADA

    Desarrollado por Honeywell Bull en 1878, para el departamento de defensa de EEUU, con en fin de que seausado para crear programas en las grandes computadoras, como los usados por aviones, misiles, radares,sistemas de control de armamento etc

    Es muy legible, permite la programacin modular, tiene facilidades para la entrada y salida de datos,permitiendo el control de muchos dispositivos y el procesamiento paralelo.

    LISP (LISt Processing)

    Lenguaje usado en programacin no numerica para inteligencia artificial. Diseados en 1960 por JohnMcCarthy, su sintaxis y estructura es muy diferente a la programacin tradicional. Ej: No hay diferencia en lasintaxis de los datos e instrucciones.

    PASCAL

    Apareci en 1971, con el propsito fundamental de ensear la programacin estructurada. Su nombre es enhonor al matemtico Francs del siglo XVII, Blaise Pascal.

    Es un lenguaje estructurado, es decir que sin importar el tamao del programa, esta formado porsubprogramas menores, cada uno de los cuales en s mismo es un programa estructurado, por lo que son muylegibles, se puede definir todos los tipos de datos que se desee, por lo que es aplicable a diversos problemas.

    Debe declararse al inicio todas las variables y su tipo, definir el uso de cada smbolo, haciendo que presente

    pocos errores y fciles de corregir. Un programa en PASCAL tiene tres partes: cabecera, declaraciones ycuerpo.

    BASIC (Beginners All Purpose Simbolic Instruction Code)

    Fue diseado inspirado en FORTRAN, como una versin mucho mas simplificada, que pretende brindar a losusuarios un medio fcil y practico para realizar programas de computadores, no obstante ha llegado a ser unlenguaje tan completo, que con las modificaciones actuales orientadas a programacin estructurada.

    Desarrollado durante los aos 1963 y 1964 en el Dartmonth College de Hannover, bajo la direccin de los

    16

  • 7/31/2019 FOXPRO 2.6

    17/121

    profesores John Kemeny y Thomas Kurtz, pero desde entonces se han desarrollado muchas versiones odialectos.

    Se caracteriza por ser un lenguaje de alto nivel interactivo, normalmente trabajaba mediante interpretes, perotambin hay estructurados y usando compiladores. Cada instruccin esta formada por: verbo y parmetros.

    Visual Basic

    Versin BASIC de Microsoft con una interface grfica que permite el diseo del cdigo arrastrando ysoltando objetos desde una barra de herramientas.

    Lenguaje C

    La historia de la creacin del lenguaje C se remonta a 1974 en los Laboratorios Bell haba sido diseado elUNIX y cansados los programadores de reescribir una y otra vez su cdigo para cada nueva computadora queprobaban, uno de ellos Ken Thompson cre un lenguaje que llam B, una simple versin de un lenguajellamado BCPL (una versin de CPL).

    Luego con la intensin de mejorar el B, junto a Dennis Ritchie crearon C con el que reescribieron por ltima

    vez el UNIX y en las siguientes pruebas se limitaban a crear el compilador para la nueva computadora y conel mismo cdigo fuente generaban un nuevo objeto, es por esto que UNIX puede correr en una gran variedadde micros, minis y mainframes..

    Tiene muchas ventajas sobre otros lenguajes de programacin, es muy potente, tiene gran variedad deoperadores y comandos, es flexible, se presta para la programacin estructurada, es porttil, es decir se puedeejecutar en otro sistema con unos pocos cambios, muy veloz, casi comparable al ensamblador, til paraescribir cualquier cosa, desde sistemas operativos y compiladores hasta juegos y aplicaciones.

    Este Lenguaje de alto nivel es capaz de manipular la computadora como si fuese un programa ensamblador.Durante la segunda parte de 1980, C fue el lenguaje elegido por los programadores profesionales de softwarecomercial.

    Comparado con otros lenguajes de alto nivel C aparece complicado, pero permite gran flexibilidad. Fueescandalizado por ISO y ANSI (X3J11 committee) en 1989.

    Ej: Turbo C y Microsoft C

    C++

    Versin C orientada a objeto creada por Bjarne Stroustrup. Se volvi muy popular porque combinaba laprogramacin tradicional en C con la capacidad OOP. Smalltalk y otros lenguajes originales OOP no proveanla estructura familiar de lenguajes convencionales como C y PASCAL.

    Ej: Borland C++ y Visual C++.

    El C++ es el resultado de varios aos de experimentacin y bsqueda, en los laboratorios Bell de AT&T, paracrear un sucesor al C incluyendo todas las caractersticas de este y aadiendo nuevas facilidadesespecialmente como la programacin orientada a objeto (OOP). Sus principales caractersticas son:

    Programacin estructurada y orientada a objetoEconoma de expresionesAbundancia de operadores y tipos de datos

    17

  • 7/31/2019 FOXPRO 2.6

    18/121

    Codificacin de alto y bajo nivel simultneamente.Reemplaza ventajosamente la programacin en lenguaje de mquina o ensambladorUso natural de las funciones primitivas del sistema.Produccin de cdigo objeto y ejecutables altamente optimados.Facilidad de aprendizaje.

    Visual C++

    Creada en 1993 por Microsoft, versin orientada a objeto que permite adems la programacin visual.

    PowerBuilder

    Generador de aplicaciones cliente/servidor de Microsoft, con un lenguaje de programacin parecido a BASIC.Soporta SQL varios tipos de bases relacinales de datos incluso DB2 y Oracle, reportes QUERY y generadorde grficos.

    dBASE

    Fue la primera DBMS (Data Base Mannager Software) para PC. Creada por Borland. Su nombre original fue

    Vulcan, dBASE fue creado por Wayne Ratliff para administrar un equipo de football americano. Fue pulidoen el Jet Propulsion Labs de Los Angeles.

    Renombrado dBASE II cuando Hal Lashlee y George Tate formaron AshtonTate para comercializarlo(AshtonTate fue adquirido por Borland en 1991), dBASE fue muy popular por muchos aos, convirtindoseen el estndar en PC.

    dBASE es un lenguaje de 4ta generacin, con un intrprete, adems de permitir el uso en forma interactiva.

    dBASE II

    Introducido en 1981, originalmente introducido para computadores con CP/M y luego en PCs con DOS.

    dBASE III

    Introducido en 1994, fue una mejora importante introducido solo para PCs.

    dBASE III Plus

    Introducido en 1986, su principal cambio introduccin de mens y la opcin de relacionar las tablas en formavisual.

    dBASE IV

    Introducido en 1988, redefinen los mens e introducen generadores de reportes, pantallas y consultas QBE delenguaje SQL. Tambin incluyen matrices y ventanas. Versiones para PC, UNIX, VAXs y Macintosh.

    Compilador dBASE

    Definitivamente uno de los puntos dbiles de dBASE por lo que Fox le quito la supremaca del mercado sedeba a que dBASE no tenia un compilador y el cdigo deba ser interpretado, restando mucha velocidad deejecucin.

    18

  • 7/31/2019 FOXPRO 2.6

    19/121

    Esto significa que usando el cdigo de alto nivel, escribimos el codicio en un editor de textos ASCII (PRG)que posteriormente ejecutamos (DO), entonces dBASE tiene que mirar una lnea de cdigo fuente, traducira alenguaje maquina y ejecutar los mandatos resultantes. El problema es que esto lo hace cada vez queejecutamos el programa.

    Clipper, Force, Quicksilver, Reflex apareci inicialmente como compiladores para cdigo generado endBASE, subsanando as su deficiencia, lamentablemente al producirse errores de sintaxis era bastante difcildepurarlos.

    FoxBASE+ naci con un compilador que generaba objetos que al ser ejecutados por va el mdulo ejecutor(RunTime) eran notoriamente ms rpidos que el simple cdigo a ser interpretado instruccin a instruccin,sin el problema de la difcil depuracin.

    FoxBASE+

    DBMS creado por Fox Software (comprado posteriormente por Microsoft) que gano mucha popularidad porsu gran velocidad y compatibilidad con dBASE III PLUS

    FoxPRO

    DBMS de Microsoft para PCs. Versin mejorada del FoxBASE. FoxPRO incluye ventanas, menus, consultasQBE de lenguaje SQL y "Rushmore" tecnologa para la rpida consulta de tablas grandes. Compatible dBASEIV.

    PRG ( compilador )> FXP ( enlazador )> EXE

    Access

    DBMS para Windows de Microsoft que lee datos desde dBASE, Paradox, archivos Btrieve, Microsoft ySYBASE SQL y otros. Su lenguaje de programacin es el BASIC y una serie de magos ayudan en la creacinde reportes, consultas y grficos.

    Xbase

    Nombre genrico que se le da a dBASE, Clipper, FoxPRO, Paradox... Una simple comando como LIST(mostrar los datos de una base de datos) requeriran muchos comandos en un lenguaje de 3ra generacin, leerun registro, verificar el fin de archivo, poner cada campo en la pantalla y repetir este proceso hasta terminarcon todos los datos. Pero no todos los comandos de Xbase son de 4ta generacin, por lo que algunos dicen quees una mezcla de 3ra y 4ta generacin. Consultas y generacin de reportes son tambin 4ta generacin.

    Capitulo 4

    Normalizacin de sintaxis

    Usar la notacin Hngara.

    Primera letra de variable una minscula (x) el resto maysculas.Todos los comandos y funciones en maysculas y solo las primeras 4 letras.Las funciones de usuario deben tener combinacin de maysculas y minsculas. Ej: xApePat,xFecNac etc.

    Reglas de un buen programados:

    19

  • 7/31/2019 FOXPRO 2.6

    20/121

    Hgalo simpleLos archivos temporales, cambios de variable y exceso de llamadas a subrutinas o procedimientos son unatrampa en la que se debe evitar caer.

    Los nombres de programas, procedimientos, funciones de usuario, variables, tablas y campos deben sersignificativos a primera vista, como: CODCLI, VALVTA, VTABRU y no RAMBO, CHICHE, XXX oSDXP5D02. Si tienes un campo llamado CODCLI lo debes capturar usando la variable xCODCLI.

    Cuando tengas dudas sobre el paso a seguir, remtase a la primera regla.

    Para que la programacin en grupo funcione, debemos usar todos un mismo estilo, entre los masimportantes:

    El estilo de mens, pantallas y formatos debe ser uniformes. Es decir seguir el mismo orden: entrada,preparacin de entorno, apertura de tablas, operaciones de control de flujo, salida. Ojo no abusar de lasconfirmaciones... estas seguro de que estas seguro ?

    Reglas fijas en la escritura de cdigo fuente:Ttulos: encerrados en *Comentarios: anteponiendo *Comandos y funciones de Fox en maysculasVariables en minsculas y siempre con x, si es una variable que contiene un campo debe llevar el nombre

    del campo.

    Funciones de usuario en minsculas y empezando con w.Pensar siempre en el usuarioCon el usuario plantear el problema y solucin en forma terica y con sus palabras (nombre de opcionesetc)

    Escribir cdigo fuente como se ha planteado sin desviaseSometer el resultado nuevamente al usuario.Parametrizacion de todo aquello que pueda ser interesante de cambiar despus. Discos y directorios, coloresde pantalla, nombre de empresa, ao de trabajo etc

    Anlisis exhaustivo del tiempo de ejecucin, para minimizarlo.Cuidado con la excesiva proliferacin de variables. Las variables saturan la memoria de trabajo, sobre todolas de tipo texto usadas como ttulos.

    Conforme se va desarrollando una aplicacin se debe ir elaborando la documentacin pertinente, que debecontener mnimo la definicin de las bases de datos, sus campos y sus ndices. Seria aconsejable adems undiagrama de flujo de datos entre las bases por tareas.

    Consejos generales:

    Para un buen manejo de la memoria se recomienda el uso de cdigo compacto, puedes usar solo lasprimeras 4 letras de cada comando o funcin.

    Si necesitas usar TEXT...ENDTEXT varias veces para presentar pantallas, es mejor crear una base dedatos con un campo C con el nombre de la pantalla y un campo MEMO que la contenga.

    SELE 10

    USE PAN

    SEEK xPAN

    DISP MEMO

    Si necesitas poner 'Pulse una tecla para continuar...' muchas veces en tu programa, mejor guarda estacadena en una variable y haces @ x,y SAY xMEN1

    20

  • 7/31/2019 FOXPRO 2.6

    21/121

    Siempre usa SPACE() y REPL('',40) en lugar de cadenas.Crea un archivo llamado ESTRU.DBF con los siguientes campos:

    Campo C 10 Nombre del campo

    Tipo C 1 Tipo de campo (C,N,D...)

    Long N 3 Longitud del campo

    Fil N 2 Fila en la que se posiciona

    Col N 2 Columna " " "

    Mensaje C 35 Mensaje para el prompt

    Mascara C 12 Picture usado

    Un ejemplo seria el siguiente:

    Cdigo C 4 5 10 Introduzca el cdigo de usuario !

    Nombre C 30 7 10 Introduzca el nombre del usuario !

    Sueldo C 6 9 10 Introduzca el sueldo bsico E 999,999

    Su uso:

    GO TOP

    DO WHILE !EOF()

    camp=TRIM(campo)

    DO CASE

    CASE tipo='C'

    x&camp=SPACE(long)

    CASE tipo='N'

    x&camp=0

    CASE tipo='D'

    x&camp=DATE()

    ENDCASE

    xmasc=TRIM(mascara)

    @ fil,col SAY mensaje GET x&camp PICT &xmasc

    21

  • 7/31/2019 FOXPRO 2.6

    22/121

    READ

    SKIP

    ENDDO

    Capitulo 5

    Anlisis y diseo de sistemas

    Dentro de las organizaciones, es el proceso de examinar la situacin de una empresa con el propsito demejorarla con mtodos y procedimientos mas adecuados.

    El anlisis de sistemas, es el proceso de clasificacin e interpretacin de hechos, diagnostico de problemas yempleo de la informacin para recomendar mejoras al sistema. Es necesario comprender en su totalidad losdetalles de una situacin y decidir si es deseable o factible una mejora. La seleccin del mtodo, ya sea usar ono una computadora, es un aspecto secundario.

    El diseo de sistemas es el proceso de planificar, reemplazar o complementar un sistema de organizaciones

    existente.

    Sistema

    Es un conjunto de componentes que interrelacionan entre s para lograr un objetivo comn. Nuestra sociedadesta rodeada de sistemas:

    Todos tenemos un sistema nervioso, por medio del cual somos capaces de tener sensaciones fsicas,formados por el cerebro, medula espinal, nervios y clulas sensoriales bajo la piel.

    Nos comunicamos con el lenguaje, que es un sistema de palabras y smbolos que tiene significadoespecifico para quienes lo usamos.

    As mismo vivimos en una sociedad en la que intercambiamos bienes y servicios por otros de valorcomparable en el que los participantes obtienen un beneficio en el intercambio.

    Una organizacin tambin es un sistema donde sus componentes (produccin, ventas, contabilidad,investigacin, personal, despacho) trabajan juntos para generar utilidades que beneficien tanto a losempleados como a los accionistas. Cada uno de esos componentes, es un sistema, que a su vez estacompuesto por otros sistemas.

    La finalidad de un sistema es la razn de su existencia, para alcanzar sus objetivos interaccionan con su medioambiente.

    As existen sistemas de informacin:

    Procesamiento de transacciones (TPS): Facturacin, entrega de mercadera, pago de empleados,deposito de cheques...

    Informacin administrativa (MIS): Los que ayudan a tomar decisiones y resolver problemas,principalmente recurriendo a los datos almacenados en TPS acumulados en periodos (semanas, meses,aos) o por lnea de productos.

    Soporte de decisiones (DSS):

    Analista de sistemas

    Cuando un analista comienza a trabajar en un proyecto de sistemas de informacin, a menudo tiene que

    22

  • 7/31/2019 FOXPRO 2.6

    23/121

    profundizar en un rea de la organizacin con la que tiene poca familiaridad. A pesar de esto, debe desarrollarun sistema que ayude a los gerentes y personal de esa rea.

    El analista debe conocer la respuesta a las siguientes preguntas:

    1. Qu es lo que hace el sistema y cmo lo hace ?

    2. Qu procesos integran el sistema ?

    3. Qu datos emplea cada proceso ?

    4. Qu datos son almacenados ?

    5. Qu datos ingresan y abandonan el sistema ?

    6. Qu tan grande es el volumen de transacciones o decisiones ?

    Cualquier nuevo sistema o conjunto de recomendaciones para cambios en el sistema existente, ya sea estemanual o automatizado, debe conducir hacia una mejora. Para alcanzar este resultado, se espera que el analista

    de sistemas haga lo siguiente:

    Aprenda los detalles y procedimientos del sistema en uso.Obtenga una idea de las demandas futuras de la organizacin como resultado del crecimiento, delaumento de la competencia en el mercado, de los cambios en las necesidades de los consumidores, dela evolucin de las estructuras financieras, de la introduccin de la nueva tecnologa y cambios en laspolticas del gobierno entre otros.

    Documente detalles del sistema actual para su revisin y discusin por otros.Evale la eficiencia y efectividad del sistema actual y sus procedimientos, tomando en cuenta elimpacto sobre las demandas anticipadas para el futuro.

    Recomiende todas las revisiones y aplicaciones del sistema actual, sealando su justificacin. Si esapropiado, quiz la propuesta de un nuevo sistema completo.

    Documentar las caractersticas de un nuevo sistema con un nivel de detalle que permita comprender aotros sus componentes e interpretacin del problema, de manera que permita manejar el desarrollo delnuevo sistema.

    Fomentar la participacin de gentes y empleados en todo el proceso, tanto para aprovechar suexperiencia y conocimientos del sistema actual, como para conocer sus ideas, sentimientos yopiniones relacionadas con los requerimientos de un nuevo sistema o de los cambios para el actual.

    Parece esta lista ser demasiado exigente ? quiz abrumadora ? aunque no siempre se expresa de maneraconcisa, estas tareas representan las expectativas que muchas organizaciones tienen sobre el trabajo de losanalistas de sistemas. Como si fuera poco normalmente se aade otro requisito:

    La tarea debe completarse con rapidez, dentro de pasos establecidos y con un mnimo de interrupcinpara los gerentes y empleados.

    Para tener xito, un buen analista de sistemas estructura el proceso que debe seguir para desarrollar estetrabajo.

    Estrategias para el desarrollo de sistemas

    Hay 3 distintos mtodos para desarrollar un sistema:

    23

  • 7/31/2019 FOXPRO 2.6

    24/121

    1. Ciclo de vida:

    Incluye las actividades de investigacin preliminar, determinacin de requerimientos, diseo del sistema,desarrollo del software, pruebas e implantacin.

    Requerimientos del sistema deben ser previsibles.Manejable como proyecto.Gran volumen de transacciones y procesamiento.

    Requiere validacin de datos de entrada.Abarca varios departamentos y es un desarrollo en equipo.Tiempo de desarrollo largo.

    2. Anlisis estructurado:

    Se enfoca en lo que el sistema o aplicacin realizan sin importar la forma en que llevan a cabo su funcin (seabordan los aspectos lgicos y no los fsicos). Emplea smbolos grficos para describir el movimiento yprocesamiento de datos. Los componentes importantes incluyen los diagramas de flujo de datos y eldiccionario de datos.

    Adecuado para todo tipo de aplicacin.

    Principalmente usado cuando se trata de un desarrollo nico y no en equipo.Mayor utilidad como complemento de otros modelos de desarrollo.Tiempo de desarrollo corto.

    3. Prototipo:

    Desarrollo iterativo o en continua evolucin donde el usuario participa directamente en el proceso.

    Condiciones nicas de la aplicacin donde los encargados del desarrollo tienen poca experiencia oinformacin o donde los costos o riesgos de cometer un error pueden ser altos.

    Asimismo til para probar la factibilidad del sistema, identificar los requerimientos del usuario,evaluar el diseo de un sistema o examinar el uso de una aplicacin.

    Tiempo de desarrollo indefinido.

    Ciclo de vida

    Es un proceso formado por las etapas de anlisis y diseo, comienza cuando la administracin o algnmiembro del personal encargado de desarrollar sistemas, detectan un sistema de la empresa que necesitamejoras.

    1. Investigacin preliminar:

    Tiene tres partes: la aclaracin de la solicitud, estudio de factibilidad (tcnica, econmica y operacional) yaprobacin de la solicitud.

    2. Determinacin de los requerimientos del sistema

    Qu es lo que se hace ?

    Cmo se hace ?

    Con qu frecuencia se presenta ?

    24

  • 7/31/2019 FOXPRO 2.6

    25/121

    Qu tan grande es el volumen de transacciones o decisiones ?

    Cul es el grado de eficiencia con el que se efectan las tareas ?

    Existe algn problema ? que tan serio es ? cual es la causa que lo origina ?

    3. Diseo del sistema

    4. Desarrollo del software

    5. Prueba de los sistemas

    6. Implementaron y evaluacin

    Evaluacin operacional

    Impacto organizaciones

    Opinin de los administradores

    Desempeo del desarrollo

    Anlisis estructurado

    Es un mtodo para el anlisis de sistemas manuales o automatizados, que conducen al desarrollo deespecificaciones para sistemas nuevos o para efectuar modificaciones a los que ya existen. Este anlisispermite conocer un sistema, proceso o actividad en una forma lgica y manejable al mismo tiempo queproporciona la base para asegurar que no se omite ningn detalle pertinente.

    El objetivo principal del anlisis estructurado es organizar las tareas asociadas con la determinacin derequerimientos para obtener la comprensin completa y exacta de una situacin dada.

    La palabra estructurado significa que el mtodo intenta estructurar el proceso de determinacin de losrequerimientos comenzando con la documentacin del sistema existente, intenta incluir todos los detallesrelevantes, para que sea fcil verificar si se han omitido detalles, identificar los requerimientos.

    Muchos confunden el anlisis estructurado con el diagrama de flujo de datos que es solo una herramienta,aunque es quiz la herramienta esencial.

    El anlisis estructurado hace uso de las siguientes herramientas para responder las cuatro preguntasanteriormente planteadas:

    1. Diagrama de flujo de datos:

    Herramienta grfica que se emplea para identificar y describir los componentes, procesos y datos de unsistema, junto con las relaciones entre estos ellos, el movimiento de los datos a travs del sistema y lugaresdonde se almacenan dichos datos. Hay quienes dividen estos diagramas en lgicos y fsicos.

    2. Diccionario de datos:

    Descripcin de los datos y de dnde son usados en el sistema. Incluyen nombre, descripcin, alias, formato decontenido, organizacin, donde son generados y por que procesos son usados.

    25

  • 7/31/2019 FOXPRO 2.6

    26/121

    3. Descripcin de procesos y procedimientos:

    Declaraciones formales que emplean tcnicas y lenguajes que permiten a los analistas describir actividadesimportantes que forman parte del sistema. Describe jerarquas entre los mdulos componentes y los datos quesern transmitidos entre ellos, el anlisis de las transformaciones de entrada y salida de datos y el anlisis detransacciones.

    Herramientas para el desarrollo de sistemas

    1. Para anlisis

    2. Para diseo

    3. Para desarrollo

    Preguntas de reflexin

    Cul es el mtodo de desarrollo correcto de un sistema ?Deben dos analistas desarrollar una lista idntica de requerimientos cuando estudian en forma

    independiente la misma situacin ?

    Para una situacin dada, existe siempre un solo diseo correcto para el sistema ?Una vez que el analista de sistemas comprende los requerimientos de un sistema, tiene utilidad losdiccionarios de datos ?

    Bibliografa:

    Anlisis y diseo de sistemas de informacin

    James A. Senn McGraw Hill

    Introduccin a la informtica

    Jorge Rodrguez Gua practica de Anaya Multimedia

    Capitulo 1

    Descripcin:

    FoxPRO es el ms popular y completo programa de gestin de bases de datos (DBMS o Data BaseManagement System), combinando un potente motor con la facilidad de uso de los entornos grficos, ademsde un gran numero de herramientas.

    FoxPRO es adems, un potente lenguaje de programacin modular y de procedimientos orientado a eventos yno a mens jerrquicos y anidados (como FoxBASE, Clipper y dBASE). Esta filosofa le da ntidas ventajas,en el diseo de cualquier tipo de aplicacin.

    Versin de FoxPRO a ejecutar:

    Los usuarios de FoxPRO 2.6 que tengan un procesador 386 SX o superior pueden elegir entre usar la versinEstndar o la versin Extendida de FoxPRO. En algunas ocasiones es mejor usar una versin en lugar de laotra, pero tambin hay otros casos en los que la eleccin no est tan clara.

    26

  • 7/31/2019 FOXPRO 2.6

    27/121

    Antes de decidir qu versin debe ejecutar, lea estas notas acerca del uso de memoria para las dos versiones:

    Uso de la memoria en la versin Estndar

    La versin Estndar se presenta en dos partes: una parte raz (contenida fsicamente en el archivo .EXE) y unaserie de segmentos de cdigo (contenida fsicamente en el archivo .OVL).

    Al iniciar el programa, se carga en la memoria la parte raz y se realizan algunas asignaciones adicionales de

    memoria de tamao fijo. Estas asignaciones aaden unos 290 KB de memoria. El conjunto de segmentos decdigo ocupa 1,1 MB aproximadamente.

    Una vez cargada la parte raz, el saldo de memoria por debajo de 640 KB, ms los Bloques de memoriasuperior (UMB) disponibles ms 64 KB de memoria EMS (si cargo EMM386) quedar a disposicin deFoxPRO como pila de memoria de uso general para todos los datos de los usuarios y del sistema (variables dememoria, ventanas, BROWSE, consultas, segmentos de cdigo, etc.), el resto de la memoria EMS se usa paralos bferes de E/S y para el almacenamiento de segmentos de cdigo inactivo.

    Los segmentos de cdigo se cargan bajo peticin y flotan libremente por toda la memoria disponible, tanto enla memoria general como en la pila de memoria EMS. Los segmentos de cdigo inactivo se descargan

    siguiendo el mtodo del menos usado recientemente, segn sea necesario con el fin de liberar memoria paraotros fines. Si cuando se solicita un segmento de cdigo necesario ste no est disponible, deber cargarsedesde el disco.

    Puesto que el segmento raz es relativamente pequeo, la versin

    Estndar se ejecutar realmente en menos de 400 KB. Sin embargo, para la mayora de las aplicaciones, untamao mnimo de memoria ms realista es 512 KB. Por supuesto, una cantidad mayor de memoria puedemejorar considerablemente la velocidad de ejecucin: cuanta ms memoria, mejor.

    Uso de la memoria en la versin Extendida

    Primer MegaByte:

    Se usan 80 KB para una parte del Extender.

    Si DOSMEM=ON, el saldo de los primeros 640 KB se reasignar y quedar disponible comomemoria extendida.

    Si DOSMEM=nnK, la cantidad especificada de memoria se conservar para su uso posterior mientrasse reasigna el saldo de memoria y mientras queda disponible como memoria extendida.

    NOTA: Si especifica un valor demasiado alto para DOSMEM=nnK y reduce el tamao de este bfer o lo

    elimina completamente, quiz se degrade el rendimiento de E/S.

    De la memoria restante se asigna un bfer de 60 KB como mximo, dependiendo de la cantidad dememoria disponible. Cuando ejecute el comando RUN (!), se desasignar este bfer de forma que elprograma que se ejecuta mediante RUN disponga de ms memoria.

    No se usan los bloques de memoria superior (UMB).

    Memoria extendida (EMS):

    27

  • 7/31/2019 FOXPRO 2.6

    28/121

    Todo el cdigo para la versin Extendida, junto con el resto del Extender, se carga en la memoria ypermanece residente y se hacen ciertas asignaciones de memoria fija. Para ello se requiere un total de unos1,450 KB de memoria extendida.

    Una vez realizadas estas asignaciones, el saldo de la memoria extendida quedar disponible para uso general;puede usarse para cualquier fin cuando sea necesario.

    Puesto que la versin Extendida es realmente un producto a 32 bits, algunas estructuras internas de datos

    (variables de memoria, ventanas, etc.) requieren algo ms de memoria en la versin Extendida que en laversin Estndar. Por tanto, los programas necesitarn normalmente ms memoria para poder ejecutarse en laversin Extendida que en la versin Estndar.

    Pros y contras:

    Con la versin Estndar, los segmentos de cdigo FoxPRO no tienen por qu estar residentes en lamemoria; se pueden cargar bajo peticin. Por supuesto, no existe cdigo del Extender. Esto significaque, para una cantidad determinada de memoria, habr unos 1,1 MB ms de memoria para bferes deE/S en la versin Estndar que en la versin Extendida.

    Pero, no todos los 1.1 MB pueden estar realmente disponibles para bferes. En aquellas situacionesreales donde hay aplicaciones grandes, se necesitara gran parte de esa memoria para almacenarsegmentos de cdigo de FoxPRO y otros datos.

    Puesto que la velocidad de las operaciones de E/S puede depender en gran medida de la cantidad dememoria disponible, los programas que realizan muchas operaciones de E/S pueden verseenormemente beneficiados por esta memoria adicional. Obviamente, en un sistema de 3 MB seraMUY significativo un MB adicional de memoria para bferes; esto significa que, en estos sistemasmenores, la versin Estndar probablemente superara a la versin Extendida en las pruebas de E/S.Sin embargo, la ventaja marginal que proporciona esta memoria adicional para bferes se haceinapreciable a medida que se dispone de ms memoria.

    Por otra parte, si su aplicacin est dedicada principalmente a la entrada de datos y necesita lamxima sensibilidad de la interfaz cuando se usan muchas caractersticas nuevas, la versin Extendidaser la mejor eleccin incluso en sistemas pequeos. Esto se debe a que en la versin Extendida todoel cdigo de FoxPRO est residente y no hay sobrecargas al cargar el segmento.

    Adems, en la versin Extendida, el tamao de los programas, el nmero de ventanas, la longitud delas cadenas, el nmero de variables de memoria, etc. slo estn limitados realmente por la cantidad dememoria de su sistema. Tenemos sistemas en los que hay ms de 30 MB de memoria disponible parala versin Extendida. Por el contrario, en la versin Estndar no puede acceder realmente a ms deunos 460 KB de memoria libre total para uso general. As, en el caso de aplicaciones complejas o debases de datos muy grandes (especialmente cuando se usa el SQL), ser obligatorio usar la versin

    Extendida.

    Qu versin debes usar ?

    Si tu sistema tiene 4 MB o ms de memoria, casi siempre ser mejor usar la versin Extendida. Noobstante, recuerde que independientemente de la cantidad de memoria que tenga, la versin Estndarpuede tener ms memoria disponible para bferes que la versin Extendida. Teniendo esto en cuenta,a veces es posible realizar pruebas de E/S en las que ganar la versin Estndar. Sin embargo con msde 4 MB, la versin Extendida casi siempre obtendr mejores resultados en dichas pruebas.

    28

  • 7/31/2019 FOXPRO 2.6

    29/121

    Entre 3 y 4 MB de memoria total, se produce un empate y lo recomendable es que pruebe ambasversiones y elija la versin ms adecuada para su situacin concreta.

    Si tiene 3 MB o menos, definitivamente deber usar la versin Estndar.

    Algunos limites mas saltantes:

    Mximo 1,000'000,000 de registros por tabla

    Mximo 255 campos por tablaMximo 255 caracteres por campoMximo 65,500 caracteres por registro

    Simbologa:

    La simbologa usada en esta separaba es la adoptada en la mayora de los textos de FoxPRO.

    Indica que el tem encerrado deber ser suministrado por el usuario al momento de usar el comando ofuncin. Los smbolos no debern ser incluidos.

    [ ] Indican que el tem encerrado es opcional. Los corchetes no son parte del comando.

    | indica que se debe escoger una entre dos o mas opciones.

    Capitulo 2

    Error! Marcador no definido.

    Programacin en FoxPRO

    Un programa FoxPRO es una secuencia de cdigo contenido en un archivo de texto ASCII puro con laextensin PRG al que se le llama cdigo fuente, que puede ser generado por cualquier procesador de textos.

    Si opta por usar el editor incluido en FoxPRO, desde la ventana de comandos escriba: MODIFYCOMMAND , con lo cual si existe un archivo con ese nombre y extensin PRG se abre una nuevaventana donde se podr editar su contenido. De no existir an el archivo, se abre una ventana vaca.

    Un vez terminado de escribir el programa, puedes hacer desde el mismo editor, lo que hace que elcompilador del FoxPRO verifique la sintaxis y si esta es correcta compilara el programa fuente generando elprograma objeto, usando el mismo nombre y la extensin FXP.

    Tambin puedes ejecutar un programa desde:

    1. La ventana de comandos con la orden: DO

    2. El prompt de DOS con: FOX (versin iterativa)

    3. El prompt de DOS con: FOXR (versin runtime)

    Nota: En las dos primeras opciones si la fecha del programa fuente (PRG) difiere de la del objeto (FXP)automticamente se recompila la fuente generando un nuevo objeto. La opcin 3 se limita a ejecutarla versinobjeto si existe.

    29

  • 7/31/2019 FOXPRO 2.6

    30/121

    El compilador detecta cualquier error de sintaxis que exista en el archivo fuente. Los mensajes de error decompilacin se guardan en un archivo de texto con el mismo nombre y extensin ERR.

    Un lenguaje de programacin esta fundamentado en tres soportes bsicos:

    Secuencias: Comandos que se sitan uno tras otro sin posibilidad de repeticin cclica alguna.Seleccin: Comandos que se ejecutan segn cierta condicin con los comandos: IF...ELSE...ENDIF oDO CASE...ENDCASE.

    Bucles: Comandos que se ejecutan un cierto numero de veces con los comandos: DOWHILE...ENDDO o FOR...ENDFOR.

    Hay ciertos comandos bsicos en FoxPRO como son:

    HELP [] Solicita ayuda. Tambin se pueda llamar con .

    SET STAT ON/OFF Activa o desactiva la barra de estado.

    CLEAR Limpia la pantalla

    SET DEFA TO ... Define el disco y ruta de trabajo

    SET PATH TO ... Al trabajar con varias rutas, es posible definir

    las rutas alternativas

    SET TALK ON/OFF Define el echo de los camandos sobre el escritorio.

    DIR Muestra el contenido del directorio de trabajo.

    RUN Ejecuta un comando directamente en el DOS, tambien puedes usar el simbolo

    RUN COMMAND Sale temporalmente al DOS.

    * Comentario en una lnea

    && Comentario a continuacin de un comando en misma linea

    Capitulo 3

    Mostrar datos en pantalla

    ? | ?? | [,|...] [PICTURE ] [FUNCTION ] [AT

    ]

    ? y ?? evalan expresiones y envan los resultados al escritorio.

    ? Un solo signo de interrogacin enva un retorno de carro y un avance de lnea antes de los resultados de laexpresin. Los resultados se muestran en la siguiente lnea del escritorio o la ventana activa definida por elusuario.

    Si se omiten las expresiones, se imprime una lnea en blanco.

    30

  • 7/31/2019 FOXPRO 2.6

    31/121

    Cuando se incluyen mltiples expresiones, se inserta un espacio entre los resultados de las expresiones.

    ?? Dos signos de interrogacin muestran los resultados de la expresin en la lnea y columna actual en elescritorio o la ventana activa definida por el usuario; no se enva retorno de carro ni avance de lnea antes delos resultados.

    Si est presente la clusula PICTURE, la salida de | se muestra de acuerdo con el formatoespecificado en , se puede incluir cdigos de funcin anteponiendo el smbolo @, cdigos

    PICTURE o una combinacin de ambos. Es posible poner varios cdigo de funcin juntos pero se deberponer un espacio al final de los cdigos de funcin, para diferenciarlos de los cdigos picture.

    Los cdigos de funcin afectan de forma global a |; los cdigos PICTURE actan solo sobreelementos (caracteres o dgitos) individuales del resultado.

    AT se usa para especificar el numero de columna donde se mostrar la salida. Esta opcin permite alinearla salida en columnas para crear una tabla. Valores posibles entre 0 y 79.

    Cdigos Function:

    B Justifica los nmeros a la izquierdaC Pone CR despus de los nmeros positivos (Crdito)

    D Usa el formato de fecha actual segn SET DATE

    E Usa el formato de fecha BRITISH

    T Elimina los espacios blancos delante y detrs

    X Pone DB en los nmeros negativos (Dbito)

    Z Presenta blanco en lugar de cero. Solo para nmeros

    ( Encierra los valores negativos entre ()

    ! Convierte a maysculas. Solo para caracteres

    ^ Muestra datos numricos usando notacin cientfica. Solopuede usarse con datos numricos.

    $

    Muestra datos en formato de moneda. El smbolo de monedaaparece antes o despus del valor dependiendo de SETCURRENCY. Si CURRENCY esta en LEFT nopodr usarse el cdigo de funcin $. Solo para nmeros.

    Cdigos Picture:

    X Cualquier carcter

    Y Solo valores lgicos "Y", "y", "N" y "n".

    ! Convierte a maysculas. Solo caracteres9 Dgitos o signos

    * Muestra asteriscos a la izquierda de nmeros.

    . Separador decimal

    , Separador de miles

    $ Muestra el smbolo de moneda especificado por SETCURRENCY. Como opcin predeterminada, el smbolo sesita inmediatamente antes o despus del campo. Sinembargo, es posible cambiar el smbolo de moneda y su

    31

  • 7/31/2019 FOXPRO 2.6

    32/121

    ubicacin (SET CURRENCY), el carcter separador (SETSEPARATOR) y el carcter decimal (SET POINT).

    Ejemplos:

    ? DATE()

    ? 15*(10+10)

    ? 'Bienvenido a ' FUNC '!'

    ?? 'FoxPRO'

    ? 'Hola',xNOM,'como estas ?'

    SET DECIMALS TO []

    Especifica el numero mnimo de lugares o dgitos decimales que se usaran para mostrar resultados deoperaciones matemticas, trigonomtricas, financieras, etc...

    puede tomar un valor entre 0 y 18. El valor predeterminado es dos (2).

    SET FIXED ON|OFF

    Especifica si el numero de decimales usado a; mostrar datos numricos, es fijo o no. De forma predeterminadaesta en OFF.

    NOTA: El numero de dgitos de precisin en los clculos es de 16.

    SET DECI TO 18

    ? 1000000/3 333333.333333333300000000

    ? 1000/3 333.333333333333300000

    ? 1/3 0.333333333333333300

    ? PI() 3.141592653589793000

    SET CENTURY ON/OFF

    Especifica si se usara o no los digitos de la centuria en las fechas

    SET DATE TO

    Especifica que formato de fecha usaras. AMERICAN mm/dd/aaaa o ITALIAN ddmmaaaa o JAPANaaaa/mm/dd

    Capitulo 4

    VARIABLES DE MEMORIA

    FoxPRO maneja cuatro tipos de variable:

    32

  • 7/31/2019 FOXPRO 2.6

    33/121

    Pblicas: Son las definidas en el programa principal y pueden ser usadas en cualquier subprograma oprocedimiento.

    Privadas: Son las definidas en un subprograma o usando la orden PRIVATE y solo estn disponiblesen dicho subprograma o procedimiento.

    De Sistema: Son variables pblicas incorporadas automticamente por FoxPRO, no es necesariodefinir.

    Arreglos, matrices o arrays: Son variables especiales que contiene una serie de valores, en unarreglo unidireccional o bidireccin. Las variables se identifican con un nombre y sus elementos con

    subndices. Pueden ser pblicas o privadas.

    Los nombres de variables pueden contener hasta 10 caracteres significativos, formados por letras, nmeros ysubrayados, aunque es obligatorio que la primera sea una letra. Tenga en cuenta que para FoxPRO estasvariables son las mismas:

    xAPEPAT

    xAPEMAT

    El nmero mximo de variables de memoria que puede crear es de 1,024, pero en caso necesario este lmite

    puede aumentarse (hasta 3,600 para la versin estndar o a 65,000 para la extendida) mediante la variable delsistema _MVCOUNT en el archivo de configuracin FoxPRO.

    Las variables de memoria deben ser definidas antes de ser usadas, as:

    =

    Donde:

    nombre de variable conteniendo letras, nmeros o subrayados.

    FoxPRO permite cuatro tipo de valores: carcter o cadena (entre comillas), numros, fechas (entrellaves) y lgica (entre puntos ej: .T.)

    DISPLAY MEMORY [LIKE ]

    Muestra el nombre, tipo, contenido y estado de todas las variables y matrices de memoria definidasactualmente, incluso del sistema. Adems muestra el nmero de variables de memoria definidas, el nmero debytes usados y el nmero de variables de memoria disponibles.

    LIKE

    Puede mostrar informacin de forma selectiva sobre variables y matrices de memoria incluyendo la clusula

    LIKE. Si incluye LIKE ,

    FoxPRO mostrar nicamente el contenido de variables y matrices de memoria que cumplan con la. La estructura de archivo admite caracteres comodn. Por ejemplo, para mostrartodas las variables de memoria que comiencen por la letra A, utilice:

    DISPLAY MEMORY LIKE A*

    En este ejemplo, se crean varias variables de memoria y se les asigna valores. DISPLAY MEMORY muestraprimero todas las variables de memoria que comienzan con "mue" y luego muestra todas las variables de

    33

  • 7/31/2019 FOXPRO 2.6

    34/121

  • 7/31/2019 FOXPRO 2.6

    35/121

    Ejemplo:

    val1=50

    val2='Hola'

    SAVE TO temp

    CLEAR MEMORY

    val3=DATE()

    RESTORE FROM temp ADDITIVE

    DISPLAY MEMORY LIKE val?

    Elementos de la matriz:

    El tamao de una matriz determina cuntos elementos podr contener. Cada elemento de la matriz puede

    almacenar una pieza sencilla de informacin.

    Subndices

    Los elementos de una matriz se referencian mediante sus subndices. Cada elemento de la matriz tiene unsubndice numrico nico que lo identifica. Si la matriz es unidimensional, el subndice de un elemento esigual que su nmero de fila. Por ejemplo, el subndice del elemento de la tercera fila de una matrizunidimensional es 3. Los elementos de las matrices bidimensionales se referencian mediante dos subndices:

    El primer subndice indica la fila y el segundo indica la columna en la que se encuentra el elemento. Porejemplo, los subndices del elemento que est en la tercera fila y en la cuarta columna de una matrizbidimensional son 3,4.

    El subndice o los subndices del primer elemento de una matriz empiezan siempre con 1.

    redimencionar matrices

    Puede cambiar el tamao y las dimensiones de una matriz emitiendo otra vez DIMENSION. El tamao de lamatriz puede aumentarse o disminuirse, las matrices unidimensionales pueden convertirse en bidimensionalesy las matrices bidimensionales pueden reducirse a una dimensin.

    Si el nmero de elementos de una matriz se incrementa, se copiar el contenido de todos los elementos de lamatriz original a la matriz que se acaba de Redimensionar. El resto de los elementos de la matriz se

    inicializarn con el valor falso .F.

    DIMENSION ([,])

    [, ([,])] ...

    Crea o redimensiona una o ms matrices.

    El nombre de la matriz que se crea se especifica con . Pueden crearse mltiples matrices con unasola instruccin DIMENSION incluyendo nombres adicionales de matrices (, y as

    35

  • 7/31/2019 FOXPRO 2.6

    36/121

    sucesivamente).

    Tras especificar el nombre de la matriz a crear, debe especificar el tamao de la matriz con y. Si incluyes solamente , se crear una matriz de una sola dimensin.

    Por ejemplo, el comando siguiente crea una matriz unidimensional llamada MATRIZUNO que contiene diezfilas y una sola columna:

    DIMENSION matrizuno(10)

    Para crear una matriz de dos dimensiones, incluya las dos expresiones: y . El ejemplosiguiente crea una matriz bidimensional llamada MATRIZDOS que contiene dos filas y cuatro columnas.

    DIMENSION matrizdos(2,4)

    Tambin es posible crear varias matrices en el mismo comando as:

    DIMENSION matrizuno(10), matrizdos(2,4), matriztres(3,3)

    Para enmarcar las expresiones en DIMENSION o DECLARE puede usar tanto parntesis como corchetes. Porejemplo, los siguientes dos comandos crean matrices idnticas:

    DIME matrizuno(10), matrizdos(2,4), matriztres(3,3)

    DIME matrizuno[10], matrizdos[2,4], matriztres[3,3]

    Para determinar cuntos elementos contiene una matriz y cunta informacin puede almacenar, multiplique elnmero de por el nmero de de la matriz.

    Los elementos de la matriz pueden contener cualquier tipo de dato y se inicializan a falso (.F.) cuando se creala matriz por primera vez.

    Puede inicializar todos los elementos de una matriz con el mismo valor mediante as:

    DIME y[10,3]

    y='inicial'

    DIME matriz[6]

    STORE 'A' TO matriz(1),matriz(2),matriz(3)

    STORE 'B' TO matriz(4),matriz(5),matriz(6)

    Si se disminuye el numero de elementos de una matriz, se borrarn los elementos y cualquier dato quecontengan.

    Cuando se redimensiona una matriz unidimensional a dos dimensiones, el contenido de la matrizunidimensional original se copia a la nueva matriz en el orden un elemento por fila.

    En el ejemplo siguiente, una matriz unidimensional se convierte en una matriz bidimensional. El contenido delos elementos de la matriz unidimensional se copia a la primera fila de la matriz nueva, siguiendo por la

    36

  • 7/31/2019 FOXPRO 2.6

    37/121

    segunda fila y as sucesivamente. Los elementos restantes se inicializan con el valor falso (.F.).

    DIME matrizuno(4)

    matrizuno(1)= 'E'

    matrizuno(2)= 'F'

    matrizuno(3)= 'G'

    matrizuno(4)= 'H'

    Cuando una matriz bidimensional se convierte en unidimensional, el contenido de la matriz bidimensionaloriginal se copia a la nueva matriz en el orden fila a elemento: el primer elemento de la primera fila seconvierte en el primer elemento de la matriz unidimensional, el segundo elemento de la primera fila seconvierte en el segundo elemento y as sucesivamente.

    Ejemplo:

    En este ejemplo, se crea una matriz bidimensional y se carga con datos. Se muestran los elementos de lamatriz y los datos que contienen.

    DIME muestra(2,3)

    muestra(1,2)= 'Adis'

    muestra(2,2)= 'Hola'

    muestra(6)=99

    muestra(1)=.T.

    DISP MEMO LIKE muestra

    Algunas funciones para matrices son:

    Funcin Descripcin

    ACOPY() Copia elementos de una matriz a otra

    ADEL() Borra filas o columnas de una matriz

    ADIR()Captura nombre, tamao, fecha, hora y atributos dearchivo en ruta de trabajo en una matriz

    AELEMENT() Muestra valor de un elemento de matrizAFIELDS() Captura la estructura de una tabla en una matriz

    AINS() Inserta filas o columnas a una matriz

    ALENS() Muestra el numero de elementos de matriz

    ASCAN() Busca una expresin en una matriz

    ASORT() Ordena una matriz ascendente o descendente

    ASUBSCRIPT() Transforma # de elemento en fila y columna

    ACOPY(,,[,[, [,]]])

    37

  • 7/31/2019 FOXPRO 2.6

    38/121

    Copia los elementos de , que debe existir, sobre que puede existir o no. Fox la crea.Devuelve el numero de lementos copiados.

    # de elemento de desde el que se iniciara la copia, es decir numero anteriores no serancopiados.

    # de elementos de a copiar. 1 si quieres copiar todos los elementos.

    # de elemento de donde se pondran los elemetos que vienen de

    ASORT([,[, [,]]])

    Ordena los elementos de alfabeticamente ascendente o descendente, basandose en una columnabasica y manteniendo las filas como una unidad. Todos los elemtos a ordenar deben ser del mismo tipo.Devuelve 1 si tiene xito y 1 en caso contrario.

    # de elemento desde el que se iniciara el ordenamiento y al mismo tiempo columna sobre la que seordenara.

    # de filas que se ordenaran

    0 si quieres orde ascendente y 1 si quieres descendente.

    ADIR([,[,]])

    Copia a los elementos encontrador en el directorio de trabajo y otro que se indique segn el filtro yatributos impuestos. Devuelve el numero de filas de la matriz que equivale al numero de entradas capturadas.

    Cada entrada contendra: nombre, tamao, fecha, hora y atributos DOS de cada elemetos.

    Los atributos son los mismos usados en DOS: A = para sacar backup, R = solo lectura, H = escondido y S =archivo de sistema.

    Puedes usar unidad (C:) ruta (\dos\) y filtro (*.prg) para filtras unicamente los elementos que quieresobtener. Puedes usar comodines como * y ? y debe estar todo en comillas.

  • 7/31/2019 FOXPRO 2.6

    39/121

    ASCAN(,,,)

    Busca la entre los elemtos de la , iniciando la busqueda desde el elemento eincluyendo tantos elementos como indicado en .

    Algunos otros comandos de matriz son:

    SCATTER TO MEMVAR = Copia campos a una matriz

    GATHER FROM MEMVAR = Copia la matriz a los campos

    APPE FROM = Aade registros a una tabla desde una matriz

    COPY TO = Copia registros desde una tabla a una matriz

    Capitulo 5

    Operadores

    Error! Marcador nodefinido.Aritmticos: Relacionales:

    Error!Marcadornodefinido.+

    Suma = Igual

    Resta > Mayor que

    * Multiplicacin < Menor que

    / Divisin >= Mayor o igual que

    ^ o ** Potencia

  • 7/31/2019 FOXPRO 2.6

    40/121

    Potencia ^ o ** 2

    Multiplicacin y divisin * y / 3

    Suma y resta + y 4

    Operadores relacionales =, >, 3

    2*C+14/B 7 > B1

    1/(2*A3*C) 11 = A+B+C

    C*(A+B) C/C^B+3 >= A

    A*C+B*C2 2*A+B = 20

    2*C*(A+3*B) A*BC < A^AB

    B+(A1)^A1 3*(A^32*C)/7 # B4

    B^A+B^C a $ 123

    (2*B+C)/A6 a $ 12ab345

    2^A+2^B+2^C a21 $ 12ab345

    Ejercicio 2: Dadas las variables, A=5, B=8, C=2 y D=7, determinar el valor de las siguientes expresiones:

    Verdadera o falsa ?

    Error! Marcador no definido.A^C>B

    4A>CB

    D#A+C5*A>=A+B+C+D

    .NOT. A>2

    ! A#DC

    A3#4 .AND. 2*C=D+1 .OR. ! BC1 .OR. C#B*2)

    Ejercicio 3: Dadas las variables,

    A=`javier `

    B=`hola'

    C=`vi'

    D=`JA'

    40

  • 7/31/2019 FOXPRO 2.6

    41/121

    Determinar el valor de las siguientes expresiones:

    A + B C $ A

    B + A D $ A

    A