Anda di halaman 1dari 60

ARREGLOS

ARREGLOS

Diana C. Navarro Espinoza


Alexander A. Bernedo Jurado

Universidad Nacional Mayor de San Marcos


Prof. Frank Escobedo Bailon
25 de Noviembre de 2014

ARREGLOS

Introduccin
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.
ARREGLOS UNIDIMENSIONALES
Introduccin
Los arreglos unidimensionales, tambin llamados listas, tienen un solo subndice.
Son datos estructurados de una coleccin finita y ordenada de datos del mismo tipo.
Cada tem del arreglo se denomina elemento, si el nombre del arreglo es b, el primer
elemento seria b[0] y si tiene n elementos se denominara b[0] b[1] b[2] b[n-1] .
Para manejar un arreglo, las operaciones a efectuarse son:

Declaracin del arreglo,

Creacin del arreglo,

Inicializacin de los elementos del arreglo, y

Acceso a los elementos del arreglo.

Declaracin de los arreglos unidimensionales

Los arreglos unidimensionales se declaran de manera similar a otro tipo de datos,


solo que este debe indicar al compilador el tamao y la longitud del arreglo. Consiste en
establecer las caractersticas del arreglo. La sintaxis de la declaracin del arreglo es:

ARREGLOS

tiponombre_arreglo[tamao];

Tipo: declara el tipo de base del arreglo que es el tipo de cada elemento del mismo
Nombre_arreglo: es el nombre del arreglo

Tamao: es el nmero de elementos del arreglo

Apuntadores y arreglos

Existe una corta relacin entre apuntadores y arreglos. Una variable de tipo arreglo
puede considerarse como una apuntadora de tipo arreglo. Los apuntadores pueden ser
usados en cualquier operacin de involucre subndices de arreglos.

Ejemplo:

main()

