Presentacion algoritmos

37
UNIVERSIDAD PEDAGOGICA NACIONAL ALGORIT MOS P R E U F O D

description

hola

Transcript of Presentacion algoritmos

Page 1: Presentacion algoritmos

UNIVERSIDAD PEDAGOGICA NACIONAL

ALGORITMOS

P R E U F O D

Page 2: Presentacion algoritmos

Algoritmos

Es un conjunto de pasos lógicos ordenados, secuencialmente y finita, escritos de tal forma que permiten visualizar la solución de un problema determinado en un momento específico.

Es un conjunto de pasos lógicos ordenados, secuencialmente y finita, escritos de tal forma que permiten visualizar la solución de un problema determinado en un momento específico.

Page 3: Presentacion algoritmos

El nombre en latín de algoritmo proviene de la traducción que realizó Fibonacci, de la obra del matemático árabe Al'Khwarizmi llamada , Algoritmi de Numero Indorum.

El nombre en latín de algoritmo proviene de la traducción que realizó Fibonacci, de la obra del matemático árabe Al'Khwarizmi llamada , Algoritmi de Numero Indorum.

ALGORITMO: Nombre

Page 4: Presentacion algoritmos

ALGORITMO: Caracteríticas

FINITOFINITO

CONCRETOCONCRETO LEGIBLELEGIBLE

DEFINIDO DEFINIDO

PRECISOPRECISO

NO AMBIGUO

NO AMBIGUO

EFICIENTEEFICIENTE

Debe ser...Debe tener terminar en

algún momento

Debe realizar las funciones u

operaciones para las que fue

creado.

Debe estar bien estructurado para su fácil

entendimiento.

Debe realizar las operaciones con un mínimo

de utilización de recursos.

Debe estar libre de errores. (Validado)

Debe indicar un orden de

realización de cada paso.

Debe generar el mismo resultado siempre que se

siga.

Page 5: Presentacion algoritmos

ALGORITMO: Estructura

DatosDatos

ProcesosProcesos

Estructuras de ControlEstructuras de Control

Corresponden a los datos requeridos para realizar el algoritmo (datos de entrada) y los datos que son generados (datos de salida)

Conforma el grupo de instrucciones que realizan las operaciones con los datos.

Determinan la organización de las instrucciones que deben ser realizadas.

Page 6: Presentacion algoritmos

ALGORITMO: Elementos

Definición de variables y

constantes

Definición de variables y

constantes

ProcesoEstructuras de control

ProcesoEstructuras de control

EntradaEntrada SalidaSalida

Es necesario identificar que datos se necesitan ingresar, cuales sirven de forma auxiliar y cuales se van a generar.

Las instrucciones que se van a realizar deben estar bien estructuradas y tener un orden lógico, con el fin de evitar inconsistencias en el resultado.

Cuerpo del algoritmoCuerpo del algoritmo

Page 7: Presentacion algoritmos

ALGORITMO: Quienes pueden hacer un algoritmo?

Toda persona, implícitamente y diariamente diseña y realiza algoritmos, para dar solución a situaciones cotidianas de forma natural.

Sin embargo el programador, diseña el algoritmo conciente de que al realizar cada paso obtendrá la solución de un problema específico.

Page 8: Presentacion algoritmos

ALGORITMO: Cómo se hace?

Supongamos que deseamos ir al cine la

película The Matrix, ¿cómo procedemos?

Buscar la página de cines en el diario local y mirar si ve la película anunciada. Si la ve anunciada mira en qué cine la hacen y se va a verla. Si no la ve anunciada, espera a los estrenos de lasemana que viene.

El no programador haría lo siguiente:

Page 9: Presentacion algoritmos

ALGORITMO: Cómo se hace?El programador sin embargo, lo haría de este otro modo:

Buscar la página de cines en el diario local, con fecha de hoy

Revisar la cartelera de arriba abajo y de izquierdaa derecha, buscando entre los títulos existentes.

Si se encuentra el título The Matrix, no seguir buscando. Apuntar el nombre del cine, su dirección y los horarios

Si no se encuentra el título en la cartelera, esperar una semana y volver a empezar el proceso a partir del punto 1 de esta lista.

11

22

33

44

Page 10: Presentacion algoritmos

1. Poner la llave.

2. Asegurarse que el cambio esté en neutro.

3. Pisar el el acelerador.

4. Girar la llave hasta la posición “arranque”.

