Sunteți pe pagina 1din 12

INGENIERA CIVIL

PROGRAMACIN EN LENGUIAJE C++

AO DE LA DIVERSIFICACIN
PRODUCTIVA Y DEL FORTALECIMIENTO
DE LA EDUCACIN

Programacin en lenguaje C++


ING. Jos Alvarado Jurez
Ingeniera Civil

DATOS
o

Integrantes:
Navarro Atoche Deyanira
Pardo Mena Abigail
Roa Gallo Tatiana
Merino Viera Brayan
Tema:
Arrays o vectores

Sullana 31 de Diciembre 2015

INGENIERA CIVIL

PROGRAMACIN EN LENGUIAJE C++

ARRAYS O VECTOR
Definicin:
En programacin se denomina matriz, vector o formacin (en ingls arrays) a una zona de
almacenamiento continuo que contiene una serie de elementos del mismo tipo, los elementos
de la matriz.
Desde el punto de vista lgico una matriz se puede ver como un conjunto de elementos
ordenados en fila (o filas y columnas si tuviera dos dimensiones).
En principio, se puede considerar que todas las matrices son de una dimensin, la dimensin
principal, pero los elementos de dicha fila pueden ser a su vez matrices (un proceso que puede
ser recursivo), lo que nos permite hablar de la existencia de matrices multidimensionales,
aunque las ms fciles de imaginar son los de una, dos y tres dimensiones.

ndices de un array
Los ndices son nmeros que se utilizan para identificar a cada uno de los componentes de un
array.
Todo vector se compone de un determinado nmero de elementos. Cada elemento es
referenciado por la posicin que ocupa dentro del vector. Dichas posiciones son llamadas
ndice y siempre son correlativos. Existen tres formas de indexar los elementos de una matriz:

Indexacin base-cero (0): en este modo el primer elemento del vector ser la
componente cero ('0') del mismo, es decir, tendr el ndice '0'. En consecuencia, si el
vector tiene 'n' componentes la ltima tendr como ndice el valor 'n-1'. El lenguaje C es
un ejemplo tpico que utiliza este modo de indexacin.
Indexacin base-uno (1): en esta forma de indexacin, el primer elemento de la matriz
tiene el ndice '1' y el ltimo tiene el ndice 'n' (para una matriz de 'n' componentes).
Indexacin base-n (n): este es un modo verstil de indexacin en la que el ndice del
primer elemento puede ser elegido libremente, en algunos lenguajes de programacin
se permite que los ndices puedan ser negativos e incluso de cualquier
tipo escalar (tambin cadenas de caracteres).

La importancia de declarar arreglos de tamao adecuado


Al igual que cualquier variable, los arreglos ocupan espacio en memoria. El programador
especifica el tipo de dato y el total de elementos requerido por el arreglo de tal forma que la
computadora pueda reservar la cantidad apropiada de memoria. Si el programador declara un
arreglo de 100 elementos de tipo entero y slo utiliza 10 espacios, desperdicia 90 en memoria
para datos de tipo entero. Por lo contrario, si se declara un arreglo de 50 elementos y se
quieren manejar 100, faltarn 50 espacios; sin embargo, no se presentar mensaje de error en

INGENIERA CIVIL

PROGRAMACIN EN LENGUIAJE C++


el tiempo de compilacin o ejecucin, sino hasta que el sistema operativo se d cuenta y por lo
tanto surja la falla en el programa.

Se clasifica en:

Unidimensionales (vectores o listas)


Bidimensionales (tablas o matrices)
Multidimensionales (ms de dos dimensiones)

Los ms utilizados son los unidimensionales y los bidimensionales

DECLARAR Y CREAR UN ARRAY

Para declarar un array se escribe

Para declarar un array de enteros escribimos

tipo_de_dato[] nombre_del_array;
int[] numeros;

Para crear un array de 4 nmero enteros escribimos

La declaracin y la creacin del array se puede hacer en una misma lnea.

