VECTORES (array unidireccionales) Declaracion tipo_de_dato nombre_vector [dimensión]; Ejemplo: int mat [ 8 ]; Donde: • Dentro de la función. • Como variable global. mat[0] mat[1] mat[2] mat[3] mat[4] mat[5] mat[6] mat[7] 2 16 -4 29 234 12 0 3 Inicialización int mat[8]={2,16,-4,29,234,12,0,3} 2 16 -4 29 234 12 0 3 0 0 0 0 0 int mat[8] = { 2,16,-4} 2 16 -4 Int mat[ ]={ 2,16,-4,29,234} 2 16 -4 29 234 Cargar un vector carga i=0 i++ Ii<8 mat[i] return void carga( ) { int i, mat [8]; for (i=0;i<8;i++) { printf (“ingrese un número”); scanf(“%d”,& mat [i]); } return; } Recordar ! Si incorporamos más elemento que su rango, se genera un error (Warning) Recordar: Índice entre 0 y N-1 !!! No se puede comparar un vector con otro, ni copiar (asignar) un vector en otro directamente elemento a elemento Ejercicio Cargar un arreglo de 15 elemento en donde se encuentran almacenados números reales. Se pide determinar la suma de todos los números del vector y la cantidad de números > a 120. Usar modularidad Inicio carga calculos Fin # include <stdio.h> # include <conio.h> void carga ( void); void calculos (void); float vec[15]; void main ( ) { carga ( ); calculos ( ); return; } Ejercicio (1) Función carga carga i=0 i++ Ii<15 vec[i] return void carga( ) { int i; for (i=0;i<15;i++) { printf (“ingrese un número”); scanf(“%f”,& vec [i]); } return; } Ejercicio (2) Función calculos calculos i=0 i++ Ii<15 s, c return S = s + vec[i] vec[i] > 120 C++ void calculos( ) { int i; float s,c; for (i=0;i<15;i++) { s = s + vec[i]; if (vec[i]>120) c++; } printf (“ la suma es %f “, s); printf (“ la cant. De mayores a 120 son:%f”,c); getch( ); return; } Ejercicio II Contar las apariciones de ciertos números en una secuencia de enteros acabada en -1: #include <stdio. h> void main () { int num; int c0= 0, c1= 0, c2= 0, c3= 0; scanf("% d", &num); while ( num != -1 ) { if (num == 0) c0++; if (num == 1) c1++; if (num == 2) c2++; if (num == 3) c3++; scanf("% d", &num); } printf(" c0 = %d\ n", c0); printf(" c1 = %d\ n", c1); printf(" c2 = %d\ n", c2); printf(" c3 = %d\ n", c3); getch(); return; } #include <stdio. h> #define MAX 100 void main () { int i, num, cont[ MAX]; for (i= 0; i< MAX; i++) cont[ i]= 0; scanf("% d", &num); while ( num != -1 ) { if (( num >= 0) && (num< MAX)) cont[ num]++; scanf("% d", &num); } for (i= 0; i< MAX; i++) printf(" c% d = %d\ n", i, cont[ i]); getch(); return(); } Paso de un vector a una función… # include <stdio.h> # include <conio.h> float media ( int a, float x [ ]); void main () { float lista [100]; . . med = media ( m, lista); … } float media (int a, float x[ ]) { . . … } REGLAS Solo se podrán declarar como variables globales los vectores. En la función carga solo se realizará la carga del vector y no otra operación sobre el mismo. Usan siempre modularidad. Errores comunes de programación No recordar que los arreglos comienzan con un subíndice en 0. Olvidar inicializar los elementos de un arreglo. Proporcionar más inicializadores en una lista de inicialización que elementos en un arreglo. Finalizar las directivas #define y #include con punto y coma. Hacer referencia a un elemento que se encuentra fuera de los límites del arreglo. Hacer referencia a un elemento de un arreglo con dos subíndices de la forma a[x,y], en lugar de hacerlo de la forma a[x][y].