La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

INFORMATICA DEL CBU Clase 10 Año 2016 ARREGLOS.

Presentaciones similares


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

1 INFORMATICA DEL CBU Clase 10 Año 2016 ARREGLOS

2 PRIMERA PARTE ARREGLOS ARRAY. Unidimensionales: Vectores.
Declarar arreglos. Type: tipo de datos definido por el usuario. Operaciones con vectores. Asignación. Mg. Ing. Fátima Martínez

3 ARREGLOS Un arreglo es una sucesión consecutiva de bytes en memoria.
Colección finita de datos (variables) del mismo tipo. Los arreglos pueden representar: Vectores (una sola dimensión). Matrices (2 ó más dimensiones). Mg. Ing. Fátima Martínez

4 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

5 Mg. Ing. Fátima del C. Martínez
ARREGLOS Se le asigna una cantidad fija de memoria. El mismo identificador (nombre de variable). Cada elemento identificado por un índice. El número de índices determina su dimensionalidad. Acceso directo a cada elemento del arreglo: x[1], x[2], x[3]… x[n] Mg. Ing. Fátima del C. Martínez 9/21/2018

6 Declarar ARREGLOS (ARRAY)
Se declaran especificando: Nombre del arreglo. Tamaño. Tipo de datos de los elementos del arreglo. Su índice comienza en 1. Mg. Ing. Fátima Martínez

7 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

8 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

9 El límite inferior y superior
type TArre = array[‘A’..’Z’] of char; TVect = array[ ] of double; En el primer caso la variable de control de lazo deberá ser de tipo char y moverse entre estos dos límites: var c : char; for c:=’A’ to ‘Z’ do ..... Mg. Ing. Fátima Martínez

10 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 9/21/2018

11 Ejemplo 1 Leer una lista de N cantidades de temperaturas.
Calcular la media y obtener la desviación de cada uno de las temperaturas respecto de la media: desviación = x[i] - media Mg. Ing. Fátima Martínez

12 Leer datos de la lista Emplearemos un bucle: For i:=1 To final do
Begin write(‘La temperatura ’,i, ‘ -> ’); readln(lista[i]); End; Mg. Ing. Fátima Martínez

13 Calcular la media suma:=0; For i:=1 To final do Begin
suma := suma + lista[i]; End; media := suma/final; Mg. Ing. Fátima Martínez

14 Calcular las desviaciones
For i:=1 To final do Begin desviacion[i]:= media - lista[i]; End; Desviaciones Mg. Ing. Fátima Martínez

15 Las cadenas. Caso particular de arreglos
El tipo char o carácter: un elemento de la tabla ASCII (American Standard Code Information Interchange) o Código Standard Americano para el Intercambio de Información. Al pulsar un caracter del teclado, se genera automáticamente uno de estos códigos. Varios caracteres conforman palabras y texto. Tipo string: tipo especial de dato, arreglo de char. var Texto : string; Frase : string[80]; 255 espacios para almacenar caracteres Mg. Ing. Fátima Martínez

16 El domicilio 0 (cero) Se almacena allí (en forma de equivalente char) la cantidad de caracteres que han ingresado a la cadena.   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 Devuelve 28 Longitud:=length(Frase) Mg. Ing. Fátima Martínez

17 Ejemplo 2 Transformar en mayúscula una cadena de caracteres, considerando el CODIGO ASCII de los caracteres. Mayusculas Mg. Ing. Fátima Martínez

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

19 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; Vocales Mg. Ing. Fátima Martínez

20 Estructura Case Admite un subrango: case VarOrdinal of
Valor1 .. Valor2 : begin instruc1; end; Valor3 .. Valor4 : begin instruc2; end; etc. end; case Edad of : writeln(‘categoría infantil’); : writeln(‘ categoría superjuvenil’); etc. end; Mg. Ing. Fátima Martínez

21 Ejemplo 4 Convertir un número binario en su equivalente decimal.
Mg. Ing. Fátima Martínez

