implementar (a veces es imposible) si se utilizan datos simples.

Slides:



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

Unidad de competencia II Estadística descriptiva:
Técnicas para la elaboración de un instrumento
Introducción a los Algoritmos
Parámetros estadísticos
Técnico en programación de Software
Fundamentos de programación
DIAGRAMAS DE FLUJO Y PSEUDOCÓDIGO
Concepto de programa. Directorio Concepto de programa. Analisis del problema. Resolucion del problema. Desarroollo de un programa. Partes constitutivas.
ARREGLOS y MATRICES UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO
III. DISEÑO DE ALGORITMOS PARA LA SOLUCIÓN DE PROBLEMAS.
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Curso de Programación I Parte III
3. INTRODUCCIÓN A LA PROGRAMACIÓN
Estructuras de Repetición
PARADIGMA Es un esquema de pensamiento que nos lleva a concebir las cosas de una manera determinada. el término paradigma puede indicar el concepto de esquema.
Estructuras de datos M.I.A Daniel Alejandro García López.
Tema 6. Conceptos básicos de programación
PSEUDOCÓDIGO. DISEÑO ESTRUCTURADO USANDO HERRAMIENTAS DE REPRESENTACIÓN DE ALGORITMOS.
Arreglos Prof. CÉSAR MOLINA.
ESTRUCTURAS DE CONTROL
UNIVERSIDAD DE MANAGUA I CUATRIMESTRE INTRODUCCION A LA PROGRAMACION
Fundamentos de Programación
Programación de Computadores
LOGICA DE PROGRAMACION
Academia de Informática
FUNDAMENTOS DE PROGRAMACIÓN
ESTRUCTURAS DE DATOS I Conocer, comprender y analizar algunos de los principales tipos de estructuras de datos.
Clase 10: Estructuras de datos y arreglos.
Estructura de Datos II Equipo 4 Equipo 7 Acosta Montiel Miguel A.
Sesión 5 Sentencias de Selección y repetición Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.
COMPONENTES DE UN ALGORITMOS
Material de apoyo Unidad 4 Estructura de datos
Aplicación de estructuras de datos
Juego de Preguntas y Respuestas
ETAPAS PARA SOLUCIONAR UN PROBLEMA
Introducción a la programación
Unidad 1: FUNDAMENTOS DE COMPUTACIÓN Y PSEUDOLENGUAJE
Elementos básicos del lenguaje
Programación de Computadores (IWI-131)
Vectores y Matrices.
Términos algoritmo diseñar algoritmo implementar algoritmo
ELEMENTOS DE COMPUTACIÓN Profesor: Guillermo Figueroa
Operadores Lógicos Y (Conjunción): Tanto P como Q (Ambas). O (Disyunción): Puede ser que P o Q o ambas (mínimo 1)
DEV- C++ ·include <iostream> Int x x=x+2(x)
Estructura de datos I CIS - UABJB.
 Un lenguaje se puede definir como un conjunto de palabras y formas de expresión por medio de las cuales se comunican y relacionan miembros de una comunidad.
Elaboración de algoritmos usando lógica de programación
Fundamentos de Programación
Arreglos unidimensionales
Presente un cuestionario con los aspectos mas importantes sobre los
M.S.C. Ivette Hernández Dávila
Metodología de la programación
Estadística Reporte Ejecutivo
Computación I. CI-2125 Tema VII
Lic. Carla Aguirre Montalvo
ARREGLOS BIDIMENSIONALES MATRICES Son un espacio de almacenamiento continuo, que contiene una serie de elementos del mismo tipo de datos. Desde el punto.
PROGRAMACIÓN Grupo de Modelamiento de Sistemas
Conceptos Generales PROGRAMACIÓN I DOCENTE: ING. MARLENY SORIA M. 1.
INFORMÁTICA II TEMA: DISEÑA Y ELABORA ALGORITMOS DOCENTE: MARÍA DOLORES GARCÍA PONCE CAMPUS TONALÁ JALISCO.
Prof. Jonathan Silva Ingeniería Civil – Informática I Ingeniería Civil Informática I Clase 3 – Diseño de Programas.
Este material ha sido desarrollado para alumnos que cursan la asignatura de Programación Básica impartida en el primer semestre en la Facultad de Ingeniería.
ESTRUCTURAS SELECTIVAS Elaborado por; Ing. Alberto Pérez.
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ Facultad de Ingeniería de Sistemas Computacionales Programa de Lic. en Informática Educativa Computación.
3.6 Manejo de E/S Estructuras En la creación de soluciones para algunos problemas surge la necesidad de agrupar datos de diferente tipo o de manejar datos.
Ciclos de Repeticion Yoel Gutierrez Unidad 6. Contenido DefinicionExplicacionEjemplosReferencias.
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
ALGORITMOS Asignatura: Informática. Algoritmos Conjunto de instrucciones ordenadas de forma lógica y precisa, con un inicio y fin que permite resolver.
Ciclos condicionales y exactos Estructura de control de ciclos
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.
Transcripción de la presentación:

implementar (a veces es imposible) si se utilizan datos simples. ARREGLOS Con frecuencia se presentan problemas cuya solución no resulta fácil de implementar (a veces es imposible) si se utilizan datos simples. A continuación se presentarán un problema y dos posibles soluciones del mismo utilizando tipos simples de datos. El objetivo de este ejemplo es ilustrar lo complejo que resulta un algoritmo de solución para ciertos problemas, sin usar tipos estructurados de datos. Finalmente, y luego de presentar los arreglos, se ofrecerá una solución usando datos estructurados. EJEMPLO 1.1 Se tiene las calificaciones de un grupo de 50 alumnos. Se necesita saber cuántos alumnos tienen una calificación superior al promedio del grupo. ¿Cómo resolver este problema?

EJEMPLO 1.1 Se tiene las calificaciones de un grupo de 50 alumnos. Se necesita saber cuántos alumnos tienen una calificación superior al promedio del grupo. ¿Cómo resolver este problema?

Primera solución: Algoritmo 1.1 Doblelectura DOBLELECTURA {Este algoritmo resuelve el problema planteado en el ejemplo 1.1, por medio de una doble lectura} {I y CONT son variables de tipo entero. AC, PROM y C son variables de tipo real} Hacer AC←0 e I ←1 Repetir mientras (I≤50) Leer calificación I (C) Hacer AC←AC+C e I ←I+1 {Fin del ciclo del paso 2} Hacer PROM←AC/50 {Como se necesita decir cuantos alumnos obtuvieron una calificación superior al promedio, se deberá volver a leer las 50 calificaciones para poder comparar cada una de ellas con el promedio} Hacer CONT←0 e I←1 5. Repetir mientras ( I ≤50) 5.1 Si C>PROM entonces Hacer CONT←CONT+1 5.2 {Fin del condicional del paso 5.1} Hacer I←I+1 {Fin del ciclo del paso 5} Escribir CONT

Segunda solución: Algoritmo 1.2 Muchasvariables {Este algoritmo resuelve el problema planteado en el ejemplo 1.1, utilizando múltiples variables} {ICONT es una variable de tipo entero. PROM, AC y Ci son variables de tipo real} Leer C1, C2,C3,…C50 {Las calificaciones correspondientes a los 50 alumnos} Hacer AC← C1 + C2 + C3+…+C50, PROM ←AC/50 y CONT←0 Si C1>PROM entonces Hacer CONT←CONT+1 {fin del condicional del paso 2} si C2>PROM entonces {fin del condicional del paso 4} … 100. Si C50>PROM entonces {Fin del condicional del paso 100} escribir CONT

Las dos soluciones son muy representativas de los inconvenientes a los que debe enfrentarse al tratar de resolver el problema utilizando sólo datos simples. En la solución planteada en el algoritmo 1.1 el usuario del algoritmo debe ingresar dos veces el conjunto de datos. Esto resulta totalmente molesto (considérese que el número de datos puede ser mayor que 50) y además ineficiente (la operación de lectura, ya sea de manera interactiva con el usuario o desde un archivo, debe repetirse, lo que ocasiona pérdida de tiempo). En la solución planteada en el algoritmo 1.2 se manejan 50 variables en memoria. Esta solución presenta el inconveniente de que el manejo de las variables puede tornarse incontrolable, si el número de las mismas crece considerablemente. Además, algunos pasos especificados en el algoritmo (que posteriormente serán instrucciones de algún lenguaje de programación), se repiten ya que no pueden generalizarse. Esta característica no sólo ocasiona más trabajo, sino también errores. Es sabido que ejecutar una tarea repetidamente (en este caso escribir un mismo paso varias veces) quita interés en la acción que se está llevando a cabo, lo que a su vez ocasiona errores.

FIGURA 1.2 Representación de arreglos Se observa, entonces, que ninguna de las dos soluciones resulta práctica ni eficiente. Es necesario un nuevo tipo de datos que permitan tratar estos problemas de una manera más adecuada. Los tipos de datos estructurados que ayudan a resolver problemas como éste son los arreglos. Un arreglo se define como una colección finita, homogénea y ordenada de elementos.

Finita: todo arreglo tiene un límite; es decir, debe determinarse cuál será el número máximo de elementos que podrán formar parte del arreglo. Homogénea: todos los elementos de un arreglo son del mismo tipo (todos enteros, todos voléanos, etcétera, pero nunca combinación de distintos tipos). Ordenada: se puede determinar cual es el primer elemento, el segundo, el tercero,… y el enésimo elemento. Un arreglo puede representarse gráficamente como se muestra en la figura

