Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Pg. 1
NDICE
NDICE ..................................................................................................................................................... 1
1. Introduccin. ................................................................................................................................. 1
1.1
Ejercicio 1: Usando mi primer array ...................................................................................... 1
1.2
Ejercicio 2: Pasando los lmites al ejercicio anterior.............................................................. 2
1.3
Ejercicio 3: Calculando el Mayor y el Menor de un conjunto de nmeros. ........................... 2
1.4
Ejercicio 4: Ordenando un conjunto de nmeros. .................................................................. 2
1.5
Ejercicio 5: Ordenar sin olvidar el desorden inicial ............................................................... 4
1.6
Ejercicio 6: Jugando con las cadenas.................................................................................. 4
1. Introduccin.
Ha llegado el momento de empezar a trabajar con los Arrays, para lo cual se le dar
una pequea introduccin en el tema:
Un array (tambin conocido como arreglo, vector o matriz) es una coleccin de
variables relacionadas a las que se hace referencia por medio de un nombre en comn. Es un
modo de manejar una gran cantidad de datos del mismo tipo bajo un mismo nombre o
identificador.
Su forma general es: tipo nombre[ tamao ]
Ejemplo double datos[10] : En esta sentencia se reserva espacio para 10 variables de
tipo double, las cuales se van a manejar por medio del nombre datos y un ndice, el
cual en C++ siempre empieza por cero.
Los elementos se enumeran desde 0 hasta (n-1). Hay que tener mucho cuidado de no
sobre-pasar las dimensiones del array, en cuyo caso dara error el programa.
Si queremos acceder al primer elemento del ejemplo anterior: datos[0]=2.5; Al
segundo: datos[1]=4.5; Y as sucesivamente hasta el ltimo valor: datos[9]=3.5;
1.1 Ejercicio 1: Usando mi primer array
En este ejercicio vamos a generar una cantidad constante de nmeros aleatorios entre dos
lmites A y B dados por el usuario y los vamos a introducir en un array de doubles.
Sacaremos por la consola dichos nmeros con sus correspondientes races cuadradas, para lo
cual usaremos algunos manipuladores vistos en clase:
#include <iostream.h>
#include <math.h>
//para sqrt()
#include <stdlib.h>
//para rand()
#include <iomanip.h>
#define NUM 15
void main()
{
double datos[NUM];
//array
double A,B;
//limites
cout << "Dar limite A y B:";
cin >> A >> B;
//generacion de numeros con For
for (int i=0;i<NUM;i++){
double x = (double)rand()/RAND_MAX; //entre 0 y 1
datos[i] = A + x * (B - A);
//entre A y B
}
//imprimir datos con While
Informtica II Fundamentos de Programacin - Tecnun
Pg. 2
i=0;
while(i<NUM){
cout << "Num:"<< setw(8) << setprecision(5) << datos[i];
cout << " Sqrt:"<< sqrt(datos[i]) << endl;
i++;
}
} //fin de main
Pg. 3
Pg. 4
de todos los elementos siguientes (ndice j). Si se encuentra un elemento j con un valor menor
o mayor que i (segn sea el caso) se intercambian dichos elementos, pues estn desordenados
As pues, para implementar este algoritmo son necesarios dos bucles: el primero, bucle
i, recorre el vector desde la posicin i= 0 hasta i < NUM-1. El segundo bucle, bucle j, recorre
el vector desde la posicin j= i+1 hasta el final.
1.5 Ejercicio 5: Ordenar sin olvidar el desorden inicial
Este ejercicio consiste en guardar los datos dados al inicio en el ejercicio anterior, con el fin
de mantener los datos desordenados, tal cual fueron introducidos.
Para este ejercicio puede utilizar el proyecto anterior, pero debe crear un nuevo fichero
Ordena2.cpp, en el cual va a copiar todo el cdigo anterior. A partir de aqu empezar a hacer
las modificaciones.
Para desarrollar el ejercicio, debe crear otro array de enteros: int datoOld[NUM]; en
el cual debe copiar los datos introducidos al inicio. Recuerde que el algoritmo de ordenacin
modifica el vector.
Finalmente, debe sacar por la consola los dos arrays: a la izquierda el inicial y a la
derecha el ordenado, tal como se ve en la siguiente figura:
Orden elegido: Ascendente
VecIni VecFin
dato[0]:
1
1
dato[1]:
5
2
dato[2]:
9
5
dato[3]:
2
9
dato[4]:
40
40
//para strlen()
//para islower()
Pg. 5
}
Dentro de las funciones utilizadas tenemos:
strlen( char* ): devuelve la longitud de la cadena, hasta encontrar el carcter nulo \0.
islower( char ): esta funcin devuelve un true si el carcter est en minsculas.
toupper( char ): esta funcin convierte un carcter a maysculas.
tolower( char ): convierte a minsculas.
No olvide poner siempre los ficheros de encabezado para poder usar estas funciones.