martes, 14 de agosto de 2012

TERCERO ADMINISTRACION DE SISTEMAS ---- DESARROLLO DE FUNCIONES

TALLER: TERCERO SISTEMAS
FECHA DE ENTREGA MARTES, 21 DE AGOSTO DEL 2012

EJERCICIOS PARA ENTRETENERSE


Nivel 1

1. (*)Crear un formulario como el que se muestra a continuación que, mediante controles Radio

Button, permita cambiar los colores del banderín.

2. Crear un formulario con 5 botones de comando (con las leyendas rojo, azul, amarillo, blanco y
Salir), un mensaje que diga: “Elija un color para el fondo del formulario”. Cuando el usuario seleccione alguno de los
botones, el fondo del formulario deberá cambiar al color indicado en el mismo.

3. Crear un formulario con un texto que diga: “Aprendiendo a programar .NET”. Cuatro botones de opción permitirán cambiar el color del texto (rojo, azul, verde y amarillo). Además agregue un botón para salir.


Nivel 2

1.- (*) Ingresar dos valores, calcular y mostrar el resultado de sumarlos.

2.- Ingresar tres valores, calcular y mostrar el resultado de sumarlos y promediarlos.

3.- Ingresar dos valores, calcular y mostrar el resultado obtenido de sumarlos, restarlos, multiplicarlos y dividirlos.

Nota: Tener en cuenta para la división, que el divisor debe ser distinto de cero.

4.- Ingresar el precio unitario de un producto y la cantidad vendida del mismo. Calcular el
importe vendido y la comisión del vendedor (15%). Mostrar los resultados.

6.- Leer un número y mostrar por pantalla si es positivo o negativo.
Nota: positivo >= 0, negativo < 0.

7.- Un alumno tiene una nota de concepto, otra por evaluación escrita y una tercera de
evaluación oral. Ingresar las tres notas y calcular su promedio. Además, se deberá indicar : PROMOCIONADO cuando el promedio sea >= 7, APROBADO si el promedio está comprendido entre >= 4 y <7 4.="4." br="br" cuando="cuando" desaprobado="desaprobado" el="el" es="es" nbsp="nbsp" o="o" promedio="promedio">
8.- Leer tres números. Corresponderán a los lados de un triángulo. Determinar que tipo de triángulo es.
NOTA: No es triángulo cuando la suma de dos de sus lados es inferior al tercero.
EQUILATERO: los tres lados iguales.
ISOSCELES: solo dos de sus lados iguales.
ESCALENO: los tres lados distintos.

9.- Los empleados de un comercio cobran su sueldo de acuerdo a la categoría que poseen
(A o B). Ingresar el nombre del empleado, los años de trabajo en la compañía y su categoría. Calcular el sueldo
sabiendo que la categoría A cobra $650 y la B $450. Por cada año de antigüedad tienen un plus de $30. Mostrar el
resultado.

10.- Ingresar dos datos por teclado: el precio de un pasaje y la categoría del pasajero, a saber: M = Menor, 
A = Adulto, J= Jubilado. Si el pasajero es un menor, se deberá hacer un 25% de descuento, si es un
jubilado un 50% de descuento. Mostrar el precio resultante.
--------------------------------------------------------------------------------------------------
12.- Ingresar un número entero positivo, distinto de cero e inferior a 2500. Calcular la sumatoria de todos sus antecesores, partiendo desde el cero.
Ejemplo: 6 deberá devolver 21, resultante de 6+5+4+3+2+1

13.- Ingresar un número distinto de cero. Calcular su factorial.
Nota: factorial de 5 = 5 x 4 x 3 x 2 x 1 = 120.

14.- Ingresar dos números “a” y “b”. Controlar que “b” sea mayor o igual que “a”. Calcular la suma de todos 
aquellos que se encuentren comprendidos entre esos topes.
Ejemplo: 4 y 9, deberá devolver 39, resultante de 4+5+6+7+8+9

--------------------------------------------------------------------------------------------------
15.- Ingresar las notas de 10 alumnos pertenecientes a un curso e indicar:
Cantidad de alumnos que aprobaron con una nota comprendida entre 4 y 6.
Cantidad de alumnos aplazados (nota menor a 4).
Cantidad de alumnos promocionados (nota superior o igual o 6).

16.- Ingresar 10 números. Contar cuantos inferiores al número 100 se ingresaron. Mostrar el resultado.

17.- Ingresar números hasta que uno sea cero. Calcular el promedio de ellos y mostrar el
resultado y cuántos se ingresaron.