Numeros=new int[4];
int[] numeros =new int[4];

INICIALIZAR Y USAR LOS ELEMENTOS DEL ARRAY


Para inicializar el array de 4 enteros escribimos
Nmeros [0]=2;
Nmeros [1]=-4;
Nmeros [2]=15;

INGENIERA CIVIL

PROGRAMACIN EN LENGUIAJE C++


Nmeros [3]=-25;
Se pueden inicializar en un bucle for como resultado de alguna operacin
for (int i=0; i<4; i++){
numeros[i]=i*i+4;
}
No necesitamos recordar el nmero de elementos del array, su miembro dato length nos
proporciona la dimensin del array. Escribimos de forma equivalente
for(int i=0; i<numeros.length; i++){
numeros[i]=i*i+4;
}
Los arrays se pueden declarar, crear e inicializar en una misma lnea, del siguiente modo
int[] numeros={2, -4, 15, -25};
String[] nombres={"Juan", "Jos", "Miguel", "Antonio"};
Para imprimir a los elementos de array nombres se escribe
for(int i=0; i<nombres.length; i++){
System.out.println(nombres[i]);
}

ARRAYS

MULTIDIMENSIONALES

Una matriz bidimensional puede tener varias filas, y en cada fila no tiene por qu haber el mismo
nmero de elementos o columnas. Por ejemplo:
o

Podemos declarar e inicializar la siguiente matriz bidimensional


double[][] matriz={{1,2,3,4},{5,6},{7,8,9,10,11,12},{13}};

La primer fila tiene cuatro elementos {1,2,3,4}

La segunda fila tiene dos elementos {5,6}

La tercera fila tiene seis elementos {7,8,9,10,11,12}

La cuarta fila tiene un elemento {13}

Para mostrar los elementos de este array bidimensional escribimos el siguiente cdigo
for (int i=0; i < matriz.length; i++) {
for (int j=0; j < matriz[i].length; j++) {
System.out.print(matriz[i][j]+"\t");
}
System.out.println("");
}

INGENIERA CIVIL

PROGRAMACIN EN LENGUIAJE C++


Como podemos apreciar, matriz.length nos proporciona el nmero de filas (cuatro), y matriz[i].length,
nos proporciona el nmero de elementos en cada fila.

UNIDIMENSIONALES (VECTORES O LISTAS)


Un arreglo unidimensional es un conjunto de n elementos del mismo tipo almacenados en memoria
continua en un vector o lista. Para acceder a cada elemento del arreglo se requiere de un solo ndice
o subndice, el cual representa la posicin en la que se encuentra.
Los enteros requieren de dos bytes para almacenarse en memoria; como se muestra, por cada
posicin se requiere de dos localidades de memoria, por ejemplo el 0 ocupa la posicin 1000 y 1001.
La cantidad de arreglos que se pueden declarar depender de la memoria libre, que comnmente es
de 64 Kbytes; esta cantidad puede variar e incluso se puede utilizar ms memoria disponible siempre
y cuando la computadora cuente con ella.

Formato para declarar un arreglo unidimensional


A continuacin se muestra un arreglo de nmeros reales cuyo identificador es x:
Pseudocdigo

Lenguaje C

real x[8]
posiciones

x[0
]

x[1
]

x[2]

elementos

4.2

12.
0

3.4
5

float x[8];

x[3]

4.3
2

x[4]

0.3
1

x[5
]

x[6
]
2.65

x[7
]
13.0

51.9

Este arreglo contiene ocho elementos almacenados entre la posicin (0-7). Para referirnos a un elemento en
particular dentro del arreglo, especificamos el nombre del arreglo y el nmero de posicin donde se encuentra
ubicado. La posicin del arreglo va entre parntesis cuadrados o corchetes ([ ]) para el lenguaje C; segn el
lenguaje de programacin ser la sintaxis requerida.
El primer elemento en un arreglo es almacenado en la posicin cero para el lenguaje C y en la posicin uno
para el lenguaje Pascal. En este caso trabajaremos el pseudocdigo en C. Por lo tanto el primer elemento de un
arreglo x se encuentra en la posicin cero y se conoce como x [0], el segundo como x [1], el sptimo como x [6]
y en general, el elemento de orden i del arreglo x ser x [i-1], ya que se encuentra en la posicin i1, donde i es