Si un arreglo tiene la característica de que puede almacenar a N elementos del mismo tipo, deberá tener la facilidad de permitir el acceso a cada uno de ellos. Así, se distinguen dos partes en los arreglos: los componentes los índices Los componentes hacen referencia a los electos que forman el arreglo. Es decir, a los valores que se almacenan en cada uno de las casillas del mismo (véase figura 1.3). Considerando el ejemplo anterior, cada una de las 50 calificaciones será un componente de un arreglo “calificaciones”. Los índices especifican cuántos electos tendrá el arreglo y demás de qué modo podrán accesarse esos componentes del arreglo en forma individual. Es decir, distinguir entre los elementos del mismo.

Por lo tanto, para hacer referencia a un elemento de un arreglo se utiliza: el nombre del arreglo el índice del electo En la figura 1.3 se representa un arreglo y se indica sus componentes y sus índices.

Ident_arreglo= ARREGLO [límif..límsp} DE tipo DEFINICIÓN DE ARREGLOS Como no es la intención del autor seguir la sintaxis de algún lenguaje de programación, se definirá un arreglo de la siguiente manera: Ident_arreglo= ARREGLO [límif..límsp} DE tipo Con los valores líminf y límsup se declara el tipo de los índices así como el número de elementos que tendrá un arreglo. El número total de componentes (NTC)que tendrá el arreglo puede calcularse con la formula 1.1 NTC= límsup-líminf+1 FÓRMULA 1.1

Como lo hacemos en java? int[] Arreglo={13, 36, 30, 98, 15, 56, 44, 27}; Int arreglo[] ; Int[10] arreglo ; Object[] arreglo;

Con tipo se declara el tipo de datos para todos los componentes del arreglo. El tipo de los componentes no tiene que ser necesariamente el mismo que el tipo de los índices. Observaciones: El tipo del índice puede ser cualquier tipo ordinal (carácter, entero, enumerado). El tipo de los componentes puede ser cualquier tipo (entero, real, cadena de caracteres, registro, arreglo, etcétera). Se utilizaran los corchetes “[]” para indicar el índice de un arreglo. Entre los [] se debe escribir un valor ordinal (puede ser una variable, una constante o una expresión tan compleja como se quiera, pero que dé como resultado un valor ordinal).

Sea V un arreglo de 50 elementos enteros con índices enteros. Su Sea V un arreglo de 50 elementos enteros con índices enteros. Su representación queda como se muestra en la figura 1.4 FIGURA 1.4 V=ARREGLO[1.. 50] DE enteros NTC=(50-1+1)=50 Cada componente del arreglo V será un número entero, y podrá accesarse por medio de un índice que será un valor comprendido entre 1 y 50.

Así por ejemplo: V [1] hace referencia al elemento de la posición 1. V [2] hace referencia al elemento de la posición 2. … V [50] hace referencia al elemento de la posición 50. Los índices de tipo entero no necesariamente deben tener un límite inferior igual a cero a uno. Podrían usarse valores negativos [-10.. 10] o valores mayores a uno [100..200].

EJEMPLO 1.3 Sea A un arreglo de 26 elementos voléanos con índices de tipo carácter. Su representación queda como se muestra en la figura 1.5. A = ARREGLO[´ a ´..´ z ’]DE voléanos NTC =(ord(‘z’)-ord(‘a’)+1)=122-97+1=26 Cada componente del arreglo A será uno de los dos posibles valores lógicos (VERDADERO O FALSO), y podrá accesarse por medio de un índice que será un valor comprendido entre los caracteres ‘a’ y ‘z’. Así por ejemplo: A[‘a’] hace referencia al elemento de la posición ‘a’ (1era.) A[‘b’] hace referencia al elemento de la posición ‘b’ (2da.) … A[‘z’] hace referencia al elemento de la posición ‘z’ (27ma.)

EJEMPLO 1.4 Sea CICLO un arreglo de 12 elementos reales con índices de tipo escalar o enumerados. Su representación queda como se muestra en la figura 1.6. Meses = (ene,feb,mar,abr,may,jun,jul,ago,sep,oct,nov,dic) CICLO = ARREGLO [meses] DE reales NTC = (ord(dic)-ord(ene)+1)=11-0+1=12 Cada componente del arreglo CICLO será un número real, y podrá accesarse por medio de un índice, que será un valor comprendido entre ene y dic. Así por ejemplo: CICLO [ene] hace referencia al elemento de la posición ene (primera). CICLO [feb] hace referencia al elemento de la posición feb (segunda). … CICLO [dic] hace referencia al elemento de la posición dic (doceava).

1.2.2 OPERACIONES CON ARREGLOS Podemos clasificar a las operaciones en las que intervienen arreglos de la Siguiente manera: Lectura/Escritura Asignación Actualización: Inserción Eliminación Modificación Ordenación Búsqueda

PREGUNTAS?