18.- Ingresar por pantalla el importe de cada una de las facturas de venta realizadas por un
comercio en el transcurso de un día. Para finalizar el ingreso se tomará el importe 0. Calcular el total facturado. Contar cuantas facturas se emitieron.

19.- Ingresar una serie de valores que representan los precios de los artículos de un
comercio. Se dará por finalizada la lectura con el valor de precio 0 (cero). Contar cuantos artículos tienen un precio
inferior a 500$, cuantos están en el rango 500$ y 1500$ inclusive y cuántos por encima de esa cifra.

Nivel 3

20.- Una casa de artículos para el hogar ofrece a los clientes los siguientes planes de pago:
PLAN 1: Contado, se hace el 10% de descuento sobre el precio de lista.
PLAN 2: Tres cuotas, 50% al contado y el resto en dos cuotas iguales. El precio de lista se incrementa en un 10%.
PLAN 3: Cuatro cuotas, 25% al contado y el resto en tres cuotas iguales. El precio de lista se incrementa en un 15%.
PLAN 4: Totalmente financiado en 8 cuotas. El 60% se reparte en partes iguales en las cuatro primeras cuotas, el resto de la misma forma en las últimas cuatro. El precio de lista se incrementa en un 25%.
Crear un formulario que permita:
a) Ingresar el código del artículo, su nombre, el precio de lista y el número de plan elegido.
b) Calcular el importe final y, de no ser contado el valor de cada una de las cuotas.

21.- Un comercio tiene sus ventas identificadas por un código, a saber:
Código 1 corresponde al sector ferretería,
Código 2 corresponde al sector pinturería,
Código 3 corresponde a ventas varias.
Ingresar el código de identificación (1, 2 o 3) y el importe vendido para ese rubro.
El proceso finalizará cuando se ingrese un código 0 (cero). Se solicita conocer la cantidad de ventas ingresadas, el
total vendido para cada código y la suma total de los importes.

23.- En el club “Futbolito” se ha organizado un torneo interno de fútbol en la categoría
menores. Participarán catorce (16) equipos, cada uno de ellos participará en cuatro (4) encuentros. Se necesita generar un programa que, al finalizar el torneo, permita ingresar: nombre del equipo, cantidad de partidos ganados,
empatados, perdidos, total de goles realizados a favor, goles no atajados a los contrincantes y/o en contra.
A partir de los datos ingresados, se deberá obtener para cada equipo el puntaje obtenido en el campeonato, teniendo
en cuenta que la asociación otorga:

Condición Puntos
Partido Ganado 2
Partido Empatado 1
Partido Perdido -1

Al finalizar el proceso, se debe indicar:
a) El puntaje más alto,
b) El puntaje más bajo,
c) Cantidad de equipos cuya cantidad total de goles realizados a favor fue nula.
d) Cantidad de equipos cuya cantidad total de goles no atajados a los contrincantes y/o en contra fue superior a cinco

(5).

24.- En la competencia denominada “Tiro al blanco” se inscribieron 5 jugadores. Cada uno
de ellos tendrá la posibilidad de disparar cuatro (4) veces. Se necesita generar un programa que permita al finalizar el campeonato ingresar: apellido y nombre del participante, edad, sexo y para cada uno de los cuatro disparos, la
distancia en milímetros desde el centro al punto de impacto. Sabiendo que se otorgan los siguientes puntajes:

Distancia Puntos
0 a 5 mm 20
6 a 10 mm 15
11 a 15 mm 10
16 a 20 mm 5
Más de 20mm Sin puntaje

Para cada jugador indicar el puntaje total obtenido. Finalizado el proceso se deberá dar a conocer el o los nombres de los jugadores (en caso de estar empatados) que hayan resultado ganadores y quien o quienes compartan el último
lugar.

25.- La compañía “Estadísticas” ha realizado un relevamiento en el interior del país y es necesario generar un programa para el procesamiento de dichos datos.
Se deberán ingresar:
- código de ciudad (1: Sta. Fé, 2: Valle Fértil, 3: Barreal),
- calificación de la vivienda (1: extrema pobreza, 2: humilde, 3: normal, 4: acomodada, 5: lujosa),
- cantidad de adultos,
- cantidad de niños menores a 1 año de edad,
- cantidad niños entre 1 y 6 años,
- cantidad de niños entre 6 y 12 años.
Aquellas registraciones que reúnan las características que se mencionan a continuación se las calificará como en

“Situación Riesgosa de Pobreza”, a saber: vivienda tipo 1, cantidad total de niños mayor o igual a siete (7).
El ingreso finalizará cuando se indique código de ciudad cero (0), cuando se deberá indicar:
- Cantidad de familias relevadas en cada ciudad.
- Cantidad de familias en situación riesgosa de pobreza en cada ciudad y el porcentaje que representan
respecto del total de la cuidad a donde pertenecen.