5. Si el motor arranca antes de 6 seg, dejar la llave en la posición “encendido”.

6. Si el motor no arranca antes de 6 seg, volver al paso 3 (como máximo 5 veces).

7. Si el auto no arranca, llamar a la grúa.

Encender un automóvil

ALGORITMO: Otro ejemplo

Page 11: Presentacion algoritmos

ALGORITMO: Requisitos

Los algoritmos se crean para resolverproblemas. Es importante que junto al algoritmo, describamos claramente el problema que éste nos permite resolver.

No debemos omitir el contexto de nuestros algoritmos. Es necesario establecer lo que se necesita y dónde se debe comenzar.

Seguir los pasos del algoritmo debe llevarnos a la resolución del problema.Siempre que sea posible seguiremos personalmente los pasos de nuestro algoritmo para comprobar que sonefectivamente correctos y conducen efectivamente a la solución esperada.

Por ejemplo: Si se requiere hallar la velocidad de un automóvil, es necesario, definir si la distancia debe ser en metros, kilómetros, etc y el tiempo estará dado en segundos u horas, ya que la velocidad puede representarse en Km/h ó mts/seg.

Debe Definirse del problema

Debe Definirse del problema

Debe estar dentro de contexto

Debe estar dentro de contexto

Debe resolver el problema

Debe resolver el problema

Debe evitar la ambigüedad

Debe evitar la ambigüedad

Page 12: Presentacion algoritmos

ALGORITMO: Técnicas de

Diseño

Es una técnica de diseño descendente donde se realiza un refinamiento sucesivo, que permite darle una organización a las instrucciones, en forma de módulos o bloques.

Está técnica permite dividir el problema en pequeñas partes, a las cuales se les da solución por separado, luego se integran las soluciones para resolver el problema principal.

Top DownTop Down

Divide y vencerásDivide y vencerás

Page 13: Presentacion algoritmos

ALGORITMO: Técnicas de

Representación

Es una técnica que permite representar gráficamente las operaciones y estructuras que se van a realizar, mediante una simbología estándar, con un único punto de inicio y uno de finalización.

Está técnica permite representar el algoritmo mediante un lenguaje más estructurado, facilitando su posterior codificación.

Diagrama de Flujo

Diagrama de Flujo

PseudocódigoPseudocódigo

Inicio Instrucción 1 Instrucción 2 Si condición entonces Instrucción 3 . . . Instrucción nFin

Page 14: Presentacion algoritmos

PSEUDOCÓDIGO:Cómo se Hace?

Cada instrucción que se va a realizar debe comenzar por un verbo, ejemplo: Muestre, Haga, Lea, etc.

Se debe mantener una identación o sangría sobre el margen izquierdo para identificar fácilmente el comienzo y final de las estructuras

La representación de las estructuras son similares u homónimas de los lenguajes de programación, ejemplo: inicio, fin, mientras que, repita_hasta, si_entonces_sino, etc.

11

22

33

Page 15: Presentacion algoritmos

PSEUDOCÓDIGO:Cómo se Hace?

Inicio : Denota el punto de inicio del algoritmo.

Leer : Denota la acción de introducir datos o variables desde un dispositivo estándar de entrada.

Calcular : Denota la realización de cualquier operación aritmética que genere valores para ser

almacenados en una variable.

Imprimir : Representa la acción de enviar datos desde variables a un dispositivo estándar de salida.

Fin: Denota el punto de finalización del algoritmo.

Page 16: Presentacion algoritmos

Se utiliza para indicar el punto de inicio y finalización

del diagrama

Se utiliza para indicar el punto de inicio y finalización

del diagrama

DIAGRAMA DE FLUJO: Simbología

Permite indicar la Entrada de datos

desde un dispositivo

estándar

Permite indicar la Entrada de datos

desde un dispositivo

estándar

Inicio Fin

Inicio Fin

Lectura CapturaLectura Captura Permite indicar la

realización de un proceso

matemático, o una operación de

asignación

Permite indicar la realización

de un proceso matemático,

o una operación de asignación

ProcesoProceso

Page 17: Presentacion algoritmos

Indica la realización de operaciones de salida

a un dispositivo estándar

(el monitor o impresor.)

Indica la realización de operaciones de salida

a un dispositivo estándar

(el monitor o impresor.)

DIAGRAMA DE FLUJO: Simbología

Permite establecer una condición relacional ó

lógica que puede tomar un valor de verdadero o

