Beruflich Dokumente
Kultur Dokumente
Lugar de Ejecucin:
Centro de Computo
Tiempo Estimado:
2 horas y 30 minutos
MATERIA:
Introduccin a la Programacin
I. OBJETIVOS
Que el estudiante:
Qu es un Arreglo?
Muchas aplicaciones requieren el procesamiento de mltiples datos que tienen caractersticas comunes, por
ejemplo, un conjunto de datos numricos, representados por x1, x2, x3 x4 hasta un xN. En tales situaciones, es
conveniente colocar los datos en un arreglo, el cual se caracteriza porque todos sus elementos comparten un
mismo nombre (en este ejemplo el nombre para la variable de arreglo seria x).
Los datos individuales pueden ser caracteres, nmeros enteros, nmeros de coma flotante de simple o de doble
precisin (reales).
Debe tenerse muy en cuenta que todos los N elementos de un arreglo se caracterizan en que: todos deben ser del
mismo tipo de dato y deben tener el mismo tipo de almacenamiento.
Al observar el conteo de ndices de la figura anterior, se debe tener muy claro que: al declarar un arreglo dentro
de Lenguaje C, con una dimensin de N elementos, el primer ndice disponible del arreglo comienza con 0
(cero) y el ltimo ndice es N-1 (uno menos del total N indicado para la dimensin).
Esta aclaracin es valida para el conteo de ndices de cada una de las dimensiones de un arreglo
multidimensional. Observe los ejemplos siguientes:
Ejemplo 1:
- Para declarar un arreglo unidimensional llamado MiLista con un total (una dimensin nica) de 5 elementos de
tipo entero, utilizara esta instruccin:
int MiLista [5];
- Si desea asignar el valor 956 a la cuarta posicin de MiLista, lo har referenciando a este elemento con la
siguiente instruccin:
MiLista[3]= 956; //ndice 3 del arreglo
Valor asignado
Introduccin a la Programacin
956
Declaracin de un Arreglo
Los Arreglos se declaran de igual forma que las variables ordinarias, excepto que cada nombre de Arreglo debe
acompaarse de una especificacin de tamao (es decir, el total de elementos por cada dimensin).
El tamao de cada dimensin se especifica con una expresin entera positiva encerrada entre corchetes [ ].
En trminos generales, la definicin de un Arreglo se puede expresarse como:
TipoDato nombre-arreglo [expresin] [expresion2] [expresion3] [expresionD]
En donde:
TipoDato es el tipo de datos comn para todos los elementos del arreglo
nombre-arreglo es el nombre del Arreglo
[expresin][expresin2][expresin3].. hasta [expresionD] es una o ms expresiones enteras positivas que
indican el total de elementos por cada dimensin del Arreglo. La multiplicacin de las dimensiones da el total
de elementos a crear.
El primer valor expresin es obligatorio para definir un arreglo unidimensional. Si se utiliza adems la
expresion2, se define un arreglo bidimensional (2 dimensiones). Si utiliza el resto de expresiones, crea un arreglo
multidimensional o matriz.
Ejemplos sobre definicin de arreglos y su respectivo significado respectivo:
int A[100];
float raices[5];
Arreglo llamado races que tiene 5 valores de comas flotantes (valores reales)
char texto[80];
Requerimiento
Cantidad
Compilador de C++.
Introduccin a la Programacin
IV. PROCEDIMIENTO
1. Cree una carpeta denominada IPguia08proc_CARNET, en el cual se guardara los cdigos fuente (cpp) de los
ejemplos del procedimiento a continuacin.
Mtodo 1: solicitando al Usuario los datos del Arreglo
Ejercicio 1: Proceso de Creacion, almacenamiento e impresin del contenido de un Arreglo/Array
GUIA8ejemplo1.cpp
#include <iostream>
#include <stdlib.h>
#include <conio.h>
using namespace std;
#define tam 20 //max. total de elementos
main(){//Llenado y Salida de Arreglo Unidimensional
int n; //total elementos a ingresar
int arreglo[tam];//Arreglo de 20 elementos
int j=0; //contador de ciclo e indice del arreglo
cout<<" INICIO: Datos del arreglo."<<endl;
cout<<endl<<"Valores actuales del arreglo:"<<endl;
for(j=0;j<tam; j++)
cout<<"Elemento["<<j+1<<"]=\t "<<arreglo[j]<<endl;
system("pause");
cout<<endl<<"LLENADO DEL ARREGLO"<<endl;
cout<<"Cuantos elementos tendra Arreglo(como Max 20):\t";
cin>>n;
if((n>0)&&(n<=tam)){
cout<<"\n\nIngreso de sus datos hacia el Arreglo"<<endl;
for(j=0;j<n; j++){
cout<<endl<<"Ingrese el elemento ["<<j+1<<"]:\t";
cin>>arreglo[j];
}//fin for j
system("pause");
system("cls");
cout<<"\tVista de datos almacenados en arreglo"<<endl;
for(j=0;j<tam; j++)
cout<<"Elemento ["<<j+1<<"] = "<<arreglo[j]<<endl;
}else
cout<<"*** ERROR: Entrada no Valida ***";
getch();
}//fin de main
Introduccin a la Programacin
Introduccin a la Programacin
Ejercicio 4: GUIA8ejemplo4.cpp
Determinar el numero mayor y menor de un vector de N elementos brindados por usuario.
#include <iostream>
using namespace std;
#include <conio.h>
#include <stdlib.h>
main(){ //Funcion principal
int n; //total de datos en arreglo
int i,mayor,menor; //contador de ciclos, valor mayor y menor del listado
cout<<"ENCONTRANDO NUMERO MAYOR Y MENOR ALMACENADOS EN UN ARREGLO";
cout<<endl<<endl<<"De cuantos elementos quiere su arreglo [1-20max]:\t";
cin>>n;
int vector[n]; //define arreglo para un total (n) de elementos enteros
system("cls");
cout<<"Ingrese c/u de los "<<n<<" datos del Arreglo:";
for(i=0; i<n; i++){
cout<< endl<<"Elemento ("<<i+1<<")?? : ";cin>> vector[i];
}//fin for i
//Se calcula menor y mayor valor dentro de arreglo
/*
(al iniciar) asigna los 1eros valores de arreglo
a las variables mayor y menor*/
mayor=vector[0]; menor=vector[0];
//comienza busqueda del verdadero dato mayor y menor en listado
Introduccin a la Programacin
for(i=0;i<n;i++){
//evalua numero almacenado en arreglo con variable mayor
//si el numero del arreglo es mayor que la variable, actualiza valor
if(vector[i]>mayor)
mayor=vector[i];
//de manera similar, se compara ahora con variable menor, para actualizarla
if(vector[i]<menor)
menor=vector[i];
}//fin for i
//imprimir resultados
cout<<endl<<endl<<"RESULTADOS"<<endl;
cout<<endl<<"Numero mayor dentro del arreglo es "<<mayor;
cout<<endl<<endl<<"y menor valor en arreglo es "<<menor;
getch();
}//fin main
Ejercicio 5: GUIA8ejemplo5.cpp
Manejo de un arreglo de tipo carcter (char)
#include<iostream>
#include<conio.h>
using namespace std;
main(){
char nom[25];//cadena string de 25 caracteres
int edad;
cout<<"Digite nombre completo de alumno: ";
//captura cadenas con espacios
cin.getline(nom,25);
//captura cadenas sin espacios
//cin>>nom;
cout<<"Digite la edad del alumno: "; cin>>edad;
if (edad>=18) cout<<endl<<"\tAlumno "<<nom<<" es mayor de edad";
else cout<<endl<<"\tAlumno "<<nom<<" es menor de edad";
getch();
} //fin main
PROBLEMAS A RESOLVER:
Elabore el cdigo fuente de C++ que solucionen a cada uno de los problemas a continuacin:
Ejercicio 6: GUIA8final.cpp
Crear un programa que permita almacenar en un vector 10 nmeros enteros de todo tipo (positivos, negativos,
ceros) e indique despus el porcentaje (con una sola cifra decimal de exactitud) de nmeros pares e impares, asi
como la cantidad de ceros que fueron almacenados en dicho vector.
Introduccin a la Programacin
Investigue 8 funciones (pertenecientes como minimo a 2 libreras diferentes de C/C++) para el manejo de
cadenas de caracteres en C/C++.
No tomar en cuenta a librera s t d i o . h
Elabore un programa ejemplo que en el que se demuestre a todas las funciones que investig anteriormente.
2. Desarrolle un programa en C que realice lo siguiente:
Solicite al contador del almacn La Milagrosa el monto de las ventas mensuales de todo el ao 2010.
Obtenga el porcentaje de los meses del ao que cumplieron los siguientes niveles de ventas:
Nivel ventas
Descripcion
Minimo
Regular
Excelente
Indique los nombres de los meses en los cuales la venta fue Excelente.
3.
Escriba un programa que lea una frase dada por usuario, para luego mostrar el total de palabras que la
conforman y el total de espacios en blanco que tiene la frase.
4.
Crear un vector que guarde las 9 notas mensuales (desde Enero hasta Septiembre) de un estudiante de
bachillerato. Una vez recibidas las notas, muestre al estudiante
a) nota promedio final
b) el porcentaje de meses en los cuales obtuvo menor nota que el promedio final
c) en cuales meses obtuvo notas mayores al promedio final.
Tomar en cuenta que una nota valida solo debe variar entre {0.0 a 10.0}.
No reciba una nueva nota mensual hasta que la nota actual a ingresar cumpla el rango indicado.
5.
Escriba un programa que determine, si una cadena de texto es palndromo. Es decir que se puede leer en
ambos sentidos, por ejemplo OSO al escribirla al revs resulta OSO.
VII. BIBLIOGRAFIA
Deitel, Harvey M. y Deitel, Paul J. CMO PROGRAMAR EN C++. 1ra Edicin. Editorial Mc Graw Hill
Pappas, Chris H. y Murray, William H. MANUAL DE REFERENCIA DE VISUAL C++ 6.0. 4ta Edicin
Editorial Prentice Hall (PEARSON).
Joyanes Aguilar, Lus. PROGRAMACIN EN C++ - ALGORITMOS, ESTRUCTURAS DE DATOS Y
OBJETOS. Editorial McGraw Hill, Espaa, 2000.
Introduccin a la Programacin