26.- Una compañía aérea posee las siguientes categorías de pasajes: P=PRIMERA,

T=TURISTA y A=AZUL. Por un viaje a Europa o Estados Unidos (lugares con los que opera únicamente), posee los siguientes precios base: U$S 1500, U$S 900 y U$S 650 en cada una de las categorías respectivamente. Esos precios pueden sufrir un descuento, teniendo en cuenta la edad del pasajero, a saber:
*Menores de 1 (un) año, abonan sólo el 10% del valor base,
*Menores de 3 (tres) años, abonan sólo el 30% del valor base, y
*Menores de 5 (cinco) años, abonan el 60% del valor base. El equipaje permitido para cada pasajero (mayor de 5 años) son 2 (dos) valijas de 12 kg. cada una, en caso de excederse de la cantidad de valijas se abonará un recargo de 15 U$S por cada una adicional. Si se sobrepasara en el peso estipulado como tope, el adicional es de 2,50 U$S por cada kg. excedido.Se pide calcular para cada boleto, el precio final a abonar. Finalizada la jornada, se deberá mostrar:

a)Cantidad de pasajes vendidos en cada una de las categorías (PRIMERA, TURISTA y AZUL), b) Cantidad de pasajes con exceso en cantidad de valijas y/o en peso. c) Total general vendido en U$S. d) Total recaudado por excesos. 

lunes, 13 de agosto de 2012

EJERCICIOS DE REFUERZOS

BONILLA ADRIAN
COBEÑA GENESIS
GARCIA MAYOTET
MORENO ANTHONY
SANCHEZ JUAN


: En el último año de una institución privada, se dictan 10 materias que completa el cursado
del ciclo polimodal. Escriba  un programa que lea  y almacene en una estructura de datos apropiada el
apellido de cada alumno y las notas  que obtuvo en cada asignatura.
Al finalizar el cargado de los datos de cada alumno, el programa deberá  mostrar por pantalla, el
apellido y el promedio que tiene el alumno en las materias.


Un palíndromo  es una palabra, o frase que se lee igual hacia adelante que hacia atrás. Si
se trata de un número, se llama capicúa. Codificar un programa que reconozca si una palabra es
palíndromo o capicúa.


Codifique en un programa que lea un vector de 10 números enteros, y evalué cual es el
mayor y el menor de dicho vector.


Escribir un programa que  sume dos vectores. Su programa deberá controlar si la suma es
factible.  Mostrar por pantalla ambos vectores y el vector suma. Codificar funciones para la lectura y
escritura de un vector

QUE SON LOS METODOS DE ORDENACION DENTRO DE ARREGLOS

ESCRIBA, EXPLIQUE TRES METODOS DE ORDENACION PARA VECTORES

APLIQUE EN TRES EJERCICIOS CADA UNO DE LOS METODOS DE ORDENACION


FECHA DE ENTREGA: INMEDIATA MARTES 14 DE AGOSTO DEL 2012 SIN PROLOGA





jueves, 2 de agosto de 2012

segundo sistemas - arreglos


Ejercicios Resueltos de Arreglos en C++

1. Se  tienen  los  costos  de  producción  de  dulces correspondientes a los 12 meses del año anterior.
Dulces
Enero
Febrero
.
.
.
Diciembre
Elaborar un programa que pueda  proporcionar la  siguiente información:
a)      ¿En qué mes (número) se registró el mayor costo de producción?
b)      ¿Cuál es el Promedio Anual de los costos de producción?
c)      ¿En qué mes se registró el menor costo de producción?



2. Se requiere registrar la información de las calificaciones (0 a 100) obtenidas en el examen de Ingles de un grupo de estudiantes:
a)      Mostrar las calificaciones de un determinado postulante (basándose en su orden).
b)      Si el puntaje final es superior a 80 entonces aprobó. Determinar cuántos aprobaron y cuantos no.

Dado 50 números ingresados por el usuario muestre primero la posición de los valores pares ingresados y luego un listado de los impares.

5. Se desea registrar los pesos de los alumnos de sabiendo que hay como máximo 150. Mostrar la estadística considerando la siguiente tabla.
Criterio
Alumnos de menos de 40 Kg
Alumnos entre 40 y 50 Kg
Alumnos de más de 50 y menos de 60 Kg
Alumnos de mas o igual a 60 Kg

SEGUNDO ADMINISTRACION SISTEMAS


Ejercicios con Arreglos unidimensionales.


