#40 EDAI 2018II P3 Practica

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 6

Carátula para entrega de prácticas

Facultad de Ingeniería Laboratorio de docencia

Laboratorios de computación
salas A y B
Profesor: Ing. Jonathan Roberto Torres Castillo

Asignatura: Estructura De Datos Y Algoritmos I

Grupo: 9

No de Práctica(s): 3

Integrante(s): Valderrabano Vega Abraham

Semestre: 2018-II

Fecha de entrega: 22 de febrero de 2018

Observaciones:

CALIFICACIÓN: _________

1
PRACTICA # 3

APLICACIONES DE ARREGLOS
TIPO DE DATO ABSTRACTO
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO

Profesor: Ing. Jonathan Roberto Torres Castillo

Número de lista: #40


Correo Electrónico: [email protected]

1. Reglas de las Prácticas de Laboratorio


 El desarrollo de la práctica deberá ser autentico. Aquellos alumnos que presenten los mismos
cálculos, código fuente, etcétera, se les será anulada inapelablemente la práctica
correspondiente con una calificación de 0.
 El día de entrega establecido deberá ser respetado por todos, la práctica debe ser terminada
parcialmente al finalizar la clase y entregada a los 8 días siguientes.
 No se recibirán informes ni actividades si no asiste a la sesión de laboratorio, por lo cual la
calificación de dicha práctica será de 0.
 Deberá subir el informe en formato PDF al link de DropBox correspondiente a la práctica que
se encuentra en la carpeta del curso. El archivo debe tener como nombre
#Lista_EDAI_2018II_P#Practica.pdf. Ej: (1_EDAI_2018II_P1.pdf). A su vez debe subir los
scripts de las actividades propuestas con el código que ejecuto en cada una de estas, cada script
debe tener como nombre #Lista_EDAI_2018II_CODE#Actividad.c. Ej:
(1_EDAI_2018II_CODE3.c).
 La inasistencia a 3 sesiones de laboratorio en el semestre será causal de reprobación de las
prácticas y del curso.

2. Objetivos
 Utilizarás estructuras en lenguaje C para modelar tipos de dato abstracto e
implementarlos en las estructuras de datos lineales.

3. Introducción
Un tipo de dato abstracto (TDA) es un conjunto de datos u objetos creado de manera
personalizada por un programador para un fin específico. Un TDA es una abstracción que
permite modelar las características de un elemento en particular.
Un tipo de dato abstracto se puede manipular de forma similar a los tipos de datos que
están predefinidos dentro del lenguaje de programación, encapsulando más información,
según se requiera.
La implementación de un tipo de dato abstracto depende directamente del lenguaje de
programación que se utilice. En lenguaje C los tipos de dato abstracto se crean mediante
las estructuras (struct).

2
Licencia GPL de GNU
El software presente en esta guía práctica es libre bajo la licencia GPL de GNU,
es decir, se puede modificar y distribuir mientras se mantenga la licencia GPL.
/*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* Author: Jorge A. Solano
*/

4. Planteamiento del Problema y Desarrollo


A continuación se describen las actividades a realizar para la presente práctica, en cada
apartado debe colocar la descripción, los análisis numéricos y/o los resultados de cada
actividad. El código fuente del programa que permitió solucionar cada actividad debe
colocarse en la sección 5.

4.1. Actividad 1

Modificar el código de tal manera que el programa te pida el número de directores y lo


ejecute

3
EL PROGAMA FUE MODIFICADO DE TAL MANERA QUE EL USUARIO
INDIQUE CUANTOS DIRECTORES QUIERE Y ESTE SE LEAN IGUALANDO A
LA VARIABLE CONSTANTE Y CAMBIANDO SU VALOR CON UN APUNTADOR

5. Código
En esta sección se presenta el código fuente del programa que permitió cumplir los
objetivos propuestos. El programa debe estar comentado en cada una de sus líneas de código
y/o en sus ciclos iterativos.
#include<stdio.h>
#define TAM 2
#define NUM_DIR 10

struct pelicula{
char nombre[20];
char genero[20];
short anio;
short numDirectores;
char directores[NUM_DIR][20];
};
void llenarArreglo(struct pelicula *);
void imprimirArreglo(struct pelicula *);
int main(){
struct pelicula arreglo[TAM];
llenarArreglo (arreglo);//lo mismo que &ARREGLO[0]
imprimirArreglo (arreglo);
return 0;
}
void llenarArreglo(struct pelicula arreglo [TAM]){
int iesimo, enesimo,var;

for (iesimo=0 ; iesimo<TAM ; iesimo++) {


struct pelicula movie;
printf("####### Pelicula %d #######\n", iesimo+1);
printf("Ingrese nombre pelicula:");
setbuf(stdin, NULL);
scanf("%s", movie.nombre);//NO LLEVA & PORQUE UN VEXTOR ES UN
APUNTADOR
getchar();
printf("Ingrese genero pelicula:");
setbuf(stdin, NULL);
scanf("%s", movie.genero);
getchar();

4
printf("Ingrese a%co pelicula:",164);
setbuf(stdin, NULL);
scanf("%d", &movie.anio);//COMO ES VARIABLE ENTERA NO CADEENA DE
CARACTERES SE ULTILIZA EL &
printf("dame el numero de directores de la pelicula");
scanf("%d",&var);
var==NUM_DIR;
movie.numDirectores = NUM_DIR;

for (enesimo=0 ; enesimo<NUM_DIR ; enesimo++){


printf("Ingrese director %d:", enesimo+1);
setbuf(stdin, NULL);
scanf("%s", movie.directores[enesimo]);
getchar();
}
arreglo[iesimo] = movie;
}
}
void imprimirArreglo(struct pelicula arreglo [TAM]){
int iesimo, enesimo;
printf("####### Contenido del arreglo #######\n");
for (iesimo=TAM-1 ; iesimo>=0 ; iesimo--) {
printf("####### Pelicula %d #######\n", iesimo+1);
printf("PELICULA: %s\n", arreglo[iesimo].nombre);
printf("GENERO: %s\n", arreglo[iesimo].genero);
printf("A%cO: %d\n",165, arreglo[iesimo].anio);
printf("DIRECTOR(ES):\n");
for (enesimo=0 ; enesimo<arreglo[iesimo].numDirectores ;
enesimo++){
printf("%s\n", arreglo[iesimo].directores[enesimo]);
}
}

CONCLUSIONES
EN ESTA PRACTICA ME FUE DE UTILIDAD EL MANEJO DE LOS
APUNTADORES YA QUE SE PUEDE CAMBIAR EL VALOR DE UN
APUNTADOR ASIGNANDOLO A OTRO, ADEMAS SIRVIO PARA REPASAR
FUNCIONES Y ASI PODER DARLE UN MEJOR ENTENDIMIENTO A ESTAS,
ES IMPORTANTE SABER DECLARA LAS VARIABLES LOCALES SIN
ALTERAR EL FUNCIONAMIENTO DEL PROGRAMA YA QUE ESTAS SON DE
SUMA IMPORTANCIA EN TODO EL PROGRAMA Y DECLARLAS BIEN TE
PUEDE AYUDAR A FACILITAR EL TRABAJO

5
6. Referencias

[1] GARCÍA CANO, Edgar, SOLANO GÁLVEZ, Jorge, Guía práctica de estudio 03.
Tipo de dato abstracto, Facultad de ingeniería, UNAM.
[2] CORMEN, Thomas, LEISERSON, Charles, et al. Introduction to Algorithms 3rd
edition MA, USA The MIT Press, 2009

También podría gustarte