Title: Arreglos III
1Arreglos (III)
- Clase 14
- Introducción a la Programación
2Resumen de la clase anterior
- Hemos visto como operar con arreglos
unidimensionales (vectores). - Hemos llevado a cabo varios ejemplos
- Dar vuelta el orden de un arreglo
- Evaluar un polinomio
- Cálculo de mínimo, máximo, promedio
- Representación de conjuntos
3Arreglos multidimensionales (matrices)
- Declaraciónlttipogt ltidentificadorgtltNumElem1gtltN
umElem2gt - Declaración e inicialización
- lttipogt identifMN
- valor1-1, valor1-2, ..., valor1-N ,
- valor2-1, valor2-2, ..., valor2-N ,
..., - valorM-1, valorM-2, ..., valorM-N
-
- Asignaciónmatrizindice1indice2 valor
- Ejemplo miMatrix56100
4Ejemplos de uso
- Declaración de una matriz de 50 filas y 20
columnas de enteros - int matriz5020
- Declaración e inicialización de una matriz
- int matriz23 2, 5, 8 ,
- 9, 1, 2
-
- Asignando un valor a la primera posición de la
segunda fila de una matriz de enteros - matriz10 50
- Imprimiendo una matriz de 100x50 enteros mediante
un ciclo for - int i, j
- for (i0 ilt100 i)
- for (j0 jlt50 j)
- printf("d\n", matrizij)
5Otro ejemplo cálculo de notas de un curso
- NF 0.7NP 0.3Ex
- NP (I1I2T1T2)/4
- Primero debe preguntar el número de alumnos de la
sección, luego las notas de cada uno - Qué matriz usar?
6define MAX_NUM_ALUMNOS 100 define MAX_NOTA
7.0 define MIN_NOTA 1.0 int main()
int NumAlumnos,i,j float notasMAX_NUM_ALUMNO
S6, np, suma 0, min MAX_NOTA,
max MIN_NOTA, prom printf("Ingrese el
numero de alumnos en la seccion ")
scanf("d", NumAlumnos) printf("Ingrese
las notas de los d alumnos I1 I2 T1 T2
Ex\n,NumAlumnos) for (i0 iltNumAlumnos
i) printf("\tAlumno d ", i1)
for (j0 jlt5 j) scanf("f", notasij)
np (notasi0notasi1notasi2
notasi3) / 4 notasi5
(float)(0.7np 0.3notasi4)
printf("\nNotas Finales\n") for (i0
iltNumAlumnos i) suma
notasi5 if (notasi5 lt min) min
notasi5 if (notasi5 gt max) max
notasi5 printf("\tAlumno d 3.1f\n",
i1, notasi5) prom
suma/NumAlumnos printf(\nPromedio 1.1f\n",
prom) printf("Minimo 1.1f\n", min)
printf("Maximo 1.1f\n", max)
7Implementación de lamultiplicación de matrices
8Ejemplo de ejecución
- Multiplicacion de A(NxN) X B(NxN)
- Ingrese el valor de N (de 1 a 10) 3
- Ingrese los valores para la primera matriz
- Fila 0 1 2 3
- Fila 1 4 5 6
- Fila 2 7 8 9
- Ingrese los valores para la segunda matriz
- Fila 0 9 8 7
- Fila 1 6 5 4
- Fila 2 3 2 1
- Resultado AxB
- 30 24 18
- 84 69 54
- 138 114 90
9Invitar a salir a una niña
10Invitar a salir a una niña Modelo de Control
11Invitar a salir a una niña
/ Ciclo de busqueda Modelo de Control / /
Objetivo inicial Zona0, Ranking0,
CoincidenciasTodas / while (!exito)
/ El vector de la candidata es ninaszr /
if (compatibilidad(usuario, ninaszr) c)
exito TRUE else
/ Es necesario relajar el objetivo -gt Se
baja el ranking / r if (r
gt NUM_NINAS_X_ZONA) / Se acabaron
las cantidatas de la zona -gt Siguiente zona /
r 0 z if
(z gt NUM_ZONAS) / Se acabaron
las zonas se relaja la exigencia de
compatibilidad / z 0
c--
intentos