You are on page 1of 6

Fundamentos de Programacion

Abril de 2013

Programa de la asignatura
Mdulo 1: Fundamentos
Tema 1: Introduccin a la Informtica. Codificacin. Entorno

Mdulo 2: Elementos Bsicos de Programacin


Tema 2: Estructura de un programa
Tema 3: Datos simples bsicos
Tema 4: Expresiones y operadores
Tema 5: Sentencias de control

Mdulo 3: Elementos Avanzados de Programacin


Tema 6: Funciones
Tema 7: Punteros
Tema 8: Arrays o Vectores y Matrices
Tema 9: Cadenas de caracteres
Tema 10: Estructuras
Tema 11: Archivos o ficheros
Tema 12: Libreras o bibliotecas

Arrays o vectores
1.
2.
3.
4.

Definiciones: arrays y matrices


Esquema de la estructura
Declaraciones
ndice y operador indexacin []

5. Declaracin y asignacin simultnea


6. Tamao de un vector
7. Arrays y funciones
8. Arrays multidimensionales
9. Arrays y punteros
10.Ejercicios con arrays

agarcia@etsii.upm.es

Fundamentos de Programacion

Abril de 2013

Ejercicio propuesto (1)


Indicar la salida por
#include <stdio.h>
pantalla al ejecutarse
int main() {
int a [4];
el siguiente programa:
int i;
a[0] = 164;
a[1] = -213;
a[2] = 49;
a[3] = -749;
printf("El tamao del array es: %d bytes\n", sizeof(a));
printf("El tamao cada elemento es: %d\n", sizeof(a[0]));
for (i=0; i<4; i++) {
printf("a[%d]: %d\n", i, a[i]);
}
return 0;
}

Ejercicio propuesto (2)


Indicar la salida por
pantalla al ejecutarse
el siguiente programa:

#include <stdio.h>
int main() {
double x [] = {1.35, -2.678, 0.0, 4.219};
int i;
printf("Tamao del array: %d bytes\n", sizeof(x));
printf("Tamao de cada elemento: %d\n", sizeof(x[0]));
for (i=0; i < sizeof(x)/sizeof(x[0]) ; i++) {
printf("x[%d]: %f\n", i, x[i]);
}
return 0;
}

agarcia@etsii.upm.es

Fundamentos de Programacion

Abril de 2013

Ejercicio propuesto (3)


Construir un programa que almacene en un
array de enteros los valores de 1 al 10 y en otro
de valores reales las races cuadradas
correspondientes y luego los visualice por
pantalla.
Raiz
Raiz
Raiz
Raiz
Raiz
Raiz
Raiz
Raiz
Raiz
Raiz

cuadrada
cuadrada
cuadrada
cuadrada
cuadrada
cuadrada
cuadrada
cuadrada
cuadrada
cuadrada

de
de
de
de
de
de
de
de
de
de

1 = 1.000000
2 = 1.414214
3 = 1.732051
4 = 2.000000
5 = 2.236068
6 = 2.449490
7 = 2.645751
8 = 2.828427
9 = 3.000000
10 = 3.162278

Ejercicio propuesto (4)


Construir un programa que pida diez
valores numricos reales (double), los
almacene en un array y posteriormente
los visualice por pantalla as como a su
valor mximo

agarcia@etsii.upm.es

Fundamentos de Programacion

Abril de 2013

Solucin al ejercicio propuesto (4)


/* Fundamentos de Programacion AGB Abril de 2013 */
#include <stdio.h>
int main() {
double x[5];
double max;
int i;
for (i=0; i<5; i++) {
printf("Elemento [%d]: ",i);
scanf("%lf", &x[i]);
}
Elemento [0]: 4.51
for (i=0; i<5; i++) {
Elemento [1]: 2.7
printf("x[%d] = %f\n", i, x[i]); Elemento [2]: 8.4
Elemento [3]: -3.9
}
Elemento [4]: 0.2
max=x[0];
x[0] = 4.510000
for (i=1; i<5; i++) {
x[1] = 2.700000
if (x[i]>max) { max=x[i]; }
x[2] = 8.400000
}
x[3] = -3.900000
printf("El maximo es %f", max);
x[4] = 0.200000
return 0;
El maximo es 8.400000
}