I. Objetivo. Al finalizar la práctica el estudiante será capaz de: 
• Definir estructuras de datos y arreglos.
• Utilizar arreglos en una dimensión para resolver problemas.
II. Introducción Teórica.
Los Arreglos (Vectores o Array)
Un array (lista o tabla9 es una secuencia de datos del mismo tipo. Los datos se llaman elementos del array y se numeran consecutivamente 0, 1, 2, 3, ,, etc. Estos números se denominan valores índice o subíndice del array. El tipo de elementos almacenados en el array pueden ser cualquier tipo de dato de C, incluyendo estructuras definidas por el usuario.
Entonces, podemos entender los arrays (también conocidos como arreglos o formaciones) como variables que contienen diferentes tipos de datos homogéneos. Se puede acceder a cada elemento de datos individual de la variable mediante un subíndice, o índice. En los lenguajes C y C++, un array no se corresponde con un tipo de dato estándar; en su lugar, se trata de un tipo agregado que se obtiene a partir de otros tipos de datos. Es posible tener un array de cualquier cosa: caracteres, enteros, números en coma flotante, arrays, etc. 
Un array se declara de modo similar a otros tipos de datos, excepto que se debe indicar al compilador el tamaño o longitud del array. Para indicar al compilador el tamaño o longitud del array se debe hacer seguir al nombre, el tamaño encerrado entre corchetes.
Los arrays tienen cuatro propiedades básicas:
• Los elementos individuales de datos de un array se denominan elementos.
• Todos los elementos deben ser del mismo tipo de dato.
• Todos los elementos se almacenan en posiciones contiguas de la memoria de la computadora y el subíndice (o índice) del primer elemento es cero.
• El nombre de un array es un valor constante que representa la dirección del primer elemento del array.
Para acceder a un elemento especifico del array, se utiliza el nombre de éste seguido por uno o más “índices” (donde cada uno representa una dimensión del arreglo o array) encerrado entre corchetes. Supongamos que tenemos un arreglo unidimensional llamado X con un tamaño de “n” elementos, su esquema grafico es el siguiente:

https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgU9P6SlmD27ST_7hyphenhyphenE3iO-r25hgC_4oHIvfmhsZXP5-nAy1Q_44kNxIN3IilEYNi07M8GabGvrBEAjHgyfUP-PwQBb1irTKvZ5Fgk4htVnMCVEfHavsu1AJRhQqE6YLKy3pR1V397lJA0/s320/vector.jpg

Como puede verse en el esquema, aunque el arreglo es de “n” elementos, en realidad tienen “n-1” elementos porque comienzan a enumerarse desde cero.
En términos generales para definir un array se especifica el tipo de almacenamiento (atributo opcional), el tipo de datos, el identificador y entre corchetes el tamaño del arreglo. Abajo se muestra algunos ejemplos de definición de arreglos:

a) int num[100]; (un array de 100 enteros)
b) char apellido[25]; (un array de 25 caracteres)
c) float prom[30]; (un array de 30 coma flotante)
d) char contrasena[16]; (un array de 16 caracteres)

La necesidad de definir arrays en función de constantes
A veces es conveniente definir el tamaño de un array en términos de una constante, en lugar de estar especificando una cantidad entera fija. Esto se realiza por facilidad de mantenimiento. Por ejemplo, suponga que tenemos un programa (con 350 líneas de código) donde se halle un array de 20 items, y a lo largo del programa se hace referencia unas 12 veces al arreglo, y supongamos también que se necesita cambiar el tamaño del arreglo. Sin usar la constante se tendría que revisar todo el programa para localizar las líneas de código y efectuar el cambio al nuevo tamaño, en cambio con el uso de constantes sólo se le cambia el tamaño a la misma y el problema esta resuelto. La definición de un array a través de una constante se muestra en el siguiente ejemplo:
# include stdio.h>
# include stdlib.h>
/* Definición de la constante */
#define tamano 20
main()
{
/* Utilización de la constante para definir la dimensión del arreglo */
int promedios[tamano];
/* Leer valores utilizando la variable i como contador dentro del ciclo FOR y ++i como acumulador*/
for (i=0; i < tamano; ++i)
scanf(“%d”,&promedios[i]);
.....
.....
}
La utilización de constantes definidas garantiza que las siguientes referencias al array no sobrepasen el tamaño definido para el mismo.
C no comprueba que los índices del array están dentro del rango definido.

