75.40 Algoritmos y Programación I

Slides:



Advertisements
Presentaciones similares
Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I
Advertisements

IBD Curso 2007 Clase 2.
Programación de Computadores
Sesión 13 Tipos de datos Estruturados Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.
Programación de Computadores
Estructuras de Datos (ARRAYS)
Programación I Teoría III
Las estructuras de arreglos fueron usadas en las primeras computadoras digitales, cuando la programación se hacía todavía en lenguaje máquina, para tablas.
Tema 1. Introducción a la programación (Lenguaje java).
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Arreglos Ing. Nahiby Castillo.
Facultad de Ingeniería y Arquitectura Introducción a la Computación 2007 – I (14va Semana) Lunes 11 de Junio Ing. Juan José Montero Román.
ARREGLOS Estructuras de datos.
Estructuras de datos M.I.A Daniel Alejandro García López.
C lase 10 COMPUTACION /17/2014Computacion - Fac. Ingeniería2  Ademas de los ya vistos (tipos simples), puede usarse como parámetros variables.
Vectores en java.
Arreglos Prof. CÉSAR MOLINA.
UNIVERSIDAD DE MANAGUA I CUATRIMESTRE INTRODUCCION A LA PROGRAMACION
Sesión 6 Sentencias de Repetición Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.
Departamento de Informática Universidad Técnica Federico Santa María Capítulo 2 “Subprogramas/Funciones - Arreglos” Arreglos-Arrays.
Matrices Es una estructura homogénea, compuesta por varios elementos, todos del mismo tipo y almacenados consecutivamente en memoria A cada elemento se.
Arreglos.
ESTRUCTURAS DE DATOS I Conocer, comprender y analizar algunos de los principales tipos de estructuras de datos.
Universidad Domingo Savio Facultad de Ciencias y Tecnología de la Información Carrera Ingeniería en Redes y Telecomunicaciones Materia : Programación I.
COMPUTACION 2009 Clase 6 Clase 7.
Clase 10: Estructuras de datos y arreglos.
Programación IMC José Andrés Vázquez Flores. Definición Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un.
METODOLOGÍA DE LA PROGRAMACIÓN
Agosto 2010Programación I - Tipo de Datos1 Programación I Prof. Adjunto: Lic. Jorge O. Scucimarri Universidad Nacional de Luján Licenciatura en Sistemas.
Resolución de Problemas y Algoritmos Uso de iteración con secuencias
Programación en Pascal
Sesión 5 Sentencias de Selección y repetición Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.
Sesión 17 Tipos de datos Estruturados Arreglos de Registros Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.
Resolución de Problemas y Algoritmos Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Bahía Blanca - Argentina.
COMPUTACION 2009 C lase 4 Programa PASCAL SENTENCIAS DATOS Expresiones Tipos Declaración de variables Declaración de variables Asignación Entrada/Salida.
Aplicación de estructuras de datos
Programación I Arreglos II- Matrices.
Fundamentos de Programación
Vectores y Matrices.
Programación I Arreglos. Los elementos de un arreglo son todos del mismo tipo de dato (todos integer o real o char o registros o aún arreglos)
Programación en C para electrónicos
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:
Conjuntos  Tipo estructurado  Es una lista encerrada entre corchetes  Deben ser elementos de igual tipo y Ordinales. Pueden especificarse subrangos.
Tema 8: Tipos de Datos Estructurados I
Matrices Departamento de Computación Escuela de Ingeniería de Sistemas
Vectores y Matrices.
Departamento de Informática Universidad Técnica Federico Santa María Temas 2,3,4: Estructura de un Programa Pascal Declaraciones Tipos de Datos Simples.
Introducción a la Programación “Conceptos Básicos” Manuel Crisosto M., Claudio Gutiérrez S., Christian Vidal C.
Clase 6 COMPUTACION 2009 C lase 8 Tipos de Datos PASCAL Estructurados Simples Primitivos No primitivos Integer Real Char Boolean String Archivos Registros.
Matrices Prof. Flor Narciso Departamento de Computación
Vectores y Matrices.
ELEMENTOS DE COMPUTACIÓN Profesor: Guillermo Figueroa
Contenido:  ¿Qué son los Punteros?  Los Procedimientos: New y Dispose.
Estructura de datos I CIS - UABJB.
Capitulo 4 Arreglos o Arrays Unidimensionales Bidimensionales Strings
Arreglos: Vectores Departamento de Computación
Fundamentos de Programación
Al finalizar el curso el alumno será capaz de: Diseñar algoritmos utilizando estructuras estáticas de datos y programación modular.
Universidad Domingo Savio Facultad de Ciencias y Tecnología de la Información Carrera Ingeniería en Redes y Telecomunicaciones Materia : Programación I.
Computación I. CI-2125 Tema VII
Programación de Computadores
Arreglos: Vectores Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes.
OBJETIVOS DEFINIR LA ESTRUCTURA DE ARREGLOS. DECLARAR ARREGLOS EN C.
PROF. RAFAEL MONTENEGRO B. UNELLEZ-APURE Introducci Ó n a los Arreglos (“arrays”) en C++
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ Facultad de Ingeniería de Sistemas Computacionales Programa de Lic. en Informática Educativa Computación.
Arreglos. en Lenguaje C n
“Estructuras de datos”
UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO FACULTAD DE INGENIERÍA COORDINACIÓN DE MATERIAS PROPEDÉUTICAS INGENIERÍA EN SISTEMAS ENERGÉTICOS SUSTENTABLES.
String, arreglos y arreglos bidimensionales
String, arreglos y arreglos bidimensionales
Transcripción de la presentación:

75.40 Algoritmos y Programación I Síntesis Teórica Cátedra: Ing. Domingo T. Mandrafina Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina

75.40 Algoritmos y Programación I Síntesis Teórica Cátedra: Ing. Domingo T. Mandrafina Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina

Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina Indice Vectores y Matrices 4 Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina

Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina Vectores y Matrices Vectores: Introducción Con lo aprendido hasta ahora resolvamos los siguientes problemas: Dados 50 números enteros, obtener el promedio de ellos. Mostrar por pantalla dicho promedio y los números ingresados que sean mayores que él. Dados n números, obtener e imprimir la suma de todos ellos. A continuación mostrar por pantalla todos los sumandos. Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina

Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina Vectores y Matrices Es posible resolver estos problemas? Por qué? Una de las principales dificultades que se observan con estos problemas es que para la resolución de ambos es necesario almacenar la totalidad de los datos a procesar. No sería eficiente crear n cantidad de variables para guardar estos datos. Para realizar programas y/o algoritmos que nos permitan resolver los problemas planteados, usaremos una nueva estructura de datos denominada vectores. Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina

Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina Vectores y Matrices Una estructura de datos es un conjunto de datos con un cierto orden. Las estructuras de datos pueden ser dinámicas o estáticas. Estáticas: aquellas a las que se le asigna una cantidad fija de memoria de acuerdo a lo definidio en la declaración de la variable. Dinámicas: son aquellas cuyo tamaño en memoria aumenta o disminuye en tiempo de ejecución de acuerdo a las necesidades del programa. Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina

Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina Vectores y Matrices Reales Enteros Char Boolean Enumerados Simples Tipos de Estructuras Estáticas String arrays set record file Complejas Dinámicas (punteros) Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina

Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina Vectores Qué es un vector? Un vector (o arreglo unidimensional) es una estructura de datos en la cual se almacena un conjunto de datos de un mismo tipo. Es decir que un arreglo es una lista de n elementos que posee las siguientes características: se identifica por un único nombre de variable sus elementos se almacenan en posiciones contiguas de memoria se accede a cada uno de sus elementos en forma aleatoria Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina

Vectores Elementos 9 3 5 4 8 2 6 Mi_vector Nombre de la variable Posición : 1 Contenido : Mi_vector[1] = 9 Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina

Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina Vectores Ejemplos: Ejemplo 1. Resolvamos este primer ejemplo: Cargar 10 elementos en un vector, sumarlos y mostrar el resultado por pantalla. Pasos para resolver este problema: Leer un vector de 10 elementos Sumar los elementos Mostrar el resultado de la suma por pantalla Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina

Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina Vectores Ejemplo 1 - Diagrama de Jackson Ejemplo 1 Lectura del arreglo Suma de los elementos Muestra resultados Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina

