Upload
rodrigo-flores
View
919
Download
2
Embed Size (px)
Citation preview
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
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;}
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(); }
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(); }
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(); }
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; }
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(); }
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");
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();}
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;}
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(); }
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.
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