Ejercicio propuesto (5)


Construir una funcin que devuelva el
sumatorio de los elementos de un array
de diez valores numricos reales
(double).
Comprobar el funcionamiento con un
array de valores aleatorios.
Nota: se sugiere implementar una segunda
versin de la funcin con un segundo
parmetro que determine el nmero de
elementos del array

agarcia@etsii.upm.es

Fundamentos de Programacion

Abril de 2013

Solucin al ejercicio propuesto (5)


/* Fundamentos de Programacion AGB Abril de 2013 */
#include <stdio.h>
/* Para poder emplear printf */
#include <stdlib.h>
/* Para poder emplear srand y rand */
#include <time.h>
/* Para poder emplear time */
double sumatorio(double a []) {
double aux = 0;
x[0] = 320.750000
int i;
x[1] = 53.360000
for (i=0; i<10; i++) {
x[2] = 13.020000
aux += a[i];
x[3] = 201.870000
}
x[4] = 93.450000
return aux;
x[5] = 172.450000
}
x[6] = 75.070000
int main() {
x[7] = 271.370000
double x[10];
x[8] = 147.680000
int i;
x[9] = 64.440000
srand(time(0));
El sumatorio es 1413.460000
for (i=0; i<10; i++) {
x[i] = rand()/100.0;
printf("x[%d] = %f\n", i, x[i]);
}
printf("El sumatorio es %f", sumatorio(x));
return 0;
}

Solucin al ejercicio propuesto (5B)


/* Fundamentos de Programacion AGB Abril de 2013 */
#include <stdio.h>
/* Para poder emplear printf */
#include <stdlib.h>
/* Para poder emplear srand y rand */
#include <time.h>
/* Para poder emplear time */
double sumatorio(double a [], int n) {
double aux = 0;
int i;
x[0] = 11.580000
for (i=0; i<n; i++) {
x[1] = 48.350000
aux += a[i];
x[2] = 49.750000
}
x[3] = 325.980000
return aux;
x[4] = 250.050000
}
x[5] = 154.760000
int main() {
x[6] = 27.950000
double x[10];
x[7] = 57.720000
int i;
x[8] = 51.920000
srand(time(0));
x[9] = 266.650000
for (i=0; i<10; i++) {
Sumatorio: 1244.710000
x[i] = rand()/100.0;
printf("x[%d] = %f\n", i, x[i]);
}
printf("Sumatorio: %f", sumatorio(x, sizeof(x)/sizeof(x[0])));
return 0;
}

agarcia@etsii.upm.es

Fundamentos de Programacion

Abril de 2013

Ejercicio propuesto (6)


Construir las siguientes funciones que trabajen con un array de
enteros (int v[]):
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.

Impresin de valores por pantalla


Asignacin de valores nulos
Asignacin de valores aleatorios
Asignacin de valores por teclado
Modificacin de los valores asignados a valores absolutos
Clculo del sumatorio
Clculo del producto
Verificacin de si todos los elementos del array son positivos
Verificacin de si todos los elementos son iguales
Verificacin de si los elementos estn en orden creciente
Clculo del valor del elemento mximo
Clculo del ndice del elemento mximo

Construir un programa que verifique el funcionamiento de las


funciones anteriores.

Ejemplo de salida por pantalla


$>gcc vectores.c o vectores ansi pedantic -Wall
$>vectores
*** Asignacion inicial:***
1 3 5 7 9
*** Todos los valores a 0:***
0 0 0 0 0
*** Asignacion aleatoria:***
25990 21695 21288 5281 30535
*** Introduccion por teclado:***
Introduce v[0]: 120
Introduce v[1]: -23
Introduce v[2]: 876
Introduce v[3]: -76
Introduce v[4]: 3
120 -23 876 -76 3
*** En valor absoluto ***
120 23 876 76 3
El sumatorio es 1098
El producto es 551249280
Son todos positivos?: 1
Son todos iguales?: 0
En orden creciente?: 0
El maximo es: 876
Indice del mayor elemento: 2
$>

agarcia@etsii.upm.es

You might also like