Sie sind auf Seite 1von 5

PRÁCTICA

ARREGLOS Y ESTRUCTURAS

Objetivos

El alumno conocerá y aplicará el concepto de arreglos y estructuras para la realización de


programas que resuelvan problemas de tipo numérico.

Al final de esta práctica el alumno podrá:

1. Manejar arreglos de varias dimensiones.


2. Manejar estructuras.
3. Realizar correctamente programas que utilicen arreglos y estructuras.

Antecedentes

1. Manejar ciclos de repetición


2. Haber utilizado la sentencia if-else

Introducción

Arreglo

Un arreglo es un conjunto de datos del mismo tipo, que están organizados secuencialmente
en memoria principal, y se hace referencia a dichos datos a través del nombre del arreglo.
Cada uno de los componentes del arreglo es llamado elemento, y cada elemento ocupa una
dirección contigua en memoria.

Cuando se utiliza un arreglo de una dimensión o unidimensional, es fácil visualizar este


concepto, pero cuando son más dimensiones es más complicado entenderlo y manejarlo.

Tomemos como ejemplo un arreglo unidimensional:

int arr1[5];

Con esta declaración indicamos que a la variable arr1 le asigne un espacio en memoria, de
tal forma que se puedan almacenar 5 elementos de tipo int. Por ejemplo, si en un cierto
equipo, el tipo int es de tamaño de 2 bytes, quiere decir que la dirección de cada elemento,
suponiendo que empieza en FF00, sería:

arr1[0] à FF00
arr1[1] à FF02
arr1[2] à FF04
arr1[3] à FF06
arr1[4] à FF08

Con esto se puede observar que las direcciones son contiguas y dejan 2 bytes para
almacenar correctamente a un int.

Elaborada por: Programación Avanzada y Métodos Numéricos


Ing. Laura Sandoval Montaño
Viridiana del Carmen De Luna Bonilla
Virgilio Green Pérez
PDF created with pdfFactory trial version www.pdffactory.com
PRÁCTICA
ARREGLOS Y ESTRUCTURAS

Cabe hacer notar que el arreglo emplea subíndices para hacer referencia a cada elemento de
éste. Así, el primer elemento del arreglo está asociado con el subíndice 0, el segundo con el
1 y así sucesivamente hasta el subíndice n-1 donde n es el número de elementos del arreglo

Ahora si tenemos un arreglo de 2 dimensiones:

int arr2[3][2];

La dirección de cada elemento, suponiendo que empieza en FF0A, sería


:

arr2[0][0] à FF0A
arr2[0][1] à FF0C
arr2[1][0] à FF0E
arr2[1][1] à FF10
arr2[2][0] à FF12
arr2[2][1] à FF14

Se puede observar que las localidades de memoria se asignan por renglones, es decir, se
colocan los 2 elementos del renglón 0 de manera consecutiva, después los 2 elementos del
renglón 1 y así sucesivamente.

Ejemplo utilizando arreglos

Ejemplo 1. Leer los elementos de una matriz cuadrada de orden 4 y desplegarlos en pantalla.

Elaborada por: Programación Avanzada y Métodos Numéricos


Ing. Laura Sandoval Montaño
Viridiana del Carmen De Luna Bonilla
Virgilio Green Pérez
PDF created with pdfFactory trial version www.pdffactory.com
PRÁCTICA
ARREGLOS Y ESTRUCTURAS

/* Ejemplo1: Programa que lee y despliega en pantalla una matriz


de 4 x 4 */

#include<stdio.h>

void main(){
int M[4][4];
int i,j;
/* Ciclo para la lectura por renglón*/
for(i=0;i<4;i++)
for(j=0;j<4;j++){
printf(“Dame el elemento %d,%d: “,i,j);
scanf(“%d”,&M[i][j]);
}
printf(“\n”);
/*Ciclo para la escritura de la matriz en pantalla*/
for(i=0;i<4;i++){
for(j=0;j<4;j++)
printf(“%d\t”,M[i][j]);
printf(“\n”);/*nueva línea para imprimir el siguiente renglón*/
}
}

Estructuras

Una estructura es un conjunto de datos a los que se hace referencia a través de un mismo
nombre. A diferencia de un arreglo, una estructura puede tener elementos de distintos tipos,
por ejemplo de tipo int, float, double, char, etc.

Declaración de una estructura

struct{
tipo1 nom_var11, nom_var12,…;
tipo2 nom_var21, nom_var22,…;
.
.
tipon nom_varn1, nom_varn2,…;
}nombre_variable_estructura ;

Ejemplo utilizando estructuras

