Вы находитесь на странице: 1из 38

Programacin I

Arreglos
Prof.LisbethPrezRivas
lisbethpe@ula.ve

Arreglos

Secuencia de datos del mismo tipo que pueden ser de cualquier


tipo de dato ( entero, real, carcter, entre otros). Cada valor es
referenciadoutilizandounoomassubndices(enteros).

Ejemplo:
4
Vector=5
6
7

135
Matriz=214
013

Tipos de Arreglos

Segnelnmerodedimensiones

Vector(Unidimensionales)
Matriz(Bidimensionales)
Multidimensional(3omsdimensiones)

Vectores (Arreglo
Unidimensional)
Grupodelocalidadesconsecutivasdememoriarelacionadaspor
elhechodequetienenelmismonombreytipo.Cadaceldatiene
elmismotamaoyalmacenaunelementodelvector.
4
Vector=5
6
7

V=
4

V0V1 V2V3

Vectores (Arreglo
Unidimensional)

Cadaelementodelvectorsepuedeaccedermediante
unsubndicequerepresentalaposicinnumrica
(enterononegativo)dedichoelementodentrodel
vector.
V=

V0V1 V2V3

Vectorde4elementoscuyonombreesV

Subndices

Elsubndicedenotalaposicindelelementodentrodel
vector

Nombres=

Ana

Mara

Juan

Luisa

Nombres0Nombres1 Nombres2Nombres3

Nombres[1]Mara

Declaracin de un Vector
Tipo_de_datonombre_arreglo[numero_de_elementos];

Donde,
Nombre_Arreglo=NombredelArreglo.
Tipo_de_dato=Tipodedatosalmacenadosenelarreglo.
Numero_de_elementos=ValorenteroCONSTANTEmayor
quecero.

Declaracin de un Vector
NotacinAlgortmica

enteronumeros[4];vectornumerosde4posicionesdeenteros
Realv1[10]; Vectorv1de10posicionesdereales
Carcterv2[6];
Vectorv2de6posicionesdecaracteres

Declaracin de un Vector
NotacinenC

intnumeros[4];vectornumerosde4posicionesdeenteros
floatv1[10]; Vectorv1de10posicionesdereales
charv2[6]; Vectorv2de6posicionesdecaracteres
Esposibledeclararmltiplesvectores:
Intx[5],y[10],z[3];
floatm[8],i[40];

Acceso a los elementos de un


Vector Nombre_vector[subndice]
Elsubndiceoposicinnumricadeunelementodentrodelvectorse
expresacomo:
ConstanteNombre_vector[3]
VariableNombre_vector[x]
ExpresinNombre_vector[2*i+z]
Elvalordelsubndicepuedevariarde0an1,dondeneselnmerode
elementosdelvector.
Engeneral,parateneraccesoalisimoelementodelvectorseescribe
nombre_vector[i1].

Acceso a los elementos de un


Vector
IntRango1[10];
Vectordeenterosde10posiciones

Floatrango2[10];

Paraaccedera:
Posicin0Rango1[0]
Posicin4Rango1[4]
Posicin9Rango1[9]

Paraaccedera:
Posicin1Rango2[1]
Posicin5Rango2[5]
Posicin9Rango2[9]

Instrucciones Vlidas
Intrango1[10];
Asignacin:Rango1[5]=200;
Lectura:scanf(%d,&Rango1[5]);
Escritura:printf(%d,Rango1[5]);
Comparacin:Rango1[2]!=Rango1[0]
Rango1[2]>4
Otrasoperaciones
B=Rango1[2*2];Cadaelementodelvectorpuedeutilizarsecomo
unavariablecualquiera

Ejemplos con vectores


Leerunvectorde10nmerosenterosyescribirlosporpantalla.

AnlisisEPS.
Entrada:Los10elementosdelvector,portantonecesitamosun
vectorde10posiciones(numero)detipoentero.
Proceso.Leercadaunodeloselementosyescribirlosporpantalla.
....
Salida.Los10elementosescritosporpantalla.

Ejemplos con vectores


Algoritmo
1.
2.

1.