INGENIERA CIVIL

PROGRAMACIN EN LENGUIAJE C++


un subndice que sirve para hacer referencia a la posicin en el arreglo. Es decir, si almacenamos en un arreglo
las edades de los alumnos de un saln de clases (40), la edad del primer alumno estar v almacenada en la
Pseudocdigo
Lenguaje C
posicin 0, la del segundo en la posicin 1 y as sucesivamente hasta la del cuadragsimo alumno en la
c 5 x[6]/2;
posicin 39. Los identificadores de
los arreglos
deben tener las caractersticas
de los identificadores
cx[6]
/2
del lenguaje.

Si la instruccin en pseudocdigo fuera imprimir x[4] se mostrar el valor de 0.31.


Si se requiere guardar en una posicin especfica del arreglo se debe escribir el identificador del arreglo y su
posicin, por ejemplo: leer x[0]. Para llenar un arreglo completo se utiliza generalmente el ciclo desde (for)
facilitando con la variable de control el incremento de la i, donde la i representa el subndice.
Para imprimir la suma de los valores contenidos en los primeros tres elementos del arreglo x,
escribiramos:
Pseudocdigo

Lenguaje C

a _ x[0] 1 x[1] 1 x[2] a 5 x[0] 1x[1] 1x[2];


imprimir a

a 5 x[0] 1x[1] 1x[2];


printf(%f,a);

Donde la variable a es de tipo real, ya que los elementos del arreglo x son de ese tipo.
Para dividir el valor del sptimo elemento del arreglo x entre 2 y asignar el resultado a la variable c
escribiramos:
Un subndice debe ser un entero o una expresin cuyo resultado sea entero, por ejemplo a[2.5] no es vlido. Si
un programa utiliza una expresin como subndice, entonces la expresin se evala para determinar el
subndice.
Si i 5 2 y j 5 4, entonces el enunciado:

Pseudocdigo

Lenguaje C

c [ i 1 j ] _10

c [i 1 j] 5 10;

Almacena el valor de 10 en el arreglo c en la posicin [6]. Ntese que el nombre de arreglo con subndice i se
utiliza al lado izquierdo de la asignacin, como si c[i 1 j] fuera una variable.
Examinaremos el arreglo x. Sus ocho elementos se conocen como x[0], x[1], x[2], ..., x[7]. El valor de x[0] es
4.2, el valor de x[2] es 3.45, y as sucesivamente hasta el valor de x[7], que es 13.0.
Se pueden asignar valores a los elementos del arreglo antes de utilizarlos tal como se asignan valores a
variables. Una manera es inicializando el arreglo y la otra leyendo cada elemento del mismo. Comenzaremos
con la primera posibilidad.

INGENIERA CIVIL

PROGRAMACIN EN LENGUIAJE C++

1. Inicializacin de arreglos unidimensionales


En el momento de declarar el arreglo, se especifican los valores.
Sintaxis:
Pseudocdigo

La

asignacin

valores
declarar

se

de

realiza
el

los
al

tipo_dato identif
[tam_arreglo]_{valores}
entero lista [5] _ { 10,17,8,4,9 }

Lenguaje C
tipo_dato
identif[tam_arreglo]5{valores};
int lista [5] 5 {10,17,8,4,9};

arreglo

mediante el operador de asignacin (_/5) y los valores contenidos dentro de las llaves { } a cada
posicin del arreglo; los valores dentro de las llaves se deben separar por una coma (,) y no es necesario
asignarle un valor a cada posicin ya que el compilador del lenguaje C se encargar de hacerlo segn el
lugar donde se haya declarado el arreglo, comenzando por la posicin cero. Este modo de asignacin no
es vlido si lo hacemos despus de declarar el arreglo. Si el nmero de valores es menor al tamao del
arreglo a las posiciones faltantes les asigna cero.

