INFORMATICA DEL CBU Clase 10 Año 2016 ARREGLOS.

Slides:



Advertisements
Presentaciones similares
Programación de Computadores
Advertisements

C lase 10 COMPUTACION /17/2014Computacion - Fac. Ingeniería2  Ademas de los ya vistos (tipos simples), puede usarse como parámetros variables.
Sesión 6 Sentencias de Repetición Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.
Programación en Pascal
Sesión 17 Tipos de datos Estruturados Arreglos de Registros Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.
Programación I Arreglos II- Matrices.
75.40 Algoritmos y Programación I
Vectores y Matrices.
Definir un vector Forma general Variable=[tipo]*tamaño Tipo: es el valor inicial con el cual quedarán llenas todas las posiciones creadas del vector. Tamaño:
Tema 8: Tipos de Datos Estructurados I
Vectores y Matrices.
CAPITULO V ARREGLOS Y CADENAS.
Clase 6 COMPUTACION 2009 C lase 8 Tipos de Datos PASCAL Estructurados Simples Primitivos No primitivos Integer Real Char Boolean String Archivos Registros.
Vectores y Matrices.
Computación I. CI-2125 Tema VII
OBJETIVOS DEFINIR LA ESTRUCTURA DE ARREGLOS. DECLARAR ARREGLOS EN C.
TIPOS DE DATOS NO PRIMITIVOS Los arreglos (arrays) son estructuras de datos homogéneos en el sentido de que todos los elementos que lo componen son del.
Rogramación de omputadores Facultad Ingeniería Departamento de Ingeniería de Sistemas e Industrial UN - Virtual 2008 Módulo 4 Arreglos, cadenas y matrices.
Programación II Sesión 3. TABLA DE CONTENIDO  Tipos de Datos en C  Delimitadores  Tipo Char  Tipo Int  Tipo Float  Tipo Double  Constantes  Operadores.
NTICX 2014 – CLASE X Prof. Andrea Marigomez. Sistema Binario  Usa sólo ceros (o) y unos (1) para representar los números.  Constituye la clave del.
Estructura de Datos PROGRAMACION I. REGISTRO  Es un dato estructurado, donde cada uno de sus componentes se denomina campo. Ident_registro =REGISTRO.
Control, adquisición y monitoreo con Arduino y Visual Basic .net
Ingreso , proceso y salida de datos
Repaso Programacion en C
¿Cómo almacenar grandes cantidades de datos?
Programación en C - manejo de Archivos
INFORMATICA DEL CBU Clase 8 Año 2016 PROCEDIMIENTOS.
Tema 4 Elementos para el Desarrollo de Algoritmos
MANEJO DE ARRELOGS EN C Clase 8: Arreglos.
PSEUDOCÓDIGO Prof. Rafael Mourglia.
1 1 1 El Sistema B nar o
TUTORIAL PSeint.
Array Bidemensionales. ¿Qué es una matriz o tabla?  Una matriz es un vector de vectores o también llamado array bidimensional.  Dimensión de un Arreglo:
Paso por Referencia v/s Paso por Valor
Tipos de Datos abstractos
LENGUAJE DE PROGRAMACION III Estructuras Estáticas de Datos
Unidad 2. Algoritmos Unidad 4. Control de flujo
Unidad 3. Introducción a la programación
Tema 7. Introducción a lenguaje de programación Visual Basic (clase 1)
ARREGLOS BIDIMENSIONALES MATRICES Son un espacio de almacenamiento continuo, que contiene una serie de elementos del mismo tipo de datos. Desde el punto.
Diego Hernández R Pascal Variables Diego Hernández R
Fundamentos de programación
Estructuras de Repetición Pseudocodigo1 Estructuras de Repetición Algoritmos Mientras Hacer-Mientras Para.
Estructuras de Control Ciclos
INFORMATICA DEL CBU Clase 11 Año 2016 ARREGLOS.
INFORMATICA DEL CBU Clase 9 Año 2016 FUNCIONES ARREGLOS.
Procesamiento de señales Introducción a Matlab 2014
Paso por Referencia v/s Paso por Valor
ARREGLOS.
Arreglos en Java.
Estructuras de Control 2 Ciclos
Estructuras de Control 3 Ciclos
MATRICES. ¿QUÉ ES UNA MATRIZ? Una matriz es un espacio bidimensional que se genera en la memoria del computador. Las matrices deben tener un nombre que.
TUTORIAL PS EINT FUNDAMENTOS DE PROGRAMACIÓN Ing. Elizabeth Díaz Orea.
TUTORIAL PS EINT FUNDAMENTOS DE PROGRAMACIÓN Ing. Elizabeth Díaz Orea.
Tema 7. Introducción a lenguaje de programación Visual Basic (clase 1)
COLAS O LINEA DE ESPERA EN C# SHARP. ¿QUE ES UNA COLA O LINEA DE ESPERA?  Es una estructura de datos que almacena elemento en una lista y permite acceder.
Diego Hernández R Pascal Variables Diego Hernández R
Estructuras de Repetición Algoritmos
Procedimientos y Funciones
String, arreglos y arreglos bidimensionales
String, arreglos y arreglos bidimensionales
Lenguaje de Programación II
Guía teórica de manejo de estructuras de datos
INTRODUCCIÓN A LA INFORMÁTICA
Procedimientos y Funciones
EUPs que imprima la tabla de multiplicar de 2 al 10
UNIDAD VI ARREGLO UNIDIMENSIONAL
Profesor del curso: UNIVERSIDAD NACIONAL DEL CENTRO DEL PERU 2019-I Facultad de Ingeniería de Sistemas 1.
UNIDAD VI (continuación) ARREGLO BIDIMENSIONAL
Transcripción de la presentación:

INFORMATICA DEL CBU Clase 10 Año 2016 ARREGLOS

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

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

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

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

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

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

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

El límite inferior y superior type TArre = array[‘A’..’Z’] of char; TVect = array[-10..-5] 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

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

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

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

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

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

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

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 0 1 28 Devuelve 28 Longitud:=length(Frase) Mg. Ing. Fátima Martínez

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

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

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

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

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

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. 8 7 6 5 4 3 2 1 128 64 32 16 8 4 2 1 Posiciones 1 1 0 0 1 0 1 1 1x 128 + 1 x 64 + 0 x 32 + 0 x 16 + 1 x 8 + 0 x 4 + 1 x 2 + 1 x 1 Mg. Ing. Fátima Martínez

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

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

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

Mg. Ing. Fátima Martínez

Mg. Ing. Fátima Martínez

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

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

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

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

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

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

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

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

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

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

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 5 1 120 7 2 5040 : : : 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

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

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

Mg. Ing. Fátima Martínez