13
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA. LABORATORIO DE COMPUTACIÓN PARA INGENIEROS. PROGRAMACIÓN EN LENGUAJE C 1 FECHA: 10 DE NOVIEMBRE DE 2011 IM PRACTICA: ARREGLOS UNIDIMENSIONALES. Profesor: Ing. Juan Angel Rodríguez Gómez. 1. Resumen Un arreglo es una secuencia de datos del mismo tipo que ocupan un lugar contiguo en la memoria. Las posiciones consecutivas que ocupa el arreglo se denominan elementos del arreglo y se enumeran sucesivamente 0,1,2,3, etc. El tipo de información que se almacena en un arreglo puede ser cualquier de los tipos de dato básicos de C, es decir, char, int, float o doublé. La forma general de declarar un array es la siguiente: tipo_de_dato nombre_del_array[ dimensión]; El tipo_de_dato es uno de los tipos de datos conocidos (int, char, float...) o de los definidos por el usuario con typdef. El nombre_del_array es el nombre que damos al array. Como se ha indicado antes, al declarar un array reservamos en memoria tantas variables del tipo_de_dato como la indicada en dimensión. EQUIPO 1 NOMBRE NÚMERO DE CUENTA. ARISTEO MILLAN JAQUELIN 309041304 CASAS ALQUICIRA PERSEO DANIEL 309125736 FLORES FLORES RODRIGO 412002384 ROSAS RAYA MIGUEL ANGEL 412053348

Arreglos

Embed Size (px)

Citation preview

Page 1: Arreglos

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA.

LABORATORIO DE COMPUTACIÓN PARA INGENIEROS. PROGRAMACIÓN EN LENGUAJE C

1

FECHA: 10 DE NOVIEMBRE DE 2011

IM

PRACTICA: ARREGLOS UNIDIMENSIONALES.

Profesor: Ing. Juan Angel Rodríguez Gómez.

1. Resumen Un arreglo es una secuencia de datos del mismo tipo que ocupan un lugar contiguo en la memoria. Las posiciones consecutivas

que ocupa el arreglo se denominan elementos del arreglo y se enumeran sucesivamente 0,1,2,3, etc. El tipo de información que se almacena en un arreglo puede ser cualquier de los tipos de dato básicos de C, es decir, char, int, float o doublé.

La forma general de declarar un array es la siguiente: tipo_de_dato nombre_del_array[ dimensión];

El tipo_de_dato es uno de los tipos de datos conocidos (int, char, float...) o de los definidos por el usuario con typdef.

El nombre_del_array es el nombre que damos al array.

Como se ha indicado antes, al declarar un array reservamos en memoria tantas variables del tipo_de_dato como la indicada en dimensión.

EQUIPO 1

NOMBRE NÚMERO DE CUENTA. ARISTEO MILLAN JAQUELIN 309041304

CASAS ALQUICIRA PERSEO DANIEL 309125736

FLORES FLORES RODRIGO 412002384

ROSAS RAYA MIGUEL ANGEL 412053348

Page 2: Arreglos

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA.

LABORATORIO DE COMPUTACIÓN PARA INGENIEROS. PROGRAMACIÓN EN LENGUAJE C

2

FECHA: 10 DE NOVIEMBRE DE 2011

IM

2. Desarrollo

2.2 Sean los vectores (8,8,2)d y (10,15,17)e , obtenga 6 20d e y 15 20e d .

#include <stdio.h> #include <conio.h> main() { int d[3]={8,8,2}; int e[3]={10,15,17}; int z=0; int b=0,i; int x[3] ; int y[3]; int v[3]; printf("Sean los vectores d(8,8,2) y e(10,15,17) obtener el valor del producto\npunto de 6d con 20e\n"); for(i=0;i<3;i++) { x[i]=(d[i]*e[i]); y[i]=(120)*(x[i]); v[i]=(60)*(x[i]); b+=v[i]; z+=y[i];} printf("El valor del producto punto de 6d con 20e es: %d\n",z); printf("\nObtener el valor del producto\npunto de 15e con 4d\n"); printf("El valor del producto punto de 15e con 4d es: %d",b); getch(); return 0;}

Page 3: Arreglos

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA.

LABORATORIO DE COMPUTACIÓN PARA INGENIEROS. PROGRAMACIÓN EN LENGUAJE C

3

FECHA: 10 DE NOVIEMBRE DE 2011

IM

2.4 Determinar el cuadrado del módulo del siguiente vector : (9,5,2)k (9,5,2)k

#include<stdio.h> #include<conio.h> #include<math.h> main() { int a[3]={9,5,2}; float v; v=sqrt((a[0]*a[0])+(a[1]*a[1])+(a[2]*a[2])); printf("EL MODULO DEL VECTOR V=(9,5,2) ES |V|= %f", v); getch(); }

Page 4: Arreglos

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA.

LABORATORIO DE COMPUTACIÓN PARA INGENIEROS. PROGRAMACIÓN EN LENGUAJE C

4