falso, de este símbolo se deducen 2 flujos

alternativos de ejecución.

Permite establecer una condición relacional ó

lógica que puede tomar un valor de verdadero o

falso, de este símbolo se deducen 2 flujos

alternativos de ejecución.

ImpresiónImpresiónDecisiónDecisión Permiten dar continuidad al diagrama si la página

o área de trabajo esta llena, el círculo se

utiliza como un conector dentro de la misma

página, el otro símbolo se define como un

conector a otra página.

Permiten dar continuidad al diagrama si la página

o área de trabajo esta llena, el círculo se

utiliza como un conector dentro de la misma

página, el otro símbolo se define como un

conector a otra página.

ConectoresConectores Permiten enlazar los símbolos de un sentido

único pueden ser horizontales o verticales.

Estas no pueden entrecruzarse y cada una

de ellas debe tener un único símbolo de partida

y un único símbolo de destino.

Permiten enlazar los símbolos de un sentido

único pueden ser horizontales o verticales.

Estas no pueden entrecruzarse y cada una

de ellas debe tener un único símbolo de partida

y un único símbolo de destino.

FlujoFlujo

Page 18: Presentacion algoritmos

Condición

Si

NoCondición

Si NoSi condición entonces InstruccionesSi condición entonces Instrucciones

DIAGRAMA DE FLUJO: SimbologíaEstructuras de Decisión (Condición)

Si condición entonces Instrucciones si no Instrucciones

Si condición entonces Instrucciones si no Instrucciones

Decisión Simple

Decisión Simple

Decisión Compuesta

Decisión Compuesta

CondiciónSi No

CondiciónNo

CondiciónSi No

Decisión AnidadaDecisión Anidada

Si condición entonces Si condición entonces Instrucciones

si no Si condición entonces Instrucciones si no Instrucciones

Si condición entonces Si condición entonces Instrucciones

si no Si condición entonces Instrucciones si no Instrucciones

Caso condición Val1: Instrucciones Val2: Instrucciones Val3: Instrucciones Otros: InstruccionesFin Caso

Caso condición Val1: Instrucciones Val2: Instrucciones Val3: Instrucciones Otros: InstruccionesFin Caso

Decisión MúltipleDecisión Múltiple

Condición

Si

NoCondición

Val3Val1 Val2 Otro

Page 19: Presentacion algoritmos

Condición

Si

No

Instrucciones

.

.

.Mientras que condición InstruccionesFin Mientras...

.

.

.Mientras que condición InstruccionesFin Mientras...

DIAGRAMA DE FLUJO: SimbologíaEstructuras de Ciclo

.

.

.RepitaInstruccionesHasta que condición...

.

.

.RepitaInstruccionesHasta que condición...

Ciclo MientrasCiclo MientrasCiclo HastaCiclo HastaCiclo ParaCiclo Para ...Para v=valini, v=valfinal, inc Instrucciones Fin Para...v: variablevalini: valor inicialvalfinal: valor finalinc: incremento

...Para v=valini, v=valfinal, inc Instrucciones Fin Para...v: variablevalini: valor inicialvalfinal: valor finalinc: incremento

Condición

Si

No

Instrucciones

Instrucciones

v=valini,v=valfinal, incremento

Page 20: Presentacion algoritmos

ALGORITMO: Fases de Diseño

Análisis del problema

Definición del problema

Selección de la mejor alternativa

Diagramación

Prueba de escritorio

Alg

ori

tmo

Page 21: Presentacion algoritmos

ALGORITMO: Definición del Problema

Está dada por el enunciado del problema, el cuál debe

ser claro y completo

Está dada por el enunciado del problema, el cuál debe

ser claro y completo

Es importante que conozcamos exactamente

que se desea.

Es importante que conozcamos exactamente

que se desea.

Mientras qué esto no se comprenda, no tiene caso pasar a la siguiente etapa.

Mientras qué esto no se comprenda, no tiene caso pasar a la siguiente etapa.

Page 22: Presentacion algoritmos

Proceso

ALGORITMO: Análisis del Problema

Entendido el problema para resolverlo es preciso analizar Entendido el problema para resolverlo es preciso analizar

Los datos de salida o

resultados que se esperan

Los datos de salida o

resultados que se esperan

Los datos de entrada que nos

suministran

Los datos de entrada que nos

suministran

Áreade

Trabajo

Fórmulas Recursos