Inicialización de arreglos
En ciertas circunstancias puede ser necesario darle valores iniciales a los arreglos, para ello basta con colocar entre llaves el conjunto de valores deseados separados por comas y en el orden requerido. A continuación se muestran algunos ejemplos:
a) int cant[6]={12,-3,0,15,8};
b) double DesvTipica[8]={0.23, 3.1416, -0.5, 2.16789, -56.78, 25, 0.15, -14 };
c) char meses[12]={‘E’, ‘F’, ‘M’, ‘A’, ‘M’, ‘J’, ‘J’, ‘A’, ‘S’, ‘O’, ‘N’, ‘D’};

Para el caso del arreglo “cant” es como tener:
Cant[0]=12
Cant[1]= -3
Cant[2]=0
Cant[3]=15
Cant[4]=8

Cuando los elementos del arreglo no tienen asignados valores iniciales explícitos, éstos son puestos a cero, a continuación tenemos un ejemplo:
int edades[8]={25,13,18};

El resultado de la asignación seria el siguiente:
Edades[0]=25;
Edades[1]=13;
Edades[2]=18;
Edades[3]=0;
Edades[4]=0;
Edades[5]=0;
Edades[6]=0;
Edades[7]=0;

Este método de inicializar arrays mediante valores constantes después de su definición, es adecuado cuando el número de elementos del arreglo es pequeño.
Una nota interesante en cuanto a la inicialización de arreglos, es que el tamaño no necesita ser indicado explícitamente. Con los arrays numéricos el tamaño será fijado igual al número de valores incluidos. En cuanto a las cadenas, el tamaño se fijará igual al número de caracteres del string o cadena mas uno (el carácter nulo “\0”).
C puede dejar los corchetes vacíos, sólo cuando se asignan valores al array, tal como
int cuenta[ ] = { 15, 25, -45 , 0 , 50 };
char c[ ] = { ‘L’, ‘u’, ‘i’, ‘s’ }; /* declara un array de 4 elementos */
El compilador asigna automáticamente cinco elementos a cuenta.
Otros ejemplos:
a) Int porcent[ ]={8, 6, 10, -15, 23};
b) Char mes[ ]=”octubre”;
que vienen siendo equivalente a:

Porcent[0]=8;
porcent[1]=6;
porcent[2]=10;
porcent[3]= -15;
porcent[4]=23;

mes[0]=‘o’;
mes[1]=‘c’; 
mes[2]=‘t’; 
mes[3]=‘u’; 
mes[4]=‘b’; 
mes[5]=‘r’; 
mes[6]=‘e’; 
mes[7]=‘\0’

Ejemplo 1: 
Elabore un programa que permita leer una lista de números en un arreglo, calcule la suma, promedio, cuadrado , cubo y desviación estándar de los mismos:
#include stdio.h>
#include stdlib.h>
#include conio.h>
#include math.h>
#define tam 4
/* programa para calcular la suma, promedio, cuadrado, cubo y desviación
estandar de una serie de números */
main ( )
{
double vector[tam],cuadrado, cubo;
float prom, desv,suma=0;
int i, j;

system("cls" );
printf ("PROGRAMA PARA CALCULAR \n");
printf(" PROMEDIO, SUMA, CUADRADO, CUBO Y DESV. EST.\n\n") ;
//Captura de valores y suma de los mismos
for(i = 0 ; i < tam ; ++i)
{
printf ("num [%d] = " , i) ;
scanf ("%lf" , &vector[i]) ;
suma+= vector[i] ;
}
prom = suma / tam ;
printf (" \n El promedio de los numeros es: %4.2f\n ", prom) ;
//Calculo e impresión de cuadrado, cubo y desviación estandar
printf(" \n \n NUMERO CUADRADO CUBO DESV. EST.\n");
for( i = 0 ; i < tam ; ++i )
{
cuadrado = vector[i] * vector[i] ;
cubo = pow (vector[i], 3) ;
desv = vector [i] - prom ;
printf ("%.2lf", vector[i] ) ;
printf (" \t%.2lf", cuadrado) ;
printf (" \t%.2lf", cubo) ;
printf (" \t%.2f\n", desv) ;
}
system("pause");
return(0);
}

Nota que los valores fueron declarados de tipo double no enteros, por el tamaño de los valores que se generan en los cálculos. 

Ejemplo 2:
El siguiente programa lee 5 valores de teclado y los guarda en un arreglo a. Luego los escribe.

#include stdio.h>
#include stdlib.h>
main()
{
int a[5],i,num;
for(i=0; i<5 br="br" i="i"> printf("Digite el numero:\n");
scanf("%d",&num);
a[i]=num;
}

printf("\nEscribiendo el arreglo con los datos leidos:\n\n");
for(i=0; i<5 br="br" i="i"> printf("a[%d]= %d\n\n",i,a[i]);
}
system("pause");
return 0;
}