{ int tabla[10],i,x,*pt,*ptr;

pt=&tabla[0];

x=*pt;

for(i=0; i!10;i++)

*(pt+i)=random();

ptr=tabla;

for (i=0; i!10;i++)

ARREGLOS

printf(%d nn,*(ptr+i),tabla[i];

Cuando se suma 1 a un apuntador el incremento se adecua al tamao en la memoria


del objeto apuntado. Un apuntador es una variable, por lo que operaciones como pa =a y
pa++ son aceptadas. Un nombre de un arreglo es una constante, no una variable, de ah
que a= pao a++ o p=a.

Arreglos de apuntadores

Los arreglos tambin pueden contener apuntadores. Se usa ms cuando formamos


cadenas de caracteres. Cada entrada en el arreglo es un apuntador al primer carcter de
la cadena.

Declaracin:

char * nombres[4] = {Carmen, Ana, Maria, Flor}

Las cadenas no estn situadas en el arreglo, ah tan solo estn almacenados los
apuntadores. A pesar de que los arreglos, como explicamos anteriormente, tienen
tamao finito, permite el acceso a cadenas de cualquier tamao.

Ejemplo: Ordenar las lneas de un texto de diferente longitud

Primero se deben guardar todas las lneas en un arreglo de tipo char grande.
Observando que \n marca el fin de cada lnea. Ver figura 1.1.
Guardar los apuntadores en un arreglo diferente donde cada apuntador apunta al
primer caracter de cada lnea.

ARREGLOS

Comparar dos lneas usando la funcin de la biblioteca estndar strcmp().


Si dos lneas estn desacomodadas -- intercambiar (swap) los apuntadores (no el
texto).

Figura 1.1: Arreglos de apuntadores (Ejemplo de ordenamiento de cadenas).

Con lo anterior se elimina el manejo complicado del almacenamiento y alta sobrecarga


por el movimiento de lneas.

Arreglos y funciones

Usamos arreglos como argumento a la funcin, se pasa slo la direccin del arreglo y
no la copia del arreglo entero. Para fines prcticos podemos considerar el nombre del
arreglo sin ningn ndice como la direccin del arreglo.

Considerar el siguiente ejemplo en donde se pasa un arreglo a la funcin imp_rev,


observar que no es necesario especificar la dimensin del arreglo cuando es un
parmetro de la funcin.

ARREGLOS

void imp_rev(char s[])


{
int t;
for( t=strlen(s)-1; t>=0; t--)
printf("%c",s[t]);
}
main()
{
char nombre[]="Facultad";
imp_rev(nombre);
}

Observar que en la funcin imp_rev se usa la funcin strlen para calcular la longitud
de la cadena sin incluir el terminador nulo. Por otra parte, la funcin imp_rev no usa la
sentencia return ni para terminar de usar la funcin, ni para regresar algn valor.

Se muestra otro ejemplo,

float enconprom(int tam, float lista[])


{ int i;
float suma = 0.0;

for ( i=0; i<tam; i++)


suma += lista[i];
return(suma/tam);
}

ARREGLOS

main()
{
float numeros[]={2.3, 8.0, 15.0, 20.2, 44.01, -3.0, -2.9};

printf("El promedio de la lista es %f\n", enconprom(7,numeros) );


}

Ejercicios Desarrollados

1. Escribir un programa que tiene un arreglo con los nmeros comprendidos entre
4 y 14.
#include<iostream>
#include<stdlib.h>
using namespace std;
int main(int argc, char *argv[ ])
{ int a[11];
int n=4;
for (int i=0; i<1; i++)
{ a[ i ] = n++;
cout<< a[ i ]<<endl;
}
system(PAUSE);
return 0;
}

ARREGLOS

2. Escribir un programa que llene un arreglo con los nmeros pares comprendidos
entre 1 y 100.
#include<iostream>
#include<stdlib.h>
using namespace std;
int main( int argc, char *argv[ ])
{ int a[100];
int n=1, acum=0;
cout<<Los nmeros pares menores que cien: <<endl;
for( int i=0; i<100; i++)
{ a[ i ] = n++;
if( a[ i ]%2 == 0)
{ cout<<a[ i ]<<endl;
}
}
system(PAUSE);
return 0;
}
3.

Escribir un programa que llene un arreglo con los nmeros comprendidos entre
0 y 99 divisibles por 3.
#include<iostream>
#include<stdlib.h>
using namespace std;
int main( int argc, char *argv[ ])
{ int x=0, y=0;

ARREGLOS

int m[33];
do{
if( x%3==0 && x!=100){
m[y++]=x;
}
} while (x++<100);
for (y=0; y<33; y++){
cout<< m[y] <<endl;
}
system(PAUSE);
return 0;
}
4.

Escribir un programa que llene un arreglo con cinco nmeros enteros


consecutivos y haga una copia de ese arreglo en otro.
#include<iostream>
#include<stdlib.h>
using namespace std;
int main( int argc, char *argv[ ])
{ int arraya[5];
int j, n=5;
cout<<Arreglo original: <<endl;
for(j=0; j<5; j++)
{ arraya[ j ]=n++;
cout<<arraya[ j ]<<endl;
}

ARREGLOS

cout<<La copia del arreglo original:<<endl;


for( j=0; j<5; j++)
{ int *p =&arraya[ j ];
cout<<*p<<endl;
}
system(PAUSE);
return 0;
}
5. Escribir un programa que llene un arreglo de 10 nmeros enteros aleatorios
comprendidos entre 50 y 100, copie en otro arreglo esos nmeros multiplicados
por 0,5 y muestre ambos arreglos.
#include<iostream>
#include<ctime>
using namespace std;
int main()
{ int o[10];
float c[10];
srand(time(0));
for ( int i=0; i<10; i++ )
{ o[ i ] =50 + (rand()%51);
}
for(int i=0; i<10; i++)
{ c[ i ] =o[ i ]*0.5;
}
for(int i=0; i<10; i++)

10

ARREGLOS

{cout<< o[ i ] <<\t << c[ i ] <<endl;


}
system(PAUSE);
return 0;
}
6. Escribir un programa que llene un arreglo con los veinte primeros nmeros pares
y calcule su suma.
#include<iostream>
#include<stdlib.h>
using namespace std;
int main( int argc, char *argv[ ])
{ int a[40];
int n=1;
cout<<Suma de los primeros veinte nmeros pares: <<endl;
cout<<Los veinte primeros pares: <<endl;
for(int i=0; i=40; i++)
{ a[ i ]=n++;
if(a[ i ]%2==0)
{ cout<<a[ i ]<<endl;
acum+= a[ i ];
}
}
cout<< suma: <<endl;
system(PAUSE);
return 0;

11

ARREGLOS

}
7.

Escribir un programa que solicite cinco nmeros, los almacene en un arreglo y


luego calcule la media aritmtica de esos nmeros.
#include<iostream>
#include<stdlib.h>
#include<math.h>
int main( )
{ int a[5];
int j, acum=0;
double media;
cout<<Media aritmeticade 5 numeros \n\n;
for( j=0; j<5; j++)
{ cout<<Ingrese un numero\n\n;
cin>>a[ j ];
acum+=a[ j ];
}
media= acum/5;
cout<<La media aritmtica es : \n\n<<media;
system(PAUSE);
return 0;
}

8.

Escribir un programa que tras asignar los nmeros, -2, 5, 8, -9, 10, 15 y 4 a un
arreglo calcule, independientemente, la suma de los elementos positivos y
negativos.

12

ARREGLOS

#include<iostream>
#include<stdlib.h>
using namespace std;
const int TAM=10;
int main( int argc, char *argv[ ])
{ int arc(TAM);
int acum1=0; acum2=0;
for (int i=0; i<TAM; i++)
{ cout <<ingrese un numero<<endl;
cin>>arr[ i ];
}
for ( int i=0; i<TAM; i++)
{ if (arr[ i ]>0)
acum1+=arr[ i ];
}
for (int i=0; i<TAM;i++)
{ if (arr[ i ]<0)
acum2+=arr[ i ];
}
cout<<positivos: <<acum1<<endl;
cout<<negativos: <<acum2<<endl;
system(PAUSE);
return 0;
}

13

ARREGLOS

9.

Escribir un programa que almacene en un arreglo los nmeros primos


comprendidos entre 1 y 100.
#include<iostream>
#include<stdlib.h>
using namespace std;
const int T=100;
int main( int argc, char *argv[ ])
{ int arr[T];
int modulo, cont, x=1;
cout<<Numeros primos entre 1 y 100<<endl<<endl;
for(int n=0; n<T; n++)
{ arr[ n ]=x++
}
cout<<endl;
for (int n=0; n<T; n++)
{ cont=0;
for(int i=1; i<*arr[ a ]; i++)
{ modulo=arr[ n ]%1;
if(modulo==0)
{ cont= cont+1;
}
}
if(cont<=2)
cout<<arr[ n ]<<endl;
}

14

ARREGLOS

system(PAUSE);
return 0;
}
10. Escribir un programa que genera la inversa de una cadena de caracteres. La
cadena original y la invertida deben almacenarse en arreglos independientes.
#include<iostream>
#include<stdlib.h>
using namespace std;
int main( int argc, char *argv[ ])
{ char cad[30];
char cadinv[30];
cout<<Inversion de cadena de caracteres<<endl<<endl;
cout<<Ingrese una palabra o frase<<endl;
cin.getline (cad,30);
cout<<endl;
cout<<Cadena inversa<<endl;
cout<<strrev(cad);
cout<<endl;
system(PAUSE);
return 0;
}
11. Escribir un programa que cuente las maysculas de una cadena de caracteres.
#include<iostream>
#include<cstdio>
using namespace std;

15

ARREGLOS

int main();
char cad[30];
int cont=0;
for(int i=0; i<10; i++)
{ cad[ i ]=\0;
}
cout<<Ingrese una cadena de texto:<<endl;
cin.getline(cad,30);
for(int i=0; i<30; i++)
{ if( isupper(cad[ i ] ) )
{ cont++;
}
}
cout<<La cadena : <<cad<<tiene <<cont<<maysculas <<endl;
system(PAUSE);
return 0;
}
12. Escribir un programa que encripte los caracteres de una cadena sumando 2 a los
que situados en posiciones pares y 3 a los situados en posiciones impares.

#include<iostream>
#include<stdlib.h>
using namespace std;
int main( int argc, char *argv[ ])
{ char cad[30];

16

ARREGLOS

char cop[30];
for (int i=0; i<30; i++)
{ cad[ i ]=\0;
cop[ i ]=\0;
}
cout<<Ingrese una cadena de texto: ;
cin.getline( cad,30 );
for ( int i=0; i<30; i++ )
{ if ( cad[ i ]! = \0)
{ if( i%2==0)
{ cop[ i ]=cad[ i ]+2;
}
else
{ cop[ i ]=cad[ i ]+3;
}
}
}
cout<<La cadena: <<cad<<endl;
cout<<Fue encriptada en: <<cop<<endl;
system(PAUSE);
return 0;
}
13. Decir el nmero de vocales que aparecen en una frase introducida por el usuario.

#include<iostream>

17

ARREGLOS

#include<stdlib.h>
using namespace std;
int main( int argc, char *argv[ ])
{ char cad[30];
for( int i=0; i<30; i++)
{ cad[ i ]=\0;
}
cout<<Ingrese una cadena de texto: ;
cin.getline(cad,30);
cout<<endl<<endl;
int cont=0;
for ( int i=0; i<30;i++)
{ if ( cad[ i ]==a ( cad[ i ]==e ( cad[ i ]==i ( cad[ i ]==o (
cad[ i ]==u
cont++;
}
cout<<En la cadena <<cad<< hay <<cont<< vocales <<endl;
}
system(PAUSE);
return 0;
}
14. Escribir un programa que lea una frase introducida desde el teclado y la escriba
al revs.

#include<iostream>

18

ARREGLOS

#include<stdlib.h>
using namespace std;
int main( int argc, char *argv[ ])
{ char cad[30];
cout<<Frase invertida<<endl;
for( int i=0; i<30; i++)
{ cad[ i ]=\0;
}
cout<<Ingrese la frase: ;
cin.getline(cad,30);
cout<<La frase invertida: <<endl;
cout<< strrev(cad);
cout<<endl;
system(PAUSE);
return 0;
}
15. Escribir un programa que compare dos arreglos de caracteres y nos diga si son
idnticos o no.
#include<iostream>
#include<stdlib.h>
using namespace std;
int main( int argc, char *argv[ ])
{ char cad1[30];
char cad2[30];
for( int i=0; i<30; i++)

19

ARREGLOS

{ cad1[ i ]=\0;
cad2[ i ]=\0;
}
cout<<Ingrese la cadena de texto 1: <<endl<<endl;
cin.getline(cad1,30);
cout<<Ingrese la cadena de texto 2: <<endl<<endl;
cin.getline(cad2,30);
int igual=0;
for( int i=0; i<30; i++)
{ if ( strcrp( cad1,cad2 )==0 )
{ igual=2
}
}
if ( igual==1 )
cout<<La cadena <<cad1<< y la cadena <<cad2<< son
idnticas<<endl;
if ( igual==0 )
cout<< Las cadenas no son identicas<<endl;
system(PAUSE);
return 0;
}

16. Escribir un programa que encripte una cadena de caracteres sumando 2 al cdigo
ASCII de cada uno de sus caracteres.

20

ARREGLOS

#include<iostream>
#include<stdlib.h>
using namespace std;
int main( int argc, char *argv[ ])
{ char cad1[30];
char cad_con[30];
for( int i=0; i<30; i++)
{ cad1[ i ]=\0;
cad_con[ i ]=\0;
}
cout<<Cadena encriptada sumando dos a cada caracter <<endl<<endl;
cout<<Ingrese una cadena de texto:;
cin.getline(cad1,30);
cout<<endl<<endl;
cout<<Cadena encriptada: <<endl<<endl;
for( int i=0; i<30; i++)
{ if (cad[ i ]!=\0;
{ cad_con[ i ]= cad[ i ]+2;
cout<< cad_con[ i ];
}
}
cout<<endl<<endl;
system(PAUSE);
return 0;
}

21

ARREGLOS

17. Realizar un programa que lea la temperatura al medio da, durante todos los das
de un mes y luego informar la temperatura promedio mensual, as como el da
ms caluroso y el da ms fro.
#include<iostream>
usingnamespace std;
int main()
{ int temp[31], min, max, media;
int dias;
cout<<Cuantos dias tiene el mes <<endl;
cin>>dias;
for( i=0; i<dias; i++){
cout<<Introduzca la temperatura de mediodia del dia <<i+1<<:<<endl;
cin>>temp[ i ];
}
media=0;
for( i=0; i<dias; i++){
media= media+ temp[ i ];
}
cout<<Temperatura media: <<media/dias<<endl;
min=60;
max=-90;
for( i=0; i<dias; i++){
if ( min>temp[ i ])min=temp[ i ];
if ( max<temp[ i ])max=temp[ i ];
}

22

ARREGLOS

cout<<Temperatura minima: <<min<<endl;


cout<<Temperatura maxima: <<max<<endl;
return 0;
}
18. Hacer un programa que calcule el valor numrico de un polinomio de grado N
cuyos coeficientes, grado y valor de x son ingresados con teclado. Considere un
grado mximo de 99.
#include<iostream.h>
#include<conio.h>
#include<math.h>
const int N = 100;
void main()
{
int G,i;
double Poli[100], X, VN;
cout<<"Ingrese el grado del polinomio : ";
cin>>G;
cout<<"Ingrese el valor de X = ";
cin>>X;
cout<<"Ingrese los coeficientes del polinomio: "<<endl;
for(i=0;i<G+1;i=i+1)
{
cout<<"Poli[ "<<i<<"] = ";
cin>>Poli[i];
}

23

ARREGLOS

VN = 0;
for(i=0;i<G+1;i=i+1)
{
VN = VN + Poli[i] * pow(X,i) ;
}
cout<<"Valor numerico = "<<VN<<endl;
getch();
}
19. Hacer un programa que lea los nombres, edades y tallas de N atletas. N es
declarado como constante. Trabaje con 10 atletas .El programa debe calcular:
a) El promedio de las edades y de las tallas.
b) Determinar cuntos atletas son menores de edad (menores de 18 aos) y
cuantos atletas son mayores de edad.
c) Determinar los nombres de los atletas que son ms altos que el promedio.
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<iomanip.h>
const int N = 3;
void main()
{
char Nom[N][25];
int Edad[N], i, CanMenEdad, CanMayEdad, SumEdad;
double Talla[N], PromTalla, SumTalla, PromEdad;
for(i=0;i<N;i=i+1)

24

ARREGLOS

{
gets(Nom[i]);
cin>>Edad[i];
cin>>Talla[i];
}
SumEdad = 0;
SumTalla = 0;
for(i=0;i<N;i=i+1)
{
SumEdad=SumEdad+Edad[i];
SumTalla = SumTalla + Talla[i];
}
PromEdad = SumEdad/N;
PromTalla = SumTalla/N;
CanMenEdad = 0;
CanMayEdad = 0;
for(i=0;i<N;i=i+1)
{
if ( Edad[i] < 18 )
{ CanMenEdad = CanMenEdad + 1; }
else
{ CanMayEdad = CanMayEdad + 1; }
}
for(i=0;i<N;i=i+1)
{

25

ARREGLOS

cout<<setw(25)<<Nom[i]<<setw(10)<<Edad[i]<<setw(10)<<Talla[i]<<endl;
}
cout<<setw(35)<<PromEdad<<setw(10)<<PromTalla<<endl;
cout<<"Numero de atletas menores de edad : "<<CanMenEdad<<endl;
cout<<"Numero de atletas mayores de edad : "<<CanMayEdad<<endl;
cout<<"Los atletas mas altos al promedio son: "<<endl;
for(i=0;i<N;i=i+1)
{
if(Talla[i] > PromTalla)
cout<<Nom[i]<<endl;
}
getch();
}
20. Hacer un programa que inicialice nombre, direccin y telfono de 5 amigos y
muestre datos de uno de ellos, si se ingresa por teclado el ndice del arreglo.
Debe mostrar repetidamente los datos de un amigo. Hacerlo hasta que se ingrese
por teclado un ndice fuera del rango (0-4).
#include<iostream.h>
#include<conio.h>
#include<iomanip.h>
void main()
{
char nomb[5][30] = {"Ada Lugo","Alberto C.", "Jorge B.", "Andre F.",
"Miura F."};
char direc[5][30] = {"Av.Los Naranjos 120", "Av,Sucre 115", "Av. Lima

26

ARREGLOS

1230", "Jr. Cuzco 130","Av. La Paz 340"};


char telef[5][10] = {"5423450","5257820", "2345678", "4567213",
"3124567"};
int i;
cout<<setw(30)<<"NOMBRE:"<<setw(30)<< "DIRECCION:" << setw(10)
<<"TELEFONO:" <<endl;
for (i=0; i<= 4; i=i+1)
{ cout<<setw(30)<<nomb[i]<<setw(30)<<direc[i]<<setw(10) <<telef[i] <<
endl;

} cout<<"Ingrese el indice ";

cin>>i;
while ((i>=0) && (i<5))
{ cout<<setw(30)<<nomb[i]<<setw(30)<<direc[i]<< setw(10) << telef[i]
<<endl;
cout<<"ingrese el indice : ";
cin>>i;
}
getch();
}
Ejercicios Propuestos
1.

Dado dos vectores A y B de 15 elementos cada uno obtener un vector C


donde la posicin i se almacena la suma de A[i] + B[i] y mostrar el mayor
de los C[i].

27

ARREGLOS

2.

Escriba un programa que determine si una palabra es palndromo. Un


palndromo es un array de caracteres que se lee de igual forma en ambos
sentidos; por ejemplo ana.

3.

Escribir un programa en el que se genere aleatoriamente un vector de 20


nmeros enteros. El vector ha de quedar de tal forma que la suma de los 10
primeros elementos sea mayor que la suma de los 10 ltimos elementos.
Mostrar el vector original.

4.

Hacer un programa que permita ordenar alfabticamente una lista de


nombres de tamao N considerado constante. El tamao mximo de las
cadenas considrela 20.

5.

Escribir un programa, que lea una lista de nmeros enteros positivos y los
muestre en pantalla. Luego, si hay nmeros repetidos, deben eliminarse de la
lista y dejar slo uno de cada nmero e imprimir la nueva lista.

6.

Una librera que comercializa 5 productos diversos, maneja los siguientes


arrays:
- cosUni

que guarda el Precio costo de cada producto

- preUni

que guarda el Precio venta de cada producto

- UnidVend que guarda las unidades vendidas en un mes


Hacer un programa que permita calcular:

7.

a)

El monto de dinero invertido,

b)

El monto de la venta, la ganancia en cada producto y la ganancia total


Sea Par un arreglo de enteros de tamao 10, realice un programa que

cargue de forma automtica nmeros de pares en cada una de sus posiciones.


8.

Sea Impar un arreglo de enteros de tamao 10, realice un programa que


cargue de forma automtica nmeros impares en cada una de sus posiciones.

28

ARREGLOS

9.

Hacer un programa que calcule la nota de un alumno en una prueba 10


preguntas de opciones mltiples ('a',...o,'e'). Cada pregunta se evala con dos
puntos. Debe inicializa un arreglo con las respuestas correctas. El programa
debe mostrar el nombre, el arreglo de respuestas correctas y el arreglo de
respuestas del alumno y la nota del alumno.

10.

Programa que llene un arreglo de 5 Nmeros, que pida al usuario


nmeros enteros y que multiplique los nmeros introducidos por 2, y esos
nmeros introducidos, los imprima en pantalla. De ser posible que imprima
primero los nmeros introducidos y luego esos nmeros pero ya
multiplicados.

11.

Sea Par_Impar un arreglo de enteros de tamao 10, realice un programa


cargue de forma automtica nmeros pares en las posiciones que sean pares
e impares donde las posiciones sean impares.

12.

Sea un vector A de 5 elementos realice las siguientes operaciones.

Los elementos del vector deben ser nmeros negativos pares.


Determine cul es el mayor elemento del vector (may_A).
Determine cul es el menor elemento del vector (men_B).
13.

Desarrolle un programa que realice la siguiente operacin. Se tienen dos


vectores de 5 elementos numricos cada uno, realizar la resta del Vector A
menos el Vector B y almacenar el resultado en un Vector C (C = A -B),
determinar el promedio de la suma de los elementos del Vector C (prom_C).

14.

Continuando el ejercicio anterior, multiplique los valores que se


encuentren en las posiciones impares del vector A (mult_impar_A), realice
lo mismo para el vector C (mult_impar_B), determine cul de los 2 valores
es mayor.

29

ARREGLOS

15.

Llenar un Vector A de 6 elementos numricos y determinar suma de


todos sus elementos, promedio de los elementos y cuantos elementos estn
por encima del promedio. Realice la mismas operacin para el Vector B =
4A. Imprima el promedio de A y de B, indique cual es el mayor de los
promedios.

16.

Tiene 3 Vectores de 4 elementos numricos cada uno, realice la suma del


Vector A, B y C y guarde el resultado en un Vector D. Sobre el Vector
resultante D sume en la posicin 3 del Vector el valor numrico 10. En la
primera posicin del vector A sume el valor numrico 7, realice la misma
operacin para el vector B. Determine cul es el mayor elemento en la
posicin 0 entre los vectores A y B.

17.

Dado dos Vectores A y B de 7 elementos numricos cada uno realice la


siguiente operacin. Llene el Vector A con nmeros pares comprendidos en
el intervalo 100 a 120. El Vector B debe llenarse a partir del ltimo elemento
del Vector A (forma decreciente). El resultado es que el primer elemento del
vector B debe ser el ltimo elemento del vector A, y el ltimo elemento del
vector B debe ser el primer elemento del vector A. Reste ambos Vectores AB y almacnelo en el vector R.

18.

Construya un algoritmo que realice la siguiente operacin. Sean 2


vectores numricos A y B de 9 elementos numricos cada uno. El vector A
se debe llenar solo con valores pares y el vector B solo con vectores impares.
En un vector C guarde el resultado de ejecutar 3A + 2B. Imprima el vector C
en forma descendente. Determine el promedio del vector A y el promedio
del VectorB.

30

ARREGLOS

19.

Construya un algoritmo que realice las siguientes operaciones. Tiene dos


vectores numricos de 100 elementos cada uno. Asegrese que para cada
vector no existan dos elementos consecutivos repetidos. Para el vector A
determine el promedio de valores de las posiciones pares del vector; para el
vector B determine el promedio de valores de las posiciones impares del
vector. Sume los dos vectores gurdelos en un vector C. Imprima C.
Imprima el promedio pedido para el vector A y para el vector B.

20.

Construya un algoritmo que realice las siguientes operaciones. Tiene 4

vectores A,B,C y D de 10 elementos numricos cada uno, llene el vector A con


nmeros pares, el vector B con nmeros impares, el vector C con la suma de A +
B, el vector D con la resta de A B. Determinar la suma de cada vector y
utilizarlo para llenar el vector R que 4 elementos numricos, es decir la suma del
vector A corresponde a la posicin 0 del Vector R, la suma del vector B
corresponde a la posicin 1 del vector R, y as respectivamente con C y D.
Imprima el vector R.

ARREGLOS MULTIDIMENSIONALES

Arreglos Bidimensionales
Un arreglo bidimensional es un array de arrays unidimensionales. Se puede
visualizar a un arreglo bidimensional como una matriz con filas y columnas. El
primer ndice indica la fila y el segundo indica la columna
Un array bidimensional es aquel en donde los componentes son accesibles
por medio de una pareja de ndices que apunten a la fila y a la columna del
componente requerido. Los arrays de este tipo son conocidos tambin con el

31

ARREGLOS

nombre de matrices.

Conceptualmente, podemos

pensar

en un

array

bidimensional como en una lista compuesta de filas y columnas, en donde para


referirnos a una de ellas emplearemos un nmero para indicar la posicin de fila
y otro nmero para indicar la posicin de la columna del componente deseado.
Declaracion
Los arreglos bidimensionales se declaran de acuerdo al esquema:
<TIPO>

<NOMBRE_matriz>

[<M>] [<N>];

tipo

variable[filas][columnas];

<clase de datos del elemento><nombre del arreglo> [<nmero de filas>],


[<nmero de columnas>];
Arreglos Tridimensionales o de ms dimensiones
Es una estructura de datos estadstica y de un mismo tipo de datos, y de
longitud fija que almacena datos de forma matricial.
De igual forma que los arreglos unidimensionales, el almacenamiento de los
datos en la memoria se realiza en forma secuencial y son accedidos mediante
ndices. Los arreglos multidimensionales son tambin conocidos como tensores.
Declaracion
La sintaxis de declaracin de arrays multidimensionales es:
Tipo_dato identificador [dimensin1][dimension2].[dimensionN];
Donde N es un nmero natural positivo (tambin aplicable a los
tridimensionales).
Ejercicios Resueltos

32

ARREGLOS

1. Programa que realiza la suma de dos matrices.


void suma(int A[][MAX], int B[][MAX],
int C[][MAX], int row, int col)
{for
(int i=0; i< i=0; i< row; i++)
for (int j = 0; j < col; j++)
C[i][j]=A[i][j]+B[i][j];
}
2. Programa que imprime la diagonal de una matriz.
#include <stdio.h>
#include <stdlib.h>
#define size 3
void lectura(int A[][size], int row);
void imprime(int A[][size], int row);
void diagonal(int A[][size], int row);
main()
{ int matriz[size][size];
lectura(matriz,size);
imprime(matriz,size);

33

ARREGLOS

printf("Los elementos de la diagonal son: ");


diagonal(matriz,size);
system("pause");
return 0;
}
3. Programa que transforme la fecha de formato dd/mm/aa al formato dd de
mes de 20aa.
int main()
{char fecha[8];
int mes,dia,year;
char
meses[12][12]={"Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio"
,"Agosto",
"Septiembre","Octubre","Noviembre","Diciembre"};
printf("Proporciona una fecha en el formato dd/mm/aa ");gets(fecha);
if (check_format(fecha))
{ dia = ((fecha[0]-48)*10)+(fecha[1]-48);
mes = ((fecha[3]-48)*10)+(fecha[4]-48);
year = ((fecha[6]-48)*10)+(fecha[7]-48);
if (year <= 10)

34

ARREGLOS

year += 2000;
else
year += 1900;
if ((dia < 32) && (dia > 0) && (mes < 13) && (mes > 0))
printf("\n\n%d de %s de %d\n\n", dia, meses[mes-1],year);
else
printf("\nError en la fecha\n");
}
else
printf("\nError en el formato\n");
system("pause");
return 0;
}
4. En un arreglo tridimensional se almacenan las ventas mensuales de los
ltimos 8 aos de los tres departamentos de una empresa textil: hilos, lanas y
licra. Escribe un programa en C que obtenga la venta de la empresa en el
segundo ao.
float ventas(float textil[][MONTH][YEAR],
int mes, int depart, int year)
{

35

ARREGLOS

int i,j;
float suma=0;
for(i=0; i < depart; i++)
for(j=0; j < mes; j++)
suma += textil[i][j][year-1];
return suma;
}
5.

Que rellene un array con los 100 primeros nmeros enteros y los muestre en
pantalla en orden ascendente.
#include <stdio.h>
#include <stdlib.h>
int main(void)
{

int x,tabla[100];
for (x=1;x<=100;x++)
{
tabla[x]=x;
}
for (x=1;x<=100;x++)
{

36

ARREGLOS

printf("%d\n",tabla[x]);
}
system("PAUSE");
return 0;
}
6.

Que rellene un array con los nmeros primos comprendidos entre 1 y 100 y
los muestre en pantalla en orden ascendente.
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int x,cont,z,i,tabla[100];
i=0;
for (x=1;x<=100;x++)
{
cont=0;
for (z=1;z<=x;z++)
{
if (x%z==0)

37

ARREGLOS

{
cont++;
}
}
if (cont==2 || z==1 || z==0)
{
tabla[i]=x;
i++;
}
}
for (x=0;x<i;x++)
{
printf("%d\n",tabla[x]);
}
system("PAUSE");
return 0;
}
7. Que lea 10 nmeros por teclado, los almacene en un array y muestre la suma,
resta, multiplicacin y divisin de todos.

38

ARREGLOS

#include <stdio.h>
#include <stdlib.h>
int main(void)
{

int x,tabla[10];
int sum,res,mul,div;
for (x=0;x<10;x++)
{
printf("Introduzca nmero\n");
scanf("%d",&tabla[x]);
}
sum=tabla[0];
res=tabla[0];
mul=tabla[0];
div=tabla[0];
for (x=1;x<10;x++)
{
sum=sum+tabla[x];
res=res-tabla[x];
mul=mul*tabla[x];

39

ARREGLOS

div=div/tabla[x];
}
printf("Suma: %d\n",sum);
printf("Resta: %d\n",res);
printf("Multiplicacin: %d\n",mul);
printf("Divisin: %d\n",div);
system("PAUSE");
return 0;
}
8.

Que lea 10 nmeros por teclado, los almacene en un array y los ordene de forma
ascendente.
#include <stdio.h>
#include <stdlib.h>
int main()
{
float aux, numeros[10];
int i,j,n=10;
for (i=0;i<n;i++){
printf("Escriba un nmero");

40

ARREGLOS

scanf("%f",&numeros[i]);
}
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(numeros[i]<numeros[j])
{
aux=numeros[i];
numeros[i]=numeros[j];
numeros[j]=aux;
}
}
}
for (i=n-1;i>=0;i--){
printf("%f\n",numeros[i]);
}
system("PAUSE");
return 0;

