programacion de computadores - modulo3
TRANSCRIPT
rogramación rogramación dedeomputadoreomputadoress
Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial
UN - Virtual2008
Módulo 4 Arreglos, cadenas y
matrices
ARREGLOS Y ARREGLOS Y MATRICESMATRICES
•Arreglos
•Cadenas de Caracteres
•Matrices
Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial
UN - Virtual2008
Módulo 4 Arreglos, cadenas y
matrices
ARREGLOSARREGLOS
Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial
UN - Virtual2008
Módulo 4 Arreglos, cadenas y
matrices
ARREGLOSDefinición:Definición: Espacio de memoria que permite almacenar una Espacio de memoria que permite almacenar una
colección de datos de un mismo tipo.colección de datos de un mismo tipo.
Acceso:Acceso: Nombre de variable e índice dentro de paréntesis Nombre de variable e índice dentro de paréntesis cuadrados.cuadrados.
Ejemplo:Ejemplo:
2020 -5-5 88 121266X = X =
X[0] = 20X[0] = 20X[3] = 6X[3] = 6X[2] = 8X[2] = 8X[1] = -5X[1] = -5
X[4] = 12X[4] = 12NombreNombre
IndiceIndice
00 11 22 4433
Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial
UN - Virtual2008
Módulo 4 Arreglos, cadenas y
matrices
ARREGLOSARREGLOS
Formato de definición en seudo-lenguajeFormato de definición en seudo-lenguaje
<Nombre> : arreglo[<tamaño>] de <tipo><Nombre> : arreglo[<tamaño>] de <tipo>
Dimensión:Dimensión: Número de casillas que Número de casillas que
conforman el arregloconforman el arreglo
En el ejemplo anterior, la dimensión de En el ejemplo anterior, la dimensión de X es 5X es 5
Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial
UN - Virtual2008
Módulo 4 Arreglos, cadenas y
matrices
Inicializar un Arreglo con cerosInicializar un Arreglo con ceros
EJEMPLO 1EJEMPLO 1
Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial
UN - Virtual2008
Módulo 4 Arreglos, cadenas y
matrices
t : arreglo[5 ] de enterot : arreglo[5 ] de enterom: enterom: enteropara(m:=0 hasta 4)para(m:=0 hasta 4)hacerhacer
t[m] := 0t[m] := 0
fin_parafin_para
EJEMPLO 1EJEMPLO 1PROGRAMPROGRAM
AA
MEMORIAMEMORIA
xxxxxx xxxxxx xxxxxx xxxxxx
xxxxxx
xxxxxx
mm
tt
0011223344
00
t[0]t[0]
00
t[1]t[1]
00
t[2]t[2] t[3]t[3] t[4]t[4]
00 00
55
Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial
UN - Virtual2008
Módulo 4 Arreglos, cadenas y
matrices
EJEMPLO 2EJEMPLO 2
Inicializar un Arreglo con valores leídosInicializar un Arreglo con valores leídos
Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial
UN - Virtual2008
Módulo 4 Arreglos, cadenas y
matrices
EJEMPLO 2EJEMPLO 2
t : arreglo[5 ] de enterot : arreglo[5 ] de enterom: enterom: enteropara(m:=0 hasta 4) para(m:=0 hasta 4) hacer hacer leer (t[m])leer (t[m])
fin_parafin_para
PROGRAMPROGRAMAA
MEMORIAMEMORIA
tt
xxxxxxmm
t[0]t[0] t[1]t[1] t[2]t[2] t[3]t[3] t[4]t[4]
xxxxxx xxxxxx xxxxxx xxxxxxxxxxxx2020 -5-5 88 66 1212
xxxxxx001122334455
Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial
UN - Virtual2008
Módulo 4 Arreglos, cadenas y
matrices
EJEMPLO 3EJEMPLO 3
Sumar los elementos de un arregloSumar los elementos de un arreglo
Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial
UN - Virtual2008
Módulo 4 Arreglos, cadenas y
matrices
EJEMPLO 3EJEMPLO 3
suma := 0suma := 0para(m := 0 hasta 4) para(m := 0 hasta 4) hacerhacer
suma := suma+t[m]suma := suma+t[m]
fin_parafin_para
escribir (suma)escribir (suma)
PROGRAMPROGRAMAA
MEMORIAMEMORIA
2020 -5-5 88 121266tt
mm sumsumaa
t[0]t[0] t[1]t[1] t[2]t[2]t[3]t[3] t[4]t[4]
xxxxxxxxxxxx001122334455 xxxxxxxxxxxx0020201515232329294141
4141SALIDASALIDA
Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial
UN - Virtual2008
Módulo 4 Arreglos, cadenas y
matrices
Ordenar en forma ascendente unOrdenar en forma ascendente unconjunto de números enteros conjunto de números enteros
almacenados en un arregloalmacenados en un arreglo
EJEMPLO 4EJEMPLO 4
Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial
UN - Virtual2008
Módulo 4 Arreglos, cadenas y
matrices
temp := 0temp := 0para(i:=0 hasta 2) hacerpara(i:=0 hasta 2) hacer para(j:=i+1 hasta 3) hacerpara(j:=i+1 hasta 3) hacer si (t[i]>t[j]) entonces si (t[i]>t[j]) entonces temp := t[j]temp := t[j]
t[j] := t[i]t[j] := t[i] t[i] := tempt[i] := temp
fin_si fin_si fin_parafin_parafin_parafin_para
EJEMPLO 5EJEMPLO 5PROGRAMPROGRAM
AA
MEMORIAMEMORIA
1212 33 -2-2 77
xxxxxxtemptemp
tt
xxxxxx xxxxxxii jj
0033-2-23377
00112233 11223344
1212 121233 1212
2233443344
33 121233 33-2-2 33-2-2 33-2-2 771212 121233 121233 121233 771212 121277 121277 1212
Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial
UN - Virtual2008
Módulo 4 Arreglos, cadenas y
matrices
PROBLEMA ARREGLOS
Leer un conjunto de datos enteros e Leer un conjunto de datos enteros e imprimir los mismosimprimir los mismos
datos en el orden inverso al leído.datos en el orden inverso al leído.
Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial
UN - Virtual2008
Módulo 4 Arreglos, cadenas y
matrices
CADENAS DE CADENAS DE CARACTERESCARACTERES
• Definición:Definición: Arreglo de caracteres.Arreglo de caracteres.
• Características:Características: Manejo de terminador de cadena ‘\0’Manejo de terminador de cadena ‘\0’
• Longitud:Longitud: Número de símbolos antes del Número de símbolos antes del terminador de cadena.terminador de cadena.
cc aa ss \ 0 \ 0 aaX X ==
La longitud de X es 4La longitud de X es 4
Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial
UN - Virtual2008
Módulo 4 Arreglos, cadenas y
matrices
CADENAS DE CADENAS DE CARACTERESCARACTERES
Formato de definición en seudo-lenguajeFormato de definición en seudo-lenguaje
<Nombre> : arreglo[<tamaño>] de caracter<Nombre> : arreglo[<tamaño>] de caracter
Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial
UN - Virtual2008
Módulo 4 Arreglos, cadenas y
matrices
CADENAS DE CADENAS DE CARACTERESCARACTERES
Especificación: Especificación: Caracteres entre Caracteres entre comillas comillas
dobles.dobles.
Operaciones: Operaciones: • compararCadenacompararCadena• copiarCadenacopiarCadena• longitudCadenalongitudCadena• concatenarCadenaconcatenarCadena• leerCadenaleerCadena• escribirCadenaescribirCadenaFacultad Ingeniería
Departamento de Ingeniería de Sistemas e Industrial
UN - Virtual2008
Módulo 4 Arreglos, cadenas y
matrices
CONCATENARCONCATENAR
Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial
UN - Virtual2008
Módulo 4 Arreglos, cadenas y
matrices
CADENAS DE CADENAS DE CARACTERESCARACTERES
X := “da”X := “da”Y := “do”Y := “do”Z := concatenar(X,Y)Z := concatenar(X,Y)
\ 0\ 0 XXXX XXXX XX XX XXXXX =X =
Y =Y =
Z =Z =
\ 0\ 0 XXXX XXXX XX XX XXXX
\ 0\ 0 XXXX XXXX XX XX XXXX
PROGRAMAPROGRAMA
MEMORIAMEMORIAdd aa \ 0\ 0 XX XX XXXXX =X =
Y =Y =
Z =Z =
\ 0\ 0 XXXX XXXX XX XX XXXX
\ 0\ 0 XXXX XXXX XX XX XXXX
dd aa \ 0\ 0 XX XX XXXXX =X =
Y =Y =
Z =Z =
dd oo \ 0\ 0 XX XX XXXX
\ 0\ 0 XXXX XXXX XX XX XXXX
dd aa \ 0\ 0 XX XX XXXXX =X =
Y =Y =
Z =Z =
dd oo \ 0\ 0 XX XX XXXX
dd aa dd \ 0\ 0 oo
Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial
UN - Virtual2008
Módulo 4 Arreglos, cadenas y
matrices
PROBLEMA CADENAS
Leer una cadena de caracteres Leer una cadena de caracteres y contar el número y contar el número
de espacios que se encuentran en ellade espacios que se encuentran en ella..
Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial
UN - Virtual2008
Módulo 4 Arreglos, cadenas y
matrices
MATRICESMATRICES
Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial
UN - Virtual2008
Módulo 4 Arreglos, cadenas y
matrices
MATRICESMATRICES
Definición:Definición:Espacio de memoria queEspacio de memoria que
permite almacenar una permite almacenar una
colección de datos de colección de datos de
un mismo tipoun mismo tipo
Los elementos no están organizados linealmente sino que su
organización es bidimensional, es decir, en filas y columnas.
Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial
UN - Virtual2008
Módulo 4 Arreglos, cadenas y
matrices
X =X =
X[0] [0] = 120X[0] [0] = 120
X [2] [0] = -25X [2] [0] = -25
X [1] [2] = 34X [1] [2] = 34
X [0] [2] = 65X [0] [2] = 65X[2] [1] = 49X[2] [1] = 49
NombreNombre FilaFila
34341616
120120 3939 6565
7171
-25-25 82824949
ColumnaColumna
Acceso:Acceso: Nombre de variable y dos Nombre de variable y dos índices. Al primer índice se índices. Al primer índice se
lelellama índice de fila y al llama índice de fila y al
segundosegundoíndice de columna.índice de columna.
Ejemplo:Ejemplo:
MATRICESMATRICES
Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial
UN - Virtual2008
Módulo 4 Arreglos, cadenas y
matrices
MATRICESMATRICES
Formato de definición en seudo-lenguajeFormato de definición en seudo-lenguaje
<Nombre> : matriz [<N>][<M>] de <tipo><Nombre> : matriz [<N>][<M>] de <tipo>
N : número de filasN : número de filasM : número de columnasM : número de columnas
Dimensión:Dimensión: es el número filas por el número de columnas.
Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial
UN - Virtual2008
Módulo 4 Arreglos, cadenas y
matrices
EJEMPLO 5EJEMPLO 5
Llenar una matriz de tres por tresLlenar una matriz de tres por tres
Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial
UN - Virtual2008
Módulo 4 Arreglos, cadenas y
matrices
EJEMPLO 5EJEMPLO 5
mat: matriz [3][3] de enteromat: matriz [3][3] de enteropara(i:=0 hasta 2 hacer)para(i:=0 hasta 2 hacer) para(j:=0 hasta 2 hacer)para(j:=0 hasta 2 hacer)
mat[i][j] := i+jmat[i][j] := i+j fin_para fin_para fin_parafin_para
PROGRAMAPROGRAMAMEMORIA
jj
matmat
xxxxxx
ii
xxxxxxxxxxxx
xxxxxx xxxxxx xxxxxx
xxxxxx
xxxxxx xxxxxxxxxxxx
00112233 xxxxxx00112233
xxxxxxxxxxxx
00 xxxxxx xxxxxx
xxxxxx
xxxxxx xxxxxxxxxxxx
xxxxxxxxxxxx
00 11 xxxxxx
xxxxxx
xxxxxx xxxxxxxxxxxx
xxxxxxxxxxxx
00 11 22
xxxxxx
xxxxxx xxxxxxxxxxxx
xxxxxxxxxxxx
00 11 22
11
xxxxxx xxxxxxxxxxxx
xxxxxx22
00 11 22
11
xxxxxx xxxxxxxxxxxx
3322
00 11 22
11
xxxxxx xxxxxxxxxxxx
3322
00 11 22
11
22 xxxxxxxxxxxx
3322
00 11 22
11
22 xxxxxx33
3322
00 11 22
11
22 4433
0011223300112233
Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial
UN - Virtual2008
Módulo 4 Arreglos, cadenas y
matrices
EJEMPLO 6EJEMPLO 6
Teniendo la matriz M de tres por tres,Teniendo la matriz M de tres por tres,guardar en el arreglo guardar en el arreglo tt, la suma de los , la suma de los elementos de cada fila de la matriz elementos de cada fila de la matriz inicial (e.d.: en t[0] se guarda la suma inicial (e.d.: en t[0] se guarda la suma de la fila 0 de la matriz, en t[1] se guar-de la fila 0 de la matriz, en t[1] se guar-da la suma de la fila 1 de la matriz …)da la suma de la fila 1 de la matriz …)
Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial
UN - Virtual2008
Módulo 4 Arreglos, cadenas y
matrices
xxxxxxxxxxxx xxxxxx
xxxxxx
EJEMPLO 6EJEMPLO 6
3322
00 11 22
11
22 4433
3322
00 11 22
11
22 4433
suma := 0suma := 0para(j := 0 hasta 2) para(j := 0 hasta 2) hacer hacer para(i := 0 hasta 2)para(i := 0 hasta 2) hacerhacer suma := suma+M[j]suma := suma+M[j][i][i] fin_parafin_para t[j]:=sumat[j]:=suma suma:=0suma:=0fin_parafin_paraescribir (t[0],t [1], t [2])escribir (t[0],t [1], t [2])
PROGRAMAPROGRAMA
MEMORIAMEMORIA
tt
jj sumsumaa
t[0]t[0] t[1]t[1] t[2]t[2]
xxxxxx0011 xxxxxxxxxxxx0000
3 6 93 6 9SALIDASALIDA
ii
i
j
66
11 1122 33
33
00 0011 113322 6633 0022 00 2211 5522 99
99
00
M
Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial
UN - Virtual2008
Módulo 4 Arreglos, cadenas y
matrices
PROBLEMA PROBLEMA MATRICESMATRICES
Realizar un programa que lea la Realizar un programa que lea la dimensión de una matriz (número de filas y dimensión de una matriz (número de filas y
número de columnas) y los datos, e número de columnas) y los datos, e imprima la matriz en pantalla.imprima la matriz en pantalla.
Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial
UN - Virtual2008
Módulo 4 Arreglos, cadenas y
matrices
CODIFICACIÓN EN C+CODIFICACIÓN EN C+++
ARREGLOSARREGLOS
Seudocódigo<NOMBRE> : arreglo [<N>] de <TIPO>C++<TIPO> <NOMBRE>[<N>];
Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial
UN - Virtual2008
Módulo 4 Arreglos, cadenas y
matrices
CADENA DE CARACTERESCADENA DE CARACTERES
Seudocódigo<NOMBRE> : arreglo [<N>] de carácterC++char <NOMBRE>[<N>];
CODIFICACIÓN EN C+CODIFICACIÓN EN C+++
Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial
UN - Virtual2008
Módulo 4 Arreglos, cadenas y
matrices
MATRICESMATRICES
Seudocódigo<NOMBRE> : matriz [<N>][<M>] de <TIPO>C++<TIPO> <NOMBRE>[<N>][<M>];
CODIFICACIÓN EN C+CODIFICACIÓN EN C+++
Facultad IngenieríaDepartamento de Ingeniería de Sistemas e Industrial
UN - Virtual2008
Módulo 4 Arreglos, cadenas y
matrices