Page 23: Presentacion algoritmos

ALGORITMO: Selección de Alternativa

Analizado el problema Posiblemente tengamos varias formas de resolverlo

Analizado el problema Posiblemente tengamos varias formas de resolverlo

Solución ..1Solución ..1

Solución ..2Solución ..2

Solución ..3Solución ..3

Solución ..5Solución ..5Lo importante es determinar cuál

es la mejor alternativa

Lo importante es determinar cuál

es la mejor alternativa

La que produce los resultados Esperados en el menor tiempo y al menor costo

La que produce los resultados Esperados en el menor tiempo y al menor costo

Se debe tener en cuenta el principio de que las

cosas siempre se podrán hacer de una mejor

forma.

Se debe tener en cuenta el principio de que las

cosas siempre se podrán hacer de una mejor

forma.

Page 24: Presentacion algoritmos

ALGORITMO: Diagramación

Una vez que

sabemos

cómo resolver el

problema

Dibujargráficamente la lógica de la alternativa

seleccionada

Plasmar la solucion

mediante elPseudocódigo

Page 25: Presentacion algoritmos

ALGORITMO: Prueba de Escritorio

Esta prueba consiste en:Esta prueba consiste en:

Dar diferentes datos de entrada al programa

Dar diferentes datos de entrada al programa

seguir la secuencia indicada

seguir la secuencia indicada

hasta obtener los resultados

hasta obtener los resultados

Se utiliza para corroborar que el algoritmo plasmado en cualquier herramienta presenta la solución al problema inicial

Se utiliza para corroborar que el algoritmo plasmado en cualquier herramienta presenta la solución al problema inicial

Al realizar lo anterior se puede comprobar si

el algoritmo es correcto o

si hay necesidad de hacer ajustes (volver al paso

anterior)

Al realizar lo anterior se puede comprobar si

el algoritmo es correcto o

si hay necesidad de hacer ajustes (volver al paso

anterior)

Es Recomendable

Dar diferentes datos de entrada y considerar todos los posibles casos, aún los de excepción o no esperados, para asegurar que el programa no produzca errores en ejecución cuando se presenten estos casos.

Es Recomendable

Dar diferentes datos de entrada y considerar todos los posibles casos, aún los de excepción o no esperados, para asegurar que el programa no produzca errores en ejecución cuando se presenten estos casos.

Page 26: Presentacion algoritmos

ALGORITMO: Conceptos

Minima parte de la información.Se refiere a los elementos que se utilizan en los algoritmos para realizar alguna operación sobre estos.

Minima parte de la información.Se refiere a los elementos que se utilizan en los algoritmos para realizar alguna operación sobre estos.

Corresponde al tipo de valor que puede

almacenarse en un espacio de memoria

definido y a la cantidad de espacio que requiere

para almacenar un valor.

Corresponde al tipo de valor que puede

almacenarse en un espacio de memoria

definido y a la cantidad de espacio que requiere

para almacenar un valor.

DatoDatoTipo de DatoTipo de Dato

Corresponde a un espacio de memoria que

almacena un dato que dentro del programa en

ejecución cambia o varía su contenido (valor)..

Corresponde a un espacio de memoria que

almacena un dato que dentro del programa en

ejecución cambia o varía su contenido (valor)..

VariableVariableCorresponde a un

espacio de memoria que almacena un dato que

dentro del programa en ejecución mantiene

siempre su contenido (valor).

Corresponde a un espacio de memoria que

almacena un dato que dentro del programa en

ejecución mantiene siempre su contenido

(valor).

ConstanteConstante

Page 27: Presentacion algoritmos

Tipos de

Datos

ALGORITMO: Tipos de Datos

CaracterCaracter

RealReal

EnteroEntero

BoleanoBoleano

cadenacadena

Numéricos

Lógicos

Carácter

Page 28: Presentacion algoritmos

ALGORITMO: Operadores

Aritméticos

Lógicos

Relacionales

+- >

<=

NoY &&O ||

/ ^

%>=<=

!= <>

Page 29: Presentacion algoritmos

Clasificación de los tipos de datos según su estructura:- Simples:

- Estándar (entero, real, carácter, booleano)-No estándar (enumeración, subrango)