41

ARREGLOS

}
9. Que lea 5 nmeros por teclado, los copie a otro array multiplicados por 2 y
muestre el segundo array.
#include <stdio.h>
#include <stdlib.h>
int main()
{
int aux, numeros1[5],numeros2[5];
int i,j;
for (i=0;i<5;i++){
printf("Escriba un nmero");
scanf("%d",&numeros1[i]);
}
for(i=0;i<5;i++)
{
numeros2[i]=numeros1[i]*2;
}
for (i=0;i<5;i++){
printf("%d\n",numeros2[i]);

42

ARREGLOS

}
system("PAUSE");
return 0;
}
10. Que muestre los primeros 100 nmeros de izquierda a derecha usando un
array de dos dimensiones.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{

int x,y, numeros[10][10];


for (x=0;x<10;x++)
{

for (y=0;y<10;y++)
{

numeros[x][y]=(x*10)+1+y;

}
}
for (x=0;x<10;x++)
{

for (y=0;y<10;y++)
{
}

printf("%d ",numeros[x][y]);

43

ARREGLOS

printf("\n");
}

system("PAUSE");
return 0;
}
11. Que rellene un array de dos dimensiones con nmeros pares, lo pinte y
despus que pida una posicin X,Y y mostrar el nmero correspondiente.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{

int x,y,num=2, numeros[3][3];


for (x=0;x<3;x++)
{

for (y=0;y<3;y++)
{
numeros[x][y]=num;
num=num*2;
}

44

ARREGLOS

printf("Introduzca coordenada x: ");


scanf("%d",&x);
printf("Introduzca coordenada y: ");
scanf("%d",&y);
printf("El nmero es: %d\n",numeros[x][y]);
system("PAUSE");
return 0;
}
12. Llenado de un arreglo de enteros de dimensin 3x2. En este ejemplo el llenado
lo realiza el usuario, en otros ejemplos se ver como realizar llenado de matrices
mediante asignacin automtica, clculos de operaciones, etc.
#include <iostream>
using namespace std;
int main()
{ int matriz [3][2];
int valor;
for(int i=0;i<3;i++) // Recorre las filas de la matriz
{ for(int j=0; j<2;j++) // Recorre las columnas de la matriz
{
cout<<"Ingrese el valor de la matriz en la posicion ["<<i<<","<<j<<"]"<<endl;

45

ARREGLOS

cin>>valor;
matriz[i][j] = valor;
}
}
for(int i=0;i<3;i++)
{
cout<<"|";
for(int j=0; j<2;j++)
{
cout<<"\t"<<matriz[i][j]<<"\t";
}
cout<<"|"<<endl;
}
return 0;}
13. Desarrolle un programa que lea una cadena y diga cuantas vocales hay.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{

int sum=0,x;

46

ARREGLOS

char frase[50];

printf("Introduzca una frase: ");


gets(frase);
for(x = 0;x < 50;x++)
{

switch (frase[x])
{
case 'a':
sum++;
break;
case 'e':
sum++;
break;
case 'i':
sum++;
break;
case 'o':
sum++;
break;

47

ARREGLOS

case 'u':
sum++;
break;
default:
break;
}
}
printf("\n\nEn la frase hay %d vocales\n\n",sum);
printf("\n\n");
system("PAUSE");
return 0;
}
Ejercicios Propuestos
1. Escribir una funcin que acepte como parmetro un vector que puede contener
elementos duplicados. La funcin debe sustituir cada valor repetido por -5 y
devolver al punto donde fue llamado el vector modificado y el nmero de
entradas modificadas.
2.

Escribir una funcin a la que se le proporcione una fecha (da, mes, ao), as
como un nmero de das a aadir a esta fecha. La funcin debe calcular la nueva
fecha y visualizarla.

48

ARREGLOS

3.

Escribir una funcin conversin que reciba como parmetro una cadena
representando una fecha en formato dd/mm/mm, como 17/11/91 y la devuelve
en forma de texto: 17 de Noviembre de 1991.

4.

Escribir un programa en el que se genere aleatoriamente un vector de 20


nmeros enteros. El vector ha de quedar de tal forma que la suma de los diez
primeros elementos sea mayor que la suma de los diez ltimos elementos.
Mostrar el vector original y el vector con la distribucin indicada.

5.

El juego del ahorcado se juega con 2 personas (o una persona y una


computadora). Un jugador selecciona una palabra y el otro jugador trata de
adivinar la palabra adivinando letras individuales. Disear un programa para
jugar al ahorcado. Sugerencia: almacenar una lista de palabras en un array y
seleccionar palabras aleatoriamente.

6.

Escribir un programa que permita escribir en sentido inverso una cadena de


caracteres.

7.

Buscar una palabra en una cadena y calcular su frecuencia de aparicin.

8.

Escribir un programa que lea una frase, sustituya todas las secuencias de 2 o
+ blancos por un solo blanco y visualice la frase restante.

9.

Escribir un programa que desplace una palabra leda del teclado desde la
izquierda hasta la derecha de la pantalla.

10.

Escribir una funcin que intercambie la i-esima por j-esima de un array MxN.

11.

Escribir un programa que lea una coleccin de cadenas de caracteres de


longitud arbitraria. Por cada cadena leda, su programa har lo siguiente:
a) Visualizar la longitud de la cadena.
b) Contar el nmero de ocurrencia de palabras de 4 letras.