FECHA: 10 DE NOVIEMBRE DE 2011

IM

2.6 Realice un programa que lea el arreglo{ 14,7,3,45,78,12,56,90,123,567} y lo imprima de manera vertical.

#include<conio.h> #include<stdio.h> main() { int arreglo[11], i; arreglo[0]=14; arreglo[1]=7; arreglo[2]=3; arreglo[3]=45; arreglo[4]=78; arreglo[5]=12; arreglo[6]=56; arreglo[7]=90; arreglo[8]=123; arreglo[9]=567; for(i=0;i<=9;i++) { printf("%d\n",arreglo[i]); } getch(); }

Page 5: Arreglos

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA.

LABORATORIO DE COMPUTACIÓN PARA INGENIEROS. PROGRAMACIÓN EN LENGUAJE C

5

FECHA: 10 DE NOVIEMBRE DE 2011

IM

2.8 Escribir un programa que lea una lista de números reales, los cuente y acontinuación imprima su varianza.

#include<stdio.h> #include<conio.h> #include<math.h> int main() { int i,n; float suma,lista[100],media,varianza,Z; printf("Dame una lista de numeros. Presiona 0 para terminar la lista \n"); for(i=0;i<100;i++) { printf("Numero %d: ",i+1); scanf("%f",&lista[i]); if(lista[i]==0) break; } n=i; printf("Se leyeron %d numeros \n",n); suma=0; for(i=0;i<n;i++) { suma=suma+lista[i]; } media=suma/n; printf("El promedio de los numeros es %f \n",media); Z=0; for(i=0;i<n;i++) { Z=Z+pow((lista[i]-media),2); } varianza=Z/n; printf("La varianza es igual a: %f",varianza); getch(); }

Page 6: Arreglos

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA.

LABORATORIO DE COMPUTACIÓN PARA INGENIEROS. PROGRAMACIÓN EN LENGUAJE C

6

FECHA: 10 DE NOVIEMBRE DE 2011

IM

2.10 Utilice un vector con 10 elementos y devuelva la suma de los mismos.

#include <stdio.h> #include <conio.h> main() { int d[9]; int i,x=0; printf("Programa que calcula la suma de las componentes de un vector de 10 elementos. \n"); for(i=0;i<=9;i++) { printf("Introduzca la componente %d del vector\n",i); scanf("%d",&d[i]); x+=d[i]; } printf("El resultado de la suma de las componentes es: %d",x); getch(); return 0; }

Page 7: Arreglos

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA.

LABORATORIO DE COMPUTACIÓN PARA INGENIEROS. PROGRAMACIÓN EN LENGUAJE C

7

FECHA: 10 DE NOVIEMBRE DE 2011

IM

2.12 ¿Cuál es la resistencia equivalente en un circuito que tiene 5 resistencias en paralelo con los siguientes valores: 10,3,14,3,8?.

#include<stdio.h> #include<conio.h> main() { int i, a[5]={10,5,14,3,8}; double r,x; for (i=0; i<=4; i++) { r=r+((1)/(a[i])); } x=(1/r); printf("LA RESISTENCIA DE UN CIRCUITO CON RESISTENCIAS EN PARALELO EQUIVALENTES A 10,5,14,3,8 ES R= %f", x); getch(); }

Page 8: Arreglos

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA.

LABORATORIO DE COMPUTACIÓN PARA INGENIEROS. PROGRAMACIÓN EN LENGUAJE C

8

FECHA: 10 DE NOVIEMBRE DE 2011

IM

2.14 Realizar una variante del programa anterior ordenado de menor a mayor. #include<conio.h>

#include<stdio.h>

#include<stdlib.h>

main ()

{

int n,valor[21],auxiliar=0,j,i;

#define P printf

#define S scanf

P("Introduzca los 20 valores");

for(n=0;n<20;n++)

{

S("%d",&valor[n]);

}

for(i=1;i<20;i++)

{

for(j=0;j<(20-i);j++)

{

if(valor[j]<valor[j+1])

{

auxiliar=valor[j];

valor[j]=valor[j+1];

valor[j+1]=auxiliar;

}

}

}

P("los valores en orden descendente son:\n");

for(j=0;j<20;j++)

{

P("%d, ",valor[j]);

}

system("pause");

Page 9: Arreglos

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA.

LABORATORIO DE COMPUTACIÓN PARA INGENIEROS. PROGRAMACIÓN EN LENGUAJE C

9

FECHA: 10 DE NOVIEMBRE DE 2011

IM

}

2.16 Cargar un arreglo de m números enteros indicar cuál es el mayor y donde está. #include<stdio.h> #include<conio.h> #include<iostream> #include<stdlib.h> #include<conio2.h> main() { int vec[100]; int mayor,n=10;//n es el total del vector int i,j=0; int pos[10];//vector para poner las posiciones mayor=vec[0]; //supongo que el primero es el mayor clrscr(); printf("Dame valores\n"); for(i=0;i<n;i++) { printf("Numero %d : ",i); scanf("%d",&vec[i]); } for(i=0;i<n;i++) { if(mayor<=vec[i]) { mayor=vec[i]; //actualizo el nuevo mayor pos[j]=i+1; //pongo i+1 pq empiezo de 0 j++; //incremento j para la sig celda donde esta la nueva pos } } cout<<"El mayor es: "<<mayor; cout<<endl<<"Y se encuentra en las posiciones"<<endl; for(i=0;i<j;i++) { cout<<pos[i]<<" "; } getch();}

