Sei sulla pagina 1di 10

UNA Puno

Ingeniería de Sistemas
SIS206-Algoritmos y Estructuras de Datos Grupo C [2019-II]

Laboratorio 01: Programación de Estructuras de Datos - Tipos con Struct


1. Dinámica: Elija un compañero de trabajo, y resuelvan los ejercicios propuestos en este
laboratorio.
2. Herramientas: El equipo usará el lenguaje de programación de su preferencia para
resolver los ejercicios propuestos en este laboratorio.

Problema 01:
1. Diseñe y construya un TDA que represente a un número racional.
2. Use el TDA Racional para resolver lo siguiente:
a. Sumar dos racionales y mostrar el resultado en pantalla.
b. Multiplicar dos racionales y mostrar el resultado en pantalla.
c. Verificar si dos racionales son iguales y mostrar el resultado en pantalla.
d. Sumar 5 números racionales y mostrar el resultado en pantalla.
3. Pautas para resolver el problema:
- Use el ejemplo mostrado en el subtítulo 2.2.3 Ejemplo de un TAD del texto
Estructuras de Datos de Latinm.
- Un racional representa lo siguiente:

- Por lo tanto, deben crear un Tipo de Dato que represente a un Racional


compuesto por 2 números (un numerador y un denominador), el denominador no
puede ser igual a 0. Las operaciones que debe soportar el Tipo de Dato son de
creación, suma, multiplicación, comparación e impresión en pantalla.
- Asegúrese de tener apartado la definición del tipo de datos en un archivo, así
como el uso del Tipo de dato en otro archivo. Por ejemplo, si está usando C++,
la definición e implementación del Tipo de dato se encuentra en dos archivos (.h
y .cpp) y el uso del tipo de dato se encuentra en un archivo cpp.

Ing. Mayenka Fernández Chambi


UNA Puno
Ingeniería de Sistemas
SIS206-Algoritmos y Estructuras de Datos Grupo C [2019-II]

Problema 02:
1. Diseñe y construya un TDA que represente a una Fecha compuesta de un día,
mes y año. No existe un mes menor que 0 ni mayor que 12, ní días menor a 0 y
mayor a 31.
2. Use el TDA Fecha para resolver lo siguiente:
a. Imprimir una Fecha de forma AAAAMMDD. Por ejemplo:
i. 20190913, para hoy 13-09-2019
ii. 20190901, para 01-09-2019

b. Imprimir una Fecha de forma DD-MM-AAAA. Por ejemplo:


i. 13-09-2019
ii. 01-09-2019
c. Imprimir una Fecha de forma DD/MM/AA. Por ejemplo:
i. 13/09/19
ii. 01/09/19
d. Imprimir una Fecha de forma “DD de (nombre MM) de AAAA”. Por
ejemplo:
i. 13 de setiembre de 2019
ii. 01 de agosto de 2019
e. Determinar si una fecha es anterior o posterior a otra fecha. Por ejemplo:
i. 12-09-2019 es anterior a 13-09-2019
ii. 31-08-2019 es anterior a 01-09-2019
iii. 01-12-2019 es posterior a 01-11-2019
f. Sumar un día a una fecha, y mostrar la nueva fecha resultante. Por
ejemplo:
i. Si la fecha es 13-09-2019, entonces + 1 día será 14-09-2019
ii. Si la fecha es 30-09-2019, entonces + 1 día será 01-10-2019
iii. Si la fecha es 30-08-2019, entonces + 1 día será 31-08-2019
iv. Si la fecha es 28-02-2019, entonces + 1 día será 01-02-2019
v. Si la fecha es 28-02-2016, entonces + 1 día será 29-02-2019 (año
bisiesto)
g. Restar dos fechas, y mostrar en pantalla el número de días resultantes.Por
ejemplo:
i. 01-09-2019 y 13-09-2019, es igual a 11
ii. 31-08-2019 y 13-09-2019, es igual a 12
iii. 30-08-2019 y 13-09-2019, es igual a 13
3. Pautas para resolver el problema:
a. Los datos del TDA deben ser enteros, hay que verificar que se encuentren
dentro de los intervalos permitidos.
b. La operaciones que el TDA debe realizar son de creación, imprimir el valor
de sus miembros de distintas formas, comparación, calcular la fecha
siguiente y restar dos fechas.

Ing. Mayenka Fernández Chambi


UNA Puno
Ingeniería de Sistemas
SIS206-Algoritmos y Estructuras de Datos Grupo C [2019-II]

c. Antes de programar, determine los datos y cómo se comportará cada


operación, por ejemplo:

abstract typedef <integer,integer,integer> FECHA;


Condición FECHA[0] está entre 1 y 31, FECHA[1] está entre 1 y 12

/*definición de operador*/
abstract FECHA crearFecha(d,m,a)
int d, m, a
precondición d>=1 y d<=31; m>=1 y m<=12
poscondición crearFecha[0]=d; crearFecha[1]=m;crearFecha[2]=a;

/*imprimirAMD*/
abstract imprimirFechaAMD(Fecha f)
poscondición f[2]+f[1]+f[0]

...

Código en C++ que concreta el TDA Fecha:

Fecha.h : Definición

Fecha.cpp: Implementación

Ing. Mayenka Fernández Chambi


UNA Puno
Ingeniería de Sistemas
SIS206-Algoritmos y Estructuras de Datos Grupo C [2019-II]

Main.cpp: usando el TDA Fecha

Salida esperada:

Ing. Mayenka Fernández Chambi


UNA Puno
Ingeniería de Sistemas
SIS206-Algoritmos y Estructuras de Datos Grupo C [2019-II]

Resolución:
Declaración en .H

Parte B: Implementación

Probar funcionamiento: en main.

Parte C: Implementación

Probar funcionamiento: en main

Ing. Mayenka Fernández Chambi


UNA Puno
Ingeniería de Sistemas
SIS206-Algoritmos y Estructuras de Datos Grupo C [2019-II]

Parte D: Implementación

Probar funcionamiento: en main:

Parte E: Implementación

Probar funcionamiento: en main.

Ing. Mayenka Fernández Chambi


UNA Puno
Ingeniería de Sistemas
SIS206-Algoritmos y Estructuras de Datos Grupo C [2019-II]

Parte F: Implementación **No considera el año Bisiesto

Probar funcionamiento: en main.

Ing. Mayenka Fernández Chambi


UNA Puno
Ingeniería de Sistemas
SIS206-Algoritmos y Estructuras de Datos Grupo C [2019-II]

Parte G: Implementación **No considera el año Bisiesto

Ing. Mayenka Fernández Chambi


UNA Puno
Ingeniería de Sistemas
SIS206-Algoritmos y Estructuras de Datos Grupo C [2019-II]

Probar funcionamiento: en main.

Ing. Mayenka Fernández Chambi


UNA Puno
Ingeniería de Sistemas
SIS206-Algoritmos y Estructuras de Datos Grupo C [2019-II]

Ing. Mayenka Fernández Chambi

Potrebbero piacerti anche