49

ARREGLOS

c) Sustituir cada palabra de 4 letras por una de cadena de 4


asteriscos e imprimir una nueva cadena.
12.

Escribir un programa que lea una serie de cadenas, a continuacin, determine


si la cadena si la cadena es un identificador valido C++. Sugerencias: utilizar los
siguientes subprogramas: longitud (tamaos del identificador en el rango
permitido); primero (determinar si el nombre comienza con un smbolo
permitido); restantes (comprueba si los restantes son caracteres permitidos).

13.

Escribir un programa que convierta un numero romano (en forma de cadena


de caracteres) en nmero arbigo.

14.

Escribir un programa que lea el array:


4

Y lo visualice como:

15.

Un vector se dice que es simtrico si el elemento que ocupa la posicin iesima coincide con el que ocupa la posicin n-iesima, siempre que el nmero de
elementos que almacena el vector sea n. Por ejemplo el vector que almacena los
valor 2,4,5,4,2 es simtrico. Escribir una funcin que decida si el vector de n
datos que recibe como parmetro es simtrico.

50

ARREGLOS

16.

Escribir una funcin que reciba como parmetro, una matriz cuadrada de
orden N, y calcula la transpuesta de la matriz almacenando el resultado en la
propia matriz.

17.

Un vector que almacena n datos se dice que es mayoritario, si existe un