Page 10: Arreglos

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA.

LABORATORIO DE COMPUTACIÓN PARA INGENIEROS. PROGRAMACIÓN EN LENGUAJE C

10

FECHA: 10 DE NOVIEMBRE DE 2011

IM

2.18 Cargar un arreglo de n números y calcular la media de los que estén en posiciones impares. #include <stdio.h> #include <conio.h> #include<math.h> main() { int n,i,sumaimpares,impares; float promimpares; sumaimpares=impares=0; { printf("Programa que calcula la suma de las componentes de un vector de 10 elementos. \n"); printf("De cuantos numeros desea cargar su arreglo? \n"); scanf("%d",&n); int d[n]; for(i=0;i<=n;i++) { printf("Introduzca la componente %d del arreglo\n",i); scanf("%d",&d[i]); } for(i=0;i<=n;i+=2) {sumaimpares+=d[i]; promimpares=(sumaimpares/n);} printf("\nEl promedio de los impares es: %f ", promimpares); getch(); return 0;}

Page 11: Arreglos

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA.

LABORATORIO DE COMPUTACIÓN PARA INGENIEROS. PROGRAMACIÓN EN LENGUAJE C

11

FECHA: 10 DE NOVIEMBRE DE 2011

IM

2.22 Dado un vecto con n elementos numéricos enteros ya almacenados, indique cuántos de ellos son múltiplos de 3 #include<conio.h> #include<stdio.h> main() { #define P printf #define S scanf int n; P("Cuantos elementos tiene el vector?\n"); S("%d", &n); int vector[n], i, j, residuo; for(i=1;i<=n;i++) { P("Introduzca elemento\n"); S("%d", &vector[i]); } P("Los elementos del vector son:\n"); for(i=1;i<=n;i++) { P("%d, ", vector[i]); } P("\n\n"); for(j=1;j<=n;j++) { residuo = vector[j] % 3; if(residuo==0) { P("\nEl elemento %d es multiplo de 3", vector[j]); } } getch(); }

Page 12: Arreglos

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA.

LABORATORIO DE COMPUTACIÓN PARA INGENIEROS. PROGRAMACIÓN EN LENGUAJE C

12

FECHA: 10 DE NOVIEMBRE DE 2011

IM

3 Conclusión

Los arreglos son de bastante utilidad para declarar variables del mismo tipo, ahorrándonos una gran cantidad de tiempo al declarar variables, por lo que su uso es muy importante en la programación en C. Los arreglos combinados con los bucles de repetición, se convierten en una eminencia para el programador. Este tipo de arreglos, son muy útiles para resolver problemas de álgebra vectorial, electrónica y probabilidad, por lo que a futuro podremos construir aplicaciones que nos faciliten nuestro paso por aquellas materias a lo largo de la carrera.

4 Cuestiones o Dudas.

Las principales dudas surgieron en el momento de operar arreglos, pues existieron casos en donde se producían errores de

memoria, pues los arreglos al parecer no se operaban comúnmente como las variables. Sin embargo, gracias a las obras

consultas se logró operar a los arreglos de una manera adecuada. Durante la consulta de distintas bibliografías se leyeron citas en

donde se relacionaban arreglos con punteros, por lo que el equipo se preguntó que significaban y cuál era su función.

5 Glosario. Punteros: Es una Variable que representa la posición (en vez del valor) de otro dato, tal como una variable o un elemento de

una formación.Los punteros son usados frecuentemente en C y tienen grana cantidad de aplicaciones, por ejemplo, pueden ser usados para trasvasar información entre una función y sus puntos de llamada.

Page 13: Arreglos

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA.

LABORATORIO DE COMPUTACIÓN PARA INGENIEROS. PROGRAMACIÓN EN LENGUAJE C

13

FECHA: 10 DE NOVIEMBRE DE 2011

IM

6 Bibliografía y mesografía.

Fuentes Vicente. Prácticas de laboratorio de la Asignatura.(Volumen único)(en español). Facultad de Ingeniería UNAM, 2005.

Solorzano P. Fernando. Introducción a la Programación Estructurada y al Lenguaje C(Tomo II)(en español). Facultad de Ingeniería-UNAM, 1995.

Kernighan. Brian. El lenguaje de Programación C.(Tomo I). Prentice-Hall. 1986.

Gottfried S. Byron. Programación en C. (Segunda edición)(en español). McGraw-Hill, 1999.

Curso de Lenguaje C (5 screen). Disponible en URL http://www.elrincondelc.com/nuevorincon/index.php Consultado: Noviembre 15, 2011