La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

INFORMATICA DEL CBU Clase 11 Año 2016 ARREGLOS.

Presentaciones similares


Presentación del tema: "INFORMATICA DEL CBU Clase 11 Año 2016 ARREGLOS."— Transcripción de la presentación:

1 INFORMATICA DEL CBU Clase 11 Año 2016 ARREGLOS

2 Preguntas Qué es un arreglo? Con qué propósito se lo utiliza?
Qué diferencia existe entre: el nombre del arreglo, el subíndice, el valor del subíndice, los elementos del arreglo? Mg. Ing. Fátima Martínez

3 ARREGLOS Datos estructurados.
Un único identificador representa a múltiples datos individuales. Pueden ser manipulados colectiva o individualmente. 7.50 4.75 6.55 5.25 6 (1) (2) (3) (4) (…) (n) Calificaciones Mg. Ing. Fátima Martínez

4 Declaración formal de un arreglo
En una declaración de variable: Var nombreArreglo: array[tipo de indice] Of tipo Ejemplo: Arreglo de 100 elementos de tipo real Var lista : array[1..100] Of real; Mg. Ing. Fátima Martínez

5 Matriz de M x N La forma clásica de una matriz de m x n la representamos como: n [columnas] m [filas] Mg. Ing. Fátima Martínez

6 Declaración formal var Mat : array[DIM1,DIM2]of <Tipo>; var Mat: array[1..4,1..5] of integer; DIM1 y DIM2 se especifican como un subrango de tipo ordinal que tiene un límite inferior y un límite superior. Conviene crear un “alias” para los arreglos, mediante una declarativa type. Mg. Ing. Fátima Martínez

7 Declarativa type Crear un “alias” mediante una declarativa type.
El bloque type permite construir nuevos tipos de datos basados en los que ya se encuentran predefinidos en el lenguaje. type Vect = array[1..100] Of real; var lista: Vect; type TMat = array[1..DIM1,1..DIM2] Of integer; var Mat : TMat; Mg. Ing. Fátima Martínez

8 OPERACIONES CON VECTORES
Asignación: igual a cualquier variable, pero poniendo el número de índice del elemento entre [ ]. Var Notas: Vect; For i := 1 To 100 begin Notas[i] := 1 + random(10); suma = suma + Notas[i]; End; Promedio := suma/100; Mg. Ing. Fátima del C. Martínez 11/14/2018

9 Leer o escribir una Matriz
Para asignar por completo una Matriz: for i:=1 to DIM1 do for j:=1 to DIM2 do M[i, j]:=20+random(81);  for i:=1 to DIM1 do begin for j:=1 to DIM2 do write(M[i, j]:4); writeln; end; Mg. Ing. Fátima Martínez

10 Las cadenas. Caso particular de arreglos
Tipo string: tipo especial de dato, arreglo de char. En la posicion 0 (cero), se almacena (en forma de equivalente char) la cantidad de caracteres que han ingresado a la cadena. var Texto : string; Frase : string[80]; Frase:=’Programación en Turbo Pascal’; contiene 28 caracteres, se almacena como: P r o g r a m a c i ó n e n T u r b o P a s c a l 255 espacios para almacenar caracteres Devuelve 28 Longitud:=length(Frase) Mg. Ing. Fátima Martínez

11 Ejemplo 1 En una frase, detectar la cantidad de vocales a, e, i, etc., presentes en la misma. Mg. Ing. Fátima Martínez

12 type TVoc = array[1..5]of integer; var Voc : TVoc; Frase : string; i : integer; begin clrscr; Frase:=’Esta es una frase breve de prueba’; for i:=1 to 5 do Voc[i]:=0; for i:=1 to lenght(Frase) do case Frase[i] of ‘a’,’A’ : Voc[1]:=Voc[1]+1; ‘e’,’E’ : Voc[2]:=Voc[2]+1; ‘i’,’I’ : Voc[3]:=Voc[3]+1; ‘o’,’O’ : Voc[4]:=Voc[4]+1; ‘u’,’U’ : Voc[5]:=Voc[5]+1; end; Mg. Ing. Fátima Martínez

13 Ordenar los elementos de un vector. Método de la burbuja
Consiste en acomodar el vector moviendo el mayor hasta la última casilla comenzando desde la casilla 1 del vector. Deja el número más grande en la última posición. Prosigue a encontrar  y acomodar el siguiente más grande comparando de nuevo los números desde el inicio del vector. Así sigue hasta ordenar todo los elementos el arreglo. Es muy deficiente porque en cada pasada vuelve a comparar las ya ordenadas. Es el más usado en todos los lenguajes de programación. Mg. Ing. Fátima Martínez

14 Algoritmo Dado un vector a1, a2, a3, ... an
Comparar a1 con a2 e intercambiarlos si a1>a2 (o a1<a2). Seguir hasta que todo se haya comparado an-1 con an. Repetir el proceso anterior n-1 veces Mg. Ing. Fátima Martínez

15 Mg. Ing. Fátima Martínez

16 Ingresa datos al vector Dimension datos[5] i <- 1
Mientras i<=5 Hacer Escribir 'Ingrese el dato ',i,':' Leer datos[i] i <- i+1 FinMientras Mg. Ing. Fátima Martínez

