home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-10-07 | 213.8 KB | 4,795 lines |
- M A N U A L D E U S U A R I O
- =================================
-
-
-
- INDICE
- ------
-
-
-
- PROLOGO.
-
- 1.- INTRODUCCION.
- 1.1.- EL MANUAL.
- 1.2.- ¿A QUIEN VA DIRIGIDO?
- 1.3.- COMO UTILIZAR ESTE MANUAL.
-
- 2.- NOTACION UTILIZADA EN ESTE MANUAL.
-
- 3.- INSTALACION.
- 3.1.- MATERIAL QUE COMPONE EL PAQUETE.
- 3.2.- REQUERIMIENTOS.
- 3.2.1.- REQUERIMIENTOS HARDWARE.
- 3.2.2.- REQUERIMIENTOS SOFTWARE.
- 3.2.3.- REQUERIMIENTOS DE CONOCIMIENTOS.
- 3.3.- COMO SE INSTALA EL PAQUETE.
- 3.3.1.- INSTALACION AUTOMATICA.
- 3.3.2.- INSTALACION MANUAL.
- 3.4.- FICHEROS QUE COMPONEN EL PAQUETE.
-
- 4.- EL PROGRAMA TUTOR.EXE.
- 4.1.- EJECUCION.
- 4.2.- LINEAS DE ESTADO.
- 4.3.- TECLADO.
- 4.4.- RATON.
- 4.5.- VENTANAS DE MENU.
- 4.6.- VENTANAS DE VISUALIZACION.
- 4.7.- VENTANAS DE EDICION.
- 4.8.- AYUDA LOCAL.
- 4.9.- ABANDONAR TUTOR.
- 4.10.- MENU PRINCIPAL.
- 4.11.- INFORMACION GENERAL.
- 4.12.- MENU DE LECCIONES.
- 4.13.- MENU DE TAREAS.
- 4.14.- TEORIA.
- 4.15.- PRUEBAS.
- 4.16.- EJEMPLOS.
- 4.16.1.- EL PROGRAMA EJECUTAR.EXE.
- 4.17.- EJERCICIOS.
- 4.17.1.- TESTS.
- 4.17.2.- PREGUNTAS CON COMPROBACION.
- 4.17.3.- PREGUNTAS SIN COMPROBACION.
- 4.17.4.- PROPUESTAS DE PROGRAMAS.
- 4.18.- ARGUMENTOS.
- 4.18.1.- ARGUMENTO ?.
- 4.18.2.- ARGUMENTO NP.
- 4.18.3.- ARGUMENTO MP.
- 4.18.4.- ARGMENTO L.
- 4.18.5.- ARGUMENTO T.
- 4.18.6.- ARGUMENTO NT.
- 4.18.7.- ARGUMENTO NDV.
- 4.18.8.- ARGUMENTO TC.
- 4.18.9.- ARGUMENTO PT.
- 4.18.10.- ARGUMENTO RR.
- 4.18.11.- ARGUMENTO PI.
- 4.18.12.- ARGUMENTOS P Y X.
- 4.18.13.- ARGUMENTO FMU.
- 4.18.14.- ARGUMENTO PRT.
- 4.19.- EL FICHERO T.BAT.
- 4.20.- EL PROGRAMA PORTUTOR.EXE.
- 4.21.- LOS PROGRAMAS PRTUTC.EXE Y PRTUTCPP.EXE.
-
- 5.- FICHEROS DE DATOS.
- 5.1.- FICHEROS CON EXTENSION DAT Y HLP.
- 5.2.- EL PROGRAMA INDEXAR.EXE,
- EL FICHERO POR LOTES I.BAT, Y
- EL FICHERO DE DATOS TUTOR.IND.
- 5.3.- FICHEROS DE TEORIA.
- 5.4.- FICHEROS DE EJEMPLOS.
- 5.5.- FICHEROS DE EJERCICIOS.
- 5.6.- FICHERO DE AYUDA.
- 5.7.- FICHERO DE INFORMACION GENERAL.
- 5.8.- EL PROGRAMA COMPILAD.EXE,
- EL FICHERO POR LOTES C.BAT, Y
- EL FICHERO DE DATOS TUTOR.CMP.
- 5.9.- FICHERO DE CONFIGURACION.
-
- 6.- ERRORES.
- 6.1.- ERRORES EN TUTOR.EXE.
- 6.1.1.- ERRORES EN LOS ARGUMENTOS.
- 6.1.2.- ERRORES TERMINALES.
- 6.1.2.1.- ERROR DE MEMORIA INSUFICIENTE.
- 6.1.2.2.- ERRORES DE LINEAS DE FICHEROS.
- 6.1.2.3.- ERRORES TERMINALES NORMALES.
- 6.1.2.- ERRORES NO TERMINALES.
- 6.1.4.- AVISOS.
- 6.1.5.- ERRORES DE PROGRAMACION.
- 6.2.- ERRORES EN PORTUTOR.EXE.
- 6.3.- ERRORES EN PRTUTC.EXE.
- 6.4.- ERRORES EN PRTUTCPP.EXE.
- 6.5.- ERRORES EN INSTALAR.EXE.
- 6.6.- ERRORES EN INDEXAR.EXE.
- 6.7.- ERRORES EN COMPILAD.EXE.
- 6.8.- ERRORES EN EJECUTAR.EXE.
-
- 7.- GLOSARIO DE TERMINOS.
-
- 8.- AUTOR DE LA APLICACION.
-
-
-
-
- PROLOGO.
- --------
-
- El lenguaje C ha sido y es uno de los mejores lenguajes de propósito
- general. Ha sido utilizado en todo tipo de aplicaciones: desarrollo de
- procesadores de texto, de compiladores, de sistemas de gestiones de bases
- de datos, sistemas operativos, y un amplio etcétera. El C es un lenguaje
- de nivel medio que se puede utilizar tanto en aplicaciones a bajo nivel
- (obteniendo un código bastante eficiente) como en aplicaciones a alto nivel
- (desarrollando bibliotecas de funciones). En resumen, es un lenguaje poten-
- te, eficiente, flexible, estructurado y portátil. Actualmente este lenguaje
- está siendo desplazado por el lenguaje C++ que se puede considerar como una
- mejora y ampliación del C. El C++ es un lenguaje orientado a objetos y pare-
- ce que el futuro inmediato está orientado hacia la programación orientada a
- objetos (POO o OOP en inglés).
-
- El objetivo de este programa es realizar un tutor de C y C++, es decir,
- explicar todo lo relativo a estos dos lenguajes.
-
- ¿Por qué C++?. Por varias razones: es un lenguaje de propósito general
- bastante potente y relativamente nuevo (al menos en lo que se refiere a un
- uso generalizado por parte de los programadores), es un lenguaje orientado
- a objetos cuya metodología (PPO) está en auge, y es un lenguaje que intenta
- preservar la libertad y el espíritu del C.
-
- ¿Por qué un tutor?. Si bien es cierto que existen multitud de libros
- sobre C y C++, y también existen algunos programas tutores en el mercado,
- todos suelen adolecer de los mismos defectos: o bien contienen muy pocos
- ejercicios o ninguno, o bien los ejercicios son muy rudimentarios, o bien
- los ejercicios no vienen resueltos. Con respecto a los libros, la ventaja
- de este tutor es incuestionable: interactividad con el usuario. Con res-
- pecto a otros tutores, éste pretende ofrecer al usuario una abundante y
- variada colección de ejercicios y programas, todos, excepto las propuestas
- de programas, resueltos.
-
- La primera decisión que se presentó fue elegir una de las tres opciones
- siguientes:
-
- 1) Tutor de C++: al ser el C++ un superconjunto del C, también se
- estaría explicando el C aunque subrepticiamente. Esta opción tiene dos
- inconvenientes:
-
- - Para las personas que saben C sería muy tedioso estudiar de nuevo C;
- para ellos sería más fácil ver solamente las nuevas características que
- aporta el C++ al C.
-
- - A las personas que no saben C les resultaría más práctico y más fácil
- aprender primero C y luego C++. De la otra forma, no sabrían distinguir
- cuáles son las características originarias del C y cuáles del C++.
-
- 2) Tutor de C++ pero sólo explicando las nuevas características del C++
- con respecto al C: esta opción exige, al usuario del tutor, el conocimiento
- del lenguaje C, con lo cual se está restringiendo el número de usuarios
- potenciales.
-
- 3) Tutor compuesto de dos tutores (uno de C y otro de C++): ésta es la
- forma que se ha creído más conveniente ya que solventa los problemas susci-
- tados en los dos puntos anteriores; por lo tanto es la opción que se ha ele-
- gido. Huelga decir que en el tutor correspondiente al C++ sólo se va a estu-
- diar las modificaciones y las nuevas incorporaciones que posee el C++ con
- respecto al lenguaje C. De esta forma la persona que ya conozca el lenguaje
- C, puede omitir el estudio de este lenguaje simplemente con no mirar el tu-
- tor correspondiente al C.
-
- La segunda decisión que apareció fue la elección de una de las opciones
- siguientes:
-
- 1) Explicar una versión concreta del C y del C++ (por ejemplo, Turbo
- C++ 1.0): no parece ni muy lógico ni muy deseable que el usuario aprenda
- únicamente un determinado entorno; sería más fructífero, en todo caso,
- aprender el C y el C++ estándar, y a continuación aprender una concreción
- de estos lenguajes.
-
- 2) Explicar solamente el ANSI C y el ANSI C++ (Nota: el C tradicional
- de Kernigham y Ritchie está incluido en el ANSI C): todo programa en ANSI C
- se debería poder compilar en cualquier compilador de C. Idem de ídem para el
- ANSI C++. De este modo el usuario puede realizar sus programas en el compi-
- lador que desee.
-
- 3) Explicar C y C++ estándar y además también una determinada versión
- de éstos: esta ha sido la alternativa elegida puesto que abarca al punto
- anterior y opcionalmente el usuario puede estudiar una implementación con-
- creta de los compiladores de estos lenguajes. La implementación de C y C++
- seleccionada ha sido las versiones que corresponden a la compañía de Borland
- International, normalmente los nombres de estos compiladores suelen empezar
- por turbo: Turbo C y Turbo C++ (aunque también es muy popular Borland C++)
- en sus diversas versiones.
-
-
-
- 1.- INTRODUCCION.
- -----------------
-
- Tutor de C/C++, versión 1.0, es un paquete de software diseñado para
- enseñar los lenguajes C y C++. El aprendizaje de estos lenguajes empezará
- desde cero (el usuario no sabe absolutamente nada de dichos lenguajes) hasta
- estudiar las características más avanzadas de ellos.
-
- Los lenguajes C y C++ explicados corresponden tanto a los propuestos
- por los actuales ANSI como a los correspondientes a las versiones de Borland
- International (normalmente se denominan por Turbo C y Turbo C++).
-
-
-
- 1.1.- EL MANUAL.
- ----------------
-
- Este manual describe el paquete de software Tutor C/C++ 1.0, desarro-
- llado por Antonio Lebrón Bocanegra como proyecto fin de carrera en la Facul-
- tad de Informática de Sevilla, y tutelado por Manuel Mejías Risoto.
-
- Este libro tiene dos objetivos principales. El primero es ofrecer una
- guía de referencia que facilite el aprendizaje de los diversos programas que
- forman el paquete. El segundo es que sirva como libro de consulta para cual-
- quier característica del paquete que desee consultar el usuario.
-
-
-
- 1.2.- ¿A QUIEN VA DIRIGIDO EL TUTOR?
- ------------------------------------
-
- El tutor está pensando especialmente para programadores aunque los
- usuarios no programadores también pueden utilizarlo.
-
- Dentro del campo de usuarios programadores, aquéllos que no sepan ni
- C ni C++ aprenderán ambos lenguajes si completan todas las lecciones del
- tutor. Para aquellos programadores que ya sepan estos dos lenguajes también
- les puede ser útil examinar el tutor debido a la gran cantidad de ejemplos
- y ejercicios que existen en él, a la vez que en la gran profundidad de los
- temas. Por último, para el grupo de programadores que ya saben C y no saben
- C++, pueden estudiar solamente el tutor de C++ para aprender dicho lenguaje,
- omitiendo el tutor de C.
-
-
-
- 1.3.- COMO UTILIZAR ESTE MANUAL.
- --------------------------------
-
- Es muy conveniente que la lectura de este manual se realice practicando
- con el tutor todo lo que aquí se comenta.
-
- Una vez leído todo el manual el usuario sabrá utilizar el tutor así
- como todas las características que posee. A partir de este momento este
- libro será muy útil como guía de consulta.
-
- En el apartado 2 se describe los detalles de notación utilizados en
- este manual de usuario. En el apartado 3 se explica cómo instalar el tutor.
- En el apartado 4 se explica todo lo que hay que saber en relación al progra-
- ma TUTOR.EXE, que es el programa principal del paquete. En el apartado 5 se
- detalla las estructuras de los ficheros de datos y se dice cómo se pueden
- modificar. En el apartado 6 se listan todos los errores de todos los pro-
- gramas que forman el paquete, junto con una breve descripción de cada uno
- de ellos en la que se dice a qué es debido cada error y cómo solucionarlo.
- En el apartado 7 se presenta una lista con la definición de algunos términos
- que aparacen a lo largo de este manual y que pueden resultar desconocidos
- para algunas personas. En el último apartado (el 8) se proporcionan los
- datos personales del autor de esta aplicación.
-
-
-
- 2.- NOTACION UTILIZADA EN ESTE MANUAL.
- --------------------------------------
-
- Las expresiones "pulsamos", "presionamos", "escribimos", "elegimos" y
- "situamos" tienen el siguiente significado en este manual:
-
- - pulsamos: indica que hay que pulsar una tecla (o combinación de teclas)
- para ejecutar una acción.
-
- - presionamos: indica que debemos presionar un botón del ratón (o combina-
- ción de botones) para ejecutar una determinada acción.
-
- - escribimos: indica que debemos introducir los caracteres especificados.
-
- - elegimos: indica que debemos escoger una opción de entre varias que se
- ofrecen.
-
- - situamos: indica el lugar en el que hay que situar el cursor de texto.
-
- Los nombres de teclas y nombres de botones del ratón están denotados
- entre los signos < y >. Por ejemplo, <F1> denota la pulsación de la tecla
- <F1>, y <BOTIZQ> denota la presión del botón izquierdo del botón.
-
- Dos teclas separadas por un guión (-) indican que hay que pulsar la
- primera y, sin soltarla, pulsar la segunda. Por ejemplo, <Ctrl-E> indica
- que debemos pulsar simultáneamente las teclas CONTROL y E.
-
- Dos botones distintos del ratón separados por un guión indican que hay
- que presionarlos simultáneamente. Por ejemplo, <BOTIZQ-BOTDER> indica que
- debemos presionar al mismo tiempo los botones izquierdo y derecho del ratón.
-
- Dos botones iguales separados por un guión indican un doble clic, esto
- es, que hay que presionar ese botón dos veces rápidamente. Si el intervalo
- de tiempo entre una presión y otra es mayor de 200 milisegundos (valor por
- defecto, cf. 4.18.10 para cambiarlo) no se considerará como un doble clic
- sino como dos clics simples. Por ejemplo, <BOTDER-BOTDER> es equivalente a
- la pulsación de la tecla <ALT-X>, sin embargo, <BOTDER> <BOTDER> es equiva-
- lente a pulsar dos veces la tecla <ESC>.
-
- Los textos entre comillas que aparecen en este manual reflejan textos
- literales mostrados por los programas que constituyen el paquete.
-
-
-
- 3.- INSTALACION.
- ----------------
-
- En este apartado se explica cómo se puede instalar el tutor en el disco
- duro.
-
-
-
- 3.1.- MATERIAL QUE COMPONE EL PAQUETE.
- --------------------------------------
-
- Al adquirir el Tutor C/C++ 1.0 disponemos del siguiente material:
-
- - Un disquette de 3,5 pulgadas de alta densidad. Aquellos usuarios que
- no tengan este tipo de unidad de disco en su ordenador podrán tener los
- ficheros que componen el paquete en otros tipos de disquettes, pero en
- tal caso tendrán que realizar una instalación manual (cf 3.3.2).
-
- - Manual de usuario. Este libro no es imprescindible puesto que en el
- fichero TUTOR.DOC se encuentra dicho manual, el cual se puede consultar
- en el ordenador o imprimirlo para leerlo en papel.
-
-
-
- 3.2.- REQUERIMIENTOS.
- ---------------------
-
- Existen tres tipos de requerimientos: hardware, software y de cono-
- cimientos.
-
-
-
- 3.2.1.- REQUERIMIENTOS HARDWARE.
- --------------------------------
-
- Los requerimientos hardware imprescindibles son:
-
- - Poseer un ordenador personal compatible con IBM PC.
-
- - Poseer un disco duro con al menos 3'5 megabytes libres. El tutor utiliza
- grandes ficheros de datos a los que se accede frecuentemente, lo que hace
- imprescindible la utilización del disco duro para que el programa funcione
- de una forma aceptable.
-
- - Poseer una cantidad mínima de 590 kbytes libres de memoria convencional.
- La memoria convencional está formada por los primeros 640 kbytes de memoria
- RAM. Si se dispone de menos memoria libre, la mayor parte del tutor funcio-
- nará correctamente, sin embargo, habrá situaciones (como al cargar la teoría
- en memoria o al ejecutar los programas ejemplos) en que se produzca un error
- de memoria insuficiente (cf. 6.1.2.1).
-
- Otros requerimientos hardware, no imprescindibles, pero sí convenientes
- son:
-
- - Poseer un ordenador personal 386 o superior. Debido al gran volumen de
- información que se maneja en el tutor, determinadas operaciones, como puede
- ser la lectura de algunos ficheros de datos, se pueden hacer un poco lentas
- en ordenadores modelo XT y AT.
-
- - Poseer una tarjeta de vídeo y un monitor de color. Para hacer más agrada-
- ble el estudio del C y del C++ se ha utilizado una gran variedad de colores,
- sobre todo en las ventanas de teoría; obviamente, en un monitor monocromo no
- se van a ver los colores y la calidad del programa se va a reducir drástica-
- mente.
-
- - Poseer una tarjeta gráfica VGA o superior. Aparte de que la resolución de
- estas tarjetas es bastante superior a otras tarjetas como CGA y EGA, el pro-
- grama de presentación y algunos ejemplos que utilizan gráficos pierden bas-
- tante calidad con tarjetas cuyas resoluciones sean inferiores a la VGA.
-
- - Poseer un ratón. Todas las tareas, excepto la introducción de texto en
- las ventanas de edición, se pueden realizar con el ratón además de con el
- teclado. La utilización del ratón por parte del usuario suele ser más cómoda
- que la del teclado; además tiene una ventaja adicional en las ventanas de
- visualización (cf. 4.6), ya que el desplazamiento del texto visualizado en
- la ventana se hace mucho más rápido con el ratón que con el teclado. El pro-
- grama permite ratones, con sus respectivos controladores de ratones, de dos
- y tres botones.
-
- - Poseer memoria extendida o un mínimo de 256 Kbytes de memoria libre de
- memoria expandida. El programa TUTOR.EXE está diseñado con overlays (cf.
- 4.8.12); por defecto, los intercambios se hacen entre disco y memoria con-
- vencional, pero también se pueden hacer tales intercambios tanto entre
- memoria extendida y memoria convencional como entre memoria expandida y me-
- moria convencional, lo cual supone un aumento de la velocidad de ejecución
- del programa; para usar alguna de estas dos memorias hay que especificárselo
- explícitamente al programa mediante los parámetros /x y /p (cf. 4.8.12).
-
- - Poseer una impresora que imprima como mínimo 80 columnas de texto. Concre-
- tamente, hay tres situaciones en el tutor en las que se da la posibilidad de
- imprimir: la teoría (cf. 4.14), los ejemplos (cf. 4.16) y los ejercicios
- (cf. 4.17, 4.17.1, 4.17.2, 4.17.3 y 4.17.4).
-
-
-
- 3.2.2.- REQUERIMIENTOS SOFTWARE.
- --------------------------------
-
- El único requerimiento software imprescindible es poseer el sistema
- operativo MS-DOS 3.0 o una versión superior.
-
- Si se va a utilizar el ratón, la memoria extendida o la memoria expan-
- dida, es necesario cargar previamente el controlador para el ratón, para la
- memoria extendida o para la memoria expandida, respectivamente. Existen dos
- versiones principales de estos controladores: como programa directamente
- ejecutable (con extensión .COM o .EXE) y como programa ejecutable al encen-
- der el ordenador (con extensión .SYS y que hay que incluir en el fichero
- CONFIG.SYS).
-
- Aunque no sea imprescindible poseer un compilador de C y C++ sí es
- inexcusable no tenerlo, puesto que no se puede aprender estos dos lenguajes
- cursando el tutor sin hacer programas. El usuario puede utilizar cualquier
- compilador de C y de C++, aunque aprovecharía mejor el tutor si los compi-
- ladores fueran de Borland puesto que además de explicar el ANSI C y el ANSI
- C++ también se explica en el tutor, opcionalmente, Turbo C y Turbo C++ (o
- Borland C++). Todo el paquete que forma este tutor (TUTOR.EXE, ejemplos y
- programas auxiliares) han sido desarrollados utilizando Borland C++ 2.0 de
- Borland International.
-
-
-
- 3.2.3.- REQUERIMIENTOS DE CONOCIMIENTOS.
- ----------------------------------------
-
- El tutor presupone que el usuario sabe utilizar un ordenador personal
- y que tiene unos conocimientos mínimos acerca de él (funcionamiento, peri-
- féricos, etc.).
-
- Es importante reseñar que el tutor no enseña a programar sino que en-
- seña los lenguajes C y C++, o dicho de otro modo, enseña a programar en los
- lenguajes C y C++. Esto quiere decir que las nociones generales de progra-
- mación (qué es una variable, qué es un programa, qué es una función o una
- subrutina, etc.) se explican muy someramente. A pesar de lo comentado, un
- usuario novicio en el arte de programar podrá aprender a programar al mismo
- tiempo que aprende el lenguaje C valiéndose de este tutor, aunque, claro
- está, tendrá que esforzarse un poco más que aquél que ya sabe programar en
- algún otro lenguaje (como pueden ser los lenguajes Pascal o BASIC).
-
-
-
- 3.3.- COMO SE INSTALA EL PAQUETE.
- ---------------------------------
-
- Existen dos formas de instalar el programa: instalación automática e
- instalación manual. La primera puede ser realizada cuando el usuario tiene
- en su poder el disquette original del programa o una copia de este disquet-
- te. La segunda tendrá que ser usada por el usuario para instalar el programa
- si no dispone del disquette original del tutor.
-
-
-
- 3.3.1.- INSTALACION AUTOMATICA.
- -------------------------------
-
- El disquette del programa contiene tres ficheros: INSTALAR.EXE,
- INSTALA.BAT y PAQTUTOR.EXE.
-
- La única condición para poder realizar la instalación automática, es
- decir, utilizando un programa de autoinstalación (INSTALAR.EXE), es que se
- ejecute INSTALAR.EXE estando el fichero PAQTUTOR.EXE en el directorio de
- trabajo. Esta condición se da ejecutando el programa INSTALAR.EXE desde el
- directorio raíz del disquete original del paquete, ya que en el directorio
- raíz de este disquette se encuentran los tres ficheros mencionados.
-
- Si suponemos que el usuario tiene el disquette original, esto es, un
- disquette con los ficheros INSTALAR.EXE, INSTALA.BAT y PAQTUTOR.EXE en el
- directorio raíz, y que ese disquette corresponde a la unidad A del ordenador
- en el cual se va a instalar el tutor, los pasos a seguir para instalar el
- programa en el directorio C:\TUTOR son los siguientes:
-
- 1. Escribimos
-
- A:
-
- para cambiar de unidad.
-
- 2. Si no nos encontramos en el directorio raíz de la unidad A, escribimos
-
- CD \
-
- para cambiar de directorio.
-
- 3. Escribimos
-
- INSTALAR C:\TUTOR
-
- para ejecutar el programa de autoinstalación con la especificación del
- directorio de destino C:\TUTOR como parámetro.
-
- Una vez ejecutados los pasos anteriores nos encontramos en el direc-
- torio C:\TUTOR en el cual están todos los ficheros que componen el paquete,
- aunque no estarán ni los ficheros INSTALAR.EXE, INSTALA.BAT ni el fichero
- PAQTUTOR.EXE, ya que solamente se utilizan en el proceso de instalación. Un
- mensaje nos informa de que podemos acceder al manual de usuario (en caso de
- que no tengamos el libro) desde la opción 1 del menú principal del programa
- TUTOR.EXE.
-
- En el proceso de autoinstalación pueden aparecer los siguientes mensa-
- jes de error:
-
- - "SINTAXIS: instalar directorio". Este mensaje consta en realidad de
- varias líneas más. Aparece cuando el número de argumentos pasados al
- programa INSTALAR.EXE es incorrecto; este programa sólo admite un argu-
- mento: la especificación del directorio en el cual se va a instalar el
- tutor; el nombre del directorio puede contener opcionalmente la letra
- de la unidad y no es obligatorio que empiece por el directorio raíz;
- tampoco es necesario que el directorio exista ya que si no existe el
- programa de instalación lo creará.
-
- - "Fichero PAQTUTOR.EXE no encontrado". Este error ocurre si el fichero
- PAQTUTOR.EXE no está en el directorio de trabajo.
-
- - "No hay suficiente espacio libre en unidad <unidad>:" donde <unidad> es
- la unidad del directorio de destino. El disco en el que se va a instalar el
- programa debe tener aproximadamente 3'5 Mb libres. Si se intenta instalar
- el programa en un disco con menos de 3'5 megabytes libres se emitirá este
- mensaje de error y no se instalará el tutor.
-
- - "No es posible crear el directorio <directorio>" donde <directorio> es el
- directorio en el cual se pretende instalar el programa. Este error acontece
- cuando el directorio de destino no existe y falla el intento de crearlo.
- Algunas causas de fallo pueden ser: disco protegido contra escritura, disco
- lleno, etc. El usuario puede intentar crearlo a mano, es decir, con cual-
- quier programa o comando del sistema operativo que cree directorios, y des-
- pués intentar la instalación, ya que el programa INSTALAR.EXE no intentará
- crear el directorio de destino si éste existe.
-
- Si no ocurre ninguno de los errores anteriores, el programa de insta-
- lación nos va informando de cada operación que está realizando.
-
- Además del fichero ejecutable INSTALAR.EXE, también se suministra el fi-
- chero por lotes INSTALA.BAT que contiene una única línea que es la siguiente:
-
- instalar c:\tutor
-
- que instala el paquete en el directorio c:\tutor del disco duro.
-
-
-
- 3.3.2.- INSTALACION MANUAL.
- ---------------------------
-
- La instalación manual tendrá que ser usada cuando el usuario no posea
- los ficheros de instalación (INSTALAR.EXE, INSTALA.BAT y PAQTUTOR.EXE) que
- se suministran en el disquette original.
-
- Para instalar en este caso el tutor, el usuario ha de copiar manual-
- mente todos los ficheros que lo componen al directorio en el cual desea
- trabajar con el programa. Copiar manualmente los ficheros quiere decir
- copiarlos con cualquier orden del DOS (como COPY o XCOPY) o con cualquier
- programa que copie ficheros de un sitio a otro.
-
-
-
- 3.4.- FICHEROS QUE COMPONEN EL PAQUETE.
- ---------------------------------------
-
- Los ficheros de instalación son:
-
- - INSTALAR.EXE: programa de autoinstalación.
-
- - INSTALA.BAT: fichero por lotes que ejecuta INSTALAR.EXE.
-
- - PAQTUTOR.EXE: programa de autoextracción, en él se encuentran todos los
- ficheros que forman el paquete del tutor.
-
- Los ficheros del tutor, y que están comprimidos en PAQTUTOR.EXE, son
- los siguientes:
-
- - TUTOR.EXE: programa principal.
-
- - TUTOR.DOC: fichero de información general, en él se encuentra el manual de
- usuario.
-
- - TUTOR.IND: fichero índice, necesario para acceder de una forma rápida a
- los ficheros de datos.
-
- - TUTOR.HLP: fichero con la ayuda.
-
- - TUTOR.CMP: fichero con el nombre del compilador.
-
- - TUTOR.CFG: fichero de configuración.
-
- - PORTUTOR.EXE: programa que presenta la portada.
-
- - TEOC.DAT: fichero con la teoría del lenguaje C.
-
- - EJERC.DAT: fichero con los ejercicios del lenguaje C.
-
- - EJEMC.DAT: fichero con los ejemplos del lenguaje C.
-
- - PRTUTC.EXE: programas ejemplos ejecutables de C.
-
- - TEOCPP.DAT: fichero con la teoría del lenguaje C++.
-
- - EJERCPP.DAT: fichero con los ejercicios del lenguaje C++.
-
- - EJEMCPP.DAT: fichero con los ejemplos del lenguaje C++.
-
- - PRTUTCPP.EXE: programas ejemplos ejecutables de C++.
-
- - INDEXAR.EXE: programa para indexar los ficheros de datos; cada vez que se
- modifica un ficheros de datos es necesario indexarlo con este programa.
-
- - I.BAT: fichero por lotes que ejecuta INDEXAR.EXE
-
- - COMPILAD.EXE: programa con el cual se introduce el nombre del compilador
- de C o de C++ en el fichero de texto que contiene dicho nombre (TUTOR.CMP).
-
- - C.BAT: fichero por lotes que ejecuta COMPILAD.EXE.
-
- - EJECUTAR.EXE: programa para ejecutar los ejemplos que se encuentran en los
- programas PRTUTC.EXE y PRTUTCPP.EXE.
-
-
-
- 4.- EL PROGRAMA TUTOR.EXE.
- --------------------------
-
- El programa TUTOR.EXE forma la columna vertebral de todo el paquete,
- puesto que es el programa principal y el único que es absolutamente impres-
- cindible.
-
-
- 4.1.- EJECUCION.
- ----------------
-
- Podemos diferenciar tres formas de entrar en el tutor:
-
- 1) Escribiendo
-
- TUTOR
-
- en el directorio en el que está instalado el tutor. Ejecutando el tutor de
- esta manera entramos en él con las opciones modificables (cf. 4.18 para
- saber cuáles son las opciones) por defecto. En primer lugar, el tutor
- presentará la pantalla de presentación, para ello ejecuta el programa
- PORTUTOR.EXE (cf. 4.20). Tras pulsar cualquier tecla en la pantalla de
- presentación regresamos al programa TUTOR.EXE el cual muestra la pantalla
- correspondiente al menú principal (cf. 4.10). Las distintas pantallas que
- constituyen el tutor se explicarán en los apartados siguientes.
-
- 2) Escribiendo
-
- TUTOR lista_de_argumentos
-
- donde el número de argumentos es variable; si no hay ningún argumento esta-
- mos en el caso anterior. Cada uno de los argumentos que tiene a su dispo-
- sición el usuario para llamar al tutor están detallados en el apartado 4.18.
-
- 3) Escribiendo
-
- T lista_de_argumentos
-
- donde lista_de_argumentos representa 0, 1, ..., 9 argumentos (cf. 4.18). En
- este caso estamos ejecutando el fichero por lotes T.BAT (cf. 4.19) el cual
- ejecuta el programa TUTOR.EXE con una serie de argumentos predefinidos. Esta
- es la forma más aconsejable de ejecutar el tutor, ya que, por ejemplo, el
- fichero T.BAT ejecuta TUTOR.EXE con el argumento NP que hace que no se mues-
- tre la pantalla de presentación; ver la pantalla de presentación cada vez
- que se entra en el tutor podría resultar tedioso. El fichero T.BAT también
- activa el programa TUTOR.EXE con otros argumentos (cf. 4.19).
-
-
-
- 4.2.- LINEAS DE ESTADO.
- -----------------------
-
- Las líneas de estado son aquellas líneas de pantalla que nos muestra
- alguna información relativa a la pantalla actual.
-
- Las líneas de estado son dos: línea superior y línea inferior.
-
- La línea superior nos informa en todo momento del lugar del tutor en el
- que nos encontramos. Este mensaje aparece centrado en la primera línea de la
- pantalla. Si, por ejemplo, estamos realizando un ejercicio tipo test de la
- lección 1 del lenguaje C, el mensaje es: "Tutor de C/C++ 1.0 » Lenguaje C »
- Lección 1 » Ejercicios » Test".
-
- La línea inferior nos informa de la mayoría de las teclas que tenemos
- disponibles en cada momento. Las únicas teclas que muchas veces no aparecen
- en la línea inferior y que podemos usarlas en ese momento son las teclas de
- menú, de visualización y de edición, puesto que son muchas teclas y son evi-
- dentes. Todas las demás teclas que tenemos a nuestra disposición en cada
- instante están especificadas en la línea inferior junto con su acción aso-
- ciada. Esta línea tiene un doble objetivo; el primero es, como se acaba de
- comentar, informar de qué teclas podemos utilizar; el segundo objetivo es
- poder activar la acción asociada a cada tecla con el ratón como alternativa
- al teclado (cf. 4.4).
-
-
-
- 4.3.- TECLADO.
- --------------
-
- En este apartado vamos a describir algunas teclas que están a nuestra
- disposición prácticamente a lo largo de todo el tutor. En determinados
- momentos estas teclas no estarán disponibles, lo cual se advertirá porque
- no estarán mostradas en la línea inferior. Estas teclas las denominaremos
- teclas general en este manual para no describirlas en la explicación
- pormenorizada de cada proceso del tutor.
-
- Las teclas generales son las siguientes:
-
- - <F1>: Ayuda local. La pulsación de esta tecla provoca que aparezca una
- ventana de visualización (cf. 4.6) en el centro de la pantalla, que conten-
- drá la ayuda relativa al proceso desde el cual se pulsó la tecla <F1>. Si
- pulsamos, por ejemplo, <F1> mientras estudiamos la teoría de una determinada
- lección del lenguaje establecido, se mostrará toda la ayuda existente acerca
- del proceso de teoría.
-
- - <ESC>: Salir del proceso actual; también se puede decir que su significado
- es regresar al punto anterior, exceptuando un caso: cuando se pulsa <ESC>
- mientras se lee un fichero de datos (cf. 5), en cuyo caso lo único que se
- provoca es que se termine la lectura. Pulsar <ESC> en el menú principal es
- equivalente a pulsar <ALT-X> puesto que regresar al punto anterior del menú
- principal significa salirse del tutor.
-
- - <ALT-X>: Abandonar tutor. Pulsando una sola vez esta tecla se produce un
- abandono del tutor con confirmación, pulsándola dos veces consecutivas se
- consigue abandonar el tutor sin confirmación (en realidad, se produce la
- confirmación, pero pulsando rápidamente dos veces la tecla <ALT-X> la salida
- del tutor es inmediata). Tras pulsar <ALT-X> aparece en el centro de la
- pantalla un pequeño menú (cf. 4.5) en el cual se nos pregunta si deseamos
- abandonar realmente el tutor, lo que previene la activación accidental del
- proceso de salida del tutor. Si pulsamos <ESC> en este menú, cancelamos la
- operación y no nos salimos (recordar el significado de regresar al punto
- anterior de la tecla <ESC>).
-
-
-
- 4.4.- RATON.
- ------------
-
- Si el usuario posee un ratón y el controlador de ratón está cargado
- podrá realizar prácticamente todas las operaciones con el ratón. Sólo hay
- una cosa que no se puede hacer con el ratón en este programa: la introduc-
- ción de texto en las ventanas de edición, lo cual es bastante lógico, aunque
- sí podemos cambiar la posición del cursor de texto con el ratón en dichas
- ventanas.
-
- La presiones y significados asociados a cada presión que se describen
- a continuación son válidas para todo el programa:
-
- - <BOTIZQ>: la presión del botón izquierdo del ratón tiene el significado de
- "aceptar", pero no con el mismo sentido que la tecla <RETURN> de teclado. El
- efecto que se consigue con la presión de este botón es dependiente de la po-
- sición del cursor del ratón en ese momento. Hay cinco clases de regiones de
- pantalla en los cuales se puede realizar una acción asociada a la presión
- del botón <BOTIZQ> estando el cursor del ratón dentro de esas regiones, a
- saber:
-
- · Estando el cursor del ratón en la línea inferior: si el botón <BOTIZQ>
- es presionado entre la primera y última letra de unos de los mensajes
- de la línea de estado inferior, se activa la acción descrita por ese
- mensaje, es decir, que dicha presión es equivalente a la pulsación de
- la tecla que aparece en el mensaje. Por ejemplo, si el mensaje es "F1
- Ayuda", se puede presionar <BOTIZQ> entre la letra "F" y la letra "a"
- del mensaje para activar la ayuda, es decir, que sería equivalente a la
- pulsación de la tecla <F1> del teclado.
-
- · Estando el cursor del ratón en el interior de una ventana de menú:
- descrito en apartado 4.5.
-
- · Estando el cursor del ratón en el interior de una ventana de visua-
- lización: descrito en apartado 4.6.
-
- · Estando el cursor del ratón en el interior de una ventana de edición:
- descrito en apartado 4.7.
-
- · Cuando en la línea de estado inferior aparece un mensaje del tipo
- "pulsa cualquier tecla o cualquier botón del ratón para ...": en este
- caso, la presión de cualquier botón, esté mostrado u oculto el cursor
- del ratón, es equivalente a la pulsación de cualquier tecla. La acción
- asociada a dicha presión estará aclarada en el mensaje de la línea
- inferior.
-
-
- - <BOTDER>: la presión del botón derecho del ratón es siempre equivalente a
- la pulsación de la tecla <ESC>.
-
- - <BOTCEN>: la presión del botón central del ratón, en caso de que el ratón
- disponga de tres botones y el controlador del ratón trabaje con tres botones,
- es siempre equivalente a la pulsación de la tecla <F1>.
-
- - <BOTDER-BOTDER>: un doble clic con el botón derecho del ratón es siempre
- equivalente a la pulsación de las teclas <ALT-X>.
-
- - <BOTIZQ-BOTDER>: la presión simultánea de los botones izquierdo y derecho
- del ratón es siempre equivalente a pulsar las teclas <ALT-X> dos veces segui-
- das, lo cual produce una salida inmediatamente del tutor (sin confirmación).
-
-
-
- 4.5.- VENTANAS DE MENU.
- -----------------------
-
- Un menú es un proceso que muestra varias opciones de entre las cuales
- el usuario ha de elegir una.
-
- Hay dos tipos de menús en este tutor:
-
- - Menús verticales: cada opción empieza en la misma columna de la pantalla
- pero sin embargo cada una se encuentra en una línea distinta.
-
- - Menús horizontales: cada opción se encuentra en la misma línea de la pan-
- talla pero sin embargo cada una empieza en una columna distinta.
-
- Los dos tipos de menús citados se manejan exactamente igual por parte
- del usuario y los dos tienen las mismas teclas de menú.
-
- Las teclas de menú son aquéllas teclas específicas para el proceso de
- menú, o sea, que si estas teclas se utilizan en otro proceso distinto ten-
- drán un significado distinto al que se describe aquí. Estas teclas son las
- siguientes:
-
- - <LEFT> o <UP>: los cursores izquierdo y arriba cambian la opción activa
- del menú a la opción anterior. Si la opción activa actual es la primera,
- estas teclas hacen que la nueva opción activa del menú sea la última.
-
- - <RIGHT> o <DOWN>: los cursores derecho y abajo cambian la opción activa
- del menú a la opción siguiente. Si la opción activa actual es la última,
- estas teclas hacen que la nueva opción activa del menú sea la primera.
-
- - <HOME> o <PGUP>: la tecla de inicio y la tecla de retroceso de página
- (llamada también página arriba) ponen la primera opción del menú como
- opción activa.
-
- - <END> o <PGDN>: la tecla de fin y la tecla de avance de página (llamada
- también página abajo) ponen la última opción del menú como opción activa.
-
- - <RETURN>: la tecla de retorno (llamada también Enter) acepta la opción
- activa actual.
-
- - <ESC>: cancela proceso de menú y vuelve a proceso llamador del menú.
-
- - Letra correspondiente a letra sobreimpresionada en el menú: pone opción
- del menú que contiene esa letra sobreimpresionada como opción activa y
- además la acepta, es decir, que equivale a poner dicha opción como opción
- activa y pulsar <RETURN>.
-
- Todas las teclas de menú descritas son válidas para cualquier menú que
- aparezca en el programa.
-
- En el caso de los menús, la pulsación del botón izquierdo (<BOTIZQ>)
- del ratón mientras el cursor de éste se encuentra en una opción del menú es
- equivalente a la pulsación de la tecla sobreimpresionada de esa opción, es
- decir, activa dicha opción.
-
- Los menús que aparecen en el tutor son: menú principal (cf. 4.10), menú
- de lecciones (cf. 4.12), menú de tareas (cf. 4.13), menú de abandonar tutor
- (cf. 4.9), menú de error (cf. 6.1.3) y menú de los ejercicios tipo test (cf.
- 4.17.1).
-
-
-
- 4.6.- VENTANAS DE VISUALIZACION.
- --------------------------------
-
- Una ventana de visualización es una ventana de pantalla en cuyo in-
- terior se visualiza un texto que puede desplazarse a través de la ventana.
- Si la ventana no tiene al menos una barra, ya sea horizontal o vertical,
- no se considerará ventana de visualización puesto que el texto no podrá
- desplazarse.
-
- Las teclas de visualización son las teclas que tienen un significado es-
- pecífico para los procesos de visualización. Estas teclas son las siguientes:
-
- - <LEFT>, <RIGHT>, <UP> y <DOWN>: mueven el cursor una posición a la izquier-
- da, a la derecha, hacia arriba y hacia abajo, respectivamente.
-
- - <CTRL-LEFT> y <CTRL-RIGHT>: mueven el cursor 15 posiciones sucesivas a la
- izquierda y derecha respectivamente.
-
- - <PGUP> y <PGDN>: mueven el cursor una página de visualización arriba y
- abajo respectivamente.
-
- - <CTRL-PGUP> y <CTRL-PGDN>: mueven el cursor al principio y al final,
- respectivamente, de la información a visualizar, pero manteniendo la
- misma columna de visualización.
-
- - <HOME> y <END>: mueven el cursor al principio y al final, respectivamente,
- de la información a visualizar, pero visualizando a partir de la primera
- columna de dicha información a visualizar.
-
- - <ALT-C>: pone y quita el modo cursor.
-
- - <CTRL-B>: busca un texto en la ventana de visualización. Se pide la
- introducción del texto y la búsqueda empieza por la primera línea. Si se
- encuentra, la primera línea visualizada contendrá el texto buscado; si
- no se encuentra, se visualizará un mensaje que nos informa de ello.
-
- - <CTRL-R>: repetir búsqueda. No se pide la introducción del texto porque
- ya se introdujo anteriormente. La búsqueda empieza en la línea siguiente a
- la línea en la que se encontró el texto la última vez. Si no se encuentra
- el texto o la última búsqueda no tuvo éxito, se visualizará un mensaje que
- nos informa de ello. Si se encuentra, la primera línea visualizada contendrá
- el texto buscado.
-
- - <CTRL-A>: Búsqueda adelante. Es similar a <CTRL-B> pero con dos diferen-
- cias. La primera es que se solicita la introducción del texto con el texto
- anterior por defecto. La segunda diferencia es que la búsqueda empieza a
- partir de la primera línea visualizada en la ventana, inclusive ésta.
-
- - <ESC>: sale de la visualización.
-
- Si se está en modo cursor, se visualiza el cursor de texto. Si no se
- está en modo cursor, el cursor de texto es invisible. Al crear una ventana
- de visualización se está por defecto en modo no cursor porque es mucho más
- cómodo para visualizar un texto. En modo cursor, mover el cursor una posi-
- ción hacia arriba, significa mover el cursor de texto una línea hacia arri-
- ba; sin embargo, en modo no cursor significa visualizar la línea no visua-
- lizada inmediatamente anterior a la primera línea visualizada del texto.
-
- Cuando se intenta ver más líneas hacia abajo del texto y el texto de la
- ventana no se mueve es que ya está visualizada en la ventana la última línea
- del texto a visualizar.
-
- Las ventanas de visualización tienen una barra vertical y/o una barra
- horizontal en los lados derecho e inferior respectivamente. Si no aparece la
- barra horizontal significa que el texto no se puede desplazar a izquierda y
- derecha en la pantalla. Si no aparece la barra vertical el texto no se podrá
- desplazar hacia abajo y hacia arriba en la ventana de visualización.
-
- Estas barras tienen dos utilidades:
-
- 1ª) Nos informan del lugar del texto en el que estamos situados actualmente,
- es decir, lugar del cursor (ya sea real como en modo cursor o virtual como
- en modo no cursor).
-
- 2ª) Movernos a través del texto con el ratón. Esto se explica en los
- siguientes párrafos.
-
- En muchas ventanas de visualización también aparecen unos números en la
- esquina superior derecha de la ventana. Hay tres posibles formatos de estos
- números:
-
- 1) Cuando sólo hay barra vertical: l1-l2
- 2) Cuando sólo hay barra horizontal: c1-c2
- 3) Cuando hay barra horizontal y vertical: l1-l2:c1-c2
-
- donde l1 y l2 representan, respectivamente, los números de la primera y
- última línea visualizada; y c1 y c2 representan, respectivamente, los
- números de la primera y última columna visualizada.
-
- Presionando el botón izquierdo (<BOTIZQ>) del ratón en algunos sitios
- de la ventana de visualización se obtienen algunas acciones que se discuten
- a continuación. Todo lo que se va a decir del ratón en los puntos siguientes
- es válido para todas las ventanas de visualización.
-
- - Presionar <BOTIZQ> sobre la flecha hacia arriba de la barra vertical es
- equivalente a pulsar <UP>.
-
- - Presionar <BOTIZQ) sobre la flecha hacia abajo de la barra vertical es
- equivalente a pulsar <DOWN>.
-
- - Presionar <BOTIZQ> sobre la flecha izquierda de la barra horizontal es
- equivalente a pulsar <LEFT>.
-
- - Presionar <BOTIZQ> sobre la flecha derecha de la barra horizontal es
- equivalente a pulsar <RIGHT>.
-
- - Presionar <BOTIZQ> en una posición de la barra vertical entre la flecha
- arriba y el cursor de la barra es equivalente a pulsar <PGUP>.
-
- - Presionar <BOTIZQ> en una posición de la barra vertical entre el cursor
- de la barra y la flecha abajo es equivalente a pulsar <PGDN>.
-
- - Presionar <BOTIZQ> en una posición de la barra horizontal entre la flecha
- izquierda y el cursor de la barra es equivalente a pulsar las teclas
- <CTRL-LEFT>.
-
- - Presionar <BOTIZQ> en una posición de la barra horizontal entre el cursor
- de la barra y la flecha derecha es equivalente a pulsar las teclas
- <CTRL-RIGHT>.
-
- - Presionar <BOTIZQ> en una posición interior de la ventana (en una posición
- de texto de visualización) en modo cursor hace que el cursor de texto se
- coloque en el lugar en el que está el cursor del ratón. No se puede situar
- el cursor de texto por debajo de la última línea de texto a visualizar.
-
- Si en cualquiera de las 8 primeras posiciones anteriores, es decir, en
- todas las posiciones anteriores excepto la última, se presiona el botón
- <BOTIZQ> del ratón sin soltarlo, no se genera el retardo (cf. 4.8.10) y el
- proceso iterativo es más rápido, aunque en ese caso puede que no se visua-
- lice eventualmente el cursor del ratón.
-
- Las ventanas de visualización que aparecen en el tutor son: ventana de
- información general o manual de usuario (cf. 4.11), ventana de ayuda (cf.
- 4.8), ventana de teoría (cf. 4.14), ventana de ejemplos (cf. 4.16), ventana
- de propuestas de programas en ejercicios (cf. 4.17.4).
-
-
-
- 4.7.- VENTANAS DE EDICION.
- --------------------------
-
- El proceso de edición consiste en un editor de una sola línea.
-
- Las teclas de edición son aquéllas que tienen un significado específico
- para el proceso de edición. Estas teclas son las siguientes:
-
- - <LEFT> y <RIGHT>: mueven el cursor una posición a la izquierda y a la
- derecha respectivamente.
-
- - <HOME> y <END>: mueven el cursor al principio y al final de la línea de
- edición respectivamente.
-
- - <CTRL-LEFT> y <CTRL-RIGHT>: mueven el cursor al principio de la palabra
- anterior y posterior, respectivamente, de donde está situado el cursor.
-
- - <INS>: pone y quita el modo de inserción.
-
- - <DEL>: borra el carácter sobre el que está situado el cursor.
-
- - <BACKSPACE>: borra el carácter anterior al que está situado el cursor.
-
- - <ESC>: sale de la edición.
-
- - <RETURN>: confirma la línea editada.
-
- - <CTRL-Y>: borra la línea de edición.
-
- - <CTRL-Q> <Y>: borra desde donde está situado el cursor hasta el final de
- la línea.
-
- Una flecha en el lado izquierdo de la ventana de edición indica que hay
- caracteres que no se ven a la izquierda de la ventana. Una flecha en el lado
- derecho de la ventana de edición indica que hay caracteres que no se ven a
- la derecha de la ventana.
-
- Con el ratón podemos realizar tres operaciones en la ventana de edición:
-
- - Cambiar la posición del cursor de texto al lugar en el que está el cursor
- del ratón presionando el botón izquierdo de éste.
-
- - Ver un carácter a la izquierda presionando el botón izquierdo del ratón
- sobre la flecha que apunta a la izquierda, cuando ésta aparece, en el borde
- izquierdo de la ventana. Por consiguiente, desplaza los caracteres visuali-
- zados un lugar a la derecha.
-
- - Ver un carácter a la derecha presionando el botón izquierdo del ratón
- sobre la flecha que apunta a la derecha, cuando ésta aparece, en el borde
- derecho de la ventana. Por consiguiente, desplaza los caracteres visuali-
- zados un lugar a la izquierda.
-
- Si en cualquiera de las 2 últimas posiciones citadas se presiona el
- botón izquierdo del ratón sin soltarlo, no se genera el retardo (cf. 3.18.10)
- y el proceso iterativo es más rápido, aunque en tal caso puede desaparecer
- momentáneamente el cursor del ratón.
-
- Las ventanas de edición que aparecen en el tutor son: ventana que
- solicita texto de búsqueda (cf. 4.6), ventana que demanda un nombre de
- fichero (cf. 4.16) y ventana que pide una respuesta a la pregunta planteada
- en el tipo de ejercicio de preguntas con comprobación (cf. 4.17.2).
-
-
-
- 4.8.- AYUDA LOCAL.
- ------------------
-
- El proceso de ayuda local puede ser invocado prácticamente desde cual-
- quier lugar del tutor. Este proceso muestra una ventana de visualización
- (cf. 4.6) centrada en la pantalla y en cuyo interior se encuentra bastante
- información acerca del proceso llamador de la ayuda. Por ejemplo, si la
- ayuda se invoca mientras realizamos un test, la ventana de visualización
- mostrará toda la información disponible acerca del ejercicio tipo test. El
- texto de la ayuda se encuentra en el fichero TUTOR.HLP y puede ser modifi-
- cado por el usuario (cf. 5.6).
-
- Si la información local es insuficiente el usuario puede ampliarla
- consultando la información general (opción 1 del menú principal del programa
- TUTOR.EXE, cf. 4.11).
-
- La ayuda se invoca desde teclado pulsando la tecla <F1> y desde el
- ratón presionando el botón central (<BOTCEN>) o bien presionando <BOTIZQ>
- mientras el cursor del ratón se encuentra sobre el mensaje de ayuda local
- en la línea de estado inferior.
-
- Del proceso de ayuda nos salimos pulsando la tecla <ESC> del teclado o
- presionando el botón <BOTDER> del ratón o bien presionando el botón <BOTIZQ>
- mientras el cursor del ratón se encuentra sobre el mensaje correspondiente a
- la tecla <ESC> en la línea inferior.
-
-
-
- 4.9.- ABANDONAR TUTOR.
- ----------------------
-
- El proceso de abandonar tutor es invocado cada vez que queremos salir
- del tutor.
-
- Este proceso es invocado, o bien pulsando la tecla <ALT-X> desde tecla-
- do, o bien presionando el botón <BOTDER-BOTDER> con el ratón, o bien presio-
- nando el botón <BOTIZQ> mientras el cursor del ratón se encuentra en el men-
- saje correspondiente a la tecla <ALT-X> en la línea de estado inferior.
-
- El proceso de abandonar tutor visualiza una ventana en cuyo interior se
- pregunta "¿Desea abandonar el tutor?" y se muestra un menú horizontal (cf.
- 4.5) con dos opciones "Sí" y "No". Si realmente deseamos salir del tutor
- podemos pulsar la tecla <s> o <S> o <ALT-X> o también la tecla <RETURN>
- cuando la opción activa sea "Sí". Si no pretendemos salir del tutor podemos
- pulsar la tecla <n> o <N> o <ESC> o también la tecla <RETURN> cuando la
- opción activa sea "No".
-
- Para salir definitivamente del tutor con el ratón estando activado el
- proceso de abandonar tutor podemos presionar el botón <BOTDER-BOTDER> o
- también el botón <BOTIZQ> del ratón cuando el cursor del ratón esté o bien
- en el interior de la opción "Sí" o bien en el interior del mensaje corres-
- pondiente a la opción "Sí" en la línea de estado inferior. Si queremos
- anular la salida del tutor podemos presionar el botón <BOTDER> o también
- el botón <BOTIZQ> del ratón cuando el cursor del ratón esté o bien en el
- interior de la opción "No" o bien en el interior del mensaje correspondiente
- a la opción "No" en la línea de estado inferior.
-
- El proceso de abandonar tutor (salida con confirmación) se ha suminis-
- trado para prevenir la salida por equivocación, esto es, para prevenir la
- pulsación de la tecla <ALT-X> (o una presión de uno de los botones del ratón
- equivalente a la pulsación de la tecla <ALT-X>) por error. Sin embargo, se
- puede salir sin confirmación pulsando dos veces la tecla <ALT-X>. Si se pul-
- sa rápidamente la tecla <ALT-X> dos veces da la impresión de que la salida
- es inmediata, aunque en realidad se ha invocado al proceso de abandonar tu-
- tor. La presión de los botones <BOTIZQ-BOTDER> también proporciona una forma
- rápida de salir del tutor (sin confirmación).
-
-
-
- 4.10.- MENU PRINCIPAL.
- ----------------------
-
- El menú principal es la primera pantalla del programa TUTOR.EXE ya que
- si aparece la portada, ésta pertenece al programa PORTUTOR.EXE (cf. 4.20).
- Esta pantalla está constituida, sin tener en cuenta las líneas de estado,
- por dos ventanas: una es de menú (cf. 4.5) y la otra muestra el estado
- actual de un indicador.
-
- Las opciones de la ventana de menú son las siguientes:
-
- 1.- Información general: eligiendo esta opción se visualiza el manual de
- usuario correspondiente al paquete de programas y ficheros que forman el
- tutor. Este proceso se describe en el apartado 4.11.
-
- 2.- Tutor de C: eligiendo esta opción seleccionamos como lenguaje de estudio
- el C y nos vamos al menú de lecciones (cf. 4.12).
-
- 3.- Tutor de C++: eligiendo esta opción seleccionamos como lenguaje de
- estudio el C++ y nos vamos al menú de lecciones (cf. 4.12).
-
- El indicador de turbo puede estar activado (puesto a on) o desactivado
- (puesto a off). Por defecto está activado aunque podemos cambiar el valor
- por defecto con el argumento nt (cf. 4.18.6). Si este indicador está acti-
- vado, el usuario también estudiará Turbo C y Turbo C++ (o Borland C++)
- además del ANSI C y el ANSI C++; si, por el contrario, el indicador de turbo
- está desactivado, entonces el tutor no le mostrará al usuario ninguna infor-
- mación relativa a los lenguajes C y C++ de Borland International. El indica-
- dor de turbo puede ser puesto a on y a off pulsando la tecla <ALT-T> o pre-
- sionando el botón <BOTIZQ> mientras el cursor del ratón está o bien en el
- interior de la ventana en la que aparece el estado actual de dicho indicador
- o bien en el interior del mensaje correspondiente a la tecla <ALT-T> en la
- línea de estado inferior.
-
- El usuario puede eludir el menú principal la primera vez que se accede
- a él con el argumento mp (cf. 4.18.3).
-
-
-
- 4.11.- INFORMACION GENERAL.
- ---------------------------
-
- El proceso de información general es invocado desde el menú principal
- eligiendo la opción 1 de este menú. Este proceso consiste en mostrar una
- ventana de visualización (cf. 4.6) en cuyo interior se visualiza el fichero
- TUTOR.DOC (cf. 5.7). Este fichero contiene el manual de usuario del paquete
- del Tutor de C/C++ 1.0.
-
- Los motivos de incluir el manual de usuario en uno de los ficheros
- que constituyen el paquete, además de suministrarlo como libro, son los
- siguientes:
-
- - El usuario no necesita el libro. Si una persona copia el programa no nece-
- sita fotocopiar el manual pues puede imprimir el fichero TUTOR.DOC. El fiche-
- ro TUTOR.DOC es un fichero de texto ASCII y se puede imprimir con cualquier
- programa u orden del sistema operativo que imprima ficheros de texto ASCII.
-
- - En el fichero TUTOR.DOC pueden localizarse determinadas informaciones de
- una forma más rápida que en el libro, puesto que en él se pueden realizar
- búsquedas selectivas de texto con cualquier programa que disponga de facili-
- dades de búsqueda en ficheros. Todas las ventanas de visualización del tutor
- ofrecen utilidades de búsqueda a través de las teclas <CTRL-B>, <CTRL-R> y
- <CTRL-A> (cf. 4.6). Por ejemplo, si estamos en el proceso de información ge-
- neral y queremos saber qué hace la tecla <CTRL-A>, pulsamos la tecla <CTRL-B>
- (o sus correspondientes presiones de botones del ratón en la línea de estado
- inferior), escribimos "CTRL-A" o "<CTRL-A>", y a continuación pulsamos
- <RETURN>. Si no se encuentra el texto introducido en el fichero TUTOR.DOC se
- visualiza una ventana con el mensaje "Texto no encontrado.". Si no aparece
- dicha ventana quiere decir que el texto ha sido encontrado y éste está en la
- primera línea visualizada. Pulsando sucesivamente <CTRL-R> vamos repitiendo
- la búsqueda del texto introducido.
-
- A este proceso se puede acceder directamente desde el sistema operativo
- ejecutando el programa de la siguiente forma (cf. 4.18.3):
-
- TUTOR MP 1
-
-
-
- 4.12.- MENU DE LECCIONES.
- -------------------------
-
- En este menú aparecen todas las lecciones de que consta el tutor de C o
- de C++ según lenguaje elegido, por lo tanto, es diferente para el C y para
- el C++.
-
- Cada una de las opciones del menú presenta el título de esa lección. En
- la ventana de información (ventana que hay entre la ventana de menú y la
- línea inferior) se expone un pequeño resumen del contenido de esa lección.
-
- Las lecciones de C son:
-
- - Lección 1: Introducción al lenguaje C.
- Introducción al lenguaje, orígenes, características, uso y tres
- programas.
-
- - Lección 2: Tipos, operadores y expresiones.
- Datos, tipos, operadores, expresiones, declaraciones, inicializaciones.
-
- - Lección 3: Sentencias de control de programa.
- Sentencias de control: if, switch, while, for, do, break, continue,
- goto.
-
- - Lección 4: Algunas funciones del lenguaje C.
- Funciones de control de programa, funciones de E/S y funciones de
- consola.
-
- - Lección 5: Variables y funciones.
- Declaración y definición de las variables y funciones. Tipos de
- variables.
-
- - Lección 6: Arrays.
- Declaración, utilización e inicialización de arrays.
-
- - Lección 7: Punteros.
- Declaración, utilización e inicialización de punteros.
-
- - Lección 8: Tipos compuestos de datos.
- Estructuras, campos de bits, uniones, enumeraciones y definición de
- tipos.
-
- - Lección 9: Entrada y Salida (E/S). Ficheros.
- Flujos y ficheros. Estructura FILE. Librerías <stdio.h> y <io.h>.
-
- - Lección 10: La biblioteca de C. (Parte I)
- Ficheros que se estudian: limits.h, stddef.h, ctype.h, string.h, mem.h,
- math.h, conio.h, graphics.h.
-
- - Lección 11: La biblioteca de C. (Parte II)
- Ficheros que se estudian: setjmp.h, signal.h, alloc.h, process.h,
- dir.h, dos.h, bios.h. También se estudia la palabra clave interrupt
- de Turbo C.
-
- - Lección 12: La biblioteca de C. (Parte III)
- Ficheros que se estudian: stdlib.h, time.h, locale.h, sys\timeb.h,
- sys\stat.h, values.h, float.h. También se estudia la palabra clave
- asm de Turbo C.
-
- Las lecciones de C++ son:
-
- - Lección 1: Introducción al C++.
- Idea general y origen del lenguaje C++. Programación orientada a
- objetos (OOP). Características principales de la OOP: encapsulación,
- herencia y polimorfismo. Forma de implementar las clases en C++.
-
- - Lección 2: C++ como una mejora del C.
- Nuevas características de C++ no orientadas a objeto.
-
- - Lección 3: Clases.
- El tipo compuesto struct. Visibilidad de los miembros de un objeto
- (private y public). Tipos compuestos struct y class. Declaración de
- funciones miembros. Operador de resolución de ámbito (::). Miembro
- static. Clases anidadas. Estructuras y uniones (struct y union).
- Punteros a miembros (::*, .* y ->*). Precedencia de operadores.
-
- - Lección 4: Constructores y destructores.
- Concepto de constructor y destructor. Constructores y destructores de
- objetos estáticos. Almacenamiento libre. Vectores de objetos de clase.
- Objetos como miembros. Autorreferencia (el puntero this). Funciones
- miembros constantes. Funciones miembros volátiles.
-
- - Lección 5: Conversiones y sobrecarga de operadores.
- Conversiones tradicionales. Conversiones de TAD's. Algoritmo de se-
- lección de función sobrecargada. Especificador friend. Sobrecarga de
- operadores. Objetos grandes. Asignación e inicialización. Ejemplo de
- sobrecarga de algunos operadores.
-
- - Lección 6: Herencia simple.
- Clases derivadas. Modificadores de acceso public, private y protected.
- Punteros a clases derivadas. Funciones virtuales. Funciones puras.
- Clases abstractas. Jerarquía de clases.
-
- - Lección 7: Herencia múltiple.
- Forma general de declarar una clase. Jerarquía circular. Ambigüedad en
- los miembros. Herencia virtual (clases virtuales). Orden de llamada a
- los constructores y los destructores. Destructores virtuales. Orden de
- ejecución de un programa en Turbo C++. Algunos ejemplos curiosos.
-
- - Lección 8: Flujos. Entrada/Salida.
- Jerarquía de clases de E/S. Ficheros de cabecera: iostream.h, fstream.h
- y strstream.h. Clases definidas en iostream.h: streambuf, ios, istream,
- ostream, iostream, istream_withassign y ostream_withassign. Clases
- definidas en fstream.h: filebuf, fstreambase, ifstream, ofstream y
- fstream. Clases definidas en strstream.h: strstreambuf, strstreambase,
- istrstream, ostrstream y strstream. Clases bcd y complex.
-
- La elección de opción de este menú la primera vez que se accede a él se
- puede hacer de forma automática con el argumento lección (también se puede
- escribir de forma abreviada: l) desde la línea de órdenes del sistema opera-
- tivo (cf. 4.18.4). Por ejemplo, si se llama al programa TUTOR.EXE de la forma
-
- TUTOR NP MP 3 L 2
-
- la primera pantalla que ve el usuario es la pantalla del menú de tareas con
- la lección 2 del lenguaje C++ seleccionada.
-
-
- En la siguiente tabla se muestra el número de ventanas de teoría que
- forman cada lección de los lenguajes C y C++.
-
- Lenguaje Lección Número de ventanas
- -------- ------- ------------------
- C 1 27
- C 2 37
- C 3 43
- C 4 22
- C 5 29
- C 6 26
- C 7 31
- C 8 30
- C 9 15
- C 10 19
- C 11 22
- C 12 17
- Total lenguaje C: 318
- C++ 1 16
- C++ 2 30
- C++ 3 35
- C++ 4 28
- C++ 5 38
- C++ 6 37
- C++ 7 13
- C++ 8 33
- Total lenguaje C++: 230
- Total lenguajes C y C++: 548
-
- Como se ve en esta tabla, el número de ventanas conteniendo teoría en
- las lecciones de los lenguajes C y C++ es de ¡548!. Algunas de ellas llegan
- a tener más de 1500 líneas de texto.
-
-
- La tabla que se muestra a continuación refleja el número de programas
- completos (en C y en C++) compilados, ejecutados y probados que aparecen en
- el tutor:
-
-
- Lenguaje Lección En teoría En pruebas En ejemplos En ejercicios
- -------- ------- --------- ---------- ----------- -------------
- C 1 6 1 2 1
- C 2 9 1 2 0
- C 3 4 1 10 1
- C 4 9 1 6 0
- C 5 21 1 7 1
- C 6 5 1 10 0
- C 7 20 1 3 0
- C 8 6 1 3 0
- C 9 24 1 7 1
- C 10 43 1 6 0
- C 11 39 1 3 0
- C 12 55 1 3 0
-
- SubTotal Progr. C 241 12 62 4
-
- C++ 1 0 1 1 0
- C++ 2 6 1 1 8
- C++ 3 9 1 2 3
- C++ 4 13 1 4 2
- C++ 5 10 1 7 0
- C++ 6 13 1 1 0
- C++ 7 5 1 1 0
- C++ 8 21 1 3 0
-
- SubTotal Progr. C++ 77 8 20 13
-
- Total programas C: 319
- Total programas C++: 118
-
- Total programas: 437
-
- Como se ve en la tabla anterior, hay un total de ¡437! programas
- completos en C y C++.
-
-
- La siguiente tabla refleja el número de ejercicios que contiene el
- tutor para cada una de las lecciones de los lenguajes C y C++.
-
- Lenguaje Lección Número de ejercicios
- -------- ------- --------------------
- C 1 8
- C 2 19
- C 3 21
- C 4 24
- C 5 43
- C 6 33
- C 7 27
- C 8 23
- C 9 27
- C 10 12
- C 11 12
- C 12 9
- Total lenguaje C: 258
- C++ 1 9
- C++ 2 26
- C++ 3 17
- C++ 4 13
- C++ 5 26
- C++ 6 27
- C++ 7 14
- C++ 8 18
- Total lenguaje C++: 150
- Total lenguajes C y C++: 408
-
- En la tabla anterior se puede observar que en todo el tutor se le
- proponen al usuario ¡408! ejercicios, todos ellos resueltos (excepto las
- propuestas de programas, ya que hay múltiples formas de desarrollar un
- programa).
-
-
-
- 4.13.- MENU DE TAREAS.
- ----------------------
-
- En el menú de tareas nos encontramos todas las tareas posibles que
- podemos realizar con la lección y lenguaje elegidos.
-
- Las tareas son:
-
- - Lección completa: Estudia lección completa, este proceso consiste simple-
- mente en llamar de forma secuencial y consecutiva a los procesos de teoría,
- pruebas, ejemplos y ejercicios.
-
- - Teoría: Estudia teoría de una lección. La teoría consiste en una sucesión
- de ventanas con la información adecuada en su interior. El proceso de teoría
- se describe en el apartado 4.14.
-
- - Pruebas: No está implementado todavía. Será una especie de debugger donde
- se puede ver cómo se ejecuta un programa paso a paso y cómo van variando los
- valores de sus variables. El proceso de pruebas se describe en el apartado
- 4.14.
-
- - Ejemplos: Consiste en una sucesión de ventanas de visualización contenien-
- do cada una de ellas un programa completo de C o C++, según lenguaje selec-
- cionado, los cuales los podemos ejecutar, copiarlos a un fichero e imprimir-
- los, aparte de verlos con la ventana de visualización para ver cómo están
- implementados. El proceso de ejemplos se describe en el apartado 4.16.
-
- - Ejercicios: Proceso en el cual se propone al usuario una serie de ejerci-
- cios. Hay cuatro tipos de ejercicios: tests (cf. 4.17.1), preguntas con
- comprobación (cf. 4.17.2), preguntas sin comprobación (cf. 4.17.3) y pro-
- puestas de programas (cf. 4.14.4). El proceso de ejercicios se describe en
- el apartado 4.17.
-
- La elección de la opción de este menú la primera vez que se accede a él
- se puede hacer de forma automática con el argumento tarea (también se puede
- escribir de forma abreviada: t) desde la línea de órdenes del sistema opera-
- tivo (cf. 4.18.5). Por ejemplo, si se llama al tutor de la forma:
-
- TUTOR NP MP 3 L 3 T 2
-
- se entra directamente a la teoría de la lección 3 del lenguaje C++.
-
- Hay otro argumento particularmente interesante con respecto a las
- tareas: tc (tarea circular, cf. 4.18.8). Cuando una tarea es circular, la
- ventana anterior a la primera ventana es la última ventana, y viceversa, la
- ventana siguiente a la última ventana es la primera ventana. Si, por el con-
- trario, la tarea es lineal, el intento de ir a la ventana anterior de la
- primera ventana o el intento de ir a la ventana siguiente de la última ven-
- tana es equivalente a la pulsación de la tecla <ESC>, esto es, se abandona
- la tarea en la que estamos.
-
-
-
- 4.14.- TEORIA.
- --------------
-
- El proceso de teoría consiste en una serie de ventanas conteniendo cada
- una de ellas en su interior el texto de teoría y por los cuales se mueve el
- usuario libremente.
-
- Hay dos tipos de ventanas según la barra vertical:
-
- - Ventanas sin barra vertical: se ve todo el texto que contiene sin tener
- que desplazarlo. Nota: a veces hay que verlo completo tras pulsar una o
- varias veces una tecla, pero nunca se desplaza hacia arriba y abajo como
- en las ventanas con barra vertical.
-
- - Ventanas con barra vertical: sólo se ve en la ventana una parte del texto
- que contiene, para ver el resto tenemos que desplazarlo hacia arriba y hacia
- abajo con las teclas de visualización o con el botón izquierdo del ratón.
- Las teclas y botones del ratón relacionados con las ventanas de visualiza-
- ción están explicados en el apartado 4.6.
-
- Tras visualizar cada ventana, el programa espera la pulsación de una
- tecla por parte del usuario.
-
- A menudo se producen borrados de pantalla de teoría cuando se acumulan
- muchas ventanas en la pantalla.
-
- Podemos hacer otra clasificación de ventanas según su contenido:
-
- - Ventanas de control: estas ventanas están formadas por la primera y última,
- que indican el principio y el final de la teoría de esa lección, y por las
- ventanas de partición, que indican el principio y el final de la teoría que
- se encuentra en memoria.
-
- - Ventanas de teoría: estas ventanas contienen en su interior texto de
- teoría relativa a la lección del lenguaje seleccionado.
-
- El argumento pt (partir teoría, cf. 4.18.9) es muy interesante en el
- proceso de teoría porque debido al gran volumen de información que se maneja
- en este proceso, en el momento de leer la lección del fichero de datos y
- cargarla en memoria puede suceder, con algunas lecciones especialmente lar-
- gas, que se produzca el error de memoria insuficiente (cf. 6.1.2.1). En este
- caso debemos llamar al programa utilizando este argumento. El significado de
- pt es partir teoría. Por defecto, las lecciones de teoría se cargan comple-
- tamente en memoria. Si se especifica este argumento, algunas lecciones de
- teoría se cargan en memoria en dos partes: cuando carga una, se descarga la
- otra. De este modo, con la opción pt, y en las lecciones partibles (que sue-
- len ser las que ocupan mucha memoria) siempre se encuentra una parte en me-
- moria y otra parte en disco, concretamente en el fichero de datos de teoría
- (cf. 5.3).
-
- Las teclas disponibles en el proceso de teoría son las siguientes:
-
- - <F4>: Imprime en la impresora la teoría que hay cargada en memoria. Si
- sólo hay una parte de la lección cargada en memoria, hay que tener en cuen-
- ta, que si se pulsa <F4> se imprime sólo la teoría que está en memoria; así
- que en este caso se debe pulsar <F4> para cada parte cargada en memoria si
- se desea imprimir la lección completa. La impresión se puede interrumpir
- pulsando <ESC>.
-
- - Teclas generales (cf. 4.3). Con respecto a la tecla <ESC> en este caso hay
- que hacer un pequeño comentario. Si el proceso de teoría lo activó el proce-
- so de lección completa, la pulsación de la tecla <ESC> hará que el proceso
- continúe en las pruebas. Si por el contrario, el proceso de teoría lo activó
- el usuario directamente desde el menú de tareas, al pulsar éste la tecla
- <ESC>, el programa volverá el menú de tareas.
-
- - Teclas de visualización (cf. 4.6). Recordar que las teclas <LEFT>,
- <RIGHT>, <CTRL-LEFT> Y <CTRL-RIGHT> sólo se usan en las ventanas de
- visualización cuando éstas tienen barra horizontal, y en el proceso
- de teoría no hay ninguna ventana de visualización con barra horizontal.
-
- - <LEFT>: Vuelve a la ventana anterior. Si estamos en la primera ventana
- y las tareas no son circulares, la pulsación de esta tecla es equivalente
- a la pulsación de la tecla <ESC>.
-
- - <RIGHT>: vamos al punto siguiente. El punto siguiente puede ser o bien
- la ventana siguiente o bien visualizar otro trozo de texto en la ventana
- actual, ya que en algunas ventanas el texto se visualiza por partes. Si
- estamos en la última ventana y las tareas no son circulares y además el
- punto siguiente tiene el significado de ventana siguiente, entonces la
- pulsación de esta tecla es equivalente a la pulsación de la tecla <ESC>.
-
- - <RETURN>: la pulsación de esta tecla sólo tiene efecto en las ventanas de
- partición. Cuando tenemos en memoria la primera parte de una lección, la
- última ventana de la lección no es aquélla que pone "Final de la teoría de
- la lección N" sino la que pone "Pulsa ENTER para cargar la PRIMERA PARTE de
- la teoría de la lección N". Una cosa similar ocurre cuando tenemos cargada
- la segunda parte de la lección, en este caso, la primera ventana no es la
- que pone "Principio de la teoría de la lección N" sino la que pone "Pulsa
- ENTER para cargar la SEGUNDA PARTE de la teoría de la lección N". Como es
- evidente, para cargar la otra parte de la lección debemos pulsar ENTER (la
- tecla <RETURN>) como nos indica el mensaje de estas ventanas. Podemos hacer
- lo mismo con el ratón, pulsando el botón izquierdo (<BOTIZQ>) en el interior
- de estas ventanas de partición. Cuando cargamos la primera parte de una lec-
- ción, la primera ventana que aparece en pantalla es la que dice "Principio
- de la teoría de la lección N", pero cuando cargamos la segunda parte, la
- primera ventana que aparece en pantalla es la primera ventana con texto de
- teoría y no la primera ventana real que es la que pone "Pulsa ENTER para
- cargar la PRIMERA PARTE de la teoría de la lección N". Después de todo lo
- que se ha dicho en este párrafo puede parecer que es muy complicado todo
- esto, pero en realidad, incluso sin esta ayuda, cualquier usuario sabe lo
- que hacer en cada momento puesto que la línea inferior siempre nos informa
- de todas las teclas disponibles y las propias ventanas de control nos dicen
- lo que debemos hacer.
-
-
-
- 4.15.- PRUEBAS.
- ---------------
-
- El proceso de pruebas tiene la intención de enseñarle al usuario cómo
- se ejecuta un programa línea a línea y cómo van cambiando los valores de sus
- variables.
-
- La pantalla de pruebas está formada, aparte de las dos líneas de esta-
- do, por tres ventanas:
-
- 1) Ventana de código fuente: Esta ventana está encabezada por el epí-
- grafe "CODIGO FUENTE". En su interior se encuentra el código fuente de los
- programas de C o C++ que van a ser probados.
-
- 2) Ventana de variables: Está ventana está encabezada por la leyenda
- "VARIABLES". En ella aparece los nombres de todas las variables que utiliza
- el programa a ser probado junto con su valor actual.
-
- 3) Ventana de entrada/salida: Está ventana está encabezada por el títu-
- lo de "ENTRADA/SALIDA". Hace la función de la entrada y salida estándar, es
- decir, que todas las sentencias de E/S estándar del programa que se prueba
- utilizan esta ventana para escribir y leer datos.
-
- Las teclas disponibles en esta pantalla son:
-
- - Las teclas generales (<F1>, <ESC> y <ALT-X>) o sus correspondientes pul-
- saciones de botones del ratón.
-
- - La tecla <F10> o la presión del botón izquierdo sobre la región de esta
- tecla en la línea de estado inferior. La acción asociada a esta tecla es el
- comienzo de la prueba, es decir, hacer que la línea ejecutable actual del
- programa a probar sea la primera línea ejecutable de ese programa.
-
- - Las demás teclas o la presión del botón izquierdo del ratón cuando el
- cursor de éste no se encuentra sobre una región de las teclas <F1>, <ESC>,
- <ALT-X> o <F10> en la línea inferior. En este caso se ejecuta la línea
- ejecutable actual del programa a probar, actualizando las ventanas de
- variables y de entrada/salida si fuera necesario, y por último se pasa a
- la siguiente línea ejecutable. La línea ejecutable actual en cada momento
- se distingue claramente pues dicha línea está escrita con colores distintos
- al resto de las líneas del programa.
-
- Tres observaciones finales sobre este proceso:
-
- a) La línea ejecutable siguiente a una de las que se exponen a
- continuación
- - una línea que contiene la función exit(); o
- - una línea que contiene la sentencia return dentro de la función
- main(); o
- - una línea que contiene la llave de cierre } de la función main()
- equivale a la finalización de la prueba, es decir, la cesión del control del
- tutor al proceso llamador del de la prueba (bien el proceso de lección com-
- pleta o bien el proceso de tareas).
-
- a) El formato de cada línea de la ventana de variables que contiene una
- variable es
- nombre_de_variable: mensaje
- donde nombre_de_variable es el nombre de la variable que aparece en el
- programa a probar y mensaje puede ser uno de los siguientes:
- - (vble indefinida). El seguimiento del programa de prueba se en-
- cuentra en un punto (en una línea ejecutable) en el cual todavía no se ha
- definido esa variable o bien esa variable no es conocida en ese lugar.
- - (ble no inicializada). El control del programa de
- prueba se encuentra en un lugar (en una línea ejecutable) en el cual se
- conoce (se puede acceder) la variable pero sin embargo todavía no se le ha
- asignado ningún valor y por lo tanto contiene "basura".
- - El valor de la variable. El formato de este valor depende del
- tipo de variable (entera, carácter, cadena de caracteres, etc.).
-
- c) Cuando se leen datos de la ventana de entrada/salida, se puede
- observar que se cambia la línea de estado inferior para denotar que
- cualquier tecla pulsada (<F1>, <ESC>, etc.) es leída y procesada por la
- sentencia de entrada (getchar(), scanf(), cin, ...) del programa de prueba.
- Por lo tanto, teclas como <F1>, <ESC>, <ALT-X> y <F10> pierden en este
- momento sus significados habituales; la línea inferior indica la desacti-
- vación de los acciones usuales asociadas a las citadas teclas.
-
-
-
- 4.16.- EJEMPLOS.
- ----------------
-
- El proceso de ejemplos está formado por una serie de ventanas de
- visualización (cf. 4.6) donde en cada una se encuentra un programa completo
- en C o C++ (excepto primera y última ventana).
-
- Con cada ejemplo podemos realizar varias operaciones:
-
- - Verlo con las teclas de visualización o con las botones del ratón (cf.
- 4.6). El usuario puede observar de esta forma la implementación y diseño
- de programas completos en C y C++. Hay todo tipo de programas ejemplos,
- algunos bastantes complicados.
-
- - Copiarlo a un fichero, pulsando la tecla <F2>. El usuario puede copiar el
- ejemplo que visualiza en pantalla a un fichero de disco con el nombre que
- desee para compilarlo con un compilador de C (o C++) y modificarlo si lo
- desea.
-
- - Imprimirlo, pulsando la tecla <F4>. Se supone que la impresora está conec-
- tada con el puerto paralelo LPT1. Si su impresora se encuentra en otro puer-
- to, utilice la opción pi (cf. 4.18.11) para que el programa utilice otro
- puerto de impresora. La impresión se puede interrumpir pulsando <ESC>.
-
- - Ejecutarlo, pulsando la tecla <F9>. Para entender cómo esta hecho el pro-
- grama y para saber lo que hace, lo mejor es ejecutarlo. El código ejecutable
- de los programas ejemplos se encuentran en los ficheros PRTUTC.EXE (ejemplos
- del lenguaje C, cf. 4.21) y PRTUTCPP.EXE (ejemplos del lenguaje C++, cf.
- 4.21), así que estos ficheros han de estar en el directorio de trabajo para
- ejecutar los ejemplos. Si hay poca memoria, no podrán ejecutarse los progra-
- mas ejemplos desde el programa TUTOR.EXE.
-
- Debido a que todas las teclas de los cursores se utilizan para visua-
- lizar los ejemplos de las ventanas, hay que utilizar las teclas <F7> y <F8>
- para ir a la anterior y próxima ventana, respectivamente. Si pulsamos <F7>
- en la primera ventana y la tarea es lineal, nos salimos del proceso de ejem-
- plos. Lo mismo ocurre si pulsamos <F8> estando en la última ventana con
- tarea lineal.
-
- También están disponibles las teclas generales (<F1>, <ESC> y <ALT-X>)
- como ocurre a lo largo de todo el programa.
-
-
-
- 4.16.1.- EL PROGRAMA EJECUTAR.EXE.
- ----------------------------------
-
- Este programa ejecuta los ejemplos presentados en la tarea de ejemplos
- del programa TUTOR.EXE.
-
- Cuando se pulsa la tecla <F9> en la tarea de ejemplos del programa
- TUTOR.EXE, este programa ejecuta el programa PRTUTC.EXE si el ejemplo es de
- C o el programa PRTUTCPP.EXE si el ejemplo es de C++. En los sistemas que
- tengan poca memoria convencional libre puede suceder que algunos ejemplos no
- puedan ser ejecutados o incluso que no puedan ser ejecutados siquiera los
- programas PRTUTC.EXE y PRTUCPP.EXE; en estos casos se puede copiar el ejem-
- plo, pulsando <F2>, a un fichero de disco, y obtener de este fichero un pro-
- grama ejecutable haciendo uso de un compilador de C y C++. Una solución al-
- ternativa y más cómoda para ejecutar los ejemplos en aquellos sistemas con
- poca memoria libre es hacer uso del programa EJECUTAR.EXE.
-
- La sintaxis correcta de ejecución es
-
- EJECUTAR lenguaje lección ejemplo
-
- donde
-
- - lenguaje puede ser C o C++
- - lección es un número entre 1 y 12 para C, y entre 1 y 8 para C++
- - ejemplo es el número del ejemplo a ejecutar.
-
- El número de ejemplos para cada lección se muestra en la siguiente
- tabla:
-
- Lenguaje C Lenguaje C++
- Lección Ejemplos Lección Ejemplos
- 1 2 1 1
- 2 2 2 1
- 3 10 3 2
- 4 6 4 4
- 5 7 5 7
- 6 10 6 1
- 7 3 7 1
- 8 3 8 3
- 9 7
- 10 6
- 11 3
- 12 3
-
- Todos los posibles errores que puede emitir el programa EJECUTAR.EXE
- se detallan en el apartado 6.8.
-
-
-
- 4.17.- EJERCICIOS.
- ------------------
-
- El proceso de ejercicios está formado por una serie de pantallas, cada
- una contiene un ejercicio, excepto la primera y última que indican el prin-
- cipio y el final de los ejercicios.
-
- Hay cuatro tipos de ejercicios:
-
- - Tests: se hace una pregunta y el usuario ha de elegir la respuesta correc-
- ta entre un conjunto de opciones.
-
- - Preguntas con comprobación: se hace una pregunta, el usuario escribe su
- respuesta en un pequeño editor, y el programa comprueba si la respuesta
- introducida es la correcta.
-
- - Preguntas sin comprobación: se hace una pregunta, el usuario piensa
- mentalmente la respuesta, y cuando lo desee mira la respuesta correcta.
-
- - Propuestas de programas: el programa propone un programa que ha de ser
- realizado por el usuario en su compilador de C o C++.
-
- Los cuatro siguientes subapartados hacen una descripción más detallada
- de cada uno de los tipos de ejercicios.
-
- Si se pulsa la tecla <F4> (o presión del botón correspondiente) desde
- la primera o última ventana de ejercicios, las cuales no son ventanas de
- ejercicios sino que simplemente sirven de delimitadores, se imprimen todos
- los ejercicios cargados en memoria de la lección y lenguaje actuales. En ca-
- da pantalla de ejercicios también se dispone de la tecla de impresión (<F4>)
- pero en tales casos sólo se imprime un ejercicio (el ejercicio actual).
-
- Debido a que todas las teclas de los cursores se utilizan en los ejer-
- cicios (menú, editor), hay que utilizar las teclas <F7> y <F8> para ir al
- anterior y siguiente ejercicio, respectivamente. Si pulsamos <F7> en la pri-
- mera ventana y la tarea es lineal, nos salimos del proceso de ejercicios. Lo
- mismo ocurre si pulsamos <F8> estando en la última ventana con tarea lineal.
-
- En cada ejercicio están disponibles las teclas generales (<F1>, <ESC> y
- <ALT-X>).
-
-
-
- 4.17.1.- TESTS.
- ---------------
-
- Este proceso realiza ejercicios tipo tests correspondientes a una
- lección el lenguaje dado (C o C++).
-
- La pantalla de tests consta de tres partes:
-
- - Parte 1: En ella se hace la pregunta.
-
- - Parte 2: Menú con varias respuestas a la pregunta de la parte 1, entre las
- cuales se encuentra la verdadera.
-
- - Parte 3: En esta parte se escribe la respuesta correcta a la pregunta plan-
- teada cuando lo solicita el usuario; también se escribe en este lugar los
- mensajes de acierto y de fallo cuando el usuario elige una opción del menú.
-
- El usuario puede en todo momento seleccionar una respuesta del menú y
- comprobar si es correcta o no; también puede ver la respuesta correcta
- mediante la pulsación de la tecla <F3>.
-
- En esta pantalla se dispone de la tecla <F4> para imprimir el ejercicio
- actual (en este caso el test actual). Si se desean imprimir todos los ejer-
- cicios de una lección, es necesario pulsar <F4> desde la primera o última
- ventana del proceso de ejercicios (cf. 4.17).
-
- Como en todos los tipos de ejercicios, con la tecla <F7> nos vamos al
- ejercicio anterior y con la tecla <F8> nos vamos al siguiente ejercicio.
-
- También disponemos de las teclas generales.
-
-
-
- 4.17.2.- PREGUNTAS CON COMPROBACION.
- ------------------------------------
-
- Este proceso consiste en una serie de preguntas a las que el usuario
- debe responder en un pequeño editor. Una vez escrita la respuesta, ésta es
- comparada con la respuesta correcta.
-
- Hay tres ventanas en las pantallas de este tipo de ejercicio. En la
- ventana de pregunta se escribe la pregunta. En la ventana de introducción
- de la respuesta el usuario escribe la respuesta. En la ventana de respuesta
- se escribe, cuando lo solicite el usuario, la respuesta correcta a la pre-
- gunta planteada; también se escribe en este lugar los mensajes de acierto y
- fallo cuando el usuario termina de introducir su respuesta.
-
- El usuario puede en todo momento ver la respuesta correcta pulsando la
- tecla <F3>.
-
- En esta pantalla se dispone de la tecla <F4> para imprimir el ejercicio
- actual (en este caso la pregunta con comprobación actual). Si se desean im-
- primir todos los ejercicios de una lección, es necesario pulsar <F4> desde
- la primera o última ventana del proceso de ejercicios (cf. 4.17).
-
- Como en todos los tipos de ejercicios, con la tecla <F7> nos vamos al
- ejercicio anterior y con la tecla <F8> nos vamos al siguiente ejercicio.
-
- También disponemos como siempre de las teclas generales.
-
-
-
- 4.17.3.- PREGUNTAS SIN COMPROBACION.
- ------------------------------------
-
- Este proceso consiste en una serie de preguntas a las que el usuario
- debe responder mentalmente para después comparar la respuesta pensada con
- la dada por este proceso.
-
- Hay tres ventanas en las pantallas de este tipo de ejercicio. En la
- ventana de pregunta se escribe la pregunta. En la ventana de observación
- se escribe un mensaje que le dice al usuario que pulse la tecla <F3> cuando
- desee ver la respuesta correcta. En la ventana de respuesta se escribe la
- respuesta correcta a la pregunta planteada.
-
- En esta pantalla se dispone de la tecla <F4> para imprimir el ejercicio
- actual (en este caso la pregunta sin comprobación actual). Si se desean im-
- primir todos los ejercicios de una lección, es necesario pulsar <F4> desde
- la primera o última ventana del proceso de ejercicios (cf. 4.17).
-
- Como en todos los tipos de ejercicios, con la tecla <F7> nos vamos al
- ejercicio anterior y con la tecla <F8> nos vamos al siguiente ejercicio.
-
- También disponemos de las teclas generales.
-
-
-
- 4.17.4.- PROPUESTAS DE PROGRAMAS.
- ---------------------------------
-
- Este proceso muestra enunciados de programas para que el usuario los
- haga, compile y ejecute en un compilador del lenguaje C o C++.
-
- El enunciado del programa se imprime en impresora pulsando la tecla
- <F4>. Se supone que la impresora está conectada con el puerto paralelo LPT1.
- Si su impresora se encuentra en otro puerto, utilice la opción pi (cf.
- 4.18.11) para que el programa utilice otro puerto de impresora. La impresión
- se puede interrumpir pulsando <ESC>. Si se desean imprimir todos los ejerci-
- cios de una lección, es necesario pulsar <F4> desde la primera o última ven-
- tana del proceso de ejercicios (cf. 4.17).
-
- Pulsando la tecla <F5> se llama al compilador de C o C++ que utilice el
- usuario. Cuando el usuario abandone el compilador regresará al mismo punto
- del tutor desde el que se realizó la llamada al compilador. El nombre del
- compilador, esto es, la especificación completa del compilador (unidad,
- ruta, nombre), debe estar en la primera línea del fichero TUTOR.CMP (cf.
- 5.8), el cual es un fichero de texto ASCII que se puede editar con cualquier
- procesador de textos que manipule ficheros de texto ASCII. El contenido de
- las demás líneas (a partir de la primera) es ignorado. Por supuesto, la
- letra de la unidad y la ruta, son opcionales; si no se ponen, se considerará
- la unidad y el directorio de trabajo. El nombre del programa (del compila-
- dor) puede tener todos los argumentos que se desee; la única condición o
- restricción que se pone a ello es que el nombre del programa junto con sus
- argumentos no puede sobrepasar los 255 caracteres. El fichero TUTOR.CMP se
- puede crear fácilmente con la utilidad COMPILAD.EXE (cf. 5.8).
-
- Como en todos los tipos de ejercicios, con la tecla <F7> nos vamos al
- ejercicio anterior y con la tecla <F8> nos vamos al siguiente ejercicio.
-
- También disponemos como siempre de las teclas generales.
-
-
-
- 4.18.- ARGUMENTOS.
- ------------------
-
- La sintaxis de llamada al programa TUTOR.EXE es:
-
- TUTOR [argumentos]
-
- donde [argumentos] quiere decir que tras el nombre del programa pueden ir
- opcionalmente varios argumentos. Si no se introduce ningún argumento el pro-
- grama TUTOR.EXE se ejecuta en modo normal, esto es, con una serie de paráme-
- tros con sus valores por defecto. [argumentos] tiene la siguiente sintaxis:
-
- argumento argumento argumento ...
-
- donde argumento puede ser:
-
- ?: ayuda.
- np: no presentación
- mp n: menú principal
- l[ección] n: lección
- t[area] n: tarea
- nt: no turbo
- ndv: no acceso directo a vídeo
- tc: tareas circulares
- pt: partir teoría
- rr ms: retardo ratón
- pi n: puerto de impresora
- p: memoria expandida
- x: memoria extendida
- fmu: fichero con manual de usuario
- prt: pulsación al regresar al tutor
-
- Los argumentos anteriores pueden aparecer en cualquier orden tras el
- nombre del programa y pueden aparecer más de una vez (en este caso sólo ten-
- drá validez el que aparezca en último lugar). Si aparece el argumento ? no
- se consideran los demás argumentos. Los argumentos se pueden escribir tanto
- en mayúsculas, en minúsculas como en una combinación de ambas. Los nombres
- de argumentos de lección y tarea se pueden escribir tanto en forma abreviada
- como en su forma completa (observad la lista de argumentos anterior).
-
-
-
- 4.18.1.- ARGUMENTO ?.
- ---------------------
-
- Si aparece el argumento ? (ayuda) en la lista de argumentos, los demás
- argumentos se desecharán.
-
- Este argumento hace que el programa TUTOR.EXE muestre una pequeña ayuda
- acerca de todos sus argumentos. En este caso no se entrará en el tutor pro-
- piamente dicho, únicamente se muestra la ayuda y termina el programa.
-
- La ayuda mostrada por el programa con este argumento está dividida en
- dos pantallas: en la primera pantalla se informa del nombre del programa y
- de su autor, y se listan todos los argumentos con una breve descripción para
- cada uno de ellos. Tras mostrar esta pantalla, el programa emite el siguien-
- te mensaje en la última línea de la pantalla: "Pulsa ESC para terminar la
- ayuda o cualquier otra tecla para continuarla". Si nuestro objetivo sólo era
- averiguar la sintaxis y significado de los argumentos, podemos pulsar ESC
- para terminar la ayuda; pero si queremos leer algunas observaciones sobre
- los argumentos y una explicación más detallada de alguno de ellos, pulsamos
- cualquier tecla para obtenerla. Tras esta pulsación, se muestra una segunda
- pantalla de ayuda sobre los argumentos y el programa devuelve el control al
- sistema operativo.
-
- Si se introduce un argumento que no corresponda a ninguno de los
- listados en este apartando, el programa TUTOR.EXE mostrará el mensaje de
- error "Error: El argumento NOM_ARG no es válido." donde NOM_ARG es el nombre
- de argumento no válido introducido.
-
-
-
- 4.18.2.- ARGUMENTO NP.
- ----------------------
-
- El argumento np (no presentación) hace que no se muestre la pantalla de
- presentación (cf. 4.20).
-
- Una vez vista la pantalla de presentación, podría resultar tedioso para
- el usuario tener que verla cada vez que entre en el tutor. Usando este argu-
- mento elude tal pantalla y consigue que la primera pantalla que aparezca es
- la del menú principal (cf. 4.10) del tutor.
-
- Otra ventaja adicional que tiene la utilización de este argumento es
- hacer que la entrada en el tutor sea más rápida. Tened en cuenta que mostrar
- la pantalla de presentación implica ejecutar el programa PORTUTOR.EXE; con
- el argumento np le decimos al programa TUTOR.EXE que no realice una llamada
- al programa PORTUTOR.EXE.
-
-
-
- 4.18.3.- ARGUMENTO MP.
- ----------------------
-
- El argumento mp (menú principal) tiene la sintaxis
- MP N
- donde N puede tomar los valores 1 (Información general), 2 (Lenguaje C)
- ó 3 (Lenguaje C++).
-
- Con este argumento se consigue que en el primer acceso al menú princi-
- pal se seleccione de forma automática la opción N de este menú.
-
- Por ejemplo, si ejecutamos el programa tutor en la forma
- TUTOR NP MP 2
- entramos directamente en el menú de lecciones con el lenguaje C seleccio-
- nado, puesto que hemos seleccionado la opción 2 del menú principal de forma
- automática.
-
- Este argumento sólo tiene efecto sobre el menú principal la primera vez
- que se accede a él.
-
- Si el número N (1 ½ N ½ 3) no aparece, se muestra el mensaje de error
- "Error: Opción mp sin número de opción.". Si aparece el número N, pero éste
- no está comprendido entre 1 y 3, ambos inclusive, entonces se muestra el
- mensaje de error "Error: Opción de mp no válida.".
-
-
-
- 4.18.4.- ARGUMENTO L.
- ---------------------
-
- El argumento l (también se puede escribir lección o leccion) tiene la
- sintaxis
- L N
- donde N ha de ser mayor que 0.
-
- Con este argumento se consigue que en el primer acceso al menú de
- lecciones se seleccione de forma automática la opción N de este menú, es
- decir, la lección N.
-
- Por ejemplo, si ejecutamos el programa tutor en la forma
- TUTOR NP MP 2 L 3
- entramos directamente en el menú de tareas con la lección 2 del lenguaje C
- seleccionada, puesto que hemos seleccionado, de forma automática, la opción
- 2 del menú principal y la opción 3 del menú de lecciones.
-
- Este argumento sólo tiene efecto sobre el menú lecciones la primera vez
- que se accede a él.
-
- Si el número N (N > 0) no aparece, se muestra el mensaje de error
- "Error: Opción l sin número de lección." Si aparece el número N, pero éste
- no es mayor que 0, entonces se muestra el mensaje de error "Error: Opción de
- lección no válida.". En este caso sólo se comprueba el límite inferior (que
- es 1) y el límite superior (que puede ser 12 ó 8) porque si aparece el pará-
- metro l y no aparece el parámetro mp es imposible averiguar si el usuario va
- a trabajar con el lenguaje C (en cuyo caso el límite superior de l sería 12)
- o con el lenguaje C++ (en cuyo caso el límite superior de l sería 8). Si el
- número N es mayor de 12 para el caso del lenguaje C o es mayor de 8 para el
- caso del lenguaje C++ no se emitirá ningún mensaje de error y se desechará
- tal argumento.
-
- Por ejemplo, si hacemos
- TUTOR NP MP 2 L 14
- será equivalente a hacer
- TUTOR NP MP 2
- puesto que no existe la lección 14 para el lenguaje C (mp 2).
-
-
-
- 4.18.5.- ARGUMENTO T.
- ---------------------
-
- El argumento t (también se puede escribir tarea) tiene la sintaxis
- T N
- donde N ha de ser 1 (lección completa), 2 (teoría), 3 (pruebas), 4 (ejem-
- plos) ó 5 (ejercicios).
-
- Con este argumento se consigue que en el primer acceso al menú de
- tareas se seleccione de forma automática la opción N de este menú.
-
- Por ejemplo, si ejecutamos el programa tutor en la forma
- TUTOR NP MP 2 L 3 T 2
- entramos directamente en la teoría de la lección 2 del lenguaje C, puesto
- que hemos seleccionado, de forma automática, la opción 2 del menú principal,
- la opción 3 del menú de lecciones y la opción 2 del menú de tareas.
-
- Este argumento sólo tiene efecto sobre el menú lecciones la primera vez
- que se accede a él.
-
- Si el número N (1 ½ N ½ 5) no aparece, se muestra el mensaje de error
- "Error: Opción t sin número de tarea." Si aparece el número N, pero éste no
- está comprendido entre 1 y 5, ambos inclusive, entonces se muestra el mensa-
- je de error "Error: Opción de tarea no válida.".
-
- Por ejemplo, si hacemos
- TUTOR NP MP 2 T 3 T 2 L 1
- será equivalente a hacer
- TUTOR NP MP 2 T 2 L 1
- ya que dijimos anteriormente que si un argumento aparece más de una vez sólo
- se tendrá en cuenta el que aparece en el último lugar de la lista de argu-
- mentos.
-
-
-
- 4.18.6.- ARGUMENTO NT.
- ----------------------
-
- El argumento nt (no turbo) hace que se entre en el programa TUTOR.EXE
- con el indicador de turbo desactivado (puesto a off). Si no se utiliza este
- argumento, al entrar en el programa este indicador está activado (puesto a
- on).
-
- Cuando este indicador está activado, el usuario también estudiará Turbo
- C y Turbo C++ (o Borland C++) además del ANSI C y el ANSI C++; si, por el
- contrario, el indicador de turbo está desactivado, entonces el tutor no le
- mostrará al usuario ninguna información relativa a los lenguajes C y C++ de
- Borland International.
-
- Si el usuario no va a estudiar nunca las versiones de Borland de los
- lenguajes C y C++, mejor que tener que desactivar este indicador en el menú
- principal, cada vez que entre al programa, con las teclas <ALT-T> o con el
- ratón, es mejor, repetimos, ejecutar el programa en la forma TUTOR NT; y
- aun más cómodo sería crear un fichero por lotes llamado, por ejemplo,
- TUTORNT.BAT, que contenga la línea: TUTOR NT.
-
-
-
- 4.18.7.- ARGUMENTO NDV.
- -----------------------
-
- El argumento ndv se utiliza para indicarle al programa TUTOR.EXE que no
- emplee la salida de consola con accesos directos a RAM de vídeo.
-
- Por defecto, el programa produce la salida en pantalla escribiendo
- directamente en la memoria RAM de vídeo. Una segunda forma de salida a
- pantalla es escribir los caracteres en ésta vía interrupciones de la ROM
- BIOS. La primera forma es mucho más rápida que la segunda pero tiene como
- inconveniente que es menos portable. Para usar la primera forma, el hardware
- de vídeo del sistema debe ser idéntico a los adaptadores de visualización de
- IBM. La segunda forma permite la salida a consola trabajando en cualquier
- sistema compatible a nivel BIOS con IBM.
-
- Si en su ordenador hay problemas con la salida a consola, utilice el
- argumento ndv.
-
-
-
- 4.18.8.- ARGUMENTO TC.
- ----------------------
-
- El argumento tc (tareas circulares) hace que las tareas (teoría,
- ejemplos y ejercicios) sean circulares. Por defecto son lineales.
-
- Cuando una tarea es circular, la ventana anterior a la primera ventana
- es la última ventana, y viceversa, la ventana siguiente a la última ventana
- es la primera ventana. Si, por el contrario, la tarea es lineal, el intento
- de ir a la ventana anterior de la primera ventana o el intento de ir a la
- ventana siguiente de la última ventana es equivalente a la pulsación de la
- tecla <ESC>, esto es, se abandona la tarea en la que estamos.
-
-
-
- 4.18.9.- ARGUMENTO PT.
- ----------------------
-
- El argumento pt (partir teoría) hace que las lecciones de teoría par-
- tibles sean manipuladas en dos partes, de tal forma que sólo una de las
- partes se mantenga en memoria. Por defecto, las lecciones de teoría no se
- parten en dos trozos.
-
- El argumento pt es muy interesante en el proceso de teoría porque
- debido al gran volumen de información que se maneja en este proceso, en el
- momento de leer la lección del fichero de datos y cargarla en memoria puede
- suceder, con algunas lecciones especialmente largas, que se produzca el
- error de memoria insuficiente. En este caso debemos llamar al programa uti-
- lizando este argumento. El significado de pt es partir teoría. Por defecto,
- las lecciones de teoría se cargan completamente en memoria. Si se especifica
- este argumento, algunas lecciones de teoría se cargan en memoria en dos par-
- tes: cuando se carga una, se descarga la otra. De este modo, con el argumen-
- to pt, y en las lecciones partibles (son lecciones que ocupan mucha memoria
- y que pueden ser partidas) siempre se encuentra una parte en memoria y otra
- parte en disco, concretamente en el fichero de datos de teoría.
-
- Si al intentar leer la teoría de una lección se produce el error de
- "Memoria insuficiente" (cf. 6.1.2.1) se debe ejecutar el programa en la
- forma TUTOR PT para que se cargue la lección en memoria por partes (si dicha
- lección es partible). Si aún así persiste el problema de "Memoria insufi-
- ciente" se debe dejar más memoria libre desalojando algunos programas resi-
- dentes. Otra solución para resolver el problema de memoria es modificar las
- particiones de esa lección (cambiar palabra clave "partir" de lugar dentro
- de lección en fichero de datos) o hacer la lección partible si dicha lección
- no lo es (incluir palabra clave "partir" dentro de lección en fichero de
- datos de teoría), esto se describe en el apartado 5.3.
-
-
-
- 4.18.10.- ARGUMENTO RR.
- -----------------------
-
- El argumento rr (retardo en ratón) tiene la sintaxis
- RR MS
- donde MS son los milisegundos de retardo. Si no se utiliza este argumento,
- el número de milisegundos de retardo de ratón es 200.
-
- Cuando se pulsa un botón del ratón, por muy rápido que se haga, inte-
- riormente se generan varias pulsaciones. La solución para este caso es
- generar un tiempo de retardo tras cada pulsación de botón. Durante este
- tiempo de retardo todo lo que pasa es ignorado, de esta forma, se generan,
- tras una presión de botón, presiones que no son tenidas en cuenta. El valor
- por defecto está puesto a 200 milisegundos, no obstante, este valor se puede
- modificar a través del argumento rr.
-
- Si el número de milisegundos MS no aparece, se muestra el mensaje de
- error "Error: Opción rr sin número de milisegundos." Si aparece el número
- MS, pero éste es menor o igual a cero, entonces se muestra el mensaje de
- error "Error: Número de milisegundos no válido.".
-
-
-
- 4.18.11.- ARGUMENTO PI.
- -----------------------
-
- El argumento pi (puerto de impresora) tiene la sintaxis
- PI N
- donde N representa al número del puerto al que está conectada la impresora.
-
- Por defecto, la impresión se dirige al puerto paralelo número 0, que
- corresponde al puerto LPT1; pero si la impresora del usuario está conectada
- a otro puerto, deberá utilizar este argumento en la llamada al programa.
-
- Si el número del puerto de impresora N no aparece, se muestra el men-
- saje de error "Error: Puerto de impresora sin número.".
-
-
-
- 4.18.12.- ARGUMENTOS P Y X.
- ---------------------------
-
- Los argumentos p (memoria expandida) y x (memoria extendida) hacen que
- el programa TUTOR.EXE utilice la memoria expandida y la memoria extendida,
- respectivamente, para realizar los intercambios de módulos.
-
- El programa TUTOR.EXE está diseñando con overlays, esto quiere decir,
- que no todo el programa ejecutable tiene porqué estar al mismo tiempo en
- memoria y que lo más normal es que haya módulos en disco y otros en memoria
- convencional durante la ejecución del programa. Cuando se va a ejecutar una
- instrucción de un módulo que se encuentra en disco, éste se carga en memoria
- descargándose uno o varios que haya en memoria si no cabe el que va a entrar.
- En resumen, en los programas diseñados con overlays, hay intercambios entre
- disco y memoria convencional. Con el argumento p se consigue que los inter-
- cambios se hagan entre memoria expandida y memoria convencional. Con el ar-
- gumento x se consigue que los intercambios se hagan entre memoria extendida
- y memoria convencional. Esto supone un incremento en la velocidad de ejecu-
- ción del programa. En el caso de memoria expandida se intenta reservar 256K
- para el área de intercambio. En el caso de memoria extendida el gestor de
- sobrecarga intenta reservar la cantidad de memoria que pueda para contener
- todos los overlays; pero el uso de memoria extendida no está estandarizado
- y puede haber problemas con ella en determinadas configuraciones, a pesar de
- que el gestor de sobrecarga intenta cada método conocido para encontrar la
- cantidad de memoria extendida que está usada.
-
- Si se especifica el argumento x y no existe memoria extendida o esta es
- insuficiente, el programa TUTOR.EXE emitirá el mensaje de error "Error: Es-
- pecificado parámetro x y memoria extendida no disponible o es insuficiente.".
- Si se especifica el argumento p y no existe memoria expandida o no se dispone
- de 256K de memoria expandida se emitirá el mensaje de error "Error: Especifi-
- cado parámetro p y memoria expandida no disponible o es insuficiente.".
-
- Ya hemos dicho que el uso de memoria extendida no está estandarizado,
- por lo tanto, si se tiene problemas en la ejecución del programa o al aban-
- donar éste por el uso del argumento x es preferible no utilizar dicho argu-
- mento, aunque ello suponga un ligero decremento en la velocidad de ejecución
- del programa.
-
-
-
- 4.18.13.- ARGUMENTO FMU.
- ------------------------
-
- Este argumento permite al usuario visualizar a través de la opción 1
- del menú principal un fichero distinto a TUTOR.DOC (el cual contiene el
- manual de usuario y es el que se visualiza por defecto).
-
- El argumento fmu (fichero con manual de usuario) tiene la
- sintaxis
- FMU NOMBRE_DE_FICHERO
- donde NOMBRE_DE_FICHERO es la descripción (puede contener letra de unidad y
- ruta) del nuevo fichero a visualizar cuando se seleccione la opción 1 del
- menú principal del programa TUTOR.EXE.
-
- Si el nombre del nuevo fichero no aparece tras el argumento fmu se
- emitirá el mensaje de error "Error: Opción fmu sin nombre de fichero".
-
-
-
- 4.18.14.- ARGUMENTO PRT.
- ------------------------
-
- Cuando se invoca al compilador (en realidad el programa, fichero por
- lotes o comando del DOS que esté en la primera línea del fichero TUTOR.CMP,
- cf. 5.8), éste se ejecuta y cuando el usuario se sale del compilador, el
- control pasa directamente al programa TUTOR.EXE. Si se utiliza el parámetro
- prt (pulsación al regresar al tutor) al salirse del compilador y justo antes
- de regresar al tutor, se emite el mensaje "Pulsa cualquier tecla o botón del
- ratón para regresar al tutor.".
-
- ¿Y para qué puede ser útil este argumento al usuario? Pues bien, supon-
- gamos que el usuario quiere hacer un DIR del directorio actual al pulsar
- <F5> desde las propuestas de programas; en tal caso la primera línea del
- fichero TUTOR.CMP contendrá "DIR" o "DIR *.*" o "DIR ." o cualquier comando
- equivalente. Al pulsar en este caso <F5> (o su equivalente del ratón) se
- ejecuta el DIR e inmediatamente se cede el control al tutor de tal manera
- que no da tiempo a ver la información ofrecida por el comando DIR del DOS.
- Si utilizamos en este caso el parámetro PRT, tras ejecutarse el DIR y antes
- de volver al tutor se mostrará un mensaje que espera la pulsación de una
- tecla (o presión de un botón del ratón) en la pantalla sin borrar el con-
- tenido de ésta; de esta forma podemos ver el resultado del DIR.
-
-
-
- 4.19.- EL FICHERO T.BAT.
- ------------------------
-
- El fichero T.BAT contiene una sola línea. Esta línea es
- la siguiente:
-
- TUTOR NP TC PT %1 %2 %3 %4 %5 %6 %7 %8 %9
-
- Este fichero se suministra debido a que la mayoría de las veces intere-
- sa ejecutar el programa TUTOR.EXE con los argumentos NP, TC y PT. Por lo
- tanto, muchas veces es preferible ejecutar el fichero por lotes T.BAT que el
- programa TUTOR.EXE.
-
- El fichero T.BAT se puede llamar sin ningún argumento, aunque también
- se le puede llamar hasta con nueve argumentos. Cada uno de los argumentos
- que se le pasa al fichero T.BAT son argumentos que se le pasan al programa
- TUTOR.EXE además de NP, TC y PT que ya están incluidos en el fichero T.BAT.
-
- Ejemplo de algunas ejecuciones del programa TUTOR.EXE:
-
- 1) T es equivalente a TUTOR NP TC PT
- 2) T ? es equivalente a TUTOR NP TC PT ? y esto es equivalente a TUTOR ?
- 3) T MP 1 es equivalente a TUTOR NP TC PT MP 1
- 4) T TC MP 2 T 1 es equivalente a TUTOR NP TC PT TC MP 2 T 1 y esto es
- equivalente a TUTOR NP PT TC MP 2 T 1
-
- Ejemplo de creación de algunos ficheros por lotes:
-
- 1) Fichero TCT.BAT (teoría de C de tutor): T MP 2 L %1 T 2
- 2) Fichero TX.BAT (t utilizando memoria extendida): T X
- 3) Fichero TUTORX.BAT (tutor utilizando memoria extendida): TUTOR X
-
- A cada usuario le convendrá ejecutar el tutor con unos argumentos a
- su medida. Por esto, es muy recomendable que se cree un fichero (o varios
- ficheros) por lotes que haga la llamada a T.BAT o a TUTOR.EXE con los ar-
- gumentos que le convengan, en vez de tener que teclear los argumentos tras
- el nombre del programa cada vez que entre en el tutor.
-
-
-
- 4.20.- EL PROGRAMA PORTUTOR.EXE.
- --------------------------------
-
- El programa PORTUTOR.EXE (portada de tutor) es un programa auxiliar del
- programa TUTOR.EXE, esto es, no se puede llamar directamente, sólo puede ser
- ejecutado por TUTOR.EXE.
-
- Este programa muestra una sucesión de pantallas hasta que se pulsa una
- tecla, momento en el cual acaba el programa. Cada pantalla está formada por
- el desarrollo de una espiral aleatorio con colores aleatorios junto con un
- recuadro central en el cual aparecen los nombres del programa ("Tutor de
- C/C+ Versión 1.0 (1993)") y del autor del programa (Antonio Lebrón Bocane-
- gra). En la última línea de la pantalla aparece el mensaje "Pulsa cualquier
- tecla para ir al tutor (no vale botón del ratón)".
-
- El programa PORTUTOR.EXE trabaja en modo gráfico y soporta las princi-
- pales tarjetas gráficas del mercado (CGA, HERCULES, EGA, VGA, etc).
-
- Para evitar que se pueda cambiar el nombre del programa tutor, del
- autor o del tutor del proyecto, estos nombres se chequean al principio de
- PORTUTOR.EXE. De esta forma, si algunos de los nombres citados son cambiados
- con un editor de ficheros binarios, se emitirá el mensaje de error "El nom-
- bre del programa o del autor ha sido cambiado.".
-
- Si se ejecuta el programa TUTOR.EXE sin el argumento NP y por cual-
- quier motivo TUTOR.EXE no puede ejecutar PORTUTOR.EXE, por ejemplo porque
- el programa PORTUTOR.EXE no se encuentre en el directorio de trabajo, el
- programa TUTOR.EXE mostrará el mensaje "No se puede ejecutar el programa
- PORTUTOR.EXE".
-
-
-
- 4.21.- LOS PROGRAMAS PRTUTC.EXE Y PRTUTCPP.EXE.
- -----------------------------------------------
-
- Los programas PRTUTC.EXE (programas de tutor en C) y PRTUTCPP.EXE (pro-
- gramas de tutor en C++) son programas auxiliares del programa TUTOR.EXE, es
- decir, que sólo pueden ser ejecutados por TUTOR.EXE y no directamente desde
- la línea de órdenes del sistema operativo.
-
- Cada uno de los programas ejemplos de C y de C++ constituyen un
- módulo en los programas PRTUTC.EXE y PRTUTCPP.EXE, de tal forma que
- cuando ejecutamos un ejemplo (con la tecla <F9> o su correspondiente
- pulsación de botón, cf. 4.16) estamos ejecutando un módulo del programa
- PRTUTC.EXE o PRTUTCPP.EXE.
-
- Si por cualquier motivo, el programa TUTOR.EXE no puede ejecutar el
- programa PRTUTC.EXE o PRTUTCPP.EXE, por ejemplo porque estos dos programas
- no se encuentren en el directorio de trabajo o no haya suficiente memoria
- para ejecutarlos, entonces TUTOR.EXE mostrará el mensaje "No se puede
- ejecutar el programa NOM_PROG." donde NOM_PROG es PRTUTC.EXE o PRTUTCPP.EXE.
-
- Tanto el programa PRTUTC.EXE como el programa PRTUTCPP.EXE están dise-
- ñados con overlays (la técnica del overlay explicada en cf. 4.18.12). A cau-
- sa de esto, cuando no hay suficiente memoria para que PRTUTOR.EXE los ejecu-
- te, en vez de visualizarse el mensaje anterior ("No se puede ejecutar el
- programa NOM_PROG.") no se visualiza ningún mensaje. Por lo tanto, cuando se
- intente ejecutar un ejemplo y se borre la pantalla con atributo de pantalla
- negro sobre blanco y se vuelve inmediatamente a la pantalla de la tarea de
- ejemplos del tutor, esto se debe a que no hay suficiente memoria para ejecu-
- tar ese ejemplo. Esto se puede solucionar dejando más memoria libre, esto se
- consigue desalojando algunos programas residentes que pueda haber. Si aun
- así no se puede ejecutar el ejemplo, el usuario puede copiarlo a un fichero
- (con la tecla <F2> o su correspondiente pulsación de botón) y compilarlo con
- un compilador de C o de C++, obteniendo de esta forma un programa ejecutable.
- Una última y más cómoda alternativa para ejecutar los ejemplos, si éstos no
- se pueden ejecutar desde el programa TUTOR.EXE, es ejecutarlos a través del
- programa EJECUTAR.EXE (cf. 4.16.1).
-
-
-
- 5.- FICHEROS DE DATOS.
- ----------------------
-
- Los ficheros de datos son aquellos ficheros de texto ASCII que
- contienen datos que son utilizados por el tutor.
-
- Los ficheros de datos son los siguientes:
-
- - Ficheros de teoría: TEOC.DAT y TEOCPP.DAT.
- - Ficheros de ejemplos: EJEMC.DAT y EJEMCPP.DAT.
- - Ficheros de ejercicios: EJERC.DAT y EJERCPP.DAT.
- - Fichero de ayuda: TUTOR.HLP.
- - Fichero de información general: TUTOR.DOC.
- - Fichero de compilador: TUTOR.CMP.
- - Fichero índice: TUTOR.IND.
- - Fichero de configuración: TUTOR.CFG.
-
- Mientras se lee de los ficheros con extensión DAT y del fichero
- TUTOR.DOC se muestra una ventana centrada en pantalla con atributo de pan-
- talla negro sobre verde que nos va informando continuamente de la situación
- de lectura. Al mismo tiempo, el mensaje de la línea de estado inferior es:
- "Pulsa ESC si deseas interrumpir la lectura del fichero". Como se puede su-
- poner, si se pulsa <ESC> o se presiona el botón <BOTIZQ> estando el cursor
- del ratón en la línea inferior, entonces se terminará ipso facto la lectura
- del fichero y se entrará en el proceso correspondiente (visualizar TUTOR.DOC,
- teoría, ejemplos o ejercicios). En ese caso hay que tener en cuenta que la
- estructura almacenada en memoria no está completa; por ejemplo, si se pulsa
- <ESC> mientras se lee el fichero TUTOR.DOC, el fichero TUTOR.DOC visualizado
- contendrá un número menor de líneas que el fichero TUTOR.DOC de disco; otro
- ejemplo, si se pulsa <ESC> mientras se está leyendo los ejercicios de una
- determinada lección, entonces los ejercicios que se podrán examinar de esa
- lección será menor que el número real de ejercicios de dicha lección.
-
-
-
- 5.1.- FICHEROS CON EXTENSION DAT Y HLP.
- ---------------------------------------
-
- Estos ficheros tienen una determinada sintaxis que hay que respetar
- para que sean leídos e interpretados correctamente.
-
- Estos ficheros de datos están compuestos por bloques delimitados por
- las palabras claves begin-end:
-
- begin
- ...
- end
-
- Todas las palabras claves han de empezar en la columna 1 del fichero y
- se tiene en cuenta el caso (las mayúsculas son distintas de las minúsculas).
-
- Entre bloque y bloque begin-end puede haber cualquier número de líneas
- en blanco, y las líneas que empiezan por ; entre bloque y bloque se consi-
- deran líneas de comentario. El texto que pueda ir detrás de las palabras
- claves hasta el final de línea, dejando al menos un espacio en blanco entre
- palabra clave y resto de línea, es ignorado, es decir, se considera como
- comentario. Por ejemplo:
-
- ; esto es un comentario
- begin este texto detrás de begin es comentario
- ...
- end este texto detrás de end es comentario
-
- La sintaxis del texto que hay dentro de un bloque begin-end depende del
- tipo de fichero, así que se detallará en los apartados siguientes.
-
- En los ficheros de datos con extensión .DAT cada bloque begin-end
- representa una lección, y en el fichero con extensión .HLP cada bloque
- begin-end representa una ayuda local, es decir, la ayuda de un determinado
- proceso en TUTOR.EXE.
-
- El usuario no puede añadir ni quitar bloques begin-end, so pena de
- que quiera obtener el correspondiente mensaje de error por parte del
- programa TUTOR.EXE. Sí puede, en cambio, modificar el interior de los
- bloques begin-end.
-
- Las líneas de los ficheros de datos no pueden tener más de 255 carac-
- teres. Si alguna línea tuviera más caracteres de este número, el programa
- INDEXAR.EXE o el TUTOR.EXE informarían de tal situación.
-
- Para que el programa TUTOR.EXE pueda utilizar correctamente los fi-
- cheros de datos, éstos han de ser indexados previamente con el programa
- INDEXAR.EXE. Ver apartado siguiente.
-
-
-
- 5.2.- EL PROGRAMA INDEXAR.EXE, EL FICHERO POR LOTES I.BAT, Y
- ------------------------------------------------------------
- EL FICHERO DE DATOS TUTOR.IND.
- ------------------------------
-
- El programa INDEXAR.EXE indexa los ficheros de datos en el fichero
- TUTOR.IND. A continuación explicaremos qué quiere decir indexar un fichero
- de datos.
-
- La sintaxis correcta de ejecución de este programa es:
-
- INDEXAR [/A | /C] FICHERO_INDICE [FICHERO_1 FICHERO_2 ...]
-
- donde /A significa añadir a fichero índice, /N significa crear fichero
- índice, y FICHERO_INDICE, FICHERO_1 y FICHERO_2 se refiere a especifi-
- caciones de ficheros las cuales pueden contener opcionalmente nombres
- de unidades y de rutas. Puede haber desde cero hasta 99 ficheros fuentes.
-
- Puesto que el único fichero índice que necesita el tutor es el
- fichero TUTOR.IND y puesto que los únicos ficheros de datos a indexar
- son aquéllos con extensión DAT y extensión HLP (TEOC.DAT, TEOCPP.DAT,
- EJEMC.DAT, EJEMCPP.DAT, EJERC.DAT, EJERCPP.DAT y TUTOR.HLP) se sumi-
- nistra el fichero por lotes I.BAT que contiene una sola línea que es
- la siguiente:
-
- indexar /c tutor.ind tutor.hlp teoc.dat ejemc.dat ejerc.dat teocpp.dat
- ejemcpp.dat ejercpp.dat
-
- que indexa todos los ficheros indexables de datos del tutor en un nuevo
- fichero TUTOR.IND. Si el usuario modifica algún fichero de datos podrá
- indexarlo fácilmente con el fichero I.BAT.
-
- El programa TUTOR.EXE utiliza el fichero índice TUTOR.IND para acceder
- rápidamente a los datos de los ficheros. La estructura del fichero TUTOR.IND
- es:
-
- número_de_ficheros
- nom_fich_1 núm_bloques_1 comienzo_bloq_1 comienzo_bloq_2 ...
- nom_fich_2 núm_bloques_2 comienzo_bloq_1 comienzo_bloq_2 ...
- ...
-
- donde número_de_ficheros es el número de ficheros indexados que se encuen-
- tran en el fichero índice. Cada una de las líneas siguientes a ésta contiene
- la información relativa a un fichero del siguiente modo: nombre de fichero
- (sólo nombre, ni letra de unidad ni ruta), número de bloques begin-end que
- contiene ese fichero, y a continuación la posición de comienzo de cada blo-
- que como la posición absoluta en bytes de la letra b de la palabra clave
- begin con respecto al principio de ese fichero de datos. El final de los
- bloques begin-end se detecta en la lectura de los ficheros de datos al leer
- la palabra clave end.
-
- Siempre que se lee de un fichero de datos (se sobrentiende con exten-
- sión DAT y HLP) se lee un bloque begin-end entero, con la excepción de los
- bloques partibles (cf. 4.18.9) en los ficheros de datos de teoría.
-
- Al comienzo del programa TUTOR.EXE, se lee toda la información que
- contiene el fichero TUTOR.IND y se carga en memoria tal información. El
- fichero TUTOR.IND ha de estar en el directorio de trabajo. Cuando se va
- a leer un bloque de un fichero de datos (una ayuda local, la teoría de una
- lección, los ejemplos de una lección o los ejercicios de una lección) se
- posiciona el puntero del fichero al principio del bloque, ya que sabemos la
- posición de comienzo de ese bloque, y entonces se empieza a leer línea a
- línea, almacenándolas en memoria dinámica, hasta encontrar la palabra clave
- end al comienzo de una línea, momento en el cual se termina la lectura.
- Cuando nos salimos de esa tarea (ayuda local, teoría de una lección, los
- ejemplos de una lección o los ejercicios de una lección) se descarga la
- información almacenada en memoria del fichero de datos. Supongamos ahora
- que no disponemos del indexamiento de los ficheros de datos; si queremos
- leer los ejercicios de la lección 10 del lenguaje C, tendríamos que leer
- todos los caracteres del fichero EJERC.DAT hasta encontrar la décima línea
- que contenga al principio la palabra clave begin y leer los ejercicios de
- ese bloque (lección) a partir de ese punto; con el indexamiento nos posi-
- cionamos directamente en la primera del bloque begin-end correspondiente a
- la lección 10 (décimo bloque). Como se puede observar, el aumento de velo-
- cidad de búsqueda en los ficheros de datos con el indexado de los ficheros
- es considerable en relación a la lectura secuencial de éstos.
-
- La versión definitiva del fichero TUTOR.IND conviene obtenerla mediante
- la ejecución del fichero por lotes I.BAT, aunque mientras modificamos algu-
- nos ficheros de datos podemos ahorrar tiempo teniendo en cuenta las siguien-
- tes consideraciones:
-
- 1) Sólo es necesario indexar un fichero de datos cuando se modifica algún
- comienzo de bloque.
-
- 2) Un mismo fichero de datos puede aparecer varias veces en el fichero
- TUTOR.IND siendo sólo válida la información referente a él que se encuentre
- en último lugar. De esta forma si queremos indexar un sólo fichero, por
- ejemplo TEOC.DAT, hacemos:
-
- INDEXAR /A TUTOR.IND TEOC.DAT
-
- 3) Si un mismo fichero aparece muchas veces en el fichero TUTOR.IND y esto
- ocasionara algún problema, podemos editar TUTOR.IND con cualquier editor que
- trabaje con ficheros de texto ASCII y borrar todas aquellas líneas duplica-
- das del fichero pero teniendo en cuenta dos cosas: primero, no dejar líneas
- en blanco entre fichero y fichero; y segundo, actualizar el número de fiche-
- ros indexados, dicho número debe estar en los dos primeros bytes del fichero
- TUTOR.IND.
-
-
-
- 5.3.- FICHEROS DE TEORIA.
- -------------------------
-
- Los ficheros de teoría son: TEOC.DAT que contiene la teoría correspon-
- diente al lenguaje C y TEOCPP.DAT que contiene la teoría correspondiente al
- lenguaje C++.
-
- En estos ficheros, las líneas en blanco y las líneas que empiezan por
- punto y coma (;) son consideradas líneas de comentario y pueden aparecer en
- cualquier lugar de los ficheros.
-
- Dentro de cada bloque begin-end, se pueden dar tres tipos de acciones:
- ventana, visualizador y borrado de pantalla. También puede aparecer una vez
- por cada bloque begin-end, esto es, una vez por cada lección, la palabra
- clave partir.
-
- La acción de ventana escribe una ventana en pantalla con texto de
- teoría en su interior. Esta ventana no es de visualización puesto que no
- tiene la barra vertical, por lo tanto, el texto que hay en su interior no
- se puede desplazar.
-
- La acción de visualizador escribe una ventana de visualización en la
- que podemos visualizar el texto mediante las teclas de visualización (cf.
- 4.6). Estas ventanas tienen la barra vertical en su lado derecho.
-
- La acción de borrado de pantalla borra la pantalla de teoría, aunque no
- se borran las líneas superior ni inferior. El sentido de borrar la pantalla
- de teoría es el de ocultar todas aquellas ventanas visibles.
-
- Significar una diferencia entre una acción de ventana y una acción de
- visualizador en el proceso de teoría: la única forma de ocultar una ventana
- (no de visualización) sin salirnos del proceso de teoría es mediante la pa-
- labra clave borrar_pantalla, sin embargo, las ventanas de visualización son
- ocultadas en cuanto nos salimos de ellas, ya sea con <LEFT> o con <RIGHT>.
- Esto no supone ninguna restricción importante, sino que simplemente hay que
- tenerlo en cuenta.
-
- En el fichero de datos, la sintaxis para la acción de ventana es:
-
- beginv
- ...
- endv
-
- La sintaxis para la acción de visualizador es:
-
- beginvis
- ...
- endvis
-
- Y la acción para de borrado de pantalla es la siguiente:
-
- borrar_pantalla
-
- Todo lo que se dijo en el apartado 5.1 sobre las palabras claves (empe-
- zar en columna 1, tratamiento sensitivo al caso, resto de líneas considerada
- como comentario, etc.) está vigente para estas palabras claves que se acaban
- de describir y para todas las que se mencionen más adelante.
-
- Dentro de los bloques beginv-endv y beginvis-endvis podemos tener las
- siguientes palabras claves:
-
- coordenadas_completas x1 y1 x2 y2
- borde n
- cabecera "..."
- no_sombra
- color ct cf
- "..."
-
- Las palabras claves que sólo pueden ir dentro del bloque beginv-endv
- son las siguientes:
-
- coordenadas x1 y1
- centrar_coordenadas
- centrar_coordenadas_x y1
- centrar_coordenadas_y x1
- pulsación
- borrar_ventana
-
- Las palabras claves que sólo pueden ir dentro del bloque
- beginvis-endvis son las siguientes:
-
- no_posicion
- no_multiatributo
-
- Las palabras claves anteriores pueden aparecer varias veces y en
- cualquier orden dentro de un bloque beginv-endv o beginvis-endvis.
- Describamos a continuación, por orden alfabético, el significado de
- cada palabra clave de los tres grupos que se acaban de listar:
-
- - borde n: especifica el tipo de borde de la ventana; n puede ser 0 (no
- borde), 1 (borde simple) o 2 (borde doble). Por defecto, una ventana (no
- de visualización) tiene el mismo borde que la anterior. Para las ventanas
- de visualización es necesario especificar el tipo de borde ya que en caso
- contrario estaría indefinido.
-
- - borrar_ventana: esta palabra clave produce un borrado de la ventana
- actual. Se debe utilizar cuando todas las líneas que se han de visualizar
- no caben de una vez y no se quiere utilizar una ventana de visualización.
-
- - cabecera "...": especifica la cabecera de una ventana. Por defecto, las
- ventanas no tienen cabecera, pero si se utiliza esta palabra clave, el
- nombre de la cabecera aparecerá centrado en el borde superior de la ventana.
- Si el nombre de la cabecera no cabe en el borde de la ventana, sólo se mos-
- trará lo que quepa de dicho nombre. Ejemplo de utilización:
-
- cabecera "CABECERA DE VENTANA".
-
- - centrar_coordenadas: centra la ventana en el centro de la pantalla.
-
- - centrar_coordenadas_x y1: centra la ventana en el eje x, estando el borde
- superior de la ventana en la coordenada y1.
-
- - centrar_coordenadas_y x1: centra la ventana en el eje y, estando el borde
- izquierdo de la ventana en la coordenada x1.
-
- - color ct cf: especifica los colores de la ventana; ct es el número del
- color de texto y cf es el número de color de fondo. Por defecto, una ventana
- (no de visualización) tiene el mismo color que la anterior. Para las venta-
- nas de visualización es necesario especificar el color ya que en caso con-
- trario estaría indefinido. A continuación se listan todos los números de
- colores posibles junto con el nombre del color:
-
- Colores que pueden ser utilizados tanto para texto como para fondo:
-
- NEGRO 0
- AZUL 1
- VERDE 2
- CYAN 3
- ROJO 4
- MAGENTA 5
- MARRON 6
- BLANCO 7
-
- Colores que sólo pueden ser utilizados como color de texto:
-
- GRIS OSCURO 8
- AZUL CLARO 9
- VERDE CLARO 10
- CYAN CLARO 11
- ROJO CLARO 12
- MAGENTA CLARO 13
- AMARILLO 14
- BLANCO INTENSO 15
-
- - coordenadas x1 y1: especifica la posición de comienzo de la ventana dejan-
- do que la posición final sea calculada automáticamente. La esquina superior
- izquierda de la ventana será ubicada en la posición (x1,y1). La esquina in-
- ferior derecha de se calcula de tal modo que se ajuste al número de líneas y
- a la longitud de la línea mayor que contenga esa ventana. Por ejemplo, si la
- ventana tiene 3 líneas, la línea mayor tiene 5 caracteres, y se especifica
- coordenadas 1 2, entonces las coordenadas de la ventana serán (1,2,10,5). La
- coordenada y2 se calcula como: y2 = y1 + 2 líneas de bordes + número de lí-
- neas de texto de ventana - 1; que en nuestro ejemplo es: y2 = 1 + 2 + 3 - 1
- = 5. La coordenada x2 se calcula como: x2 = x1 + 2 líneas de bordes + número
- de caracteres de la línea más larga + 2 espacios en blanco (uno entre borde
- izquierdo y primera columna y el otro entre el último carácter de la línea
- más larga y el borde derecho de la ventana) - 1; que en nuestro ejemplo es:
- x2 = 2 + 2 + 5 + 2 - 1 = 10. Siempre se deja un espacio en blanco en la
- primera y última columna de la ventana.
-
- - coordenadas_completas x1 y1 x2 y2: especifica coordenadas de la ventana;
- estas coordenadas son (x1,y1,x2,y2), es decir, la esquina superior izquierda
- de la ventana está ubicada en la posición (x1,y1) de la pantalla y la esqui-
- na inferior derecha está ubicada en la posición (x2,y2). Hay que tener en
- cuenta que el programa TUTOR.EXE trabajo en modo color 80x25, teniendo como
- coordenadas (1,1) la esquina superior izquierda de la pantalla.
-
- - no_multiatributo: esta palabra clave hace que el atributo de pantalla
- de la ventana sea único, es decir, que en este caso no podrá salir texto
- sobreimpresionado (esto se consigue con el carácter tilde ~). Es conve-
- niente utilizar esta palabra clave en aquellas ventanas que no contengan
- texto sobreimpresionado pues la visualización es mucho más rápido debido
- a que no tiene que chequear el carácter de cambio de atributo de pantalla
- (~). Por defecto, se supone que una ventana de visualización puede contener
- caracteres sobreimpresionados.
-
- - no_posicion: esta palabra clave hace que no aparezca los números de líneas
- visualizadas en la esquina superior derecha; esto resulta interesante cuando
- la cabecera de la ventana es muy larga y la posición oculta parte de la cabe-
- cera. Por defecto, se escribirá la posición en las ventanas de visualización.
-
- - no_sombra: por defecto, todas las ventanas tienen sombra, por eso se sumi-
- nistra esta palabra clave, para crear una ventana sin sombra.
-
- - pulsación: esta palabra clave hace que el usuario tenga que pulsar una
- tecla. Sólo se debe utilizar mientras se escriben líneas en las ventanas
- de teoría, ya que al finalizar el proceso de una ventana se produce auto-
- máticamente una acción de pulsación. Ejemplo de utilización:
-
- " ... "
- pulsación
- " ... "
-
- No se debe utilizar para pasar de una ventana a otra, ni de un visua-
- lizador a otro.
-
- - "...": son las líneas a visualizar donde los puntos significativos repre-
- senta el contenido. En el contenido puede haber caracteres " ya que sólo se
- consideran el primero y el último. Ejemplo:
-
- ; una línea normal
- "Línea 1"
- ; una línea en blanco
- ""
- ; una línea normal
- "Línea 2"
-
- Los trozos de mensajes que aparezcan entre los caracteres ~ se escri-
- birán sobreimpresionados. Para escribir el carácter tilde (~) es necesario
- escribirlo dos veces consecutivas: ~~. Ejemplo:
-
- ; los dígitos 23 aparecerán sobreimpresionados:
- "1~23~4"
-
- Hay un bloque del que todavía no hemos hablado y que puede aparecer en
- cualquier lugar (siempre que sea coherente) en los ficheros de teoría, este
- bloque es begint-endt. Todo lo que vaya entre estas palabras claves sólo se
- procesará si la opción turbo está on. Ejemplo:
-
- begint
- beginv
- ...
- endv
- borrar_pantalla
- beginv
- ...
- endv
- endt
- beginv
- "línea 1"
- begint
- "línea 2"
- endt
- end
-
- Para terminar la descripción de la sintaxis de los ficheros de teoría
- hagamos algunas consideraciones sobre la palabra clave partir:
-
- - La palabra clave partir debe estar fuera de los bloques beginv-endv y
- beginvis-endvis.
-
- - No es conveniente ponerla dentro de un bloque begint-endt ya que en este
- caso sólo se partirá la lección si la opción partir está on y además está
- on la opción de turbo.
-
- - Otra cuestión importante a tener con partir se da cuando una ventana toma
- información de la ventana anterior, en cuyo caso no se debe utilizar partir
- a no ser que la ventana que va después de partir define todos sus parámetros.
- Por ejemplo:
-
- beginv
- ...
- color 15 1 color blanco intenso sobre azul
- ...
- endv
-
- partir
-
- beginv
- ...
- ; no haría falta repetir el mismo color si no
- ; estuviera la palabra clave partir antes de
- ; este bloque
- color 15 1 necesario por si se parte la lección
- endv
-
- Yo le recomendaría al usuario examinar los ficheros TEOC.DAT y
- TEOCPP.DAT si realmente quiere comprender cuál es su sintaxis para poder
- así modificarlos.
-
-
-
- 5.4.- FICHEROS DE EJEMPLOS.
- ---------------------------
-
- Los ficheros de ejemplos son: EJEMC.DAT que contiene los ejemplos
- correspondientes al lenguaje C y EJEMCPP.DAT que contiene los ejemplos
- correspondientes al lenguaje C++.
-
- Estos ficheros, al igual que todos los ficheros con extensión DAT,
- están compuestos por bloques delimitados por las palabras claves begin-end,
- donde cada bloque representa a una lección, es decir, que en cada bloque
- begin-end están todos los ejemplos de una determinada lección. Ejemplo de
- la estructura general de estos ficheros:
-
- ; LECCION 1
- begin
- ...
- end
-
- ; LECCION 2
- begin
- ...
- end
-
- ...
-
- Dentro de cada bloque nos podemos encontrar bloques begint-endt y
- begine-ende. Dentro de los bloques begint-endt puede haber ninguno, uno
- o varios bloques begine-ende. Es importante darse cuenta que un bloque
- begint-endt no puede aparecer dentro de un bloque begine-ende sino fuera.
- En los ficheros de teoría sí se podía incluir un bloque begint-endt dentro
- de los bloques beginv-endv y beginvis-endvis, con esto se conseguía que una
- o varias líneas de las ventanas sólo se procesarán si estaba el indicador de
- turbo (cf. 4.18.6) puesto a on. En el caso de los ejemplos, no es útil tal
- posibilidad.
-
- Cada bloque begine-ende representa un programa ejemplo. La sintaxis de
- los bloques begine-ende es:
-
- begine "cabecera"
- ...
- ende
-
- Todo lo que hay entre begine-ende es tratado como texto que pertenece
- al código fuente del ejemplo. "cabecera" es la cabecera que aparecerá en el
- lado izquierdo del borde superior de la ventana de visualización (cf. 4.6).
-
- Todo lo que esté entre begint-endt sólo será procesado si la opción
- turbo está on. Ejemplo:
-
- begint
- begine " EJEMPLO 1 "
- ...
- ende
- begine " EJEMPLO 2 "
- ...
- ende
- endt
-
- En estos ficheros, las líneas en blanco y la líneas que empiezan por
- punto y coma (;) sólo serán consideradas como comentarios si están fuera
- de un bloque begine-ende, puesto que si están dentro serán líneas pertene-
- cientes al ejemplo, ya hemos dicho anteriormente que todo las líneas que
- aparezcan dentro de un bloque begine-ende en los ficheros de ejercicios
- aparecerán exactamente igual en la ventana de ejemplos.
-
- Yo le recomendaría al usuario inspeccionar los ficheros EJEMC.DAT y
- EJEMCPP.DAT para que vea cómo están construidos y poder así modificarlos
- si lo desea.
-
-
-
- 5.5.- FICHEROS DE EJERCICIOS.
- -----------------------------
-
- Los ficheros de ejercicios son: EJERC.DAT que contiene los ejercicios
- correspondientes al lenguaje C y EJERCPP.DAT que contiene los ejercicios
- correspondientes al lenguaje C++.
-
- Estos ficheros, al igual que todos los ficheros con extensión DAT,
- están compuestos por bloques delimitados por las palabras claves begin-end,
- donde cada bloque representa a una lección, es decir, que en cada bloque
- begin-end están todos los ejercicios de una determinada lección. Ejemplo de
- la estructura general de estos ficheros:
-
- ; LECCION 1
- begin
- ...
- end
-
- ; LECCION 2
- begin
- ...
- end
-
- ...
-
- Dentro de cada bloque nos podemos encontrar bloques begint-endt y
- begine-ende. Todo lo que esté entre begint-endt sólo será procesado si
- la opción turbo está on. Dentro de los bloques begint-endt puede haber
- ninguno, uno o varios bloques begine-ende. Es importante darse cuenta que
- un bloque begint-endt no puede aparecer dentro de un bloque begine-ende sino
- fuera. En los ficheros de teoría sí se podía incluir un bloque begint-endt
- dentro de los bloques beginv-endv y beginvis-endvis, con esto se conseguía
- que una o varias líneas de las ventanas sólo se procesarán si estaba el
- indicador de turbo (cf. 4.18.6) puesto a on. En el caso de los ejemplos,
- no es útil tal posibilidad.
-
- Cada bloque begine-ende representa un ejercicio. La sintaxis de los
- bloques begine-ende es:
-
- begine "tipo_de_ejercicio"
- ...
- ende
-
- donde tipo_de_ejercicio puede ser test, pcc, PCC, psc y prpr. El tipo de
- ejercicio test está descrito en el apartado 4.17.1. Los tipos de ejercicios
- pcc y PCC corresponden a las preguntas con comprobación, que están descritas
- en el apartado 4.17.2. El tipo de ejercicio psc corresponde a las preguntas
- sin comprobación, que están descritas en el apartado 4.17.3. El tipo de
- ejercicio prpr se refiere a las propuestas de programas, proceso explicado
- en el apartado 4.17.4.
-
- En el caso de prpr, todo lo que hay en el interior de begine-ende es
- tratado como texto que pertenece al código fuente del enunciado de programa.
-
- En el caso de pcc, PCC y psc debe haber obligatoriamente dos palabras
- claves en el interior del bloque begine-end: pregunta y respuesta. En las
- líneas siguientes (tres líneas como máximo) a la línea en la que se encuen-
- tra la palabra clave pregunta, se debe poner el texto correspondiente a la
- pregunta planteada. Lo mismo sucede con la palabra clave respuesta, después
- de la cual puede ir un máximo de tres líneas que contengan la respuesta a la
- pregunta planteada; si se trata de pcc o PCC, la respuesta introducida por
- el usuario se comparará con la primera línea tras la palabra clave respuesta.
- La diferencia entre pcc y PCC está que en el primer caso no se considera el
- caso de los caracteres de la respuesta (ni la introducida por el usuario ni
- la real que se encuentra en el fichero de datos) y en el segundo caso sí se
- considera el caso de los caracteres (si éstos están en minúsculas o mayús-
- culas). La longitud máxima de cada línea de pregunta o respuesta es de 74
- caracteres, empezando a contar a partir del primer carácter de la línea,
- aunque éste sea un blanco; en el caso de pcc o PCC, la respuesta (primera
- línea tras la palabra clave respuesta) debe tener una longitud máxima de 70
- caracteres.
-
- En el caso de los ejercicios tipo test, los bloques begine-ende deben
- contener, además de las palabras claves pregunta y respuesta, la palabra
- clave opciones. Después de la palabra clave opciones pueden ir un máximo de
- nueve líneas, antes de aparecer otra palabra clave, donde cada línea corres-
- ponde a una opción del menú. En el menú que aparece en pantalla cada opción
- va precedida por un número de opción para que el usuario puede seleccionar
- una opción pulsando directamente la tecla correspondiente a ese número. En
- el caso de los test, al comienzo de la línea siguiente a la que contiene la
- palabra clave respuesta debe encontrarse el número de la opción correcta,
- siendo el número correspondiente a la primera opción el uno.
-
- Como ejemplo de un bloque begine-ende vamos a mostrar a continuación
- los dos primeros bloques que aparece en el fichero EJEMC.DAT:
-
- begine "test"
- pregunta
-
- ¿Qué tipo de fichero es aquél que tiene extensión OBJ?
- opciones
- Fichero fuente
- Fichero objeto
- Fichero ejecutable
- Fichero de librería
- respuesta
- 2
- ende
- begine "pcc"
- pregunta
-
- ¿Quién fue el inventor del lenguaje C?
- respuesta
- Dennis Ritchie
- ende
-
- En estos ficheros, las líneas en blanco y la líneas que empiezan por
- punto y coma (;) sólo serán consideradas como comentarios si están fuera de
- un bloque begine-ende.
-
- Yo le recomendaría al usuario examinar los ficheros EJERC.DAT y
- EJERCPP.DAT para que vea cómo están construidos y poder de esta manera
- modificarlos si lo desea.
-
-
-
- 5.6.- FICHERO DE AYUDA.
- -----------------------
-
- El fichero de ayuda es TUTOR.HLP y contiene las ayudas locales del
- programa TUTOR.EXE.
-
- Estos ficheros, al igual que todos los ficheros con extensión DAT,
- están compuestos por bloques delimitados por las palabras claves begin-end,
- donde cada bloque representa una ayuda local. Ejemplo de la estructura
- general de este fichero:
-
- ; AYUDA LOCAL 1
- begin
- ...
- end
-
- ; AYUDA LOCAL 2
- begin
- ...
- end
-
- ...
-
- Dentro de cada bloque begin-end se encuentra el texto tal y como va a
- ser mostrada en el proceso de ayuda local (cf. 4.8).
-
- En estos ficheros, las líneas en blanco y la líneas que empiezan por
- punto y coma (;) sólo serán consideradas como comentarios si están fuera de
- un bloque begin-end, puesto que si están dentro serán líneas pertenecientes
- al texto de la ayuda.
-
- Cada vez que pulsamos la tecla <F1> en TUTOR.EXE este programa lee un
- bloque begin-end y lo muestra en una ventana de visualización (cf. 4.5).
-
-
-
- 5.7.- FICHERO DE INFORMACION GENERAL.
- -------------------------------------
-
- El fichero de información general se llama TUTOR.DOC y en él se
- encuentra el manual de usuario de todo el paquete.
-
- El fichero TUTOR.DOC es un fichero de texto ASCII que puede ser editado
- con cualquier procesador de texto que trabaje con ficheros de texto ASCII.
- También puede ser visualizado seleccionando la opción 1 del menú principal
- (cf. 4.10) del programa TUTOR.EXE; de esta forma podemos consultarlo sin
- salirnos del tutor.
-
- Este fichero ha sido creado con el procesador de texto WordPerfect 5.1.
- De hecho, el manual de usuario es el resultado de imprimir el fichero
- TUTOR.DOC en formato WordPerfect. Para convertir este fichero de formato
- WordPerfect a formato ASCII se ha utilizado la utilidad CONVERT.EXE que
- está incluida en la versión 5.1 de dicho procesador de textos.
-
-
-
- 5.8.- EL PROGRAMA COMPILAD.EXE, EL FICHERO POR LOTES C.BAT, Y EL
- ----------------------------------------------------------------
- FICHERO DE DATOS TUTOR.CMP.
- ---------------------------
-
- El programa COMPILAD.EXE construye el fichero TUTOR.CMP.
-
- Pulsando la tecla <F5> en el proceso de propuestas de programas (cf.
- 4.14.4) en la tarea de ejercicios (cf. 4.17) se llama al compilador de C o
- C++ que utilice el usuario. El nombre del compilador, que puede contener
- opcionalmente la letra de unidad y el nombre de ruta, debe estar en la pri-
- mera línea del fichero TUTOR.CMP, el cual es un fichero de texto ASCII que
- se puede editar con cualquier procesador de textos que manipule ficheros de
- texto ASCII. El contenido de las demás líneas (a partir de la primera) es
- ignorado. El nombre del programa (del compilador) puede tener todos los ar-
- gumentos que se desee; la única condición o restricción que se pone a ello
- es que el nombre del programa junto con sus argumentos no puede sobrepasar
- los 255 caracteres. El nombre del programa empezará en el primer carácter
- que no sea un espacio en blanco en la primera línea del fichero. Es obvio
- que el tutor no puede diferenciar un nombre de un compilador de C o C++ de
- cualquier otro programa, esto implica que el usuario puede poner el nombre
- de cualquier fichero de programa (extensiones de fichero .COM o .EXE), el
- nombre de cualquier fichero de lotes (extensión .BAT) o cualquier comando
- interno del DOS (como por ejemplo DIR) en la primera línea del fichero
- TUTOR.DOC. Poniendo como nombre del programa COMMAND.COM se consigue un OS
- SHELL, es decir, entrar en el sistema operativo DOS, desde el cual nos sali-
- mos, para regresar al tutor, con la orden EXIT del DOS. El fichero TUTOR.CMP
- se puede crear fácilmente con la utilidad COMPILAD.EXE (cf. 5.8), suminis-
- trada para tal efecto, aunque también se puede crear y modificar con cual-
- quier editor de ficheros de texto ASCII.
-
- La sintaxis correcta de ejecución de este programa es:
-
- COMPILAD NOM_FICH [NOMBRE_COMPILADOR [ARGUMENTOS_COMPILADOR]]
-
- donde NOM_FICH es el fichero de datos a crear, el NOMBRE_COMPILADOR es el
- nombre del programa compilador de C y/o C++, y ARGUMENTOS_COMPILADOR son los
- argumentos que se le pasan a NOMBRE_COMPILADOR cuando éste es ejecutado por
- TUTOR.EXE. NOM_FICH debe ser TUTOR.CMP para que sea utilizada por TUTOR.EXE.
- Si no aparece NOMBRE_COMPILADOR, el fichero NOM_FICH estará vacío. También
- son opcionales los argumentos ARGUMENTOS_COMPILADOR.
-
- Puesto que el único fichero de compilador que utiliza el tutor es el
- fichero TUTOR.CMP se suministra el fichero por lotes C.BAT que contiene una
- sola línea y es la siguiente:
-
- compilad tutor.cmp %1 %2 %3 %4 %5 %6 %7 %8 %9
-
- que crea el fichero TUTOR.CMP y copia en la primera línea de él los argumen-
- tos pasados a T.BAT que pueden ser hasta nueve.
-
- El fichero TUTOR.CMP es abierto, leído y procesado al comienzo de
- la ejecución del programa TUTOR.EXE, guardándose el nombre del compilador
- en memoria y cerrando acto seguido el fichero TUTOR.CMP. Por lo tanto,
- cualquier anomalía que pueda haber relacionada con el fichero TUTOR.CMP
- se producirá al principio del tutor y en este momento se emitirá el
- mensaje de error si lo hubiera. Los posibles errores que pueden dar el
- programa TUTOR.EXE en relación con este fichero son los siguientes:
-
- - "No se podrá llamar al compilador ya que no se ha podido abrir TUTOR.CMP".
- Este error se produce cuando no se puede abrir el fichero TUTOR.CMP y esto
- suele ocurrir cuando no se encuentra en el directorio de trabajo.
-
- - "No se podrá llamara al compilador ya que no se ha podido leer el nombre
- de él". Este error se produce cuando se abre el fichero TUTOR.CMP y no se
- puede leer el nombre del compilador. Esto ocurre cuando la primera línea del
- fichero está vacía.
-
- - "No se podrá llamar al compilador ya que el nombre es demasiado largo (>=
- 255)". Este error se produce cuando el nombre del compilador junto con sus
- argumentos están formados por más de 255 caracteres.
-
- El fichero TUTOR.CMP se suministra conteniendo la línea
- command
- que produce un OS SHELL, es decir, cede el control a la línea de órdenes del
- sistema operativo hasta que se ejecute EXIT desde esta línea. El usuario ha
- de cambiar esta línea por su compilador de C y C++ si desea invocar a tal
- compilador desde las propuestas de programas.
-
-
-
- 5.9.- FICHERO DE CONFIGURACION.
- -------------------------------
-
- El fichero de configuración el TUTOR.CFG. En este fichero se encuentra
- las características de las pantallas del programa TUTOR.EXE, principalmente
- los colores.
-
- Absolutamente todos los colores que aparecen en las distintas pantallas
- del programa TUTOR.EXE son modificables por parte del usuario alterando el
- contenido del fichero de configuración. Es pertinente reseñar que no son
- cambiables los colores de la pantalla de presentación, puesto que tal pre-
- sentación es obra del programa PORTUTOR.EXE y no de TUTOR.EXE; por otra par-
- te, las pantallas de presentación utilizan colores aleatorios. También re-
- sulta obvio que no se pueden modificar los colores de los programas ejemplos,
- cuyos códigos ejecutables están en los programas PRTUTC.EXE y PRTUTCPP.EXE,
- ya que estos colores responden a un determinado código de programa ejemplo.
-
- El fichero TUTOR.CFG es un fichero de texto ASCII que puede ser manipu-
- lado con cualquier editor de textos de ficheros ASCII.
-
- Las líneas en blanco y las líneas que empiezan con punto y coma (;) en
- su primera columna son líneas de comentario; estas líneas son desechadas por
- el programa TUTOR.EXE aunque son muy útiles para hacer este fichero legible
- al usuario.
-
- El resto de las líneas comienzan con dos números enteros. Estos números
- deben estar en el rango de 0 a 255 y entre ellos puede haber cualquier número
- de espacios, tampoco importa el número de espacios entre el principio de la
- línea y el primer número. El contenido de la línea que sigue a estos dos
- números, (es decir, el resto de la línea) es ignorado; aunque en este lugar
- es muy útil reseñar el significado de los dos números de la línea que le
- corresponde; de hecho ese es el mensaje que por defecto se suministra en
- cada línea después de los dos números, aunque el usuario puede modificarlo.
- Una restricción impuesta para cada línea de texto de este fichero es que las
- líneas no pueden contener más de 255 caracteres; es necesario significar a
- este respecto que el fichero TUTOR.CFG es leído al comienzo de cada ejecu-
- ción del programa TUTOR.EXE, y en consecuencia cuantas más líneas de comen-
- tario se le añadan y cuantas más largas se hagan las líneas tanto más tiempo
- tardará el programa TUTOR.EXE en procesar el fichero de configuración.
-
- Procedamos en este momento a la explicación de los dos primeros números
- de cada línea de datos del fichero TUTOR.CFG. En todas las líneas, excepto
- en una de ellas que después se aclarará, el primer número indica color de
- texto y el segundo color de fondo. La característica de pantalla a las que
- corresponde estos colores se expone en el resto de la línea. Se disponen de
- dieciséis colores, con códigos que van desde 0 hasta 15; los nombres de los
- colores disponibles junto con sus códigos se encuentran en el apartado 5.3.
-
- Hay una sola línea de datos (línea que contiene dos números a procesar)
- en la cual sus dos números correspondientes no representan colores de texto
- y fondo. La línea, a no ser que el usuario la modifique, es la siguiente:
-
- 176 112 carácter (código ASCII) y atributo de pantalla de relleno en tareas
-
- El primer número (originalmente 176, es decir, el carácter ░) es el
- código ASCII del carácter de relleno (carácter de fondo de pantalla, sin
- tener en cuenta las líneas de estado) de las pantallas de tareas (pantallas
- de teoría, de ejemplos y de ejercicios; la tarea de pruebas no tiene fondo).
- Si el usuario desea que el carácter de relleno sea, por ejemplo, el carácter
- x, entonces el primer número de esta línea será 120, es decir, el código
- ASCII del carácter x.
-
- El segundo número de la línea de la que hablamos representa el atributo
- de pantalla con el cual se ha de escribir el carácter de relleno. El atribu-
- to de pantalla es un byte en el cual el bit 7 indica si el carácter se es-
- cribe con parpadeo o sin él, los bits 6-4 representan el código del color
- de fondo, y los bits 3-0 reflejan el código del color de texto (color del
- primer plano). Recordemos de nuevo que los códigos de los colores se encuen-
- tran en el apartado 5.3. Los bits se enumeran del siguiente modo:
-
- 7 6 5 4 3 2 1 0
- x x x x x x x x
-
- El valor original de este atributo de pantalla es 112, que en hexade-
- cimal corresponde al número 70, el cual en binario es 01110000, y que según
- la descripción anterior corresponde a blanco sobre negro.
-
- Cuando el usuario modifique este fichero ha de tener presente tres
- consideraciones importantes:
-
- 1) Todas las líneas de datos han de empezar con dos números. Los espa-
- cios en blanco entre los dos números y los espacios en blanco entre el prin-
- cipio de línea y el primer número no se tienen en cuenta. Si se introduce un
- carácter antes o después del primer número, el programa TUTOR.EXE no infor-
- mará de ningún error pero sin embargo los colores del programa no serán los
- esperados.
-
- 2) Las líneas de datos no pueden contener más de 255 caracteres.
-
- 3) Se pueden insertar tantas líneas de comentario y líneas en blanco
- como se deseen pero NUNCA se ha de cambiar el orden de las líneas de datos.
- Por ejemplo, la primera línea de datos siempre ha de contener los colores
- de la línea de estado superior, la segunda línea de datos siempre ha de
- contener los colores normales (no sobreiluminados) de la línea de estado
- inferior, y así sucesivamente hasta la última línea de datos.
-
-
-
- 6.- ERRORES.
- ------------
-
- El usuario siempre es informado de todo error que ocurra en cualquier
- programa de los que forman el tutor.
-
- En los siguiente apartados se exponen todos los posibles errores para
- cada programa.
-
-
-
- 6.1.- ERRORES EN TUTOR.EXE
- --------------------------
-
- Los errores en el programa TUTOR.EXE los podemos dividir en los
- siguientes grupos: errores en los argumentos, errores terminales, errores
- no terminales, avisos y errores de programación.
-
-
-
- 6.1.1.- ERRORES EN LOS ARGUMENTOS.
- ----------------------------------
-
- Los errores en los argumentos son aquéllos que se producen al llamar al
- programa TUTOR.EXE con argumentos incorrectos o incompletos.
-
- Los errores que se pueden dar de este tipo, por orden alfabético, son
- los siguientes:
-
- - "El nombre del programa o el nombre del autor ha sido cambiado."
-
- Este error ocurre cuando se llama al programa TUTOR.EXE con el argu-
- mento ? y este programa detecta un cambio en el nombre del autor o del
- programa (concretamente en la línea que aparece sobreiluminada cuando se
- llama al tutor con el argumento ? y se ofrece la ayuda de los argumentos).
- Lo más probable es que el usuario haya realizado tal cambio con un editor
- hexadecimal como los que proporciona las Utilidades Norton o las PCTOOLS.
- La solución es fácil: restaurar el título original del programa o conseguir
- una nueva copia del tutor. De todas formas, el chequeo de los nombres de
- autor y programa sólo se hace cuando TUTOR.EXE se ejecuta con el argumento
- ?, en los demás casos no se efectúa el chequeo y se puede trabajar perfec-
- tamente con el tutor.
-
- - "Error: El argumento N no es válido."
-
- El argumento número N no es correcto. Los únicos argumentos válidos
- están listados en el apartado 4.18. También se puede obtener la lista de
- argumentos disponibles ejecutando el programa TUTOR.EXE con el argumento ?.
-
- - "Error: Especificado parámetro "p" y memoria expandida no disponible o es
- insuficiente."
-
- Se ha llamado al programa TUTOR.EXE con el parámetro p y sin embargo o
- bien no hay memoria expandida o bien la que hay disponible es insuficiente
- (menos de 256 Kbytes). Si no se puede disponer de más memoria expandida
- (como mínimo 256K) es necesario ejecutar el tutor sin este parámetro.
-
- - "Error: Especificado parámetro "x" y memoria extendida no disponible o es
- insuficiente."
-
- Se ha llamado al programa TUTOR.EXE con el parámetro x y sin embargo o
- bien no hay memoria extendida o bien la que hay disponible es insuficiente.
- Si no se puede disponer de más memoria extendida es necesario ejecutar el
- tutor sin este parámetro.
-
- - "Error: Número de lección no válido."
-
- El número de lección debe ser un número mayor que 0.
-
- - "Error: Número de milisegundos no válido."
-
- El número de milisegundos de retardo debe ser un entero mayor que 0.
-
- - "Error: Número de tarea no válido."
-
- El número de tarea debe estar en el rango de 1 a 5. El número 1 corres-
- ponde a "Lección completa", el número 2 a "Teoría", el número 3 a "Pruebas",
- el número 4 a "Ejemplos", y el número 5 a "Ejercicios".
-
- - "Error: Opción de mp no válida."
-
- Tras el argumento mp debe ir el número de opción del menú principal.
- Este número debe ser 1, 2 ó 3.
-
- - "Error: Opción fmu sin nombre de fichero."
-
- Tras el argumento fmu debe ir el nombre de fichero a visualizar con la
- opción 1 del menú principal.
-
- - "Error: Opción l sin número de lección."
-
- Tras el argumento l[ección] debe ir el número de lección. Este número
- debe estar en el rango de 1 a 12 para el lenguaje C, y en el rango de 1 a 8
- para el lenguaje C++.
-
- - "Error: Opción mp sin número de opción."
-
- Tras el argumento mp debe ir el número de opción del menú principal.
-
- - "Error: Opción rr sin número de milisegundos."
-
- Tras el argumento rr debe ir el número de milisegundos de retardo entre
- la presión de un botón y su acción correspondiente.
-
- - "Error: Opción t sin número de tarea."
-
- Tras el argumento t[area] debe ir el número de tarea.
-
- - "Error: Puerto de impresora sin número."
-
- Tras el argumento pi debe ir el número del puerto de impresora,
- correspondiendo el número 0 al puerto LPT1, el número 1 al puerto LPT2,
- y así sucesivamente.
-
-
-
- 6.1.2.- ERRORES TERMINALES.
- ---------------------------
-
- Los errores terminales son aquéllos que provocan una salida del
- programa TUTOR.EXE tras mostrar el mensaje correspondiente.
-
- Hay tres tipos de errores terminales: error de memoria insuficiente,
- errores de línea de ficheros y errores terminales normales.
-
-
-
- 6.1.2.1.- ERROR DE MEMORIA INSUFICIENTE.
- ----------------------------------------
-
- Este error se produce cuando no hay suficiente memoria para que el
- programa siga ejecutándose correctamente.
-
- Es el único tipo de error cuyo mensaje de error no se muestra en una
- ventana centrada en pantalla, puesto que no hay suficiente memoria para
- crear una estructura de ventana.
-
- Cuando se origina este error se borra la pantalla en atributo de pan-
- talla blanco sobre negro y se expone el mensaje de error.
-
- Este error se suele dar al leer la teoría de una lección debido al gran
- volumen de información que tiene que procesar y almacenar en memoria. Otra
- situación es la que es probable que se dé este error en los sistemas con
- poca memoria es al leer el manual de usuario mediante la opción 1 del menú
- principal. En otras situaciones no es frecuente que se dé este error.
-
- Si no hay suficiente memoria para cargar la teoría de una lección,
- ejecutar el programa con el argumento pt (cf.4.18.9). Si así no se resuelve
- el problema de la memoria insuficiente, deberá el usuario desalojar algunos
- programas residentes hasta que se pueda cargar dicha teoría en memoria. Si
- todavía persiste el error, se puede hacer una lección partible (con la pala-
- bra clave partir, cf. 4.18.9) o si ya lo es, se puede cambiar la palabra
- clave partir de lugar para adecuar la partición al sistema del usuario.
-
- Cuando este error se da al leer el manual de usuario desde la primera
- opción del menú principal y no hay posibilidad de dejar más memoria RAM con-
- vencional libre se tienen dos alternativas: leer parcialmente el manual pul-
- sando la tecla ESC (o su equivalente del ratón) mientras se lee el fichero
- de disco, o bien leer el manual de usuario (que se encuentra en el fichero
- TUTOR.DOC) con cualquier editor de textos. Por supuesto, también se puede
- imprimir el fichero TUTOR.DOC si no se dispone del libro.
-
- Una tercera situación en la que se suele dar este error ocurre al invo-
- car la ayuda local desde el proceso de visualización del manual de usuario
- (opción 1 del manual de usuario). En este caso la única forma de ver tal
- ayuda es leyendo parcialmente el manual de usuario (pulsando <ESC>) e invo-
- car entonces al proceso de ayuda (pulsando <F1>). El mismo procedimiento se
- ha de seguir si el error de memoria insuficiente sucedió al invocar la ayuda
- desde otro proceso (por ejemplo, desde la teoría o los ejemplos); en tales
- casos, si se desea leer la ayuda de estos procesos y no se dispone de la
- cantidad suficiente de memoria libre, se ha de interrumpir la lectura de los
- ficheros pulsando <ESC> y entonces invocar a la ayuda pulsando <F1>. En el
- caso extremo de que no se pueda invocar al proceso de ayuda, el fichero de
- ayuda (TUTOR.HLP) se puede leer con cualquier editor de textos ASCII.
-
-
-
- 6.1.2.2.- ERRORES DE LINEAS DE FICHEROS.
- ----------------------------------------
-
- Estos errores se producen cuando una línea de un fichero de datos
- (con extensión DAT y HLP) no es correcta. Normalmente, una línea de un
- fichero de datos es incorrecta cuando ésta empieza por una palabra clave
- que no se espera.
-
- Cuando ocurre este error, el programa TUTOR.EXE muestra una ventana
- centrada en la pantalla con atributo de pantalla negro sobre rojo en cuyo
- interior se muestra el mensaje de error junto con la línea del fichero en
- la que se produjo el error. La línea del fichero puede ocupar dos líneas
- en el interior de esta ventana. La línea de estado inferior nos informa de
- que pulsemos cualquier tecla o botón del ratón para abandonar el programa.
-
- Para solucionar el error debemos editar el fichero de datos, cuyo
- nombre nos lo dice el mensaje de error. Los ficheros de datos se pueden
- editar con cualquier procesador de texto que trabaje con ficheros de texto
- ASCII. La línea en la cual se produjo el error la podemos encontrar con una
- búsqueda de texto, puesto que el contenido de esa línea es mostrado en la
- ventana de error. Recordad que si modificamos algún comienzo de bloque en
- los ficheros de datos es necesario indexar ese fichero con el programa
- INDEXAR.EXE (cf. 5.2).
-
- A continuación se lista, por orden alfabético, todos los mensajes
- de errores de líneas de ficheros que pueden ocurrir, junto con una breve
- explicación:
-
- - "Demasiadas líneas en PR en lección N del fichero F."
-
- F puede ser EJERC.DAT y EJERCPP.DAT.
-
- N está en el rango de 1 a 12 para EJERC.DAT y en el rango de 1 a 8 para
- EJERCPP.DAT
-
- PR puede ser "pregunta" o "respuesta".
-
- Tras las palabras claves pregunta y respuesta puede haber un máximo de
- tres líneas en los ficheros de datos de ejercicios. Esto error indica que
- hay una pregunta o una respuesta que contiene más de tres líneas.
-
- - "Demasiadas opciones en PR en lección N del fichero F."
-
- F puede ser EJERC.DAT y EJERCPP.DAT.
-
- PR puede ser "pregunta" o "respuesta".
-
- N está en el rango de 1 a 12 para EJERC.DAT y en el rango de 1 a 8 para
- EJERCPP.DAT
-
- Tras la palabra clave opciones se encuentran todas los nombres de op-
- ciones de un determinado test. El número máximo de opciones es nueve, por lo
- tanto, este error indica que hay un test que contiene más de nueve opciones.
-
- - "El tipo de ejercicio ha de ir entre comillas en lección N de fichero F."
-
- F puede ser EJERC.DAT y EJERCPP.DAT.
-
- N está en el rango de 1 a 12 para EJERC.DAT y en el rango de 1 a 8 para
- EJERCPP.DAT
-
- Tras la palabra clave begine debe ir el nombre del ejercicio entre
- comillas. Este error indica que en la línea mostrada no ocurre tal cosa,
- bien porque no aparezca ninguna comilla o porque sólo aparezca una de
- ellas (la de abrir o la de cerrar).
-
- - "Encontrada palabra clave begint dentro de bloque begint-endt en lección N
- del fichero F."
-
- F puede ser TEOC.DAT, TEOCPP.DAT, EJEMC.DAT, EJEMCPP.DAT, EJERC.DAT y
- EJERCPP.DAT.
-
- N está en el rango de 1 a 12 para los ficheros de datos correspondien-
- tes al lenguaje C, y en el rango de 1 a 8 para los ficheros de datos corres-
- pondientes al lenguaje C++.
-
- Los bloques begint-endt no se pueden anidar y sin embargo ha sido
- encontrada la palabra clave begint en el interior de un bloque begint-endt.
-
- - "Encontrado dos particiones en lección N del fichero F."
-
- F puede ser TEOC.DAT y TEOCPP.DAT.
-
- N está en el rango de 1 a 12 para TEOC.DAT y en el rango de 1 a 8 para
- TEOCPP.DAT
-
- Una lección de teoría sólo se puede partir en dos partes, o dicho de
- otro modo, en una lección de teoría sólo puede aparecer una vez la palabra
- clave partir. Este error indica que en la lección especificada se han encon-
- trado dos palabras claves partir.
-
- - "Línea demasiado larga en fichero TUTOR.CFG."
-
- En el fichero TUTOR.CFG hay una línea que contiene más de 255 carac-
- teres. El comienzo de la línea en la cual se produjo el error es mostrada
- en la ventana de error. Solución: acortar la longitud de dicha línea de tal
- manera que contenga menos de 256 caracteres.
-
- - "Línea demasiado larga en lección N del fichero F."
-
- F puede ser TEOC.DAT, TEOCPP.DAT, EJEMC.DAT, EJEMCPP.DAT, EJERC.DAT y
- EJERCPP.DAT.
-
- N está en el rango de 1 a 12 para los ficheros de datos correspondien-
- tes al lenguaje C, y en el rango de 1 a 8 para los ficheros de datos corres-
- pondientes al lenguaje C++.
-
- Una línea de un fichero de datos no puede contener más de 255 carac-
- teres. La solución a este problema es, por lo tanto, bastante sencilla:
- reducir los caracteres de la línea a un máximo de 255. A partir del nombre
- del fichero y el contenido de la línea que son suministrados en la ventana
- de error, debería ser fácil localizarla y modificarla en el fichero de datos
- correspondiente con un editor de ficheros de texto ASCII.
-
- - "Línea demasiado larga en número de ayuda N del fichero TUTOR.HLP."
-
- N es un número que puede tener los siguientes valores:
-
- 1 ayuda de pantalla de presentación
- 2 ayuda del menú principal
- 3 ayuda de la información general
- 4 ayuda del menú de lecciones del lenguaje C
- 5 ayuda del menú de lecciones del lenguaje C++
- 6 ayuda del menú de tareas
- 7 ayuda de la teoría
- 8 ayuda de los ejemplos
- 9 ayuda de los ejercicios
- 10 ayuda de los tests
- 11 ayuda de las preguntas con comprobación
- 12 ayuda de las preguntas sin comprobación
- 13 ayuda de las propuestas de programas
- 14 ayuda del proceso de abandonar tutor
- 15 ayuda de la edición
-
- Las líneas en los ficheros de datos no pueden tener más de 255 carac-
- teres. La línea demasiado larga se encuentra en el bloque begin-end N-ésimo
- del fichero TUTOR.HLP. El contenido de dicha línea se muestra en la ventana
- de error; sabiendo el contenido de la línea se puede encontrar en el fichero
- TUTOR.HLP con una búsqueda de un trozo del texto de esa línea.
-
- - "Nombre de cabecera incorrecto en lección N de fichero F."
-
- F puede ser TEOC.DAT y TEOCPP.DAT.
-
- N está en el rango de 1 a 12 para TEOC.DAT y en el rango de 1 a 8 para
- TEOCPP.DAT.
-
- Tras la palabra clave cabecera debe ir el nombre de la cabecera entre
- comillas. Este error indica que en la línea mostrada no ocurre tal cosa,
- bien porque no aparezca ninguna comilla o porque sólo aparezca una de ellas
- (la de abrir o la de cerrar).
-
- - "Nombre de ejemplo incorrecto en lección N de fichero F."
-
- F puede ser EJEMC.DAT y EJEMCPP.DAT.
-
- N está en el rango de 1 a 12 para EJEMC.DAT y en el rango de 1 a 8 para
- EJEMCPP.DAT.
-
- Tras la palabra clave begine debe ir el nombre del ejemplo entre comi-
- llas. Este error indica que en la línea mostrada no ocurre tal cosa, bien
- porque no aparezca ninguna comilla o porque sólo aparezca una de ellas (la
- de abrir o la de cerrar). Si se desea que un ejemplo no tenga ningún nombre,
- esto es, que la ventana de visualización de un determinado ejemplo no tenga
- cabecera, hacer lo siguiente:
-
- begine ""
-
- - "Palabra clave no válida en lección N del fichero F."
-
- F puede ser TEOC.DAT, TEOCPP.DAT, EJEMC.DAT, EJEMCPP.DAT, EJERC.DAT y
- EJERCPP.DAT.
-
- N está en el rango de 1 a 12 para los ficheros de datos correspondien-
- tes al lenguaje C, y en el rango de 1 a 8 para los ficheros de datos corres-
- pondientes al lenguaje C++.
-
- La línea mostrada en la ventana de error comienza por una palabra clave
- inexistente o bien por una palabra clave que está fuera de contexto. La sin-
- taxis correcta para cada fichero de datos está descrita en el apartado 5.
-
- - "Palabra clave no válida en TE en lección N del fichero F."
-
- F puede ser EJERC.DAT y EJERCPP.DAT.
-
- N está en el rango de 1 a 12 para los ficheros de datos correspondien-
- tes al lenguaje C, y en el rango de 1 a 8 para los ficheros de datos corres-
- pondientes al lenguaje C++.
-
- TE puede ser "test", "pregunta con comprobación" o "pregunta sin
- comprobación".
-
- Este error indica que dentro del tipo de ejercicio TE, en la lección
- N y en el fichero F, hay una línea (mostrada en la ventana de error) que
- empieza por una palabra clave incorrecta o fuera de contexto.
-
- - "String sin terminación en lección N de fichero F."
-
- F puede ser TEOC.DAT y TEOCPP.DAT.
-
- N está en el rango de 1 a 12 para TEOC.DAT y en el rango de 1 a 8 para
- TEOCPP.DAT
-
- En una lección de teoría se ha encontrado una línea que empieza por
- comillas ("), lo cual indica que es un línea correspondiente a una ventana
- normal o a una ventana de visualización, pero sin embargo, no se han encon-
- trado las comillas de cierre.
-
- - "Tipo de ejercicio incorrecto en lección N de fichero F."
-
- F puede ser EJERC.DAT y EJERCPP.DAT.
-
- N está en el rango de 1 a 12 para EJERC.DAT y en el rango de 1 a 8 para
- EJERCPP.DAT
-
- Después de una palabra clave begine debe ir obligatoriamente el tipo de
- ejercicio entre comillas. Las formas correctas de begine son las siguientes:
-
- begine "test"
- begine "pcc"
- begine "PCC"
- begine "psc"
- begine "prpr"
-
- Esto error indica que el tipo de ejercicio que va entre comillas no es
- ni test ni pcc ni PCC ni psc ni prpr.
-
-
-
- 6.1.2.3.- ERRORES TERMINALES NORMALES.
- --------------------------------------
-
- Bajo este epígrafe se agrupa todos aquellos errores terminales que no
- son ni de memoria insuficiente ni de líneas de ficheros.
-
- Cuando ocurre un error de este tipo, el programa TUTOR.EXE presenta una
- ventana centrada en la pantalla con atributo de pantalla de negro sobre
- blanco en cuyo interior se encuentra el mensaje de error. La línea de estado
- inferior nos informa de que pulsemos cualquier tecla o botón del ratón para
- abandonar el programa.
-
- A continuación se listan, por orden alfabético, todos los mensajes de
- error que pueden presentarse junto con una breve descripción de ellos:
-
- - "Anchura de ventana de visualización incorrecta."
-
- Este error ocurre cuando especificamos una ventana de visualización
- (bloque beginvis-endvis) en el fichero de teoría con una anchura muy pequeña.
-
- Este problema se resuelve aumentando la anchura de la ventana de visua-
- lización en el fichero de teoría hasta que no se produzca este error.
-
- - "El fichero F no debería estar en el fichero índice TUTOR.IND."
-
- En el fichero TUTOR.IND sólo pueden estar los ficheros TEOC.DAT,
- TEOCPP.DAT, EJEMC.DAT, EJEMCPP.DAT, EJERC.DAT, EJERCPP.DAT y TUTOR.HLP.
-
- El fichero F es distinto a los 7 ficheros mencionados y por lo tanto
- no puede estar en el fichero TUTOR.IND.
-
- - "El fichero 'TUTOR.DOC' está vacío."
-
- Este error se produce cuando el fichero TUTOR.DOC está vacío, es decir,
- no contiene ningún carácter. El fichero TUTOR.DOC suministrado contiene el
- manual de usuario.
-
- Para recuperar la información original que contiene este fichero se
- puede volver a instalar el paquete (cf. 3).
-
- - "En el fichero índice TUTOR.IND no está el fichero de ayuda TUTOR.HLP."
-
- Para solucionar este problema puedes ejecutar el fichero por lotes
- I.BAT o bien ejecutar el programa INDEXAR.EXE del siguiente modo:
-
- INDEXAR /A TUTOR.HLP
-
- En el fichero índice TUTOR.IND deben estar todos los ficheros de datos
- con extensión DAT y HLP, esto es, todos aquellos ficheros de datos cuyo
- contenido está formado por bloques begin-end.
-
- - "En el fichero índice TUTOR.IND no está el fichero de ejemplos F."
-
- F puede ser EJEMC.DAT y EJEMCPP.DAT.
-
- Este problema se puede solucionar llamando simplemente al fichero por
- lotes I.BAT.
-
- - "En el fichero índice TUTOR.IND no está el fichero de ejercicios F."
-
- F puede ser EJERC.DAT y EJERCPP.DAT.
-
- Este problema se puede solucionar llamando simplemente al fichero por
- lotes I.BAT.
-
- - "En el fichero índice TUTOR.IND no está el fichero de teoría F."
-
- F puede ser TEOC.DAT y TEOCPP.DAT.
-
- Este problema se puede solucionar llamando simplemente al fichero por
- lotes I.BAT.
-
- - "Error al intentar abrir el fichero F".
-
- Este error acontece cuando no se puede abrir el fichero F donde F
- representa a un fichero de datos (excepto el fichero TUTOR.CMP que tiene
- su propio mensaje de error de apertura). La causa más probable de este
- error es que el fichero F no se encuentre en el directorio de trabajo.
-
- - "Error al intentar cerrar el fichero F".
-
- Este error ocurre cuando no se puede cerrar el fichero F donde F
- representa a un fichero de datos. Este error es muy infrecuente. Posi-
- blemente haya algún problema de disco.
-
- - "Error hardware de dispositivo."
- - "Error Hardware en drive U."
- - "ERROR en drive U."
-
- ERROR puede ser:
-
- "Intento de escribir en un diskette protegido"
- "Unidad desconocida (número de la unidad de disco inválido)"
- "Unidad no preparada (no hay disco o la puerta está abierta)"
- "Comando desconocido"
- "Error de CRC"
- "Mala longitud de la estructura de petición"
- "Error de búsqueda (movimiento a la pista solicitada fallido)"
- "Medio desconocido (formato del disco no reconocido)"
- "Sector no encontrado"
- "Impresora sin papel"
- "Error de escritura"
- "Error de lectura"
- "Error general (no especificado)"
- "Reservado"
- "Reservado"
- "Cambio de disco inválido"
-
- Todos estos errores se llaman errores críticos del DOS, ya que
- suponen una situación de emergencia que impide que la ejecución del
- programa continúe.
-
- Atención: se puede producir algún error crítico que haga que el ordena-
- dor se bloquee y TUTOR.EXE no muestre la correspondiente ventana de error.
- Esto puede ocurrir porque el programa TUTOR.EXE modifica la dirección aso-
- ciada con la interrupción 36 (25 hex); esta dirección es la del comienzo de
- una rutina que es llamada por el sistema cada vez que se produce un error
- crítico.
-
- Estos errores son más comunes con discos. U representa una unidad de
- disco (A, B, C, ...).
-
- El error "Error hardware de dispositivo. Posiblemente sea la impresora"
- es frecuente que ocurra un rato después de que se desactive el botón de rea-
- dy de la impresora mientras ésta está imprimiendo o un rato después de que
- la impresora se quede sin papel. En estos, el sistema operativo, tras espe-
- rar un determinado lapso de tiempo, genera el error hardware de dispositivo.
-
- - "Han sido pulsadas las teclas Ctrl-Break, Ctrl-C o Alt-Key-pad-3."
-
- La pulsación de las teclas <CTRL-BREAK>, <CTRL-C> o <ALT-KEYPAD-3>
- provoca la salida inmediata del tutor tras mostrar este mensaje.
-
- Atención: puede haber casos que la pulsación de estas teclas haga que
- el ordenador se quede bloqueado debido a que el tratamiento de estas teclas
- es diferente al resto: el programa TUTOR.EXE cambia el valor de un vector de
- interrupción para tratarlas.
-
- - "Indexación no actualizada sobre fichero de ayuda F."
-
- F puede ser TEOC.DAT, TEOCPP.DAT, EJEMC.DAT, EJEMCPP.DAT, EJERC.DAT,
- EJERCPP.DAT y TUTOR.HLP.
-
- Este error indica que el fichero F ha sido modificado y no ha sido
- indexado después de la modificación. Cada vez que el programa TUTOR.EXE
- va a leer un bloque begin-end de un fichero de datos, comprueba que el
- comienzo de bloque, leído del fichero TUTOR.IND, corresponda a la letra
- b de la palabra clave begin, y si no es así muestra este mensaje de error.
-
- Para solucionar este problema puedes ejecutar el fichero por lotes
- I.BAT o bien ejecutar el programa INDEXAR.EXE del siguiente modo:
-
- INDEXAR /A F
-
- siendo F el fichero sobre el que se produjo el error; aunque en este caso se
- recomienda hacer I.BAT para que el fichero F no aparezca más de una vez en
- TUTOR.IND.
-
- - "La línea L del fichero TUTOR.DOC es demasiado larga."
-
- Las líneas del fichero TUTOR.DOC no pueden tener más de 255 caracteres.
-
- Este error ocurrió porque la línea L-ésima contiene más de 255 carac-
- teres.
-
- Este problema se resuelve editando el fichero TUTOR.DOC con cualquier
- procesador de textos que trabaje con ficheros de texto ASCII y dividiendo la
- línea L en dos líneas.
-
- - "Ni la anchura ni la altura de las ventanas pueden ser menores que 1."
-
- Este error ocurre cuando se crea una ventana, normal o de visuali-
- zación, en el fichero de datos de teoría, cuya anchura o altura es menor
- que 1. Una de las causas por las que puede ocurrir es cuando utilizamos
- la palabra clave centrar_coordenadas y la ventana no contiene ninguna línea.
-
- Este problema se resuelve examinando la descripción de la ventana
- (bloque beginv-endv) en la que se produjo el error, asegurándonos de que
- tanto la anchura como la altura sean mayores que 1.
-
- - "Número de casillas de las barras de visualización incorrecto."
-
- Este error se produce cuando especificamos una anchura y/o una altura
- de una ventana de visualización (bloque beginvis-endvis), en el fichero de
- teoría, muy pequeñas, y por lo tanto, el número de casillas para la barra
- horizontal y/o vertical es demasiado pequeño.
-
- Este problema se resuelve aumentando la anchura y/o altura de la
- ventana de visualización en el fichero de teoría hasta que no se produzca
- este error.
-
-
-
- 6.1.3.- ERRORES NO TERMINALES.
- ------------------------------
-
- Los errores terminales son aquéllos que no provocan necesariamente una
- salida inmediata del tutor.
-
- Cuando se produce un error de este tipo, el programa TUTOR.EXE muestra
- una ventana de error centrada en la pantalla con atributo de pantalla negro
- sobre rojo, en cuyo interior se muestra el mensaje de error y un menú hori-
- zontal (cf. 4.5) con tres opciones:
-
- - Ignorar: el programa sigue la ejecución como si se hubiese hecho correc-
- tamente la operación que provocó el error.
-
- - Reintentar: vuelve a intentar la misma operación que provocó el error.
-
- - Abortar: seleccionar esta opción es equivalente a pulsar las teclas
- <ALT-X>.
-
- A continuación se listan, por orden alfabético, todos los mensajes de
- error que pueden presentarse junto con una breve descripción de ellos:
-
- Hay dos grupos de errores no terminales: errores de impresora y errores
- de ficheros.
-
- Los errores de impresora son aquellos errores relacionados con la
- impresora. Estos errores se pueden producir en los procesos de teoría
- (cf. 4.14), de ejemplos (cf. 4.16) y de ejercicios (cf. 4.17) al pulsar
- la tecla <F4>. Los posibles errores de impresora son:
-
- - "Error de temporización en la impresora."
- - "Error de entrada/salida en la impresora."
- - "Impresora no seleccionada (por ejemplo, no encendida)."
- - "Señal de falta de papel en la impresora."
-
- Si apagamos la impresora mientras estamos imprimiendo, el programa
- puede tardar un rato en emitir el mensaje de error terminal "Error hardware
- de dispositivo. Posiblemente sea la impresora" debido al tiempo de retardo
- de las impresoras en los ordenadores personales IBM. Este error es evitable
- pulsando la tecla <ESC> (o su equivalente del ratón, esto es, presionando
- <BOTDER> o bien <BOTIZQ> cuando el cursor del ratón está en la línea infe-
- rior) para interrumpir la impresión en vez de apagar la impresora por las
- buenas; en este caso, la impresora seguirá imprimiendo hasta vaciar el buf-
- fer de impresión; tanto esta última observación como la posibilidad de in-
- terrupción se comunica en la línea de estado inferior mientras se produce la
- impresión. Si el usuario tarda mucho tiempo bien en introducir el papel en
- la impresora tras haberse imprimido uno o bien en activar de nuevo el botón
- ready de la impresora tras haberlo desactivado, el sistema operativo gene-
- rará un error y por lo tanto el programa TUTOR.EXE lo considerá como un
- error terminal.
-
- En cuanto a los errores de ficheros sólo hay uno: "No es posible abrir
- el fichero F." donde F es el nombre del fichero que no se puede abrir. Este
- error puede ocurrir en el proceso de ejemplos (cf. 4.16) al pulsar la tecla
- <F2>.
-
-
-
- 6.1.4.- AVISOS.
- ---------------
-
- Los avisos nunca provocan la salida del programa y son mensajes de
- información o advertencias de errores no importantes y de operaciones
- incorrectas realizadas por parte del usuario.
-
- Cuando se produce un aviso, el programa TUTOR.EXE presenta una ventana
- centrada en pantalla con atributo de pantalla negro sobre borde en cuyo
- interior se encuentra el mensaje del aviso. La línea de estado inferior nos
- informa de que pulsemos cualquier tecla o botón del ratón para continuar.
-
- A continuación se listan, por orden alfabético, todos los mensajes de
- avisos que pueden presentarse junto con una breve descripción de ellos:
-
- - "Faltan datos en fichero TUTOR.CFG. Habrá colores no inicializados."
-
- En el fichero TUTOR.CFG hay menos líneas de datos de las que habría de
- haber. La mejor solución a este problema es recuperar el fichero TUTOR.CFG
- original, instalar de nuevo el tutor o añadir las líneas de datos perdidas
- si el usuario recuerda las que faltan (por ejemplo, porque el fichero
- TUTOR.CFG conserve el comentario de cada línea).
-
- La situación contrario, es decir, que haya más líneas de datos de
- las necesarias, no produce un error puesto que los datos sobrantes son
- desechados.
-
- Si se continúa en el programa tras haber obtenido este aviso, habrá
- colores no inicializados correspondientes a los datos no leídos. Lo más
- probable es que estos colores se inicialicen a 0, es decir, con el color
- negro; y el efecto que se consigue con un atributo de pantalla correspon-
- diente a colores de texto y fondo negros es que los caracteres impresos en
- pantalla se hacen invisibles.
-
- - "Ejemplo imprimido correctamente."
-
- Informa que se ha imprimido el ejemplo sin ningún problema, es decir,
- que ni se ha pulsado la tecla <ESC> ni se ha producido un error de impresora.
-
- - "Ejercicio(s) imprimido(s) correctamente."
-
- Informa que se ha imprimido el ejercicio (o los ejercicios si se pulsó
- <F4> desde la primera o última ventana de ejercicios) sin ningún problema,
- es decir, que ni se ha pulsado la tecla <ESC> ni se ha producido un error de
- impresora.
-
- - "Imprimiendo ejemplo".
-
- Este mensaje informa de que actualmente se está imprimiendo el ejemplo
- que se ve en pantalla que cargada en memoria. La línea de estado inferior
- comunica que esta interrupción puede ser interrumpida con la pulsación de la
- tecla <ESC>.
-
- - "Imprimiendo ejercicio(s)".
-
- Este mensaje informa de que actualmente se está imprimiendo bien el
- ejercicio que se ve en pantalla si se pulsó <F4> desde un determinado ejer-
- cicio o bien todos los ejercicios de una lección si se invocó <F4> desde
- la primera o última ventana de los ejercicios. La línea de estado inferior
- comunica que esta interrupción puede ser interrumpida con la pulsación de
- la tecla <ESC>.
-
- - "Impresión interrumpida con ESC".
-
- Informa de que se ha interrumpido la impresión del ejercicio (o los
- ejercicios) debido a la pulsación de la tecla de <ESC> por parte del usua-
- rio, y por lo tanto es probable que el ejercicio (o los ejercicios) no se
- haya imprimido completamente. Si al pulsar <ESC> el resto del ejercicio (o
- los ejercicios) estaba en el buffer de la impresora entonces sí se imprimirá
- en su totalidad. Se habla de ejercicios en plural porque la impresión puede
- ser invocada desde la primera o última ventana de ejercicios, en cuyo caso
- se imprimirán todos los ejercicios de una lección si no se interrumpe tal
- proceso de impresión con la tecla <ESC>.
-
- - "Imprimiendo teoría".
-
- Este mensaje informa de que actualmente se está imprimiendo la teoría
- que cargada en memoria. La línea de estado inferior comunica que esta
- interrupción puede ser interrumpida con la pulsación de la tecla <ESC>.
-
- - "La primera y última ventana no son copiables ya que no son programas."
-
- Este error ocurre cuando se intenta copiar un ejemplo a un fichero,
- pulsando la tecla <F2>, cuando estamos en la primera o última ventana de los
- ejemplos, las cuales son ventanas de control o información, no son ventanas
- en cuyo interior haya un programa ejemplo.
-
- - "La primera y última ventana no son ejecutables ya que no son programas."
-
- Este error sucede cuando intentamos ejecutar un ejemplo, pulsando la
- tecla <F9>, pero estando en la primera o última ventana de la tarea de
- ejemplos, las cuales no contienen programas ejemplos puesto que son ventanas
- de control.
-
- - "La primera y última ventana no son imprimibles ya que no son programas."
-
- Este error sobreviene cuando se intenta imprimir un ejemplo, pulsando
- la tecla <F4>, cuando estamos situados en la primera o última ventana del
- proceso de ejemplos, las cuales no contienen un ejemplo puesto que son
- ventanas de control.
-
- - "No hay ninguna información de teoría en memoria."
-
- Este error acontece cuando intentamos imprimir la teoría, pulsando
- <F2>, pero no hay teoría cargada en memoria. Este error es muy infrecuente
- por no decir que es imposible que ocurra tal y como está diseñado el pro-
- grama; pero hay que tener en cuenta todos los casos posibles.
-
- - "No se puede ejecutar el compilador ya que no se leyó su nombre en
- TUTOR.CMP."
-
- Este error ocurre cuando se intenta llamar al compilador, pulsando <F5>
- en el proceso de propuestas de programas, pero el nombre del compilador no
- pudo leerse del fichero TUTOR.CMP al principio del programa TUTOR.EXE.
-
- - "No es posible cerrar el fichero F."
-
- Este error se produce cuando no se puede cerrar el fichero F. El
- fichero F es el fichero en el que se copia el programa ejemplo tras
- pulsar la tecla <F2>.
-
- - "No se puede ejecutar el programa P."
-
- P es PRTUTC.EXE o PRTUTCPP.EXE.
-
- Este error acontece cuando intentamos ejecutar un ejemplo, pulsando la
- tecla <F9>, y ese ejemplo no se puede ejecutar, bien porque el programa P no
- se encuentre en el directorio de trabajo o bien porque no hay suficiente
- memoria para ejecutar el programa P.
-
- Si este error ocurrió debido a que no hay suficiente memoria para eje-
- cutar algunos ejemplos desde el programa TUTOR.EXE, estos ejemplos se podrán
- ejecutar desde el programa EJECUTAR.EXE (cf. 4.16.1) que consume mucha menos
- memoria para ejecutar PRTUTC.EXE y PRTUTCPP.EXE.
-
- - "No se podrá llamar al compilador ya que no se ha podido abrir TUTOR.CMP."
-
- Al principio del programa TUTOR.EXE, éste lee el nombre del compilador
- de C o de C++ en el fichero TUTOR.CMP; pero en este caso el fichero TUTOR.CMP
- no se ha podido abrir, seguramente porque no se encuentra en el directorio
- de trabajo; esto implica que no podrá llamarse al compilador en el proceso
- de propuestas de programas, con la tecla <F5>.
-
- - "No se podrá llamar al compilador ya que el nombre es demasiado largo
- (>255)."
-
- Al principio del programa TUTOR.EXE, éste lee el nombre del compilador
- de C o de C++ del fichero TUTOR.CMP; pero en este caso, el nombre del compi-
- lador junto con sus posibles argumentos contienen más de 255 caracteres;
- esto implica que no podrá llamarse al compilador en el proceso de propuestas
- de programas, con la tecla <F5>.
-
- - "No se podrá llamar al compilador ya que no se ha podido leer el nombre de
- él."
-
- Al principio del programa TUTOR.EXE, éste lee el nombre del compilador
- de C o de C++ del fichero TUTOR.CMP; pero en este caso, el nombre del compi-
- lador no se encuentra en la primera línea del fichero TUTOR.CMP, es decir,
- que la primera línea de este fichero está vacía; esto implica que no podrá
- llamarse al compilador en el proceso de propuestas de programas, con la
- tecla <F5>.
-
- - "No se puede ejecutar el programa PORTUTOR.EXE."
-
- Si no se especifica el argumento np (cf. 4.18.2) al ejecutar el
- TUTOR.EXE, este programa llama a PORTUTOR.EXE para que presente en pantalla
- la portada. Este error se ha producido porque el programa PORTUTOR.EXE no
- pudo ser ejecutado. Básicamente hay dos razones principales por las que no
- se pudo ejecutar: bien porque no se encontraba en el directorio de trabajo
- o bien porque no había suficiente memoria para ejecutarlo.
-
- - "Puede que no se haya imprimido el ejemplo completo, ya que se pulsó la
- tecla ESC".
-
- Informa de que se ha interrumpido la impresión del ejemplo debido a la
- pulsación de la tecla de <ESC> por parte del usuario, y por lo tanto es pro-
- bable que el ejemplo no se haya imprimido completamente. Si al pulsar <ESC>
- el resto del ejemplo estaba en el buffer de la impresora entonces sí se im-
- primirá en su totalidad.
-
- - "Puede que no se haya imprimido la teoría completa, ya que se pulsó la
- tecla ESC".
-
- Informa de que se ha interrumpido la impresión de la teoría debido a la
- pulsación de la tecla de <ESC> por parte del usuario, y por lo tanto es pro-
- bable que la teoría no se haya imprimido completamente. Si al pulsar <ESC>
- el resto del teoría estaba en el buffer de la impresora entonces sí se im-
- primirá en su totalidad.
-
- - "Texto no encontrado."
-
- Este aviso ocurre cuando buscamos un texto, con las teclas <CTRL-B>,
- <CTRL-R> o <CTRL-A> en cualquier ventana de visualización (cf. 4.6), y dicho
- texto no se encuentra en el contenido de la ventana.
-
- - "Teoría imprimida correctamente."
-
- Informa que se ha imprimido toda la teoría sin ningún problema, es
- decir, que ni se ha pulsado la tecla <ESC> ni se ha producido un error de
- impresora.
-
-
-
- 6.1.5.- ERRORES DE PROGRAMACION.
- --------------------------------
-
- Los errores de programación son aquellos errores provocados por un
- error en el diseño o programación del programa.
-
- Cuando ocurre un error de programación, el programa TUTOR.EXE presenta
- una ventana centrada en pantalla con atributo de pantalla negro sobre rojo,
- en cuyo interior aparece el mensaje del error.
-
- Estos errores no deberían de aparecer nunca en el programa. En este
- caso no se van a listar todos los posibles errores de programación puesto
- que no son interesantes para el usuario: no los va a poder resolver si el
- programa TUTOR.EXE le mostrara alguno.
-
- Hay un error de programación que, si ocurre, no es mostrado como los
- demás en el interior de una ventana centrada en la pantalla sino que es
- visualizado en una línea anterior a la del mensaje de tiempo empleado. Este
- error es el que informa que el montón (heap o memoria dinámica utilizada) se
- ha corrompido en la ejecución del programa TUTOR.EXE, es decir, que se ha
- gestionado mal la memoria dinámica en la codificación. Siempre que el pro-
- grama TUTOR.EXE termina, por el motivo que sea (pulsación de las teclas
- <ALT-X>, error, etc.), y justo antes de mostrar el mensaje de tiempo emplea-
- do, se comprueba el estado del montón. Si este error apareciera, como ocurre
- con los demás errores de programación, el usuario no puede hacer nada por
- solucionarlo; lo que sí podría hacer es contactar con el programador para
- que éste lo solucione, o si dispone del código fuente atreverse a solucio-
- narlo él mismo. De todas formas, para tranquilidad de los usuarios, hay que
- decir que el programa ha sido probado intensa y extensamente sin detectarse
- ni éste ni ningún otro error de programación. Prácticamente se puede decir
- con seguridad, sin temor a equivocarnos, que este error no aparecerá jamás.
-
-
-
- 6.2.- ERRORES EN PORTUTOR.EXE.
- ------------------------------
-
- Los errores que se pueden dar en el programa PORTUTOR.EXE por orden
- alfabético, son los siguientes:
-
- - "El nombre del programa o el nombre del autor ha sido cambiado."
-
- Al comienzo del programa PORTUTOR.EXE se chequea los nombres del pro-
- grama, del autor del programa y el del tutor del proyecto para prevenir que
- no sean modificados con un editor de ficheros binarios. Si se produce este
- error quiere decir que algunos de los nombres citados han sido cambiados.
-
- - "Error gráfico: E"
-
- La portada presentada por el programa PORTUTOR.EXE está en modo gráfi-
- co. Si al inicializar el sistema gráfico se produjera algún error, se mos-
- traría este mensaje donde E es el tipo de error. El mensaje de error E está
- en inglés.
-
- - "Este programa es ejecutado por el programa TUTOR.EXE"
-
- Este error se produce cuando se intenta ejecutar directamente el
- programa PORTUTOR.EXE por parte del usuario. Este programa sólo puede
- ser ejecutado por TUTOR.EXE.
-
-
-
- 6.3.- ERRORES EN PRTUTC.EXE.
- ----------------------------
-
- Los errores que se pueden dar en el programa PRTUTC.EXE, por orden
- alfabético, son los siguientes:
-
- - "Argumentos incorrectos."
-
- Este error se da cuando el número de argumentos pasado al programa
- PRTUTC.EXE es incorrecto. Este error no debería aparecer nunca, puesto que
- el programa PRTUTC.EXE es ejecutado por TUTOR.EXE y éste último siempre
- debería llamar correctamente a PRTUTC.EXE.
-
- - "Este programa es ejecutado por el programa TUTOR.EXE"
-
- Este error se produce cuando se intenta ejecutar directamente el pro-
- grama TUTOR.EXE por parte del usuario. Este programa sólo puede ser ejecu-
- tado por TUTOR.EXE.
-
- - "Error gráfico: E"
-
- El programa PRTUTCPP.EXE inicializa el sistema gráfico al comienzo de
- su ejecución. Si en tal inicialización ocurre un error, se muestra este men-
- saje junto con el tipo de error E. E contiene el mensaje de error en inglés.
-
-
-
- 6.4.- ERRORES EN PRTUTCPP.EXE.
- ------------------------------
-
- Los errores que se pueden dar en el programa PRTUTCPP.EXE, por orden
- alfabético, son los siguientes:
-
- - "Argumentos incorrectos."
-
- Este error se da cuando el número de argumentos pasado al programa
- PRTUTCPP.EXE es incorrecto. Este error no debería aparecer nunca, puesto
- que el programa PRTUTCPP.EXE es ejecutado por TUTOR.EXE y éste último
- siempre debería llamar correctamente a PRTUTCPP.EXE.
-
- - "Este programa es ejecutado por el programa TUTOR.EXE"
-
- Este error se produce cuando se intenta ejecutar directamente el pro-
- grama TUTOR.EXE por parte del usuario. Este programa sólo puede ser ejecu-
- tado por TUTOR.EXE.
-
-
-
- 6.5.- ERRORES EN INSTALAR.EXE.
- ------------------------------
-
- Los errores que se pueden dar en el programa INSTALAR.EXE por orden
- alfabético, son los siguientes:
-
- - "Fichero PAQTUTOR.EXE no encontrado."
-
- Este error ocurre si el fichero PAQTUTOR.EXE no está en el directorio
- de trabajo al ejecutar INSTALAR.EXE.
-
- - "No hay suficiente espacio libre en unidad U:"
-
- Para poder instalar el paquete formado por los distintos ficheros que
- constituyen el tutor en la unidad U, el disco de esta unidad debe tener
- libre como mínimo unos 3'5 Mb aproximadamente.
-
- - "No es posible crear el directorio D"
-
- Este error sucede cuando el directorio D, que es el directorio en el
- cual se va a instalar el tutor, no existe y no se ha podido crear.
-
- - "SINTAXIS: instalar directorio"
-
- Este error se da cuando el número de argumentos pasado al programa
- INSTALAR.EXE es incorrecto. En el apartado 3.3.1 se describe cuál es la
- sintaxis correcta de llamada a este programa.
-
-
-
- 6.6.- ERRORES EN INDEXAR.EXE.
- -----------------------------
-
- Los errores que se pueden dar en el programa INDEXAR.EXE por orden
- alfabético, son los siguientes:
-
- - "El primer argumento es incorrecto."
-
- El primer argumento del programa INDEXAR.EXE tiene que ser obliga-
- toriamente /C o /A. Ver apartado 5.2 para más detalles.
-
- - "Error al intentar abrir el fichero 'F' en modo CA."
-
- F es el fichero índice. Si este programa se invoca desde I.BAT,
- entonces F será TUTOR.IND.
-
- CA es "añadir" si el primer argumento es /A o "crear" si el primer
- argumento es /C.
-
- Este error ocurre cuando el fichero F no se puede abrir. Esto puede
- ocurrir por múltiples causas, por ejemplo, disco protegido contra escritura,
- disco lleno, etc.
-
- - "Error al intentar abrir el fichero 'F'."
-
- Este error ocurre cuando no se puede abrir el fichero F, que es un
- fichero de datos a indexar.
-
- - "Error al intentar cerrar el fichero 'F'."
-
- Este error ocurre cuando no se puede cerrar el fichero F, siendo F uno
- de los ficheros de datos a indexar o el fichero índice. Este error sucede en
- muy raras ocasiones.
-
- - "Error: begin sin end en fichero 'F'."
-
- Este error acontece porque en el fichero de datos F hay un begin que no
- tiene su correspondiente end.
-
- - "Error en fichero 'F': Encontrado un 'BE' sin 'EB' en línea L."
-
- F es un fichero de datos.
-
- BE es o bien "begin" o bien "end". EB es la inversa de BE, es decir, si
- BE es "begin" entonces EB es "end", y si BE es "end" entonces EB es "begin".
-
- L es el número de línea del fichero F en el que se produjo el error.
-
- Este error ocurre cuando aparece un bloque begin-end en el cual falta,
- o bien la palabra clave begin o bien la palabra clave end.
-
- - "Error en fichero 'F': el número máximo de bloques (bloques begin-end) es
- de 99."
-
- Este error sobreviene porque en el fichero de datos F hay más de 99
- bloques begin-end. El número máximo de bloques begin-end en un fichero de
- datos para poder ser indexado por INDEXAR.EXE es de 99.
-
- - "Error: Se ha encontrado una línea en el fichero 'F' con más de 255
- caracteres."
-
- Este error ocurre porque en el fichero de datos F existe una línea
- que contiene más de 255 caracteres. El número máximo de caracteres que
- puede tener una línea de un fichero de datos para poder ser indexado por
- INDEXAR.EXE es de 255.
-
-
-
- 6.7.- ERRORES EN COMPILAD.EXE.
- ------------------------------
-
- Los errores que se pueden dar en el programa COMPILAD.EXE por orden
- alfabético, son los siguientes:
-
- - "No es posible abrir el fichero F para escritura."
-
- Este error se produce cuando no se puede abrir el fichero F. El
- fichero F es aquél que va a contener el nombre del compilador. Si el
- programa COMPILAD.EXE es ejecutado por C.BAT, F es el fichero TUTOR.CMP.
-
- - "No es posible cerrar el fichero F."
-
- Este error ocurre cuando no se puede cerrar el fichero F. Es muy
- improbable.
-
- - "SINTAXIS: compilad nombre_fichero [nombre_compilador [argumentos]]"
-
- Este error se da cuando el número de argumentos pasados a COMPILAD.EXE
- es incorrecto. En el apartado 5.8 se describe cuál es la sintaxis correcta
- de llamada a este programa.
-
-
-
- 6.8.- ERRORES EN EJECUTAR.EXE.
- ------------------------------
-
- Los errores que se pueden dar en el programa EJECUTAR.EXE, por orden
- alfabético, son los siguientes:
-
- - "Ejemplo incorrecto."
-
- Este error sobreviene cuando el número de ejemplo dado por el usuario
- no es número (contiene caracteres que no son dígitos) o bien dicho número de
- ejemplo corresponde a un ejemplo inexistente.
-
- Los números de ejemplos correctos están especificados en la tabla que se
- encuentra en el apartado 4.16.1. A continuación se lista todos los ejemplos
- del tutor y que por lo tanto se pueden ejecutar con el programa EJECUTAR.EXE:
-
- Lenguaje C.
- Lección 1.
- Ejemplo 1: OPERACIONES ARITMETICAS.
- Ejemplo 2: PASOS EN EL DESARROLLO DE UN PROGRAMA.
- Lección 2.
- Ejemplo 1: CALCULO DE LA LONGITUD Y EL AREA DE UN CIRCULO.
- Ejemplo 2: TAMAÑO DE LOS TIPOS MAS USADOS EN C.
- Lección 3.
- Ejemplo 1: ORDENACION POR EL METODO DE INSERCION DIRECTA.
- Ejemplo 2: ORDENACION POR EL METODO DE SELECCION DIRECTA.
- Ejemplo 3: ORDENACION POR EL METODO DE LA BURBUJA.
- Ejemplo 4: ORDENACION POR EL METODO DE LA SACUDIDA.
- Ejemplo 5: ORDENACION POR EL METODO DE INTERCAMBIO DIRECTO CON TEST.
- Ejemplo 6: ORDENACION POR EL METODO SHELL.
- Ejemplo 7: BUSQUEDA LINEAL EN UN VECTOR DESORDENADO.
- Ejemplo 8: BUSQUEDA LINEAL EN VECTOR ORDENADO.
- Ejemplo 9: BUSQUEDA BINARIA.
- Ejemplo 10: GENERACION DE 0 Y 1 ALEATORIAMENTE.
- Lección 4.
- Ejemplo 1: TRANSFORMACION DE NOTA NUMERICA A ALFABETICA.
- Ejemplo 2: CONTADOR DE NUMEROS POSITIVOS, NEGATIVOS Y NULOS DE UNA
- SERIE.
- Ejemplo 3: CALCULO DEL MAYOR Y MENOR NUMERO DE UNA SERIE.
- Ejemplo 4: INVERSION DE UN VECTOR.
- Ejemplo 5: CALCULO DE LA MEDIA DE UNA SERIE DE NUMEROS.
- Ejemplo 6: VISUALIZADOR DE MEMORIA.
- Lección 5.
- Ejemplo 1: TORRES DE HANOI.
- Ejemplo 2: PERMUTACIONES.
- Ejemplo 3: ORDENACION POR EL METODO DE ORDENACION RAPIDA.
- Ejemplo 4: DIBUJO DE UN GRAFICO.
- Ejemplo 5: DIBUJO DE UN GRAFICO 2.
- Ejemplo 6: ESPIRAL.
- Ejemplo 7: POLIGONO.
- Lección 6.
- Ejemplo 1: TRES EN RAYA.
- Ejemplo 2: CUADRADO MAGICO.
- Ejemplo 3: MEJOR DESGLOSE DE MONEDA.
- Ejemplo 4: METODO DE ELIMINACION DE GAUSS.
- Ejemplo 5: JUEGO DEL RATON ATRAPADO.
- Ejemplo 6: 32 FUNCIONES DE MANIPULACION DE ARRAYS DE CARACTERES.
- Ejemplo 7: VUELTA DEL CABALLO.
- Ejemplo 8: RELLENO DE UN TABLERO SEGUN UNAS REGLAS DADAS.
- Ejemplo 9: PROBLEMA DE LAS OCHO REINAS.
- Ejemplo 10: PROBLEMA DE LAS OCHO REINAS AMPLIADO.
- Lección 7.
- Ejemplo 1: 21 FUNCIONES DE MANIPULACION DE CADENAS DE CARACTERES.
- Ejemplo 2: ESCRITURA ALFABETICA DE NUMEROS.
- Ejemplo 3: ESCRITURA ALFABETICA DE NUMEROS VERSION 2.
- Lección 8.
- Ejemplo 1: PROGRAMA PARA PROBAR OPERACIONES CON UNA LISTA.
- Ejemplo 2: PROGRAMA PARA PROBAR OPERACIONES CON UN ARBOL.
- Ejemplo 3: PROGRAMA PARA PROBAR OPERACIONES CON UNA TABLA HASH.
- Lección 9.
- Ejemplo 1: COPIAR FICHERO UTILIZANDO FUNCIONES DE E/S DE ALTO NIVEL.
- Ejemplo 2: COPIAR FICHERO UTILIZANDO FUNCIONES DE E/S DE BAJO NIVEL.
- Ejemplo 3: COPIAR FICHERO LINEA A LINEA ESCRIBIENDO NUMEROS DE LINEA.
- Ejemplo 4: COPIAR FICHERO SELECTIVAMENTE.
- Ejemplo 5: COMPARAR DOS FICHEROS.
- Ejemplo 6: COPIAR FICHERO CON SUSTITUCIONES.
- Ejemplo 7: ORDENAR FICHERO.
- Lección 10.
- Ejemplo 1: CONSTANTES DEFINIDAS EN FICHERO LIMITS.H.
- Ejemplo 2: MACROS Y FUNCIONES DECLARADAS EN FICHERO CTYPE.H.
- Ejemplo 3: COMPRESION/DESCOMPRESION DE FICHEROS.
- Ejemplo 4: EJEMPLO SOBRE ALGUNAS FUNCIONES DE PANTALLA DE TURBO C.
- Ejemplo 5: EJEMPLO SOBRE ALGUNAS FUNCIONES GRAFICAS DE TURBO C.
- Ejemplo 6: LISTADOR DE FICHEROS EN HEXADECIMAL Y EN ASCII.
- Lección 11.
- Ejemplo 1: EJEMPLO PARA PROBAR LAS FUNCIONES DE SETJMP.H
- Ejemplo 2: DIR.
- Ejemplo 3: EJEMPLO PARA PROBAR LAS FUNCIONES int86() Y bdos().
- Lección 12.
- Ejemplo 1: ANALISIS Y EVALUACION DE EXPRESIONES.
- Ejemplo 2: LABERINTO.
- Ejemplo 3: CRONOMETRAR EJECUCION DE PROCESO.
- Lenguaje C++.
- Lección 1.
- Ejemplo 1: (sin título)
- Lección 2.
- Ejemplo 1: ORDENACION RAPIDA.
- Lección 3.
- Ejemplo 1: CLASE ent.
- Ejemplo 2: CLASE cola_char.
- Lección 4.
- Ejemplo 1: CLASE conj_int.
- Ejemplo 2: CLASE lista.
- Ejemplo 3: CLASE timer.
- Ejemplo 4: CLASE video.
- Lección 5.
- Ejemplo 1: CLASE pot.
- Ejemplo 2: CLASE vect.
- Ejemplo 3: CLASE intpeq.
- Ejemplo 4: CLASE arbol_binario.
- Ejemplo 5: CLASE asoc.
- Ejemplo 6: CLASE iterador_asociat.
- Ejemplo 7: CLASE fecha.
- Lección 6.
- Ejemplo 1: CLASE vector_ind.
- Lección 7.
- Ejemplo 1: CLASES PARA CONTADORES.
- Lección 8.
- Ejemplo 1: CLASE fraccion.
- Ejemplo 2: PROGRAMA COPIAR.
- Ejemplo 3: CLASE string.
- Ejemplo 4: CONTADOR DE PALABRAS.
-
- - "Lección incorrecta."
-
- Este error ocurre cuando el número de lección dada por el usuario no es
- número (contiene caracteres que no son dígitos) o bien dicho número de lec-
- ción corresponde a una lección inexistente. Para el lenguaje C, los números
- correctos de lección están en el rango de 1 a 12, ambos inclusive; y para el
- lenguaje C++, el rango de números de lección correctos están en el rango de
- 1 a 8, ambos inclusive; dicho de otro modo, el tutor del lenguaje C tiene 12
- lecciones y el tutor del lenguaje C++ tiene 8 lecciones.
-
- - "Lenguaje incorrecto."
-
- Este error sucede cuando el nombre del lenguaje dado por el usuario
- no es correcto. Los nombres de lenguajes correctos son "C" y "C++", que
- se pueden escribir indistintamente en minúsculas o en mayúsculas.
-
- - "No se puede ejecutar el programa P."
-
- Este error acontece cuando el programa EJECUTAR.EXE no puede ejecutar
- el programa P siendo P bien PRTUTC.EXE o bien PRTUTCPP.EXE. Hay fundamen-
- talmente dos motivos por los cuales no se puede ejecutar el programa P: el
- programa P no se encuentra en el directorio de trabajo o no hay suficiente
- memoria para ejecutarlo.
-
- - "Número incorrecto de argumentos."
-
- Este error se produce cuando en la ejecución del programa EJECUTAR.EXE
- no se pasan tres argumentos. La sintaxis correcta de ejecución es: EJECUTAR
- lenguaje lección ejemplo.
-
-
-
- 7.- GLOSARIO DE TERMINOS.
- -------------------------
-
- En este apartado se presenta una lista, ordenada alfabéticamente, con
- las definiciones de algunos términos que aparecen en el manual de usuario.
-
-
- - 8088: microprocesador Intel incorporado en el primer y original IBM PC.
- Permite direccionar 1MB de memoria y trabaja con 16 bits.
-
- - 8086: microprocesador de Intel ligeramente superior al 8088. A grandes
- rasgos, comparte sus mismas características. Los ordenadores que poseen un
- 8088 o un 8086 reciben el nombre de compatibles PC, y si tienen un disco
- duro, compatibles PC XT.
-
- - 80286 (286): microprocesador de Intel incorporado en el IBM PC AT. Permite
- acceder a 16MB de memoria y trabaja con 16 bits.
-
- - 80386 (386): microprocesador de Intel que permite acceder a 4096MB de
- memoria y trabaja con 32 bits.
-
- - ANSI: Amarican Nacional Standard Institute (Instituto Nacional de Están-
- dares americano).
-
- - ANSI C: C estándar.
-
- - ANSI C++: C++ estándar.
-
- - ASCII: American Standard Code for Information Interchange (Código Estándar
- Americano para Intercambio de Información). Código estándar utilizado para
- interpretar los bytes en modo texto -en modo binario se interpretan como
- instrucciones en código máquina-. Cada carácter tiene un código ASCII que
- sirve para identificar unívocamente a dicho carácter.
-
- - AT: Ordenador con un microprocesador 286. Reciben este nombre porque el
- primer ordenador 286 que apareció en el mercado era el IBM PC/AT.
-
- - Atributo de pantalla: número que expresa los colores de texto y fondo con
- los que se han de escribir los caracteres en la pantalla. También indica si
- los caracteres se escriben con parpadeo o sin él.
-
- - BIOS (Basic Input/Output System): conjunto de rutinas básicas que sirven
- para inicializar el ordenador, controlar dispositivos, etc. Las rutinas de
- la BIOS se localizan en dos chips presentes en todos los ordenadores.
-
- - Borland C++: compilador de C++ de la compañía Borland International.
-
- - C de Kernighan y Ritchie: primer lenguaje C creado; fue inventando por
- Kernighay y Ritchie.
-
- - CGA (Color Graphics Adapter): Tarjeta de vídeo en color que permite una
- resolución de 640x200.
-
- - Código de overlay: código de un programa que se mantiene en la memoria de
- masas y que se copia en la memoria principal sólo cuando se necesita.
-
- - Compilador: programa que traduce el código fuente de un programa a código
- máquina.
-
- - Debugger: utilidad, que generalmente forma parte del software del sistema
- de un ordenador, que permite seguir la ejecución de un programa, permitiendo
- conocer en qué estado se encuentra el mismo, así como los valores de las
- variables empleadas en él.
-
- - EGA (Enhaced Graphics Adapter): tarjeta de vídeo de mayor resolución que
- la CGA y menor que la VGA.
-
- - Hardware: los dispositivos electrónicos (por ejemplo, CPU, memoria) que
- proporcionan la capacidad de computación y los dispositivos electromecánicos
- que proporcionan las funciones del mundo exterior.
-
- - HERCULES: tarjeta gráfica monocroma.
-
- - Interrupción: las interrupciones son la forma empleada por la circutería
- exterior del microprocesador para informar que algo (como, por ejemplo, la
- pulsación de una tecla) ha ocurrido y que, por tanto, requiere que se rea-
- lice alguna acción. El sistema BIOS, o el sistema operativo, pueden producir
- interrupciones mediante software para requerir y ejecutar programas especia-
- les de servicio.
-
- - Lenguaje fuente: lenguaje de programación que puede traducir un determi-
- nado compilador o ensamblador.
-
- - Lenguaje objeto: 1) El lenguaje en que un compilador o un ensamblador
- general los módulos que producen. 2) Lenguaje en el que un compilador
- escribe los resultados de las compilaciones.
-
- - LPT1: primer puerto paralelo.
-
- - LPT2: segundo puerto paralelo.
-
- - Memoria convencional: la memoria convencional (conventional memory) es la
- memoria RAM comprendida entre 0K y 640K.
-
- - Memoria expandida: la memoria expandida (expanded memory) es una especi-
- ficación que permite acceder a memoria fuera del rango 0K-1024K mediante
- un marco de página situado dentro de dicho rango en el cual se realiza un
- intercambio de bancos de memoria.
-
- - Memoria extendida: la memoria extendida (extended memory) es la memoria
- RAM propia de los ordenadores 286 o superior cuya dirección se sitúa por
- encima de 1024K.
-
- - Memoria RAM de vídeo: la memoria vídeo o la memoria de pantalla (video
- memory) es la memoria RAM en la cual se escribe la combinación de bytes
- que genera los caracteres que se ven en la pantalla. En todas las tarjetas
- gráficas se incluyen chips de memoria RAM.
-
- - OOP (Object Oriented Programming): programación orientada a objetos.
-
- - Overlay: ver código de overlay.
-
- - Procesador de texto: programa que permite escribir, editar y corregir
- ficheros de texto, generalmente documentos o programas.
-
- - Programación orientada a objetos: metodología de programación que está
- revolucionando la base misma del diseño e implementación del software. Bajo
- el nombre de OOP se agrupan varias técnicas claves entre las que destacan la
- abstracción de datos, la herencia de tipos de datos, el polimorfismo, la
- encapsulación, etc.
-
- - Puerto: los puertos son el modo general de comunicación que emplea el
- microprocesador con el resto de los componentes de la circutería distintos
- de la memoria. La asignación de un puerto es único y característico del
- diseño de un modelo de ordenador particular.
-
- - RAM (Random Access Memory): la memoria RAM o memoria de acceso aleatorio
- es la memoria volátil que se utiliza normalmente para ejecutar programas y
- almacenar datos. Cuando se apaga el ordenador, desaparece todo el contenido
- de esta memoria RAM.
-
- - Ratón: periférico apuntador en forma de ratón y con varios botones que a
- medida que es movido con la mano sobre una superficie plana se va moviendo
- un apuntador en la pantalla del monitor.
-
- - ROM (Read-Only Memory): la memoria ROM o memoria de sólo lectura es memo-
- ria que sólo se puede leer, pero nunca modificar. Contiene rutinas fundamen-
- tales que controlan varios aspectos críticos del sistema. Todas las rutinas
- de la BIOS se almacenan en chips de memoria ROM; por eso se le conoce gene-
- ralmente como ROM BIOS. Sin embargo, también existe otra ROM como la ROM de
- vídeo que incorporan las tarjetas de vídeo VGA o superiores.
-
- - ROM-BIOS: colección de rutinas en lenguaje máquina ubicadas en memoria ROM
- que proporcionan los servicios de soporte para las operaciones del ordenador.
-
- - Fichero fuente: fichero de disco que contiene un programa escrito en un
- cierto lenguaje de programación.
-
- - Sistema de gestión de bases de datos (DBMS): software responsable de
- todos los aspectos de la creación, utilización y mantenimiento de una base
- de datos.
-
- - Sistema operativo: un sistema operativo es un programa que actúa directa-
- mente sobre el hardware, gestionando los recursos de un ordenador de acuerdo
- a ciertos objetivos; los dos objetivos principales de un sistema operativo
- son la utilización eficiente de los recursos disponibles y eliminar las
- dificultades que supone tratar directamente con el hardware.
-
- - Software: los programas de ordenador, estructuras de datos y documentación
- asociada que sirven para realizar el método lógico, procedimiento o control
- requerido.
-
- - Turbo C: compilador de C de la compañía Borland International.
-
- - Turbo C++: compilador de C++ de la compañía Borland International.
-
- - Ventana de pantalla: recuadro que aparece en la pantalla, normalmente con
- texto en su interior.
-
- - VGA (Video Graphics Array): especificación de vídeo de mayor resolución
- que la EGA.
-
- - XT: los ordenadores XT son los ordenadores que poseen un microprocesador
- 8088 u 8086 y un disco duro. Las siglas XT se utilizaban en el nombre del
- primer ordenador con disco duro de IBM, el IBM PC/XT.
-
-
-
- 8.- AUTOR DE LA APLICACION.
- ---------------------------
-
- Esta aplicación es una herramienta interactiva con la cual un usuario
- puede aprender los lenguajes C y C++.
-
- Los datos personales del autor son los siguientes:
-
- ┌──────────────────────────┐
- │ Antonio Lebrón Bocanegra │
- │ C/ El Gastor, 21 │
- │ 11690 Olvera (Cádiz) │
- │ Tlf: (956) 120059 │
- └──────────────────────────┘
-