22 Los digitos binarios La primera posición es cero, pero a fin de trabajar con potencias de 2, le llamaremos 1. Los dígitos binarios sólo pueden ser: 1 o 0. Posiciones 1x x x x x x x x 1 Mg. Ing. Fátima Martínez

23 uses crt; type TBin = array[1
uses crt; type TBin = array[1..8]of byte; var NBin : TBin; NDec : integer; PesoDig : integer; i : byte; begin clrscr; highvideo; PesoDig:=128; NDec:=0; for i:=8 downto 1 do begin write('NBin ',i,'='); readln(NBin[i]); NDec:=NDec+NBin[i]*PesoDig; PesoDig:=PesoDig DIV 2; end; Binarios Mg. Ing. Fátima Martínez

24 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

25 Comparar a1 con a2 e intercambiarlos si a1>a2 (o a1<a2).
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

26 Mg. Ing. Fátima Martínez

27 Mg. Ing. Fátima Martínez

28 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

29 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

30 SEGUNDA PARTE ARREGLOS De dos dimensiones: Matrices.
Type: tipo de datos definido por el usuario. Operaciones con matrices. Asignación. Mg. Ing. Fátima Martínez

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

32 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

33 Leer o escribir Para asignar por completo un arreglo:
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

34 Procedimiento CargarMatriz( )
Recibirá como único parámetro una matriz de enteros de 10 x 15 y le asignará valores aleatorios en el rango 10, 50. Calculará la suma de cada fila, y dicho resultado será mostrado a la derecha de la matriz (a continuación de cada fila). Como forma de verificación, se imprimirá la matriz, desde un procedimiento llamado en el main( ). Mg. Ing. Fátima Martínez

35 uses crt; const DIM1 = 10; DIM2 = 15; type TMat = array[1. DIM1,1
uses crt; const DIM1 = 10; DIM2 = 15; type TMat = array[1..DIM1,1..DIM2]of integer; var Mat : TMat; i, j : integer; { } procedure CargarMatriz( var M : TMat); var SumaFila : integer; i, j : integer; begin for i:=1 to DIM1 do begin SumaFila:=0; Mg. Ing. Fátima Martínez

36 for j:=1 to DIM2 do begin M[i, j]:=10+random(41); SumaFila:=SumaFila+M[i,j]; write(M[i, j]:3); end; //finalizan las columnas writeln(SumaFila:6); end;//finalizan las filas end;//finaliza el procedimiento Mg. Ing. Fátima Martínez

37 Llamada al procedimiento
Begin (* main *) clrscr; randomize; CargarMatriz(Mat); readkey; for i:=1 to DIM1 do begin for j:=1 to DIM2 do write(Mat[i,j]:3); writeln; end; End. Carga Matriz Mg. Ing. Fátima Martínez

38 Tabla de factoriales n n/3 n! 1 0 1 3 1 6 5 1 120 7 2 5040 : : :
1 0 1 3 1 6 : : : Escribe una función de nombre Factorial que calcule el factorial de un número y otra función de nombre Cociente3 que calcule el cociente indicado. Presenta los valores calculados en forma de una Tabla. Mg. Ing. Fátima Martínez

39 M Factorial Entrada n: entero Salida fact: entero Variable c: entero
Inicia Proceso Leer n fact <- 1 c <- 1 Mientras c <= n Hacer fact <- fact * c c <- c + 1 Fin Mientras Escribir fact Parar Factorial Mg. Ing. Fátima Martínez

40 Suma Diagonal principal
Escribir un procedimiento CargarMatriz( ) que cargará una matriz de DIM x DIM con números aleatorios entre 10 y 50. Escribir una función SumarDiagonal( ) que recibirá como parámetro la matriz y determinará la suma de su diagonal principal. Desde el programa principal invocar al procedimiento y presentar la suma de la diagonal. Suma Diagonal Mg. Ing. Fátima Martínez

41 Mg. Ing. Fátima Martínez


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

Presentaciones similares


Anuncios Google