elemento almacenado en el vector que se aparece en el vector ms de n/2 veces.
Escribir una funcin que decida si un vector es mayoritario.

18.

Escribir una funcin que reciba como parmetro una matriz cuadrada de
orden N y decida si es simtrica. Una matriz cuadrada de orden N es simtrica si
A[i][j]==A[j][i] para todos los valores de los ndices i,j.

19.

Codificar un programa C++ que lea una frase y decida si es palndroma. Una
frase se dice que es palndroma si despus de haber eliminado los blancos, se
puede leer de igual forma en los 2 sentidos.

20.

Escribir un programa que lea una frase y, a continuacin, visualice cada


palabra de la frase en columna, seguido del nmero de letras que compone cada
palabra.

CARACTERES Y CADENAS

Introduccin
Despus de haber aprendido como manejar TEXTO en C++, ya que hasta el
momento solo sabemos cmo mostrar un texto en pantalla mediante el comando cout.
En C++ se usaran arrays de caracteres para almacenar texto ya que C++ no tiene un tipo
de datos bsico para almacenar datos como lo es el tipo string.
Caracter

51

ARREGLOS

Un carcter es una unidad de informacin que corresponde aproximadamente con


una unidad o smbolo parecido, como los de un alfabeto o silabario de la
forma escrita de un lenguaje natural.

