Practica 1 EDA

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 9

Carátula para entrega de prácticas

Facultad de Ingeniería Laboratorios de docencia

Laboratorio de Computación
Salas A y B

Profesor: Sáenz García Elba Karen

Asignatura: Estructura de Datos Y Algoritmos 1

Grupo: 4

No de Práctica(s): 1

Integrante(s): Dionicio Juárez Agustín Zúñiga De Olarte Juan Angel


Reyes Castillo Christian

Zarco Barosio Cristian

Ávila Sánchez Eduardo Benjamín

No. de Equipo de
cómputo empleado:

Semestre: 2 semestre

Fecha de entrega: 20 de agosto 2018

Observaciones:

CALIFICACIÓN: ________________
Introducción
Un arreglo es un conjunto de datos o una estructura de datos homogéneos que se encuentran ubicados en
forma consecutiva en la memoria RAM (sirve para almacenar datos en forma temporal).
Un arreglo puede definirse como un grupo o una colección finita, homogénea y ordenada de elementos. Los
arreglos pueden ser de los siguientes tipos:

• De una dimensión.
• De dos dimensiones.
• De tres o más dimensiones.

Los arreglos son los equivalentes en programación de las matrices y vectores de las matemáticas.
Precisamente, una gran motivación para usar arreglos es que hay mucha teoría detrás de ellos que puede ser
usada en el diseño de algoritmos para resolver problemas verdaderamente interesantes.

Arreglos unidimensionales
Es un tipo de datos estructurado que está formado de una colección finita y ordenada de datos del mismo tipo.
Es la estructura natural para modelar listas de elementos iguales. Están formados por un conjunto de
elementos de un mismo tipo de datos que se almacenan bajo un mismo nombre, y se diferencian por la
posición que tiene cada elemento dentro del arreglo de datos. Al declarar un arreglo, se debe inicializar sus
elementos antes de utilizarlos. Para declarar un arreglo tiene que indicar su tipo, un nombre único y la
cantidad de elementos que va a contener.

Arreglos multidimensionales
Es un tipo de dato estructurado, que está compuesto por dimensiones. Para hacer referencia a cada
componente del arreglo es necesario utilizar n índices, uno para cada dimensión. El término dimensión
representa el número de índices utilizados para referirse a un elemento particular en el arreglo. Los arreglos
de más de una dimensión se llaman arreglos multidimensionales.
Histograma
Un histograma es un gráfico de barras que muestra la frecuencia con que cada valor se produce en un
conjunto de valores discretos. Los histogramas se encuentran comúnmente como una opción de tabla en el
análisis de datos en el software de hoja de cálculo y software de edición de imágenes para mostrar la
distribución de los tonos (de negro a blanco) en una imagen. En el lenguaje de programación C, se usa una
matriz para contener el cálculo de la frecuencia que simplifica la creación de un histograma del conjunto de
datos. Mientras que los conjuntos de datos utilizados para la creación de histogramas por lo general contienen
valores enteros, caracteres e incluso cadenas, se pueden contar y representar gráficamente.
Objetivos:
1-Verificar que los arreglos estáticos se almacenan de forma contigua en la memoria.
2-Utilizar arreglos unidimensionales y multidimensionales para dar solución a los problemas.
Acrividad1
1.1El siguiente programa declara un arreglo unidimensional y multidimensional de 5 elementos flotantes, un
bidimensional de 2x3 de enteros uno de tres dimensiones de 2x3x4 de tipo char, despues se imprimen para
cada uno de las direcciones asignadas a cada elemento.
#include<stdio.h> main(){

float a[15]; int b[2][3];

char c[2][3][4]; int i,j,k;

