]> git.llucax.com Git - z.facultad/75.42/calculadora.git/commitdiff
Se agrega la documentación con la consigna del TP.
authorLeandro Lucarella <llucax@gmail.com>
Sat, 30 Aug 2003 23:05:03 +0000 (23:05 +0000)
committerLeandro Lucarella <llucax@gmail.com>
Sat, 30 Aug 2003 23:05:03 +0000 (23:05 +0000)
documentacion.h [new file with mode: 0644]

diff --git a/documentacion.h b/documentacion.h
new file mode 100644 (file)
index 0000000..353654a
--- /dev/null
@@ -0,0 +1,153 @@
+/* vim: set et sts=4 sw=4 fdm=indent fdl=1 fdn=1 fo+=t tw=80:
+ *
+ * Taller de Programación (75.42).
+ *
+ * Ejercicio Número 2:
+ * Programa calculadora.
+ *
+ * Copyleft 2003 - Leandro Lucarella <llucare@fi.uba.ar>
+ * Puede copiar, modificar y distribuir este programa bajo los términos de
+ * la licencia GPL (http://www.gnu.org/).
+ *
+ * Creado: sáb ago 30 18:56:28 ART 2003
+ *
+ * $Id$
+ */
+
+/** \mainpage Trabajo Práctico II
+
+\htmlonly
+    También puede ver <a href="../latex/refman.pdf">este documento en formato
+    PDF</a>.
+\endhtmlonly
+
+\latexonly
+    También puede ver este documento en formato HTML en html/index.html.
+\endlatexonly
+
+\section consigna Consigna.
+    \subsection temas Temas a practicar.
+        - Estructura de un programa.
+        - Directivas y Macros.
+        - Códigos de error.
+        - Punteros.
+        - Estructuras de datos (Lista).
+        - Declaraciones / definiciones.
+        - Estructuras (struct) y tipos de datos del usuario (typedef).
+        - Memoria dinámica.
+        - Archivos.
+
+    \subsection introduccion Introducción.
+        El trabajo práctico consiste en desarrollar un programa capaz
+        de evaluar ecuaciones aritméticas, y se compone de dos partes,
+        un manejador de memoria y un módulo matemático.
+
+    \subsection parte1 Parte 1 - Memlist.
+        Desarrollar las funciones malloc2() y free2(), y las
+        correspondientes macros para que al llamar a malloc() y free()
+        se llamen estas funciones.  Las nuevas funciones deben almacenar
+        información de la memoria alocada.  Esta información debe incluir:
+        Puntero, cantidad de bytes alocados, hora, nombre y linea del
+        archivo donde se realizó el malloc.
+
+        Desarrollar una función MemList (), que liste los bloques de memoria
+        alocada.
+        
+        Por ejemplo: 
+        \verbatim
+Dirección Bytes Archivo Linea Fecha Hora
+0x48252342 300 ejemplo.c 200  20/08 10:30:30
+0x48252342 400 ejemplo.c 1110 20/08 10:30:40
+        \endverbatim
+
+        \note
+            -# Los bloques liberados no deben ser listados.
+            -# Limitar el nombre del archivo a 20 caracteres.
+
+    \subsection parte2 Parte 2 - Calculadora.
+
+        Desarrolle un programa capaz de evaluar ecuaciones
+        aritméticas. Para ello deberá cargar en memoria dos archivos,
+        uno de los cuales contiene una lista de variables y otro una
+        lista de ecuaciones. Los nombres de estos archivos deben tomarse
+        por linea de comandos.
+
+        Por ejemplo:
+        \verbatim
+matem.exe var.txt eq.txt
+        \endverbatim
+
+        Las variables deberán cargarse en una lista de estructuras en
+        memoria, y las ecuaciones en una lista de strings. Una vez hecho
+        esto, el programa deberá mostrar el siguiente menú:
+
+        \verbatim
+1 - Listar variables
+2 - Listar ecuaciones
+3 - Evaluar ecuaciones
+4 - Listar bloques de memoria alocados
+5 - Salir
+        \endverbatim
+
+        - La opcion 1 debe listar las variables definidas e indicar
+          un alerta si alguna de ellas esta fuera del rango definido
+          (mínimo y máximo).
+        - La opcion 2 debe listar las ecuaciones.
+        - La opcion 3 debe evaluar las ecuaciones definidas y recalcular
+          los valores de las variables.
+        - La opcion 4 debe listar los bloques de memoria alocados
+          llamando a MemList.
+        - La opcion 5 debe terminar
+          el programa.
+
+        En caso de producirse un error, se debe mostrar en memoria una
+        descripción del mismo, pero no debe interrumpirse la ejecución
+        del programa.
+        
+        Por ejemplo:
+        \verbatim
+a = 20 * 10 + (2 / b) *  (pi + c)
+        \endverbatim
+
+        \subsubsection archivo_variables Archivo de variables.
+
+            Archivo en formato texto, donde se almacenan variables,
+            con el siguiente formato:
+            \verbatim
+[NOMBRE][espacios][VALOR][espacios][MINIMO][espacios][MAXIMO][salto de linea]
+            \endverbatim
+
+            Donde:
+                - \b \c NOMBRE:   Es un string con el nombre de una variable.
+                - \b \c VALOR:    Es el valor de la variable.
+                - \b \c MINIMO:   Valor mínimo que puede tomar la variable.
+                - \b \c MAXIMO:   Valor máximo que puede tomar la variable.
+                - \b \c espacios: Caracteres \c ' ' o \c '\\t'.
+
+            Los valores mínimo y máximo son opcionales. Si no están,
+            la variable es una constante y no puede ser modificada.
+
+            Por ejemplo:
+            \verbatim
+a 20.0 10.0 30.0
+pi 3.14
+b 23.0 123 800
+temperatura 25 -30 70
+            \endverbatim
+
+        \subsubsection archivo_ecuaciones Archivo de ecuaciones.
+
+            Es un archivo de texto con el formato <em>variable =
+            ecuación</em>, donde ecuación es una ecuación con sintaxis C,
+            que puede contener los operadores: <tt>+</tt>, <tt>-</tt>,
+            <tt>*</tt>, <tt>/</tt>, <tt>(</tt>, <tt>)</tt>.
+            
+            Por ejemplo:
+            \verbatim
+a = 10 * (b + a) * (b + 2*pi)
+b = b * 2
+            \endverbatim
+
+            Puede suponerse que estas ecuaciones son válidas.
+
+*/