miércoles, 12 de noviembre de 2014

programa de arreglo

#include <iostream> 
using namespace std; 
int main() { 
const int TOTAL = 5;
int limitePasajeros, vagones[TOTAL], total = 0; 
cout<<"Cuanto es el maximo de pasajeros por vagon?: "; 
cin>>limitePasajeros; 
cout<<endl; 
for(int i = 0; i < TOTAL; i++){ 
cout<<"Cuantos pasajeros hay en el "<<i+1<<" vagon?: "; 
cin>>vagones[i]; 

cout<<"\nVAGONES CON SOBRECUPO\n"; 
for(int i = 0; i < TOTAL; i++){ 
if(vagones[i] > limitePasajeros){ 
cout<<"Vagon: "<<i + 1; 
cout<<"\tPasajeros: "<<vagones[i]<<endl; 
total++; 

}
cout<<"\nTotal: "<<total; 
cin.get(); 
return 0; 
}

arreglos y apuntadores

¿QUÉ ES UN ARREGLO?
 Un arreglo es un conjunto de variables que son del mismo tipo de datos. A cada parte de un arreglo se le denomina “elemento”. Los cuales se hacen referencia con el mismo nombre y se almacenan en posiciones consecutivas.

DECLARACIÓN DE ARREGLOS

  • Tipo_datos nombre[tamaño]
  •  Donde [ ] – operador de subíndices del arreglo.
  •  Ejemplo
  •  Float arreglo[500]
 Nota: en C el arreglo se debe declarar en forma explícita antes de utilizarlo como cualquier variable.

INDEXACIÓN DE ARREGLOS
Para poder hacer referencia a los elementos del arreglo se utilizan los índice los cuales comienzan desde cero.
 Ejemplo
 Días de la semana
 Arreglo
 char Día[6] entonces

 Día[0], Día[1],…Día[6]

INICIALIZACIÓN DE ARREGLOS

  • Elemento por elemento
  •  Día[0] =„L‟;
  •  Todos los elementos al mismo tiempo
  •  Float arreglo[3]={.0123, 3.1416,.000236}


 Ejercicio : escribe un programa que inicialice una arreglo (tipo entero, usando for)

TAMAÑO DEL ARREGLO
Para calcular el número total de bytes de un arreglo es:
Total_bytes=sizeof(tipo_datos)*Tamaño(# elementos)

Ejemplo:
int a[10]
Tamaño del tipo entero = 2 bytes
Total_bytes=20
Dirección a[0] =0x1806
Dirección a[9]= 0x1818
La distancia entre el primer y el último elemento
es:
0x1818- 0x1806+2=20 bytes
Agrega estó último al programa anterior


ARREGLOS Y APUNTADORES
En c los arreglos y apuntadores tienen una relación estrecha.
Se puede hacer que un apuntador haga referencia al primer elemento de un arreglo de la siguiente forma:
int *p;
Int A[10];
p=A; Nota: es como si apuntara a todo el A
La dirección de inicio del arreglo
El valor del primer elemento
La dirección, contenido y valor del apuntador (1er elemento)
Escribe un programa que muestre esto.


CÓMO DESSPLEGAR UNA CADENA DECARACTERES
Una cadena de caracteres se define en C como una secuencia continua de caracteres que termina con el caracter nulo („\0‟). Programa Despliege un arreglo de caracteres en 3 formatos:
 1. imprimiendo elemento por elemento considerando el fin del arreglo como el caracternulo („\0‟).
 2. imprimiendo en la misma línea
 3. imprimiendo como cadena (%s) ACERCA DE LA FUNCIÓN PRINTF()
 Está función tiene incluido el comando que indica que siga imprimiendo los datos de la cadena (%s) hasta que encuentre el caracter nulo.
 Esto se comprobo en el primer formato de
impresión o despliegue en pantalla del programa
anterior.EL CARÁCTER NULO („\0‟)
 Este es un carácter especial que indica el fin de la
cadena y para esta unida el último elemento del
arreglo.
 El carácter nulo se evalua con un valor de cero,
así que se puede usar para una prueba lógica en
una instrucción de control de flujo.
 Programa
 Define un arreglo de caracteres donde el últimoelemento es el carácter nulo y usa este valor paraevaluar el for es decir:
for(i=0;a[i];i++)
ARREGLOS MULTIDIMENSIONALES
 Hasta ahora solo hemos vistos arreglos de una sola dimensión la cual esta dada por el número de corchetes ,[ ].
Sintaxis:
Tipo_dato nombre[tamaño-arreglo1] [tamaño-arreglo2]… [tamaño-arregloN]
Ejemplo
int a[2][3]={1,2,3,4,5,6}
int a[2][3]={{1,2,3},{4,5,6}}
Programa; un arreglo bidimensional con dos ciclos anidados donde en el ciclo externo imprima una nueva línea.
ARREGLOS SIN ESPECIFICACIÓN DETAMAÑO
 Ejemplo
 int a[ ]={1,2,3,4,5,6, ….,100}
 Otro ejemplo
 int a[ ][2]={1,2,
 3,4
 ,5,6}
 Programa
 Dos ejemplos sin especificar el tamaño como vimos, y imprime el tamaño del los arreglos.