1.

Inicio
Para(i=0;i<10;i=i+1)
2.1Leer(numeros[i])
Fin_RP
Para(i=0;i<10;i=i+1)
3.1.Escribir(numeros[i])
Fin_RP
Fin

Cdigo
#include<stdio.h>
intmain(){
inti,numeros[10];
for(i=0;i<10;i++)
scanf("%d",&numeros[i]);
for(i=0;i<10;i++)
printf("\n%d",numeros[i]);
return0;
}

Inicializar arreglos
Mtodo1:Recorrerloselementosdelvectoryasignarelvalordeseado
Algoritmo
Inicio
2.
Para(i=0;i<10;i=i+1)
2.1datos[i]=0
Fin_RP
3.Fin
1.

Cdigo
#include<stdio.h>
intmain(){
inti,datos[10];
/*Vectorinicializadoen0*/
for(i=0;i<10;i++)
datos[i]=0;
return0;
}

Inicializar arreglos
Mtodo2:Inicializardirectamenteenladeclaracin
#include<stdio.h>
intmain(){
Intdatos[10]={0};
return0;
}
#include<stdio.h>
intmain(){
Intdatos[10]={5,10,6,1,2,3,4,4,9,100};
Floatx[5]={4.5,3.2,5.6,100.3,6.5};
Charz[5]={'m','a','r','i','a'};
return0;
}

Ordenar los elementos de un


vector (De menor a mayor)
Leerunvectorde10nmerosreales,ordenarelvectoreimprimirlopor
pantalla.

AnlisisEPS.
Entrada:Los10elementosdelvector,portantonecesitamosunvectorde10
posicionesdetiporeal.
Proceso:Compararcadaunadelasposicionesdelvectorconlasposiciones
siguientesyverificarquesilaposicininicialesmayorquelacomparada
sedebenintercambiarlosvalores.
Ejemplo.Comparamoslaposicion0delvectorconlaposicion1,si
posicion0>posicion1,intercambiamoslosdatos.Luegocomparamosla
posicin0yla2yevaluamoselmismocriterio.
Salida:Los10elementosordenadosescritosporpantalla.

Ordenar los elementos de un


vector (De menor a mayor)
Cdigo

Algoritmo
1.
2.

1.

1.

1.

Inicio
Para(i=0;i<10;i=i+1)
2.1Leer(numeros[i])
Fin_RP
Para(i=0;i<10;i=i+1)
3.1.Para(j=i+1;j<10;j=j+1)
3.2Sinumeros[i]>numeros[j]entonces
3.2.1aux=numeros[i]
3.2.2numeros[i]=numeros[j]
3.2.3numeros[j]=aux
Fin_si
Fin_RP
Fin_RP

#include<stdio.h>
intmain(){
floatnumeros[10];
inti,j,aux;

for(i=0;i<10;i++)
scanf("%f",&numeros[i]);
for(i=0;i<10;i++)
for(j=i+1;j<10;j++)
if(numeros[i]>numeros[j]){
aux=numeros[i];
numeros[i]=numeros[j];
numeros[j]=aux;

}
for(i=0;i<10;i++)
printf("\t%f",numeros[i]);

Para(i=0;i<10;i=i+1)
4.1Escribir(numeros[i])
Fin_RP
Fin

return0;
}

Ejemplo

Disearunprogramaqueleaunvectordecaracteres
yloescribaalrevs.
ACDFEEFDCA

AnlisisEPS.
Entrada:vectoresdecaracteres.
Proceso:Intercambiarlasposicionesdelvectorde
caracteres.
Salida:Lacadenainvertida.

Ejemplo
Algoritmo
Inicio
2.
Para(i=0;i<5;i=i+1)
2.1Leer(cadena[i])
Fin_RP
Para(i=0;i<2;i=i+1)
3.1.aux=cadena[i]
3.2cadena[i]=cadena[4i]
3.3cadena[4i]=aux
Fin_RP
1.