Cadena de caracteres
Una cadena en C++ es un conjunto de caracteres, o valores de tipo char, terminados
con el carcter nulo, es decir el valor numrico 0. Internamente, en el ordenador, se
almacenan en posiciones consecutivas de memoria. Este tipo de estructuras recibe un
tratamiento muy especial, ya que es de gran utilidad y su uso es continuo.
La manera de definir una cadena es la siguiente:
char<identificador>[<longitud mxima>];
Arreglos y Cadena de caracteres

Hasta el momento vimos ejemplos de arreglos enteros. De la misma manera


podramos crear un arreglo de caracteres, lo que nos permite manipular cadenas.

Ejemplo de declaracin:

char arregloCadena[] = "buenas";

Notemos que no hemos especificado ndice alguno, el compilador contar la cantidad


de letras que tiene la cadena "buenas" (son 6) y agregar uno para incluir el caracter
nulo ( '\0' ). El caracter nulo indica la terminacin de la cadena, es importante siempre
tenerlo en cuenta.

Ejemplo de declaracin:

52

ARREGLOS

char arregloCadena2[7] = {'b','u','e','n','a','s','\0'};

En esta declaracin inicializamos cada uno de los elementos del arreglo de manera
individual. Notar que inicializamos explcitamente en el elemento 7 del arreglo al
carcter nulo '\0'.