Ejemplo 3:
El siguiente programa, pide 5 numeros y calcula los cubos de ellos, los cuales son guardados en un arreglo y son desplegados.

#include stdio.h>
#include stdlib.h>
#include math.h>
main()
{
int i;
double a[5], num;
for (i=0; i<5 br="br" i="i"> {
printf("\n Digite numero:");
scanf("%lf", &num);
a[i]=num;
}
printf("_________________________________________\n");
printf("Los cubos de los numeros leidos son:\n");
for (i=0; i<5 br="br" i="i"> a[i]=pow(a[i],3);
printf("%.0lf\n",a[i]);
}
printf("\n");
system("pause");
return 0;
}



EJERCICIOS:

Ejercicio 1:
Digite, compile y ejecute el siguiente programa. 
#include stdio.h>
#include stdlib.h>
main()
{
int a,b=0;
int c[10]={1,2,3,4,5,6,7,8,9,0};
for (a=0;a<10 a="a" br="br"> if ((c[a]%2)==0) b+=c[a];
printf("%d\n",b);
system(“pause”); 
return 0;
}

¿Qué hace el programa?
__________________________________________
_______________________________________________________________
Cuál es la salida? _______

Ejercicio 2:
Digite, compile y ejecute el siguiente programa. 
#include stdio.h>
#include stdlib.h>
main()
{
int a,b=0;
int c[10]={1,2,3,4,5,6,7,8,9,0};
for (a=0;a<10 a="a" br="br"> if ((a%2)==0)b+=c[a];
printf("%d\n",b);
system(“pause”); 
return 0;
}
¿Qué hace el programa?
__________________________________________
_______________________________________________________________
Cuál es la salida? _______
¿En qué se diferencia del ejemplo anterior? ____________________________
_______________________________________________________________
Ejercicio 3
Elabore un programa que sume los primeros 25 números enteros guardados en un vector. Se desea imprimir la lista de números y al final la suma de los mismos.
Ejercicio 4
Generar e imprimir un vector de 10 números enteros y encontrar el mayor de ellos. Desplegar el resultado.
Ejercicio 5
Dadas dos listas A y B de igual número de elementos, se desea generar e imprimir una lista C conteniendo las sumas: A[i] + B[i] = C[i]

SEGUNDO SISTEMAS . ARREGLOS VECTORIALES


Ejercicios con Arreglos unidimensionales.


I. Objetivo. Al finalizar la práctica el estudiante será capaz de: 
• Definir estructuras de datos y arreglos.
• Utilizar arreglos en una dimensión para resolver problemas.
II. Introducción Teórica.
Los Arreglos (Vectores o Array)
Un array (lista o tabla9 es una secuencia de datos del mismo tipo. Los datos se llaman elementos del array y se numeran consecutivamente 0, 1, 2, 3, ,, etc. Estos números se denominan valores índice o subíndice del array. El tipo de elementos almacenados en el array pueden ser cualquier tipo de dato de C, incluyendo estructuras definidas por el usuario.
Entonces, podemos entender los arrays (también conocidos como arreglos o formaciones) como variables que contienen diferentes tipos de datos homogéneos. Se puede acceder a cada elemento de datos individual de la variable mediante un subíndice, o índice. En los lenguajes C y C++, un array no se corresponde con un tipo de dato estándar; en su lugar, se trata de un tipo agregado que se obtiene a partir de otros tipos de datos. Es posible tener un array de cualquier cosa: caracteres, enteros, números en coma flotante, arrays, etc. 
Un array se declara de modo similar a otros tipos de datos, excepto que se debe indicar al compilador el tamaño o longitud del array. Para indicar al compilador el tamaño o longitud del array se debe hacer seguir al nombre, el tamaño encerrado entre corchetes.
Los arrays tienen cuatro propiedades básicas:
• Los elementos individuales de datos de un array se denominan elementos.
• Todos los elementos deben ser del mismo tipo de dato.
• Todos los elementos se almacenan en posiciones contiguas de la memoria de la computadora y el subíndice (o índice) del primer elemento es cero.
• El nombre de un array es un valor constante que representa la dirección del primer elemento del array.
Para acceder a un elemento especifico del array, se utiliza el nombre de éste seguido por uno o más “índices” (donde cada uno representa una dimensión del arreglo o array) encerrado entre corchetes. Supongamos que tenemos un arreglo unidimensional llamado X con un tamaño de “n” elementos, su esquema grafico es el siguiente:

https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgU9P6SlmD27ST_7hyphenhyphenE3iO-r25hgC_4oHIvfmhsZXP5-nAy1Q_44kNxIN3IilEYNi07M8GabGvrBEAjHgyfUP-PwQBb1irTKvZ5Fgk4htVnMCVEfHavsu1AJRhQqE6YLKy3pR1V397lJA0/s320/vector.jpg

Como puede verse en el esquema, aunque el arreglo es de “n” elementos, en realidad tienen “n-1” elementos porque comienzan a enumerarse desde cero.
En términos generales para definir un array se especifica el tipo de almacenamiento (atributo opcional), el tipo de datos, el identificador y entre corchetes el tamaño del arreglo. Abajo se muestra algunos ejemplos de definición de arreglos:

a) int num[100]; (un array de 100 enteros)
b) char apellido[25]; (un array de 25 caracteres)
c) float prom[30]; (un array de 30 coma flotante)
d) char contrasena[16]; (un array de 16 caracteres)