Cdigo
#include<stdio.h>
intmain(){
charcadena[5];
inti,aux;

for(i=0;i<5;i++)
scanf("%c",&cadena[i]);
for(i=0;i<2;i++){
aux=cadena[i];
cadena[i]=cadena[4i];
cadena[4i]=aux;

Para(i=0;i<5;i=i+1)
4.1Escribir(cadena[i])
Fin_RP
Fin

}
for(i=0;i<5;i++)
printf("\t%c",cadena[i]);
return0;
}

Ejercicios

Escribirunprogramaquegenereunvectorconlosvalores
queresultandelaecuacin
Y=2*sin(0.5t)

Dondetvaraentre0y20conunincrementodetde0.5.
Deunvectordenmerosenterosde20posiciones,
determinarelmximo,minimoypromediodelos
elementos.
Leerunalneadetextoenminsculasyconvertirlaa
maysculas.
Determinarsiunapalabraespalndromo(seescribeigual
alderechoyalrevs.

Matrices (Arreglos
Bidimensionales)

Grupodelocalidadesconsecutivasdememoriarelacionadasporel

hechodequetienenelmismonombreytipo.Cadaceldatieneelmismo
tamaoyalmacenaunelementodelamatriz.

4 3 1

431
M1=548M1= 5
641

4 8

6 4 1

acd
a
M2=rxeM2=
r
xtw

Matrices (Arreglos
Bidimensionales)
Columnas
012

4 3 1

filas

M1= 1 5 4 8

2 6 4 1
posicin0,1

4 3 1
M1=

5 4 8
6 4 1

posicin2,2

Matrices (arreglos
Bidimensionales)

Cadaelementodelvectorsepuedeaccedermediantedos
subndicescorrespondientesalafilaylacolumnadel
elemento.

M=

M0,0

M0,1

M0,2

Paraaccederalelementodela
segundafilayterceracolumna
(M2,1 ),escribimos:

M1,0

M1,1

M1,2

M[2][1]

M2,0

M2,1

M2,2

Posicin[fila]
[columna]entre
corchetes

Nombredelamatriz

Subndices

Elsubndicedenotalaposicindelelementodentrode
lamatriz.
MatrizN[1][1]elementodelafila1columna17

MatrizN=

0 MatrizN[1][3]elementodelafila1columna31

11

34

1 MatrizN[3][1]elementodelafila3columna18
3 MatrizN[3][2]elementodelafila3columna20

10 MatrizN[3][3]elementodelafila3columna310

Declaracin de una matriz


FilasColumnas

tipo_datonombre_matriz[n_filas][n_columnas];

Donde,
tipo_dato=tipodedatodelamatriz.
Nombre_matriz=Nombredelamatriz.
n_filas,n_columnas=NumeroenteroCONSTANTE
defilasycolumnasquetienelamatriz

Declaracin de una matriz


Intmatriz[4][4];matriz4x4denmerosenteros.

FloatM1[10][4];matriz10x4denmerosreales.
CharM2[6][3];matriz6x3decaracteres.

Aspectos Importantes
(Se cumplen los mismos que para vectores)

Losindicesdeunamatriznopuedencontenervariables.
IntX[N][2];ErrneoamenosqueNseaunaconstante
previamentedeclarada.

Lossubndicessonmanejadosdesdeelelemento0hastael
nmerodeelementos1ydebenrespetarlosrangosdelamatriz.

Acceso a los elementos de


una Matriz
Nombre_matriz[subndice_fila][subindice_columna]
Elsubndiceoposicinnumricadeunelementodentro
delamatrizseexpresacomo:
ConstanteNombre_matriz[3][5]
VariableNombre_matriz[n][i]
ExpresinNombre_matriz[2*i][j+1]

Instrucciones Vlidas
Intrango1[10][5];
Asignacin:Rango1[5][1]=200;
Lectura:scanf(%d,&Rango1[5][1]);
Escritura:printf(%d,Rango1[5][1]);
Comparacin:Rango1[2][3]!=Rango1[1][4]
Rango1[2][4]>4
Otrasoperaciones
B=Rango1[5*21][2+1];Cadaelementodelamatrizpuede
utilizarsecomounavariablecualquiera

Inicializar matrices
intm1[3][3]={1,1,2,4,5,6,0,6,3};
charm2[2][3]={'a','b','d','z','t','h'};
charm3[2][3]={"abc","gef"};

Inicializar matrices
Recorriendotodosloselementos
intm1[2][3];
for(i=0;i<2;i++)
for(j=0;j<3;j++)
m1[i][j]=0;

Ejemplos con matrices


Leerunamatrizrealde2filasy3columnasyescribircada
componenteporpantalla.

AnlisisEPS.
Entrada:Los6elementosdelamatriz,portantonecesitamosuna
matrizde2filasy3columnasdetiporeal.
Proceso.Leercadaunodeloselementosyescribirlosporpantalla.
Necesitamosdosestructurasderepeticinanidadasparalalectura
ylomismoparalaescritura
Salida.Los6elementosescritosporpantalla.

Ejemplos con matrices


Algoritmo
1.
2.

1.

Inicio
Para (i=0;i<2;i++)
2.1 Para (j=0;j<3;j++)
2.1.1 Leer (numeros[i][j])
Fin_RP
Fin_RP
Para (i=0;i<2;i++)
3.1 Para (j=0;j<3;j++)
3.1.1 Escribir (numeros[i][j])
Fin_RP
Fin_RP
Fin

Cdigo
#include<stdio.h>
intmain(){
intnumeros[2][3],i,j;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
scanf("%d",&numeros[i][j]);
for(i=0;i<2;i++)
for(j=0;j<3;j++)
printf("%d",numeros[i][j]);
return0;
}

Ejemplos con matrices


Cdigo2

#include<stdio.h>
intmain(){
intnumeros[2][3],i,j;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
scanf("%d",&numeros[i]
[j]);

for(i=0;i<2;i++){
printf("\n");
for(j=0;j<3;j++)
printf("%d\t",numeros[i]
[j]);
}
return0;

Ejemplos con matrices

E0,2+E1,2

E0,1+E1,1

Vectorsuma_columna

E0,0+E1,0

Leer una matriz entera de 2 filas y 3 columnas. Calcular la suma de los


elementos de cada fila y la suma de los elementos de cada columna y
almacenar los resultados en 2 vectores.
Vectorsuma_fila
E0,0 E0,1 E0,2
E0,0+E0,1+E0,2
Matriz
E1,0 E1,1 E1,2
E1,0+E1,1+E1,2

Anlisis E-P-S.
Entrada: Los 6 elementos de la matriz, por tanto necesitamos una matriz de 2 filas
y 3 columnas de tipo entero.
Proceso. Leer cada uno de los elementos. Necesitamos dos estructuras de
repeticin anidadas para la lectura. Luego dos estructuras de repeticin
anidadas para la suma de las filas y 2 ms para la suma de las columnas
Salida. Los dos vectores de sumas.

Ejemplos con matrices


Cadasemana el gerente de una tienda local de artefactosdomsticosregistra
las ventas de los artculos individuales que hay en existencia. Afinal del mes,
estosresmenessemanaseenvanalaoficinacentral,dondeseanalizan.Un
ejemplodeunmestpicosemuestraenlasiguientetabla.

Semana

Cocinas

Secadoras

Lavadoras

Artefactos

12

10

12

14

1
2

Calcular:Nmerototaldeartefactosvendidosporsemana.
Nmerototaldecadaartefactovendidopormes.

Ejercicios
1.
2.
3.
4.

Hacerunprogramaqueleadosmatricesylassume.
Hacerunprogramaqueleadosmatricesylasmultiplique.
Hacerunprogramaquecalculelatranspuestadeunamatriz.
Considerelasiguientelistadeestadosysuscapitales:
MridaMrida
AnzoateguiBarcelona
MonagasMaturn
NuevaEspartaLaAsuncin
ZuliaMaracaibo
CaraboboValencia
Escribirunprogramainteractivoqueacepteelnombredeunestado
comoentradayescribasucapital.Disearelprograma
demodoqueseejecuterepetidamente,hastaqueseintroduzcala
palabraFIN.

Вам также может понравиться