Microsoft PowerPoint - clase vectores 2008.ppt [S\363lo lectura]

Anuncio
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].
Descargar