Está en la página 1de 3

Academia de Tecnologías de Información y Telemática

Centro de Nuevas Tecnologias


LABORATORIO DE PROGRAMACIÓN APLICADA
CARRERA CICLO ASIGNATURA TEMA APLICADO
ITI / ITEM Otoño 2023 Programación 2 Arreglos bidimensionales dinámicos
No. PRÁCTICA PARCIAL VALOR EN PARCIAL SESIONES DE DESARROLLO
7 Segundo parcial 20% 1 sesión
1 OBJETIVO
El alumno aplicará sus conocimientos en el uso de memoria dinámica para desarrollar diferentes tipos de aplicaciones
que den solución a problemas dentro de un contexto real.
2 FUNDAMENTO TEÓRICO
ARREGLOS BIDIMENSIONALES DINÁMICOS

Un arreglo bidimensional dinámico es esencialmente un arreglo de punteros, donde cada puntero apunta a un arreglo
unidimensional. Un arreglo bidimensional dinámico en C se compone de dos partes principales:

• Un arreglo de punteros: En el nivel superior, tienes un arreglo de punteros. Cada elemento de este arreglo de
punteros es un puntero a un arreglo unidimensional.

• Arreglos unidimensionales: Cada puntero en el arreglo de punteros apunta a un arreglo unidimensional. Estos
arreglos unidimensionales representan las filas de la matriz bidimensional.

Para crear un arreglo bidimensional dinámico, primero asignas memoria para el arreglo de punteros y luego para cada
arreglo unidimensional (fila) dentro del arreglo de punteros.

Ejemplo de asignación de memoria:

// Reserva memoria para el arreglo de punteros (filas)


int **matriz = (int **)malloc(filas * sizeof(int *));
if (matriz == NULL) {
("Error de asignación de memoria para filas.\n");
return 1;
}

// Reserva memoria para cada fila (arreglo unidimensional)


for (int i = 0; i < filas; i++) {
matriz[i] = (int *)malloc(columnas * sizeof(int));
if (matriz[i] == NULL) {
printf("Error de asignación de memoria para la fila %d.\n", i);
return 1;
}
}

Asegúrate de incluir la gestión adecuada de errores al asignar memoria dinámica y liberarla después de su uso para
evitar pérdidas de memoria y errores de escritura o ejecución de archivo.

3 HERRAMIENTAS 4 RÚBRICA
- Lenguaje C/C++ - Se evaluará acorde al documento de rúbrica
- Plataforma de evaluación especificado en blackboard
- Conocimientos previos del tema
5 PLANTEAMIENTO Y DESARROLLO DE PRÁCTICA
Planteamiento:
Se realizará un programa que permita a estudiantes y profesores la reservación de laboratorios de programación en una
universidad. El programa debe de dar solución a diversas situaciones acorde a los siguientes requisitos.

Requisitos:

1. Ver Disponibilidad de Laboratorios: Los usuarios pueden ver la disponibilidad de los laboratorios en un horario
conformado por 5 días y una hora entre 2 y 4. El programa mostrará una lista de laboratorios disponibles en ese
momento.

2. Reservar Laboratorios: Los usuarios pueden reservar laboratorios especificando el día y la hora de la reserva, de
ese modo se le asignará un laboratorio. El programa debe verificar si el laboratorio está disponible en ese
momento y, si es así, realizar la reserva, sino se le indicará al usuario que no es posible realizar la asignación.

3. Ver Reservas Actuales: Los usuarios pueden ver sus reservas actuales, mostrando en el horario los laboratorios
que tiene reservados.

4. Cancelar Reservas: Los usuarios pueden cancelar sus reservas existentes.

5. Salir: Los usuarios pueden salir del programa.

6. Utiliza un arreglo bidimensional dinámico para representar el horario de laboratorios, donde cada fila representa
los días y cada columna las horas. Cada casilla almacenará el nombre del laboratorio y su disponibilidad. Puedes
usar una estructura de datos simple para mantener las reservas del usuario.

struct Reserva {
char aula[50];
int disponibilidad;
};

7. La información de los laboratorios que el programa asigne al horario, será generada de manera aleatoria al
momento de ejecutar el programa, del mismo modo su disponibilidad será “0” (no ha sido reservado).
8. Las entradas de información deben validarse de acuerdo a la información solicitada.
9. El programa deberá estar construido con funciones.

Lo siguiente es un ejemplo de operación del programa en cada una de sus opciones:

1. Ver disponibilidad de laboratorios


2. Reservar laboratorios

3. Ver reservas actuales

4. Cancelar reserva

6 REQUISITOS DE ENTREGA
✓ Subir a blackboard únicamente el archivo .cpp o carpeta de proyecto según sea el caso.
✓ El archivo deberá estar en blackboard como máximo 10 minutos antes de concluir la sesión de laboratorio
✓ Sin excepción alguna, la liga no se reactivará una vez que se haya cerrado.
✓ Sin excepción alguna, el archivo de práctica deberá estar en la liga de blackboard para que pueda obtener una
evaluación.
✓ No se aceptarán entregas fuera del horario establecido ni por otros medios.

7 RESPONSABLES

I.I. Luis Fernando Turrubiartes Gómez I.C. Atzel Yazmin Rivas Ortega MTI. Liliana Gámez Zavala Dr. Francisco Cruz Ordaz
Email: luis.turrubiartes@upslp.edu.mx Email: atzel.rivas@upslp.edu.mx Salazar
Profesor LAPLA Profesor LAPLA Micro academia de Programación Coordinador Académico

También podría gustarte