La necesidad de definir arrays en función de constantes
A veces es conveniente definir el tamaño de un array en términos de una constante, en lugar de estar especificando una cantidad entera fija. Esto se realiza por facilidad de mantenimiento. Por ejemplo, suponga que tenemos un programa (con 350 líneas de código) donde se halle un array de 20 items, y a lo largo del programa se hace referencia unas 12 veces al arreglo, y supongamos también que se necesita cambiar el tamaño del arreglo. Sin usar la constante se tendría que revisar todo el programa para localizar las líneas de código y efectuar el cambio al nuevo tamaño, en cambio con el uso de constantes sólo se le cambia el tamaño a la misma y el problema esta resuelto. La definición de un array a través de una constante se muestra en el siguiente ejemplo:
# include stdio.h>
# include stdlib.h>
/* Definición de la constante */
#define tamano 20
main()
{
/* Utilización de la constante para definir la dimensión del arreglo */
int promedios[tamano];
/* Leer valores utilizando la variable i como contador dentro del ciclo FOR y ++i como acumulador*/
for (i=0; i < tamano; ++i)
scanf(“%d”,&promedios[i]);
.....
.....
}
La utilización de constantes definidas garantiza que las siguientes referencias al array no sobrepasen el tamaño definido para el mismo.
C no comprueba que los índices del array están dentro del rango definido.

Inicialización de arreglos
En ciertas circunstancias puede ser necesario darle valores iniciales a los arreglos, para ello basta con colocar entre llaves el conjunto de valores deseados separados por comas y en el orden requerido. A continuación se muestran algunos ejemplos:
a) int cant[6]={12,-3,0,15,8};
b) double DesvTipica[8]={0.23, 3.1416, -0.5, 2.16789, -56.78, 25, 0.15, -14 };
c) char meses[12]={‘E’, ‘F’, ‘M’, ‘A’, ‘M’, ‘J’, ‘J’, ‘A’, ‘S’, ‘O’, ‘N’, ‘D’};

Para el caso del arreglo “cant” es como tener:
Cant[0]=12
Cant[1]= -3
Cant[2]=0
Cant[3]=15
Cant[4]=8

Cuando los elementos del arreglo no tienen asignados valores iniciales explícitos, éstos son puestos a cero, a continuación tenemos un ejemplo:
int edades[8]={25,13,18};

El resultado de la asignación seria el siguiente:
Edades[0]=25;
Edades[1]=13;
Edades[2]=18;
Edades[3]=0;
Edades[4]=0;
Edades[5]=0;
Edades[6]=0;
Edades[7]=0;

Este método de inicializar arrays mediante valores constantes después de su definición, es adecuado cuando el número de elementos del arreglo es pequeño.
Una nota interesante en cuanto a la inicialización de arreglos, es que el tamaño no necesita ser indicado explícitamente. Con los arrays numéricos el tamaño será fijado igual al número de valores incluidos. En cuanto a las cadenas, el tamaño se fijará igual al número de caracteres del string o cadena mas uno (el carácter nulo “\0”).
C puede dejar los corchetes vacíos, sólo cuando se asignan valores al array, tal como
int cuenta[ ] = { 15, 25, -45 , 0 , 50 };
char c[ ] = { ‘L’, ‘u’, ‘i’, ‘s’ }; /* declara un array de 4 elementos */
El compilador asigna automáticamente cinco elementos a cuenta.
Otros ejemplos:
a) Int porcent[ ]={8, 6, 10, -15, 23};
b) Char mes[ ]=”octubre”;
que vienen siendo equivalente a:

Porcent[0]=8;
porcent[1]=6;
porcent[2]=10;
porcent[3]= -15;
porcent[4]=23;

mes[0]=‘o’;
mes[1]=‘c’; 
mes[2]=‘t’; 
mes[3]=‘u’; 
mes[4]=‘b’; 
mes[5]=‘r’; 
mes[6]=‘e’; 
mes[7]=‘\0’

