Академический Документы
Профессиональный Документы
Культура Документы
Arreglos
Prof.LisbethPrezRivas
lisbethpe@ula.ve
Arreglos
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];
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
AnlisisEPS.
Entrada:Los10elementosdelvector,portantonecesitamosun
vectorde10posiciones(numero)detipoentero.
Proceso.Leercadaunodeloselementosyescribirlosporpantalla.
....
Salida.Los10elementosescritosporpantalla.
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;
}
AnlisisEPS.
Entrada:Los10elementosdelvector,portantonecesitamosunvectorde10
posicionesdetiporeal.
Proceso:Compararcadaunadelasposicionesdelvectorconlasposiciones
siguientesyverificarquesilaposicininicialesmayorquelacomparada
sedebenintercambiarlosvalores.
Ejemplo.Comparamoslaposicion0delvectorconlaposicion1,si
posicion0>posicion1,intercambiamoslosdatos.Luegocomparamosla
posicin0yla2yevaluamoselmismocriterio.
Salida:Los10elementosordenadosescritosporpantalla.
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
tipo_datonombre_matriz[n_filas][n_columnas];
Donde,
tipo_dato=tipodedatodelamatriz.
Nombre_matriz=Nombredelamatriz.
n_filas,n_columnas=NumeroenteroCONSTANTE
defilasycolumnasquetienelamatriz
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.
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;
AnlisisEPS.
Entrada:Los6elementosdelamatriz,portantonecesitamosuna
matrizde2filasy3columnasdetiporeal.
Proceso.Leercadaunodeloselementosyescribirlosporpantalla.
Necesitamosdosestructurasderepeticinanidadasparalalectura
ylomismoparalaescritura
Salida.Los6elementosescritosporpantalla.
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;
}
#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;
E0,2+E1,2
E0,1+E1,1
Vectorsuma_columna
E0,0+E1,0
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.
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.