Vous êtes sur la page 1sur 5

PRÁCTICA

ARREGLOS Y ESTRUCTURAS

Objetivos

El alumno conocerá y aplicará los conceptos de arreglo y estructura en 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. Manipular estructuras.
3. Realizar correctamente programas que utilicen arreglos y estructuras.

Antecedentes

1. Manejar sentencias de control de flujo.


2. Entender el concepto de arreglo y estructura en la programación estructurada.

Introducción

Arreglo

Un arreglo es un conjunto de datos del mismo tipo, que están organizados secuencialmente
en memoria principal, y que dichos datos se acceden 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.

Los arreglos pueden ser de una, dos o más dimensiones. La complejidad de su uso aumenta
de acuerdo al número de dimensiones en que se haya definido el arreglo. Así un arreglo de
una dimensión se puede ver como una lista lineal de datos, uno de dos dimensiones como
una tabla, y uno de tres dimensiones como un conjunto de tablas.

Ejemplo un arreglo de una dimensión o unidimensional:


int arr1[5];

En esta declaración se indica 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 tiene un 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
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.

Ejemplo de 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
PRÁCTICA
ARREGLOS Y ESTRUCTURAS

-Explicación de las variables

i: Variable de tipo entero, utilizada como variable de control de ciclos y como índice del
arreglo.
j: Variable de tipo entero, utilizada como variable de control de ciclos y como índice del
arreglo.
M: Arreglo bidimensional de tipo entero.

-Código

/* 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 ;

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
PRÁCTICA
ARREGLOS Y ESTRUCTURAS

Ejemplo de declaración de una estructura

struct {
int i,j;
float x,y;
}var_estructura;

En la sentencia anterior se define una variable de tipo estruct nombrada var_estructura


compuesta de dos elementos de tipo int y dos elementos de tipo float.

Ejemplo utilizando estructuras

Ejemplo 2. Leer el nombre y edad de un alumno y almacenarlo en una estructura.

-Explicación de variables

alumno: Variable de tipo estructura con 2 variables.


nombre: Arreglo unidimensional de tipo carácter.
edad: Variable de tipo entero.

-Código

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


los guarda en una estructura */

#include<stdio.h>

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

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


/*Lee la cadena introducida utilizando el formato %s, y es
almacenada en la variable nombre de la estructura alumno*/
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 elemento de la estructura se hace uso del
operador punto (.), separando el nombre de la variable de tipo estructura y el nombre del
elemento: alumno.nombre y alumno.edad.

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
PRÁCTICA
ARREGLOS Y ESTRUCTURAS

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 de 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.
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úmeros 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; además
indicar 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

Vous aimerez peut-être aussi