Ejemplo de declaracin:

char arregloCadena3[] = "otra cadena";

El arregloCadena3, reservar 12 lugares en memoria, ya que adems de los 10 que


suman las palabras, hay un espacio y el carcter nulo.

Arreglos y "cin >>"

Podemos utilizar cin >> arregloCadena para asignar a un arreglo (desde el teclado o
entrada estndar), pero debemos tener en cuenta que cin >>leer y asignar hasta
detectar el primer carcter en blanco (espacio).

Ejemplo de "cin >>"

char arregloCadena4[25]; cin >> arregloCadena4;

Si aqu el usuario introdujera "hace calor" por teclado,


el arregloCadena4 almacenara solamente la cadena "hace" y " calor" se ignorara por
completo. Tambin podra suceder que el usuario ingrese ms de 24 caracteres (el
ltimo es el nulo) lo que ocasionara una "Violacin de segmento al tratar de asignar
valores por fuera del arreglo, as que el programador debera estar atento al uso de cin
>> con arreglos.

53

ARREGLOS

Ejemplo

En el ejemplo que sigue, utilizamos una funcin llamada cuentaCaracteres definida


despus del cuerpo de main(). Esta funcin cuenta los elementos de los arreglos de
tipo char, que le llegan como parmetros. Para esto utiliza un ciclo for, que incrementa
su variable de control i hasta que cadena[i] sea igual al carcter nulo ('\0'). Cuando esto
sucede la funcin devuelve el valor de i.Luego dentro de main() tambin se utiliza un
ciclo exacto for, para mostrar los elementos individuales de cuentaCadena.

Manejo de excepciones

Las excepciones son en realidad errores durante la ejecucin. Si uno de esos errores
se produce y no implementamos el manejo de excepciones, el programa sencillamente
terminar abruptamente. Es muy probable que si hay ficheros abiertos no se guarde el
contenido de los buffers, ni se cierren, adems ciertos objetos no sern destruidos, y se
producirn fugas de memoria.
En programas pequeos podemos prever las situaciones en que se pueden producir
excepciones y evitarlos. Las excepciones ms habituales son las de peticiones de
memoria fallidas.
Veamos este ejemplo, en el que intentamos crear un array de cien millones de enteros:
#include<iostream>
using namespace std;
int main()
{ int *x=NULL;
int y= 100000000;
x= new int[y];

54

ARREGLOS

x[10] = 0;
cout<<Puntero: <<(void*) x<<endl;
delete[] x;
return 0;
}
El sistema operativo se quejar, y el programa terminar en el momento que
intentamos asignar un valor a un elemento del array.
String
Las strings son un caso especial de arreglo de caracteres, las cuales presentan ciertas
peculiaridades que no son posibles de resolver con mtodos usuales.
Por ejemplo no es vlido usar simples sentencias de asignacin o comparacin.
1.

char nombre [30], copia[nombre];

copia = nombre; esto no es vlido en CPP


2.

if(opcion==si) Tampoco es vlido en CPP

Para casos como estos se debern usar ciertas funciones de manipulacin de strings que
provee el lenguaje C, estas funciones son:
#include <string.h>
a) STRCPY (string destino, string original): Se utiliza para copiar el contenido de
un string original en un string de destino. Ejemplo:
char nombre[30],copia[30];
nombre= getstring(nombre);
strcpy(copia,nombre);
strcpy(nombre,pato);
b) STRCAT (string1,string2): Encadena o agrega al final de la string1 la string2.
Ejemplo: char nombre[30],copia[30];