- Estructurados:- Estáticos (arrays, cadena, registros, ficheros, conjuntos- Dinámicos (punteros, listas enlazadas, árboles, grafos

Clasificación de los tipos de datos según su estructura:- Simples:

- Estándar (entero, real, carácter, booleano)-No estándar (enumeración, subrango)

- Estructurados:- Estáticos (arrays, cadena, registros, ficheros, conjuntos- Dinámicos (punteros, listas enlazadas, árboles, grafos

INTRODUCCIÓN A LAS ESTRUCTURAS DE DATOS

PilasColas

Los tipos simples son cuando cada dato representa un único elemento:- Estándar: Están definidos por defecto por el lenguaje.- No estándar: Tipos simples definidos por el usuario.

Los tipos simples son cuando cada dato representa un único elemento:- Estándar: Están definidos por defecto por el lenguaje.- No estándar: Tipos simples definidos por el usuario.

Los tipos de datos estructurados, son cuándo un dato es una estructura que se construyen a partir de otros complementos.Los tipos de datos estructurados, son cuándo un dato es una estructura que se construyen a partir de otros complementos.

•Estáticos: Ocupan un tamaño de memoria fijo, que tengo que definir antes de declararlo

.•Dinámicos: La estructura no ocupa un tamaño fijo de memoria, sino que ocupa la memoria que ocupa en cada momento. Se van a manejar a través del tipo de dato puntero.

•Estáticos: Ocupan un tamaño de memoria fijo, que tengo que definir antes de declararlo

.•Dinámicos: La estructura no ocupa un tamaño fijo de memoria, sino que ocupa la memoria que ocupa en cada momento. Se van a manejar a través del tipo de dato puntero.

Page 30: Presentacion algoritmos

ARRAYS UNIDIMENSIONALES: VECTORES.ARRAYS UNIDIMENSIONALES: VECTORES.

Un array unidimensional, o lineal, o vector, es un conjunto finito y ordenado de elementos homogéneos.Un array unidimensional, o lineal, o vector, es un conjunto finito y ordenado de elementos homogéneos.

Es finito porque tiene un número determinado de elementos. Homogéneo porque todos los elementos almacenados van a ser del mismo tipo.

Ordenado porque vamos a poder acceder a cada elemento del array de manera independiente porque va a haber una forma de referenciar cada elemento.

Los arrays se almacenan siempre en posiciones consecutivas de memoria y podemos acceder a cada elemento del array de manera independiente a través de los índices. Un índice no tiene porque ser un valor constante, sino que puede ser también una variable o una expresión que al ser evaluada devuelva ese índice.

Los arrays se almacenan siempre en posiciones consecutivas de memoria y podemos acceder a cada elemento del array de manera independiente a través de los índices. Un índice no tiene porque ser un valor constante, sino que puede ser también una variable o una expresión que al ser evaluada devuelva ese índice.

A la hora de definir un array siempre habrá que dar el nombre del array, el rango de sus índices y el tipo de los datos que contiene, y para hacer esa declaración, se utiliza la siguiente nomenclatura.

<nom_array>: array [LI .. LS] de <tipo>sueldo: array [1 .. 8] de realsueldo: array [1990 .. 1997] de realsueldo [1992] 100000I: enteroI 1992Sueldo [I]Sueldo [I+2]

<nom_array>: array [LI .. LS] de <tipo>sueldo: array [1 .. 8] de realsueldo: array [1990 .. 1997] de realsueldo [1992] 100000I: enteroI 1992Sueldo [I]Sueldo [I+2]

Page 31: Presentacion algoritmos

OPERACIONES CON ARRAYS UNIDIMENSIONALES O VECTORES

1.- Asignación de un dato a una posición concreta del array:<nom_array>[indice] valor

1.- Asignación de un dato a una posición concreta del array:<nom_array>[indice] valor

1 2 3 4 5 6 7 8 9 10 11 12

Ventas [3] 800000

leer <nom_array>[indice] escribir <nom_array>[indice] desde i=1 hasta 12 escribir “Introduce las ventas del mes”i leer ventas [i] fin desde desde i=1 hasta 12 escribir “Ventas del mes”i”=”ventas [i] fin desde 

leer <nom_array>[indice] escribir <nom_array>[indice] desde i=1 hasta 12 escribir “Introduce las ventas del mes”i leer ventas [i] fin desde desde i=1 hasta 12 escribir “Ventas del mes”i”=”ventas [i] fin desde 

2.- Lectura y escritura de datos:2.- Lectura y escritura de datos:

Utilizando diferente Ciclos

Hacer para I =1 hasta 12leer ventas [ I ]

Fin para Hacer mientras I <= 12 Leer ventas [ I ] Fin mientras

I =1Repetir

Leer vec[ i ] I = I + 1Hasta que 

Utilizando diferente Ciclos

Hacer para I =1 hasta 12leer ventas [ I ]

Fin para Hacer mientras I <= 12 Leer ventas [ I ] Fin mientras

I =1Repetir

Leer vec[ i ] I = I + 1Hasta que 

Page 32: Presentacion algoritmos

3. Recorrido o acceso secuencial de un array:- Consiste en pasar por todas las posiciones del array para procesar su información.

3. Recorrido o acceso secuencial de un array:- Consiste en pasar por todas las posiciones del array para procesar su información.

Desde i=1 hasta 12 Ventas [i] ventas [i] + 1000000

Fin desde

Desde i=1 hasta 12 Ventas [i] ventas [i] + 1000000

Fin desde

4. Actualización de un array:

1º) Añadir datos: Es un caso especial de la operación de inserción de un elemento en un array, pero el elemento lo ingresamos después de la última posición que contiene información válida en el array. Para que esto se pueda hacer es necesario que si actualmente el array tiene K posiciones de información válida, tenga un tamaño de al menos K+1 para que pueda añadir otro elemento a continuación de K.

<nom_array>[K+1] valor

1º) Añadir datos: Es un caso especial de la operación de inserción de un elemento en un array, pero el elemento lo ingresamos después de la última posición que contiene información válida en el array. Para que esto se pueda hacer es necesario que si actualmente el array tiene K posiciones de información válida, tenga un tamaño de al menos K+1 para que pueda añadir otro elemento a continuación de K.

<nom_array>[K+1] valor

Page 33: Presentacion algoritmos

2º) Inserción de datos:2º) Inserción de datos:

Consiste en introducir un elemento en el interior de un array para lo cual será necesario desplazar todos los elementos situados a la derecha del que vamos a insertar una posición a la derecha con el fin de conservar el orden relativo entre ellos.

Consiste en introducir un elemento en el interior de un array para lo cual será necesario desplazar todos los elementos situados a la derecha del que vamos a insertar una posición a la derecha con el fin de conservar el orden relativo entre ellos.

Para que se pueda insertar un nuevo elemento en el array si ya existen N elementos con información en el array, el array tendrá que tener un tamaño de cómo mínimo N+1 para poder insertar el elemento.

Para que se pueda insertar un nuevo elemento en el array si ya existen N elementos con información en el array, el array tendrá que tener un tamaño de cómo mínimo N+1 para poder insertar el elemento.

C E F J M O

“G”Siendo K la posición en la que tengo que insertar el nuevo elemento y N el número de elementos válidos en el array en el momento de la inserción y siempre suponiendo de N+1, el algoritmo de inserción será:

Siendo K la posición en la que tengo que insertar el nuevo elemento y N el número de elementos válidos en el array en el momento de la inserción y siempre suponiendo de N+1, el algoritmo de inserción será:

Desde i=N hasta K A[I+1] A[I]

Fin desdeA[K] valor

Desde i=N hasta K A[I+1] A[I]

Fin desdeA[K] valor

Page 34: Presentacion algoritmos

3º) Borrar datos:

Para eliminar un elemento de un array si ese elemento está posicionado al final del array, no hay ningún problema, simplemente si el tamaño del array era N, ahora hay que considerar que el tamaño del array es N-1.

Si el elemento a borrar ocupa cualquier otra posición entonces tendré que desplazar todos los elementos situados a la derecha del que quiero borrar una posición hacia la izquierda para que el array quede organizado.

Para eliminar un elemento de un array si ese elemento está posicionado al final del array, no hay ningún problema, simplemente si el tamaño del array era N, ahora hay que considerar que el tamaño del array es N-1.

Si el elemento a borrar ocupa cualquier otra posición entonces tendré que desplazar todos los elementos situados a la derecha del que quiero borrar una posición hacia la izquierda para que el array quede organizado.

C E F J M O

Borrar J.Suponiendo que el número de elementos validos actualmente es N y que quiero borrar el elemento de la posición K.

Borrar J.Suponiendo que el número de elementos validos actualmente es N y que quiero borrar el elemento de la posición K.

Desde i=K hasta N-1 A[I] A[I+1]Fin desde

Desde i=K hasta N-1 A[I] A[I+1]Fin desde