/* Ejemplo 2: Programa que lee el nombre y la edad del alumno y


los guarda en una estructura */

Elaborada por: Programación Avanzada y Métodos Numéricos


Ing. Laura Sandoval Montaño
Viridiana del Carmen De Luna Bonilla
Virgilio Green Pérez
PDF created with pdfFactory trial version www.pdffactory.com
PRÁCTICA
ARREGLOS Y ESTRUCTURAS

#include<stdio.h>

void main(){
/*Declaramos la estructura con el nombre alumno*/
struct{
char nombre[50];
int edad;
}alumno;

printf(“\n Introduce el nombre: “);


/*Leemos la cadena introducida, utilizando el %s que es para leer
cadenas en lugar de carácter por carácter con %c*/
scanf(“%s”,alumno.nombre);
printf(“\n Introduce la edad: “);
scanf(“%i”,&alumno.edad);
printf(“\n\nEl nombre tecleado es %s”,alumno.nombre);
printf(“\nLa edad es %i”,alumno.edad);
}

En este ejemplo se observa que para referirse a un dato de la estructura se hace uso del
nombre de éste, anteponiéndole el nombre de la estructura: alumno.nombre y alumno.edad.

Problemas Propuestos

1. Hacer el algoritmo y programa que almacene números en una matriz de 5 x 6.


Imprimir la matriz, así como la suma de todos sus elementos.
2. Hacer el algoritmo y programa que lea una matriz de 5 x 5 y determine la posición
[renglón, columna] del valor máximo en la matriz. En caso que el valor máximo se
repita, determinar todas las posiciones en las que se encuentra.
3. Hacer el algoritmo y programa que lea una matriz de 6 x 4. Calcular la suma de
cada renglón y almacenarla en un vector; la suma de cada columna y almacenarla en
otro vector; e imprimir ambos vectores.
4. Hacer el algoritmo y programa que lea una matriz de 3 x 5. Sumar las columnas e
imprimir la columna que tuvo la máxima suma, así como ese resultado.
5. Hacer el algoritmo y programa que lea una matriz de 5 x 5 y que almacene la
diagonal principal en un vector. Imprimir el vector resultante.
6. Hacer el algoritmo y programa que llene automáticamente una matriz de 20 x 20
con valores de cero, excepto en la diagonal principal, que deberán ser unos.
Imprimir en pantalla.
7. Hacer el algoritmo y programa que almacene en un arreglo de 3 dimensiones, dos
matrices cuadradas de 3 x 3, hacer la suma, y guardar la nueva matriz, dentro del
mismo arreglo. Imprimir las tres matrices.
8. Hacer el algoritmo y programa que lea una matriz de 5 x 5, y que imprima la matriz
transpuesta.
9. Hacer el algoritmo y programa que lea una matriz de 5 x 6 y que imprima cuántos de los
números almacenados son ceros, cuántos son positivos y cuántos son negativos.

Elaborada por: Programación Avanzada y Métodos Numéricos


Ing. Laura Sandoval Montaño
Viridiana del Carmen De Luna Bonilla
Virgilio Green Pérez
PDF created with pdfFactory trial version www.pdffactory.com
PRÁCTICA
ARREGLOS Y ESTRUCTURAS

10. Hacer el algoritmo y programa que realice la multiplicación de dos matrices de 3 x 3 e


imprima el resultado en pantalla.
11. Hacer el algoritmo y programa que pregunte por el orden de dos matrices y determine si se
puede realizar la suma de la primera con la segunda, en caso de ser cierto, que obtenga los
valores de dichas matrices, realice la suma e imprima el resultado en pantalla.
12. Hacer el algoritmo y programa que almacene en una estructura, un número
complejo, y que obtenga su forma polar.
13. Hacer el algoritmo y programa que almacene en un arreglo de estructuras, dos
número complejos, y que obtenga la multiplicación.
14. Hacer el algoritmo y programa que almacene en un arreglo de estructuras, los
puntos extremos de dos rectas, y que determine la longitud de las mismas, y si son
perpendiculares.
15. Hacer el algoritmo y programa que almacene en un arreglo de estructuras, el
nombre y calificación de varios alumnos, que obtenga el promedio de las
calificaciones, y que diga el nombre del alumno con la calificación más alta. Si se
repiten las calificaciones altas, deberá indicar todos los alumnos con esa
calificación.

Elaborada por: Programación Avanzada y Métodos Numéricos


Ing. Laura Sandoval Montaño
Viridiana del Carmen De Luna Bonilla
Virgilio Green Pérez
PDF created with pdfFactory trial version www.pdffactory.com

Das könnte Ihnen auch gefallen