Ejemplo 1: 
Elabore un programa que permita leer una lista de números en un arreglo, calcule la suma, promedio, cuadrado , cubo y desviación estándar de los mismos:
#include stdio.h>
#include stdlib.h>
#include conio.h>
#include math.h>
#define tam 4
/* programa para calcular la suma, promedio, cuadrado, cubo y desviación
estandar de una serie de números */
main ( )
{
double vector[tam],cuadrado, cubo;
float prom, desv,suma=0;
int i, j;

system("cls" );
printf ("PROGRAMA PARA CALCULAR \n");
printf(" PROMEDIO, SUMA, CUADRADO, CUBO Y DESV. EST.\n\n") ;
//Captura de valores y suma de los mismos
for(i = 0 ; i < tam ; ++i)
{
printf ("num [%d] = " , i) ;
scanf ("%lf" , &vector[i]) ;
suma+= vector[i] ;
}
prom = suma / tam ;
printf (" \n El promedio de los numeros es: %4.2f\n ", prom) ;
//Calculo e impresión de cuadrado, cubo y desviación estandar
printf(" \n \n NUMERO CUADRADO CUBO DESV. EST.\n");
for( i = 0 ; i < tam ; ++i )
{
cuadrado = vector[i] * vector[i] ;
cubo = pow (vector[i], 3) ;
desv = vector [i] - prom ;
printf ("%.2lf", vector[i] ) ;
printf (" \t%.2lf", cuadrado) ;
printf (" \t%.2lf", cubo) ;
printf (" \t%.2f\n", desv) ;
}
system("pause");
return(0);
}

Nota que los valores fueron declarados de tipo double no enteros, por el tamaño de los valores que se generan en los cálculos. 

Ejemplo 2:
El siguiente programa lee 5 valores de teclado y los guarda en un arreglo a. Luego los escribe.

#include stdio.h>
#include stdlib.h>
main()
{
int a[5],i,num;
for(i=0; i<5 br="br" i="i"> printf("Digite el numero:\n");
scanf("%d",&num);
a[i]=num;
}

printf("\nEscribiendo el arreglo con los datos leidos:\n\n");
for(i=0; i<5 br="br" i="i"> printf("a[%d]= %d\n\n",i,a[i]);
}
system("pause");
return 0;
}

Ejemplo 3:
El siguiente programa, pide 5 numeros y calcula los cubos de ellos, los cuales son guardados en un arreglo y son desplegados.

#include stdio.h>
#include stdlib.h>
#include math.h>
main()
{
int i;
double a[5], num;
for (i=0; i<5 br="br" i="i"> {
printf("\n Digite numero:");
scanf("%lf", &num);
a[i]=num;
}
printf("_________________________________________\n");
printf("Los cubos de los numeros leidos son:\n");
for (i=0; i<5 br="br" i="i"> a[i]=pow(a[i],3);
printf("%.0lf\n",a[i]);
}
printf("\n");
system("pause");
return 0;
}



EJERCICIOS:

Ejercicio 1:
Digite, compile y ejecute el siguiente programa. 
#include stdio.h>
#include stdlib.h>
main()
{
int a,b=0;
int c[10]={1,2,3,4,5,6,7,8,9,0};
for (a=0;a<10 a="a" br="br"> if ((c[a]%2)==0) b+=c[a];
printf("%d\n",b);
system(“pause”); 
return 0;
}

¿Qué hace el programa?
__________________________________________
_______________________________________________________________
Cuál es la salida? _______

Ejercicio 2:
Digite, compile y ejecute el siguiente programa. 
#include stdio.h>
#include stdlib.h>
main()
{
int a,b=0;
int c[10]={1,2,3,4,5,6,7,8,9,0};
for (a=0;a<10 a="a" br="br"> if ((a%2)==0)b+=c[a];
printf("%d\n",b);
system(“pause”); 
return 0;
}
¿Qué hace el programa?
__________________________________________
_______________________________________________________________
Cuál es la salida? _______
¿En qué se diferencia del ejemplo anterior? ____________________________
_______________________________________________________________
Ejercicio 3
Elabore un programa que sume los primeros 25 números enteros guardados en un vector. Se desea imprimir la lista de números y al final la suma de los mismos.
Ejercicio 4
Generar e imprimir un vector de 10 números enteros y encontrar el mayor de ellos. Desplegar el resultado.
Ejercicio 5
Dadas dos listas A y B de igual número de elementos, se desea generar e imprimir una lista C conteniendo las sumas: A[i] + B[i] = C[i]