Para indicar que el número de elementos validos es N, podríamos indicarlo como N N-1.Para indicar que el número de elementos validos es N, podríamos indicarlo como N N-1.

Page 35: Presentacion algoritmos

ARRAYS BIDIMENSIONALES O MATRICES

En un array unidimensional o vector cada elemento se referencia por un índice, en un array bidimensional cada elemento se va a referenciar por 2 índices, y ahora la representación lógica ya no va a ser un vector, sino una matriz.

Un array bidimensional de M*N elementos es un conjunto de M*N elementos todos del mismo tipo, cada uno de los cuales se referencia a través de 2 subíndices.

El primer subíndice podrá variar entre 1 y M si hemos empezado a numerar los índices por 1, y el segundo índice variará entre 1 y N, si hemos empezado a numerar los índices por el 1.

En un array unidimensional o vector cada elemento se referencia por un índice, en un array bidimensional cada elemento se va a referenciar por 2 índices, y ahora la representación lógica ya no va a ser un vector, sino una matriz.

Un array bidimensional de M*N elementos es un conjunto de M*N elementos todos del mismo tipo, cada uno de los cuales se referencia a través de 2 subíndices.

El primer subíndice podrá variar entre 1 y M si hemos empezado a numerar los índices por 1, y el segundo índice variará entre 1 y N, si hemos empezado a numerar los índices por el 1.

Y más en general podemos definir un array de 2 dimensiones de la siguiente manera.Y más en general podemos definir un array de 2 dimensiones de la siguiente manera.

<nom_array>: array [LI1..LS2,LI2..LS2] de <tipo><var_array>[I , J]LI1 <= I <= LS1LI2 <= J <= LS2

El tamaño del array será (LS1-LI1 +1)*(LS2-LI2 +1)Ventas de cada mes de 1990 a 1995:Ventas: array [1990..1995,1..12] de real6*12=72

<nom_array>: array [LI1..LS2,LI2..LS2] de <tipo><var_array>[I , J]LI1 <= I <= LS1LI2 <= J <= LS2

El tamaño del array será (LS1-LI1 +1)*(LS2-LI2 +1)Ventas de cada mes de 1990 a 1995:Ventas: array [1990..1995,1..12] de real6*12=72

Page 36: Presentacion algoritmos

La representación lógica de un array bidimensional es una matriz de dimensiones M*N donde Mes el número de filas de la matriz y N es el número de columnas, es decir, la 1ª dimensiónindicaría las filas y la 2ª dimensión indicaría las columnas, es decir, al intentar acceder a un elemento I,J estaríamos accediendo al elemento que ocupa la fila I y la columna J.

En memoria, sin embargo todos los elementos del array se almacenan en posiciones contiguas pero nosotros lo vemos como una matriz.

La representación lógica de un array bidimensional es una matriz de dimensiones M*N donde Mes el número de filas de la matriz y N es el número de columnas, es decir, la 1ª dimensiónindicaría las filas y la 2ª dimensión indicaría las columnas, es decir, al intentar acceder a un elemento I,J estaríamos accediendo al elemento que ocupa la fila I y la columna J.

En memoria, sin embargo todos los elementos del array se almacenan en posiciones contiguas pero nosotros lo vemos como una matriz.

1990199119921993 X19941995

Ventas [1993,3]En memoria estaría almacenado todo seguido:Ventas [1993,3]En memoria estaría almacenado todo seguido:

Page 37: Presentacion algoritmos

REPRESENTACION GRAFICA DE UNA MATRIZREPRESENTACION GRAFICA DE UNA MATRIZ

1,1 1,2 1,3 1,4

2,1 2,2 2,3 2,4

3,1 3,2 3,3 3,4

RENGLONES (R)RENGLONES (R)

COLUMNAS ( C )COLUMNAS ( C )

MATRIZ [R,C)MATRIZ [R,C)

Llenando una matriz:

Por renglones:Hacer para R= 1 a 3

Hacer para C= 1 a 3leer Mat (R,C)

Fin paraFin para

Llenando una matriz:

Por renglones:Hacer para R= 1 a 3

Hacer para C= 1 a 3leer Mat (R,C)

Fin paraFin para

Por columnasHacer para C = 1 a 3

Hacer para R= 1 a 3 leer Mat (R,C)

Fin paraFin para

Por columnasHacer para C = 1 a 3

Hacer para R= 1 a 3 leer Mat (R,C)

Fin paraFin para