17 Si datos[i]>datos[j] Entonces aux <- datos[i]
Mientras i<=4 Hacer j <- i+1 Mientras j<=5 Hacer Si datos[i]>datos[j] Entonces aux <- datos[i] datos[i] <- datos[j] datos[j] <- aux FinSi j <- j+1 FinMientras i <- i+1 Mg. Ing. Fátima Martínez

18 Generar un vector de orden N
Que cumpla con las siguientes condiciones: El último elemento valdrá N: vec[n] = N; El penúltimo elemento N-1 valdrá : vec[n-1] = vec[N] +1 El antepenúltimo elemento N-2 valdrá : vec[n-2] = vec[N-1] +2 Continuar la serie hasta completar el vector Mg. Ing. Fátima Martínez

19 Serie Algoritmo serie Dimension vector(10) a<-1 vector(10) <-10
Escribir vector(10) Para n<-9 Hasta 1 Con Paso -1 Hacer vector(n) <- vector(n+1) + a Escribir vector(n) a<- a + 1 Fin Para FinAlgoritmo Serie Mg. Ing. Fátima Martínez

20 Vector Sin repetidos Dado un vector de N elementos, se desea saber si tiene elementos repetidos. Si no tiene elementos repetidos presentar un mensaje: No tiene repetidos. Caso contrario generar un segundo vector con los elementos del primero pero que no tenga repetidos. Presentar el primero vector y el segundo sin repetidos. SIN REPETIDOS V[N] = (1, 5, 4, 5, 1, 8) A[N] = (1, 5, 4, 8) Mg. Ing. Fátima Martínez

21 Matriz de orden M x N Generar una matriz de m x n.
Ejemplo: Si la matriz es de 5 x 5 Mg. Ing. Fátima Martínez

22 Mg. Ing. Fátima Martínez

23 Algoritmo MatrizCuadrada Dimension mat[5,5] i <- 1 k <- 1
Mientras (i<=5) Hacer Si (i MOD 2=1) Entonces j <- 1 Mientras (j<=5) Hacer mat[i,j]<-k Escribir mat[i,j] j <- j+1 k <- k+1 FinMientras Mg. Ing. Fátima Martínez

24 Mientras (j>=1) Hacer mat[i,j]<-k Escribir mat[i,j] j <- j-1
Sino j <- 5 Mientras (j>=1) Hacer mat[i,j]<-k Escribir mat[i,j] j <- j-1 k <- k+1 FinMientras FinSi i <- i+1 FinAlgoritmo Mg. Ing. Fátima Martínez

25 Elemento mayor de la Diagonal
Se cargará una matriz A de N x N elementos. Determinar el MAXIMO elemento de la diagonal principal. Luego encontrar el mayor elemento de la fila y también de la columna que intersecta en la posición donde se encontró el MAXIMO. Mg. Ing. Fátima Martínez

26 Mg. Ing. Fátima Martínez

27 Mg. Ing. Fátima Martínez

28 Mg. Ing. Fátima Martínez

29 Carga la Matriz de 5 x 5 Algoritmo MaximoDiagonal Dimension mat[5,5]
Mientras i<=5 Hacer j <- 1 Mientras j<=5 Hacer mat[i,j]<-Aleatorio(1,9) j <- j+1 FinMientras i <- i+1 Mg. Ing. Fátima Martínez

30 Máximo en la Diagonal max <- mat[1,1] i <- 2 col <- 1
Mientras i<=5 Hacer Si mat[i,i]>max Entonces max <- mat[i,i] col <- i FinSi i <- i+1 FinMientras Escribir ‘Maximo en diagonal’: [',col,', ',col,'] = ',max Mg. Ing. Fátima Martínez

31 Máximo en la FILA // empiezo por la fila = col max <- mat[col,1]
k <- 1 j <- 2 Mientras j<=5 Hacer Si mat[col,j]>max Entonces max <- mat[col,j] k <- j FinSi j <- j+1 FinMientras Escribir 'MAXIMO en FILA: [',col,', ',k,'] = ',max Mg. Ing. Fátima Martínez

32 Máximo en la COLUMNA // sigo con la columna = col max <- mat[1,col]
k <- 1 i <- 2 Mientras i<=5 Hacer Si mat[i,col]>max Entonces max <- mat[i,col] k <- i FinSi i <- i+1 FinMientras Escribir 'MAXIMO en COLUMNA: [',k,', ',col,'] = ',max Mg. Ing. Fátima Martínez

33 Campeonato de Futbol En un campeonato intervienen M equipos.
Se registran los resultados en una matriz R de orden M x M. Mg. Ing. Fátima Martínez

34 Juego del Ahorcadito Un jugador ingresa una palabra y el otro jugador trata de adivinar la palabra ingresando letras individuales. El jugador GANA si acierta todas las letras en una cantidad de jugadas a determinar. Si no lo logra, pierde y queda AHORCADO. Mg. Ing. Fátima Martínez

35 Palabra de 10 letras Mg. Ing. Fátima Martínez

36 Mg. Ing. Fátima Martínez

37 Mg. Ing. Fátima Martínez


Descargar ppt "INFORMATICA DEL CBU Clase 11 Año 2016 ARREGLOS."

Presentaciones similares


Anuncios Google