for(i=0;i<5;i++){

printf("la direccion de inicio de a[%d] es %X\n", i, &a[i]);

for (i=0;i<2;i++){ for(j=0;j<3;j++){

printf("la direccion de inicio b[%d][%d] es


%X\n",i,j,&b[i][j]);

for(i=0;i<2;i++) for(j=0;j<3;j++) for(k=0;k<4;k++)

printf("la direccion de inicio c[%d][%d][%d]es %X\n",i,j,k,&c[i][j][k]);

/**¿cuantos bytes ocupa una localidad de memoria?

R=una locazion en la memoeria ocupa un byte

¿cuantos bytes ocupa un int, un float y un char? y ¿cuantas localidades se utlizan en cada renglon?

R=un int ocupa dos bytes, float 4 bytes y un char un byte y R=int ocupa una localidad, un float ocupa4
localidadesy char ocupa 1 localidad ¿que se puede observar con respecto a las direcciones asignadas a
cada arreglo?

R=cada direccion asignada es continua


una de la otra **/
1.2 Escriba un programa que dada un matriz de NxM (utilizar un define para asignar los valores N y M) y un
número x, imprima en pantalla cuantas veces aparece x en la matriz.

#include <stdio.h>

#include <stdlib.h>

#define n 10

#define m 11

int main(){

int matriz[n][m];

int i,j,k=0;

int x=0;

for(i=0;i<10;i++){

for(j=0;j<11;j++){

matriz[i][j]=rand()%10;
}

for(x=0;x<10;x++){

k=0;

for(i=0;i<10;i++){

for(j=0;j<11;j++){

if(x==matriz[i][j]){

k++;

printf("[%d]",matriz[i][j]);

printf("\n");

printf("El nC:mero %d se repite %d veces\n",x,k);

return 0;

}
Actividad 2
Escriba un programa en ANSI C que realice el calculo del istograma de una matriz MxN (10x11), es decir,
calcule la frecuencia de ocurrencias de los distintos valores entre 0 y 9. El resultado de las ocurrencias debe
almacenarce en un arreglo unidimensional. Imprimir en pantalla la matriz y el arreglo de resultado de
ocurrencias.
#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include
<ctype.h>
#include
<time.h> int
comp(char
arr[]){

int cont, leng; leng = strlen(arr); if(arr[0]=='-'){

printf("No puede haber imagenes con dimensiones negativas"); return 0;

for(cont=0; cont<=leng; cont++){ if(isalpha(arr[cont])){


printf("\n Ingresaste caracter no numerico \n");

return 0;

else if(cont == leng){

printf("Verificacion correcta \n");


}

return leng;

int main(void){

int c1=0, c2=0, i, j;

char aux=0;

char reng[10], col[11]; int resH, resV;

int img[resH][resV];

printf("\n\t Histograma \n");

do{

printf("\n Ingresa los renglones de la imagen: ");

scanf("%s", reng); if((strlen(reng))>10){

printf("\n No podemos procesar ese tamaNo");

else{

c1=comp(reng);

}while(c1==0); resH = atoi(reng);

do{

printf("Ingresa las columnas de la imagen: ");

scanf("%s", col); if((strlen(col))>11){

printf("\n No podemos procesar ese tamaNo");

else{

c2=comp(col);

}while(c2==0); resV =atoi(col);


srand(time(NULL)); for(i=0; i<resH; i++){
for(j=0; j<resV; j++){

aux=rand()%65; img[i][j]=aux;

aux=0;

if((resH*resV)>=(10*11)){

printf("\n Tu imagen es muy grande para imprimir \n");

else{

for(i=0; i<resH; i++){ for(j=0; j<resV; j++){


printf("%3d", img[i][j]);

printf("\n");

return 0;

}
Conclusiones
Reyes Castillo Christian:
Al realizar la practica me pude dar cuenta que son casi puros arreglos, en la primera parte es realizar arreglos
, en la 2 parte es realizar una matriz y mostrar su resultados, lo demás es realizar un histograma y mostrarlo
de diferentes maneras, la última parte de arreglos bidimensionales y unidimensionales fue una practica para
mi un poco complicada ya que la programación se me complica, pero la practica fue entretenida y aprendí un
poco más de programación en c, aprendí un poco más de arreglos, matrices y a realizar un histograma con
números aleatorios y mostrarlos en un arreglo, una buena practica aunque un poco compleja.
Dionicio Juarez Agustin:
Los arreglos y matrices nos permiten almacenar/manipular conjuntos de datos agrupados de manera
eficiente. A través de los programas realizados en clase-laboratorio pudimos darnos cuenta y observar
cómo funcionan cada uno de ellos, desde rellenarlas para almacenar datos hasta crear nuestros propios
arreglos. En general, son ideales para el registro/manipulación de información
Zúñiga De Olarte Juan Ángel:

Durante esta práctica introductoria se utilizaron muchos elementos vistos en el curso anterior de
Fundamentos de programación, por lo que fue difícil recordar las instrucciones necesarias para poder armar
los códigos de la manera adecuada, sin embargo, con ayuda de las clases posteriores pudimos comprender
mejor la programación de las matrices.

Avila Sánchez Eduardo Benjamín Durante:

La práctica, tuvimos varios inconvenientes en cuanto la comunicación en el equipo, ya que varios tenemos
clases muy diferidas durante la semana y no podíamos ponernos de acuerdo en el día para hacer el trabajo.
En cuanto a los objetivos tuvimos un par de problemas al realizarlos, pero lo pudimos arreglar con tiempo y
ajustar las actividades para que el programa sea correcto con las características pedidas. Finalmente tenemos
problemas al entrar a la página que la profesora solicitó ya que 3 integrantes del equipo intentaron entrar pero
finalmente logramos juntar el trabajo en equipo y poder enviarlo a tiempo, pero con un poco de prisas. En
conclusión, tuvimos varias dificultades en comunicación y organización, pero las actividades y objetivos de la
práctica fueron logrados y hechos con suma delicadeza.

Zarco Barosio Cristian:

En conclusión se puede decir que los arreglos pueden variar dependiendo sus dimensiones. Con respecto a
los archivos no se requieren de un tamaño predeterminado; esto significa que se pueden hacer archivos de
datos más grandes o pequeños, según se necesiten. La elección del método de ordenamiento está
directamente relacionada con la estructura de los registros del archivo y del soporte utilizado. Un programa
puede acceder directamente cualquier registro sin tener que leer los registros previos.

También podría gustarte