Vectores - Ejemplo1 Program Ejemplo1; {Version 1} type sumandos = array[1..10] of integer; var suma, i : integer; vec_sumandos : sumandos; begin suma := 0; for i:= 1 to 10 do read(vec_sumandos[i] ) for i := 1 to 10 do suma:= suma +vec_sumandos[i]; writeln (´La suma de los números es´, suma); end. Declaración del tipo del arreglo Declaración de la variable arreglo Lectura de los elementos del arreglo Suma de los elementos Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina

Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina Vectores - Ejemplo1 Program Ejemplo1; {Version 2} type sumandos = array[1..10] of integer; var suma, i : integer; vec_sumandos : sumandos; begin suma := 0; for i:= 1 to 10 do read(vec_sumandos[i] ) suma:= suma +vec_sumandos[i]; end; writeln (´La suma de los números es´, suma); end. Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina

Vectores - Declaración Como ya dijimos anteriormente, los arreglos son estructuras de datos, por lo tanto las mismas deben ser declaradas. Esta operación se realiza en la seccción “Type” de un programa en Pascal. (como puede verse en el ejemplo1) formato type nombre_del_tipo = array[tipo_subindice * ] of tipo; * debe ser de tipo ordinal: boolean, char, enumerado o subrango Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina

Vectores - Declaración Luego de la declaración del tipo, se declara la variable. formato var nombre_variable: nombre_del_tipo; Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina

Vectores - Declaración Ejemplos de declaraciones: Ej1: type Valores = array[ -10..10 ] of real; var precios: valores; Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina

Vectores - Declaración Ejemplos de declaraciones: Ej2: const Max= 500; type T_Texto = array[ 1..Max ] of char; var Texto: T_Texto; Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina

Vectores - Manejo de índices Asignación de valores Texto[3] := ´a´; Precios[0] := 23.50; Como ya dijimos, los índices de un arreglo pueden ser: entero, lógico, caracter, enumerado o subrango. Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina

Vectores - Manejo de índices const longitud = 40; altura = 30; type horizontal = 1..Longitud; T_Línea = Array [ horizontal ] of char; var Linea: T_Linea Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina

Vectores - Manejo de índices type DiasSemana = (Lunes, Martes, Miercoles,Jueves, Viernes, Sabado, Domingo ); T_Dias = array [DiasSemana] of integer; var Dias: T_Dias; Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina

Vectores - Operaciones Con la siguiente declaración: type T_Notas = array [1..30] of integer; var Notas: T_Notas; Lectura de un vector for i:= 1 to 30 do read(Notas[i] ) Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina

Vectores - Operaciones Escritura de un vector for i:= 1 to 30 do writeln(Notas[i] ) Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina

Vectores - Operaciones Con la siguiente declaración: type T_Notas = array [1..30] of integer; var Notas, Aux_Notas: T_Notas; Copia de vectores for i:= 1 to 30 do Aux_Notas[i]:= Notas[i]; o bien: Aux_Notas:=Notas; Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina

Vectores - Ejemplos resueltos Ej2- Dados 50 números enteros, obtener el promedio de ellos. Mostrar por pantalla dicho promedio y los números ingresados que sean mayores que el mismo. Ej3 - Dados n números, obtener e imprimir la suma de todos ellos. A continuación mostrar por pantalla todos los sumandos. Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina

Vectores - Ejemplos resueltos Program Ej2; const max = 50; type t_numeros = array[1.. max] of integer; var suma, i : integer; promedio: real; numeros : t_numeros; begin suma := 0; Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina

Vectores - Ejemplos resueltos for i:= 1 to max do begin read(numeros[i] ) suma:= suma +numeros[i]; end; Promedio:= suma/max; writeln (´El promedio es ´,Promedio´); for i := 1 to 50 do if numeros[i] > promedio then writeln (´El número´, numeros[i], ´es mayor al promedio´); end. Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina

Vectores - Ejemplos resueltos Program Ej3; const max = 100; type t_numeros = array[1.. max] of integer; var suma, i, n : integer; promedio: real; numeros : t_numeros; begin suma := 0; write (´Ingrese la cantidad de números a sumar. (Como máximo, 100 números´); readln(n); Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina

Vectores - Ejemplos resueltos for i:= 1 to n do begin read(numeros[i] ) suma:= suma +numeros[i]; end; writeln (´La suma es ´,suma´); for i := 1 to n do writeln (´El sumando´, i, ´es´, numeros[i]); end. Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina

Vectores - Vectores Paralelos Dos o más arreglos que utilizan el mismo subíndice para acceder a elementos de distintos arreglos, se denominan arreglos paralelos. Estos arreglos pueden procesarse simultáneamente. Ejercicio: Se tienen dos arreglos. El primero contiene nombres de personas y el segundo contiene los sexos de las personas del primer arreglo, codificados como ´f´femenino y ´m´ masculino. Obtener a partir de estos otros dos arreglos, el primero de los cuales debe contener todos los nombres de los varones y el segundo, el nombre de todas las mujeres Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina

Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina Matrices Resolvamos el siguiente problema: Un instituto desea controlar los resultados de los alumnos en las distintas asignaturas de la facultad de Ingeniería. El programa debe ingresar las calificaciones de los alumnos y visualizar en pantalla la media de notas por alumno y la media de notas por asignatura. Las asignaturas están codificadas de 1 a 6 y hay 30 alumnos. Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina

Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina Matrices Es posible resolver este problema con lo visto hasta ahora? Para realizar el anterior programa , debemos trabajar con una tabla (o matriz o arreglo bidimensional) Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina

Matrices Mi_Matriz 9 3 5 4 8 2 6 9 3 5 4 8 2 6 9 3 5 4 8 2 6 Nombre de la variable 9 3 5 4 8 2 6 Posición : 3,1 Contenido : Mi_vector[3,1] = 9 Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina

Matrices - Declaraciones Ejemplos de declaraciones: Ej1: type T_matriz = array[ 1..10, 1..10 ] of real; var Matriz: valores; Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina

Matrices - Declaraciones Ejemplos de declaraciones: Ej2: type T_matriz = array[ 1..10 ] of array [ 1..10 ] of real; var Matriz: valores; Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina

Matrices - Declaraciones Ejemplos de declaraciones: Ej3: type T_filas = array[ 1..10 ] of of real; T_Matriz = array[ 1..10 ] of of T_filas; var Matriz: valores; Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina

Matrices - Operaciones Con la siguiente declaración: type T_matriz = array[ 1..10 ] of array [ 1..10 ] of real; var Matriz: valores; Lectura de una matriz for i:= 1 to 10 do for j:= 1 to 10 do readln(Matriz[i,j] ) Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina

Matrices - Operaciones Escritura de una matriz for i:= 1 to 10 do for j:= 1 to 10 do writeln(Matriz[i,j] ) El recorrido de las matrices puede realizarse tanto por filas como por columnas, de acuerdo al problema a resolver. Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina

Matrices - Ejemplos resueltos Ej4. Un instituto desea controlar los resultados de los alumnos en las distintas asignaturas de la facultad de Ingeniería. El programa debe ingresar las calificaciones de los alumnos y visualizar en pantalla la media de notas por alumno y la media de notas por asignatura. Las asignaturas están codificadas de 1 a 6 y hay 30 alumnos. Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina

Matrices - Ejemplos resueltos Program Ej4; const max_fila = 6 ; max_col = 30; type t_tabla = array[1.. max_fila,max_col ] of char; var i, j: integer; tabla: t_tabla; suma: integer; prom_al, prom_mat:real; begin for i:= 1 to max_fila do for j:= 1 to max_fila do writeln(´Ingrese la nota para la materia´, i, ´del alumno´, j); Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina

Matrices - Ejemplos resueltos for i:= 1 to max_fila do begin suma:=0; for j:= 1 to max_col do suma:= suma + tabla[i,j]; prom_mat [i] : =suma /i; end; for i:= 1 to max_col do for j:= 1 to max_fila do prom_al [i] : =suma /i; Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina

Matrices - Ejemplos resueltos writeln (´La suma es ´,suma´); for i := 1 to max_fila do writeln (´El promedio de calificaciones para la asignatura´, i, ´es´, prom_mat[i]); end. for j := 1 to max_col do writeln (´El promedio de calificaciones para el alumno´, j, ´es´, prom_al[j]); Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina

Arreglos multidimesionales Así como hemos trabajado con vectores (arreglos unidemsionales) y matrices (arreglos unideimesionales), es posible trabajar con arreglos de más de dos dimensiones, los que son denominados arreglos multidimensionales. Ejemplos de problemas de aplicación de arreglos multidimesionales Se desea escribir un programa que permita manejar la información de habitantes de un complejo habitacional. El mismo posee 7 torres; a su vez cada torre posee 20 pisos y cada piso 6 departamentos. Se desea saber: a) Cantidad total de habitantes del complejo b) Cantidad promedio de habitantes por piso de cada torre c) Cantidad promedio de habitantes por torre Algoritmos y Programación I - Cátedra: Ing. Domingo T. Mandrafina