55

ARREGLOS

strcpy(nombre,pepe);
strcat(nombre,lopez);
c)

STRCMP (string1,string2): Se utiliza para comparar 2 strings, esta funcin


regresa cero si ambas strings son iguales, regresa un numero mayor que cero si
string 1 es mayor que string 2 y regresa un nmero menor que cero si string 1 es
menor alfabticamente que string 2. Ejemplo:
char opcion[3];
strcmp(opcion,si);
if(strcmp(opcion,si)==0)

d)

STRLEN (string): Esta funcin regresa la cantidad de caracteres que tiene la


string.
Sintaxis: size_t strlen(const char *s);
Ejemplo:
char*nombre =Nataly M. Palacios;
cout<<strlen(nombre)<<endl;

Validacin de Datos de Entrada


Para poder hacer la comprobacin efectivamente es necesario el uso de la
librera iostream. El estado de flujo se puede comprobar por medio de los bits de la
clase ios. La cual es la clase base de istream, ostream e iostream, ests son las ms
utilizadas para el flujo de Entrada y Salida en C++.
La instruccin cin.clear(); borra y establece el flujo a goodbit; Cuando se establece
gootbit todos los flags de error son limpiados.
La instruccin cin.ignore(1024, '\n') Ignorar hasta 1024 caracteres introducidos hasta
encontrar un ENTER o viceversa, lo que primero ocurra.
La instruccin cin.fail() retorna true si una operacin de flujo a fallado y es posible

56

ARREGLOS

realizar una recuperacin de esos errores.


La instruccin cin.rdstate() retorna true si el estado de flujo es correcto.

Espacio de nombres

En general, en informtica, un namespace o espacio de nombres es un medio para


organizar clases dentro de un entorno, agrupndolas de un modo ms lgico y
jerrquico. Por ejemplo, si estamos desarrollando un conjunto de clases para las
operaciones de gestin de una biblioteca, podemos ir escribiendo todas las clases y
situarlas dentro de una misma aplicacin o DLL (biblioteca). Supongamos que tenemos
dos clases para operaciones de gestin de prstamos, denominadas Titulo y Fecha, y
otras dos clases para operaciones de compra, denominadas Factura y Precio.

Si necesitramos aadir una clase ms para las compras que registre el ttulo del
libro, el nombre ms idneo sera Titulo, pero este nombre ya est siendo utilizado, as
que para evitar problemas de duplicidad, deberamos elegir otro que puede que no se
ajuste a definir la funcionalidad de la clase.

Este problema se solucionara mediante el uso de espacios de nombre que, adems,


permite organizar mejor cada clase, ya que podemos asignarle un nombre jerrquico
para la funcionalidad que desempea. De esta forma, podramos crear
un namespace con el nombre Gestion, que contuviera otros
dos namespaces llamados Prestamo y Compra, para finalmente incluir en cada uno de
ellos las clases correspondientes.

Los espacios de nombres permiten eliminar las ambigedades y solucionar los


problemas de homonimia que se producen en los documentos, ya que en un mismo

57

ARREGLOS

documento existen palabras con el mismo nombre (p.e. "capital"), pero con diferentes
significados y espacios semnticos (trmino geogrfico/trmino econmico-financiero).
Veamos un ejemplo en el que se produce ambigedad:

capital
<pas nombre=Espaa>

capital
<inversin>

<capital>Madrid</capital> <capital>2000</capital>

</pas>

</inversin>

Bibliografia

Aranguren E. (Mayo 27, 2007). Apuntadores. 2014, de Rincn del vago Sitio
web: http://html.rincondelvago.com/apuntadores-en-lenguajes-deprogramacion.html

Tejeda H. (No especificad).. Manual de C Tutorial de C curso de C C++. 2014,


de Programatium Sitio web:
http://www.programatium.com/manuales/c/7.htm#SECTION007100000000000
0000

Len W. (Diciembre 05, 2008). Ejercicios De Programacin Bsica En C++.


2014, de Blogspot Sitio web: http://ejerpbas.blogspot.com/2008/12/arreglos.html

Garca G. (No especificada). Problemas resueltos de arreglos. 2014, de Uap


Sitio web:
http://www.uap.edu.pe/pregrado1/02/trabajos/02119/PW_alas/cap_4_otros_prob
_res_array.htm

58

ARREGLOS

Cisneros E. (Diciembre 23, 2009). Lenguaje C++ Arreglos unidimensionales y


multidimensionales. 2014, de Aldea Universitaria Fray Pedro de Agreda Sitio
web: http://aldeafraypedrodeagreda.files.wordpress.com/2009/12/11-arreglosmultidimensionales.pdf

Annimo. (Mayo, 2013). Ejercicios resueltos Arreglos C++. 2014, de Blogspot


Sitio web: http://cosasresueltas.blogspot.com/2013/05/ejercicios-resueltosarreglos-c.html

Annimo. (No especificado). Manipulacin de cadenas. 2014, de Visual Studio


.NET Sitio web: http://msdn.microsoft.com/espe/library/aa903372(v=vs.71).aspx

Paszniuk R. (Abril 23, 2013). Arreglos y Cadenas en C++. 2014, de


Programacin Sitio web: http://www.programacion.com.py/escritorio/c/arreglosy-cadenas-en-c

Annimo. (Octubre 10, 2013). Caracter (tipo de dato). 2014, de Wikipedia Sitio
web: http://es.wikipedia.org/wiki/Car%C3%A1cter_%28tipo_de_dato%29

Annimo. (No especificado). Curso de C++. 2014, de cconclase.net Sitio web:


http://c.conclase.net/curso/?cap=008

Annimo. (No Especificado). Introduccin al tipo cadena. 2014, de Nebrija


Sitio web:
http://www.nebrija.es/~abustind/Informatica/MetodologiaI/Cadenas.pdf

Lamarca M. (Diciembre 8, 2013). Espacios de nombre (namespace). 2014, de


Hipertexto Sitio web: http://www.hipertexto.info/documentos/namespaces.htm

Annimo. (Noviembre 29, 2010). Validacin de tipos de datos en C++. 2014,


de Cristalab Sitio web: http://www.cristalab.com/tutoriales/validacion-de-tiposde-datos-en-c--c92149l/

59

ARREGLOS

Annimo. (No especificado). String como arreglo de caracteres. 2014, de


Programacin Facil Sitio web: http://www.programacionfacil.com/cpp/string

Annimo. (No especificado). Curso de C++. 2014, de cconclase Sitio web:


http://c.conclase.net/curso/?cap=043

60

Anda mungkin juga menyukai