2. Lectura e impresin de un arreglo unidimensional


La declaracin de arreglos se hace al mismo tiempo que la declaracin de variables normales, como se
mencion anteriormente:

Pseudocdigo
tipo_dato identif [tam_arreglo
entero lista [10]

Lenguaje C

tipo_dato identif [tam_arreglo];


int lista [10];
Es fcil procesar los elementos de un arreglo mediante ciclos repetitivos porque facilitan la lectura,
impresin, consulta y modificacin de todos los elementos del arreglo, reduciendo el trabajo a unas
cuantas lneas bien empleadas. Cuando la computadora ejecuta un ciclo y la instruccin leer (scanf ) el
programa almacena los valores en la variable arreglo. Para utilizar ciclos repetitivos es necesario el uso
de variables de apoyo; el siguiente ejemplo muestra la forma de pedirle 10 nmeros al usuario e
imprimirlos despus, utilizando ciclos repetitivos for. Veamos cmo podemos leer e imprimir el arreglo
anterior:

INGENIERA CIVIL

PROGRAMACIN EN LENGUIAJE C++

Pseudocdigo
principal ()

Lenguaje C

#include <stdio.h>

inicio
entero lista[10], i

#include <conio.h>

desde (i 0, i <=9 ,ii +

main()

inicio

imprimir "Dame el elemento"


leer lista[i]

int lista[10], i;

fin

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

imprimir "Elementos de la lista"

{
printf("Dame el elemento");
scanf("%d",&lista[i]);
}
printf("Elementos de la lista\n");
for (i=0; i<=9;i++ )
printf("%d\n",lista[i] );
getch();
return 0;
}

El programa utiliza la estructura de repeticin desde (for) y leer (scanf) para capturar los elementos del arreglo
llamado lista, e imprime el arreglo mediante otro desde (for) y el imprimir (printf), donde el desde recorre todas
las posiciones del arreglo. Es importante sealar que se debe respetar el tipo de dato del arreglo y adems
especificar la posicin del arreglo en la que se quiere guardar el valor.
La manera de declarar el tamao del arreglo vara en cada compilador. Por ejemplo en Turbo C de Borland, el
tamao debe ser constante como en el ejemplo presentado, donde el mximo tamao posible es de 30 ele mentos y el que realmente ocuparemos es n.
El programa podra quedar abierto si manejamos un tamao de arreglo n:

Pseudocdigo
constante MAX30

Lenguaje C (Turbo C, DEV-CPP y


Code::Blocks)
#define MAX 3 0

INGENIERA CIVIL

PROGRAMACIN EN LENGUIAJE C++

principal ()
inicio
entero lista[MAX], i,n
imprimir "Dame el tamao del
arreglo:"
leer n
desde (i0, i<n ,
+
inicio
imprimir "Dame el elemento ",i
leer lista[i]
fin
imprimir("Elementos de la
lista")
desde (i0, i<n , ii+ 1)
imprimir lista[i]

fin

#include <stdio.h>
#include <conio.h>
main ()
{
int lista[MAX], i,n;
printf ("Dame el tamao del arreglo:
scanf ("%d",&n);
for (i=0; i<n; i++)
{
printf("Dame el elemento %d ",i
scanf("%d",&lista[i]);
}
printf("Elementos de la lista\n");

");

);

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


printf("%d\n",lista[i]);
getch();
return 0;
}

EJERCICIOS PROPUESTOS (su solucin en seudocdigo y


en lenguaje C++)
Problema 1
Inicialice un arreglo de 10 elementos, realice e imprima la sumatoria.

PSEUDOCDIGO
principal ()
inicio
entero x[10]
{6,7,9,2,4,7,4,3,2,9}
entero i, s0
desde (i 0, i < 10,

main()

ss+x[i]
imprimir " La suma es"" s
fin

LENGUAJE C
#include <stdio.h>
#include <conio.h>
{
int x[10]={6,7,9,2,4,7,4,3,2,9};
int i,s=0;
for (i = 0;i<10;i+ + )
s + =x[i];
printf("La suma es %d",s);
getch(); return 0;
}

INGENIERA CIVIL

PROGRAMACIN EN LENGUIAJE C++

Problema

2.

Almacene en un vector, n elementos (mximo 30) e inserte un elemento ni en la posicin pos, recorriendo los
siguientes elementos una posicin a la derecha.

Pseudocdigo
constante pprintf
constante sscanf
constante MAX 30
principal()
inicio
entero lista[MAX],i,ni,n,pos
imprimir "Dame el Tamao del
Arreglo "
leer n
imprimir "Dame el No. a Insertar "
leer ni
imprimir "Dame la Posicin "
leer pos
desde (i0,i<n,i<i +
inicio
imprimir "Dame el valor cuya
posicin es ",i
leer lista[i]
fin
for (in,i>pos,i<i1)
lista[i]listap-1]
lista[pos]ni
desde (i0,i< = n,ii +1)
imprimir lista[i]
fin

Lenguaje C
#include <stdio.h>
#include <conio.h>
#define p printf
#define s scanf
#define MAX 3 0
main()
{
int lista[MAX],i,ni,n,pos;
p("Dame el Tamao del Arreglo ");
s("%i",&n);
p ("Dame el No. a Insertar ");
s("%i",&ni);
p("Dame la Posicin ");
s("%i",&pos);
for (i=0;i<n;i++ )
{
p ("Dame el valor cuya posicin es %d
scanf("%d",&lista[i]);
}
for (i = n;i>pos;i--)
lista[i]=lista[i 1];
lista[pos] =ni;
for (i=0;i<=n;i++)
p ("%d ",lista[i]);
getch();
}

INGENIERA CIVIL

PROGRAMACIN EN LENGUIAJE C++

Problema 3
Almacene en un arreglo a, un conjunto n de elementos de tipo entero (max 15), almacene en el arreglo b los
elementos del arreglo a de forma invertida.

Pseudocdigo
principal () inicio
entero a[15],b[15],n, i,j imprimir
"Total de nmeros" leer n
desde ( i0, i<n,
+ leer a[ i ]
desde (i0, jn 1 ; i<n , j> =
0 ; i i + 1, j j 1)
b[ i ] a[ j ] desde ( i0, i<n,
+
imprimir a[ i ] desde ( i0, i<n,
+
imprimir b[ i ]
fin

Lenguaje C
#include <stdio.h>
#include <conio.h> main()
{
int a[15],b[15],n,
printf ( "Total de nmeros");
scanf ("%d",&n );
for (i = 0; i<n; i + + )
scanf ("%d",&a[i]); for (i = 0, j=n1; i<n, j > =
0; i + + , j--)
b[i] =a[j];
for (i=0; i<n ; i++)
printf ("%d \n",a[ i ] );
for (i=0; i<n ; i++)
printf ("%d \n",b[ i ] );
getch(); return 0
}

INGENIERA CIVIL

PROGRAMACIN EN LENGUIAJE C++

Problema 4
Inicializar
un
con los primeros
impares, luego
media. Obtenga
programa

Lenguaje C

Cdigo del programa


#include<iostream.h>
#include<conio.h>
Void main ()
{
Int i, impar [15];
Float s=0;
Cout<<Ingrese 15 primeros nmeros
impares:;
Cin>>i=0; (i<15;i++);
{
Impar [i]=2*i+1;
S=s+(2*i+1);
Cout<<El promedio es:<<impar<<s/15;
}
}

arreglo
vector
15
enteros
determine
su
el cdigo del

S-ar putea să vă placă și