MAT-103 INFORMATICAdocentes.uto.edu.bo/abaltazarc/wp-content/uploads/2014/09/cap-iii.pdfMAT-103...

21
MAT-103 INFORMATICA Pág. 1 CAP. 3. PROGRAMACION ESTRUCTURADA 3.1. Técnicas de programación Las herramientas de programación fundamentalmente los diagramas de flujo, son las representaciones gráficas utilizada para el diseño de algoritmos y programas, este tipo de herramienta constituye el fundamento de programación. Las técnicas de programación se clasifican en las técnicas de programación modular y programación estructurada, de modo que se pueda que se pueda conseguir un programa eficaz. 3.1.1 Programación modular La programación modular es uno de los métodos de diseño más flexibles y potentes para mejorar la productividad de un programa, el programa se divide en módulos (partes independientes), cada una de las cuales ejecuta una única actividad o tarea y se codifican independientemente de otros módulos, cada uno de estos módulos se analizan, codifican y ponen a punto por separado. Cada programa contiene un modulo denominado programa principal, que controla todo lo que sucede, se transfiere el control a submodulos, posteriormente se denominan subprogramas. Principal Modulo 1 Modulo 2 Modulo 3 Modulo 4 Modulo 1 1 Modulo 1 2 Modulo 2 1 Modulo 2 2 Modulo 2 2 1 Modulo 2 2 2 Modulo 3 1 Modulo 4 1 Modulo 4 2 3.2. Programación estructurada

Transcript of MAT-103 INFORMATICAdocentes.uto.edu.bo/abaltazarc/wp-content/uploads/2014/09/cap-iii.pdfMAT-103...

Page 1: MAT-103 INFORMATICAdocentes.uto.edu.bo/abaltazarc/wp-content/uploads/2014/09/cap-iii.pdfMAT-103 INFORMATICA Pág. 6 Repeat (Repetir) For (Desde/para) 3.5.1 Estructura mientras La estructura

MAT-103 INFORMATICA

Pág. 1

CAP. 3. PROGRAMACION ESTRUCTURADA

3.1. Técnicas de programación

Las herramientas de programación fundamentalmente los diagramas de flujo, son las representaciones gráficas utilizada para el diseño de algoritmos y programas, este tipo de herramienta constituye el fundamento de programación.

Las técnicas de programación se clasifican en las técnicas de programación modular y programación estructurada, de modo que se pueda que se pueda conseguir un programa eficaz.

3.1.1 Programación modular

La programación modular es uno de los métodos de diseño más flexibles y potentes para mejorar la productividad de un programa, el programa se divide en módulos (partes independientes), cada una de las cuales ejecuta una única actividad o tarea y se codifican independientemente de otros módulos, cada uno de estos módulos se analizan, codifican y ponen a punto por separado.

Cada programa contiene un modulo denominado programa principal, que controla todo lo que sucede, se transfiere el control a submodulos, posteriormente se denominan subprogramas.

Principal

Modulo 1 Modulo 2 Modulo 3 Modulo 4

Modulo 1 1 Modulo 1 2

Modulo 2 1 Modulo 2 2

Modulo 2 2 1 Modulo 2 2 2

Modulo 3 1 Modulo 4 1 Modulo 4 2

3.2. Programación estructurada

Page 2: MAT-103 INFORMATICAdocentes.uto.edu.bo/abaltazarc/wp-content/uploads/2014/09/cap-iii.pdfMAT-103 INFORMATICA Pág. 6 Repeat (Repetir) For (Desde/para) 3.5.1 Estructura mientras La estructura

MAT-103 INFORMATICA

Pág. 2

Se refiere a un conjunto de técnicas que han ido evolucionando desde los primeros trabajos, estas técnicas aumentan considerablemente la productividad del programa reduciendo el elevado tiempo requerido para escribir, verificar, depurar y mantener los programas.

La programación estructurada utiliza un número limitado de estructuras de control que minimiza la complejidad de los problemas.

La programación estructurada es el conjunto de técnicas que incorporan:

Diseño descendente (top-down)

Recursos abstractos

Estructuras básicas

3.2.1 Diseño descendente (top-down)

Es el proceso mediante el cual un problema se descompone en una serie de niveles o pasos sucesivos de refinamiento (stepwise). La metodología descendente consiste en efectuar una relación entre las sucesivas etapas de estructuración de modo que se relacionen unas con otras mediante entradas y salidas de información, es decir se descompone el problema en etapas o estructuras jerárquicas, de modo que se puede considerar cada estructura desde dos puntos de vista: que hace y como lo hace.

3.2.2 Recursos abstractos

La programación estructurada se auxilia de los recursos abstractos en lugar de recursos concretos de que se dispone un determinado lenguaje de programación.

Descomponer un programa en términos de recursos abstractos consiste en descomponer una determinada acción compleja en función de un número de acciones más simples, capaces de ser ejecutadas por una computadora y que constituirán sus instrucciones.

3.2.3 Estructuras básicas

En mayo de 1966 Bohm y Jacopini demostraron que un programa propio puede ser escrito utilizando solamente tres tipos de estructuras de control:

Secuenciales

Selectivas

Repetitivas

Page 3: MAT-103 INFORMATICAdocentes.uto.edu.bo/abaltazarc/wp-content/uploads/2014/09/cap-iii.pdfMAT-103 INFORMATICA Pág. 6 Repeat (Repetir) For (Desde/para) 3.5.1 Estructura mientras La estructura

MAT-103 INFORMATICA

Pág. 3

Un programa se define como propio si se cumple las siguientes características:

Posee un solo punto de entrada y uno de salida o fin para el control del programa.

Existen caminos desde la entrada hasta la salida que se pueden seguir y que pasan por todas las partes del programa.

Todas las instrucciones son ejecutables y no existen lazos o bucles infinitos (sin fin).

3.3. Estructura secuencial

La estructura secuencial es aquella en la que la acción (instrucción) sigue a otra en secuencia. La estructura secuencial tiene una entrada y una salida cuya representación gráfica es:

Acción 1

Acción 2

Acción n

Inicio

<Acción 1 >

<Acción 2 >

<Acción 3 >

<Acción n >

Fin

PSEUDOCODIGODIAGRAMA DE

FLUJOCODIFICACIÓN

BEGIN

<Acción 1 >

<Acción 2 >

<Acción 3 >

<Acción n >

END.

3.4. Estructura alternativa

Estructura de control selectiva se utiliza para tomar decisiones lógicas de ahí suelen denominar estructuras de decisión o alternativa, en la estructura selectiva se evalúa una condición y en función del resultado de la misma se realiza una opción u otra dependiendo de la prueba lógica.

La estructura selectiva o alternativas existen tres estructuras que suelen ser:

Simples

Dobles

Múltiples

3.4.1 Alternativa simple

Page 4: MAT-103 INFORMATICAdocentes.uto.edu.bo/abaltazarc/wp-content/uploads/2014/09/cap-iii.pdfMAT-103 INFORMATICA Pág. 6 Repeat (Repetir) For (Desde/para) 3.5.1 Estructura mientras La estructura

MAT-103 INFORMATICA

Pág. 4

La estructura alternativa simple {(Si _ entonces) en íngles (if_then)}, ejecuta una determinada acción cuando se cumple una determinada condición que evalúa la condición.

Si la condición es verdadera, entonces ejecuta la acción S1 Si la condición es falsa, entonces no hacer nada.

Condición

Acción S1

Verdad Falso

Si <Condición> Entonces

<Acción S1>

Fin _ si

If <Condición> Then

<Acción S1>

Endif

PSEUDOCODIGODIAGRAMA DE

FLUJOCODIFICACIÓN

3.4.2 Alternativa doble

Es una estructura que permite elegir entre dos opciones o alternativas posibles, en función del cumplimiento o no de una determinada condición.

Si la condición es verdadera, se ejecuta la acción S1 y si es falsa se ejecuta la acción S2

Condición

Acción S1

Verdad Falso

PSEUDOCODIGODIAGRAMA DE

FLUJOCODIFICACIÓN

Acción S2

Si <Condición> entonces

<Acción S1>

Si_no

<Acción S2>

Fin_si

If <Condición> Then

<Acción S1>

Else

<Acción S2>

Endif

3.4.3 Alternativa múltiple

Con frecuencia en la práctica, es necesario que existan más de dos elecciones posibles. La elección de decisión múltiple evaluara una expresión que podrá tomar n valores distintos 1,2,3,4, ...n. Según que elija uno de estos valores en la condición, se realizara una de las n acciones o lo que es

Page 5: MAT-103 INFORMATICAdocentes.uto.edu.bo/abaltazarc/wp-content/uploads/2014/09/cap-iii.pdfMAT-103 INFORMATICA Pág. 6 Repeat (Repetir) For (Desde/para) 3.5.1 Estructura mientras La estructura

MAT-103 INFORMATICA

Pág. 5

igual, el flujo del algoritmo seguirá un determinado camino entre los n posibles.

Acción S1 Acción S6

¿Condición?

n1

Acción S2 Acción S3 Acción S4 Acción S5

2 3 4 5

………

DIAGRAMA DE FLUJO

PSEUDOCODIGO CODIFICACIÓN

3.5. Estructura Repetitiva

Las computadoras están especialmente diseñadas para todas aquellas aplicaciones en las cuales una operación o conjunto de ellas deben repetirse muchas veces.

Las estructuras que repiten una secuencia de instrucciones un número determinado de veces se denomina bucles y se llama iteración al hecho de repetir la ejecución de una secuencia de acciones.

Bucle.- Es una estructura de control que permite la repetición de una determinada serie de sentencias se denomina bucle.

El cuerpo del bucle contienen las sentencias que se repiten, el lenguaje pascal proporciona tres estructuras o sentencias de control para especificar la repetición como ser:

While (Mientras)

Case Expresión of [e1]: Acción S1 [e2]: Acción S2 [e3]: Acción S3

Else Acción Sx

End_case

Según _sea Expresión (E) hacer [e1]: Acción S1 [e2]: Acción S2 [e3]: Acción S3 Si_no Acción Sx

Fin_segun

Page 6: MAT-103 INFORMATICAdocentes.uto.edu.bo/abaltazarc/wp-content/uploads/2014/09/cap-iii.pdfMAT-103 INFORMATICA Pág. 6 Repeat (Repetir) For (Desde/para) 3.5.1 Estructura mientras La estructura

MAT-103 INFORMATICA

Pág. 6

Repeat (Repetir)

For (Desde/para)

3.5.1 Estructura mientras

La estructura de repetición while (mientras) es aquella en la que el número de interacciones no se conoce por anticipado y el cuerpo del bucle se repite mientras se cumple una determinada condición por esta razón se llama bucles condicionales.

Cuando la sentencia while se ejecuta, la primera cosa que sucede es la evaluación de la expresión lógica.

Si la expresión lógica se evalúa a falso (False) entonces ninguna acción se realiza y el programa prosigue en la siguiente sentencia después del bucle.

Si la expresión lógica se evalúa a verdadero (True), entonces se ejecuta el cuerpo del bucle y se evalúa de nuevo a la expresión lógica.

Este proceso se repite mientras que la expresión lógica permanezca verdadera, después de cada iteración, la expresión lógica se evalúa y se verifica de nuevo.

Reglas de funcionamiento.-

1. La condición (Expresión lógica) se evalúa antes y después de cada ejecución del bucle si la condición es verdadera se ejecuta el bucle y si es falsa el control pasa a la sentencia siguiente del bucle.

Caso 1

Condición

Acción S1

Verdad

Falso

DIAGRAMA DE FLUJO

Mientras CONDICIÓN hacer

Acción S1

Fin _ mientras

PSEUDOCODIGO

While EXPRESIÓN LÓGICA Do

Acción S1;

CODIFICACIÓN

Page 7: MAT-103 INFORMATICAdocentes.uto.edu.bo/abaltazarc/wp-content/uploads/2014/09/cap-iii.pdfMAT-103 INFORMATICA Pág. 6 Repeat (Repetir) For (Desde/para) 3.5.1 Estructura mientras La estructura

MAT-103 INFORMATICA

Pág. 7

Caso 2

Condición

Acción S1

Verdad

Falso

DIAGRAMA DE FLUJO

Acción S2

While EXPRESIÓN LÓGICA Do

Begín

Acción S1

Acción S2

End.

CODIFICACIÓN

2. Si la condición se evalúa es falso cuando se ejecuta por primera vez el bucle, el cuerpo del bucle no se ejecutara nunca, en este caso se dice que el bucle se ha ejecutado 0 veces.

3. Mientras la condición sea verdadera el bucle se ejecutara esto significa que el bucle se ejecutara infinitamente a menos que algo en el interior del bucle modifica la condición haciendo que su valor pase a falso, si la expresión nunca cambia de valor, entonces el bucle no termina nunca y se denomina bucle infinito o sin fin.

3.5.2 Estructura repetir

Es una variante de la sentencia While, es la sentencia Repeat, una de las características de los bucles While_do es que la condición se evalúa al principio de cada iteración, y si es falsa no se ejecuta el bucle nunca.

La sentencia Repeat especifica un bucle condicional que se repite hasta que la condición sea verdadera, tal bucle se denomina bucle Repeat _ until.

Acción S1

Acción S2

Condición ?Verdad

Falso

PSEUDOCODIGODIAGRAMA DE FLUJO CODIFICACIÓN

Repetir

Acción S1

Acción S2

Hasta _que <Condición>

Repeat

Acción S1

Acción S2

Until <Condición>

Page 8: MAT-103 INFORMATICAdocentes.uto.edu.bo/abaltazarc/wp-content/uploads/2014/09/cap-iii.pdfMAT-103 INFORMATICA Pág. 6 Repeat (Repetir) For (Desde/para) 3.5.1 Estructura mientras La estructura

MAT-103 INFORMATICA

Pág. 8

Reglas de funcionamiento. 1. La condición (expresión lógica) se evalúa al final del bucle después de

ejecutarse las sentencias. 2. Si la expresión lógica es falsa, se vuelve a repetir el bucle y se ejecuta

todas las sentencias. 3. Si la expresión lógica es verdad se sale del bucle y se ejecuta la

sentencia a until. 4. La sintaxis no requiere begín y end.

3.5.3 Estructura desde/para

La sentencia for requiere que conozcamos por anticipado el número de veces que se ejecutan las sentencias para repetir al interior del bucle, si se desea que las sentencias controladas se ejecuten hasta que ocurra una determinada situación y no se conoce de antemano el número de repeticiones, entonces se debe utilizar la sentencia While o Repeat en lugar de For.

Incrementos de contador de FOR (TO)

Caso 1

Acción S1

PSEUDOCODIGODIAGRAMA DE FLUJO CODIFICACIÓN

Desde I ← Vo HASTA Vf HACER

Acción S1

Fin _ desde

For I := Vo To Vf Do

Acción S1;

I := Vo Vf

I

Vo = Valor Inicial

Vf = Valor final

Page 9: MAT-103 INFORMATICAdocentes.uto.edu.bo/abaltazarc/wp-content/uploads/2014/09/cap-iii.pdfMAT-103 INFORMATICA Pág. 6 Repeat (Repetir) For (Desde/para) 3.5.1 Estructura mientras La estructura

MAT-103 INFORMATICA

Pág. 9

Caso 2

Acción S1

DIAGRAMA DE FLUJO

I := Vo Vf

I

Acción S2

PSEUDOCODIGO

Para I ← Vo HASTA Vf HACER

Acción S1

Fin _ para

CODIFICACIÓN

For I := Vo To Vf Do

begin

Acción S1

Acción S2

End.

Decremento del contador de FOR (DOWNTO)

El contador del bucle se puede decremento de uno en uno en lugar de incrementar como en el caso anterior, el formato y el diagrama de sintaxis se indican como:

Acción S1

DIAGRAMA DE FLUJO

I := Vf Vo

I

Acción S2

PSEUDOCODIGO

Para I ← Vf HASTA Vo HACER

Acción S1

Fin _ para

CODIFICACIÓN

For I:= Vf Downto Vo Do

begin

Acción S1

Acción S2

End.

3.5.4 Estructura iterar

No se considera como una estructura básica de la programación estructurada, porque no produce programas legibles, permite la salida en un punto intermedio del bucle cuando se cumple una condición.

Page 10: MAT-103 INFORMATICAdocentes.uto.edu.bo/abaltazarc/wp-content/uploads/2014/09/cap-iii.pdfMAT-103 INFORMATICA Pág. 6 Repeat (Repetir) For (Desde/para) 3.5.1 Estructura mientras La estructura

MAT-103 INFORMATICA

Pág. 10

Puede usarse en las estructuras mientras, repetir y desde.

Acciones

Acciones

Condición ?Verdad

Falso

PSEUDOCODIGODIAGRAMA DE FLUJO CODIFICACIÓN

Iterar

Acciones

Salir_Si <Condicion>

Acciones

Fin_iterar>

Do

Acciones

Exit_if <Condición>

Acciones

Loop

Page 11: MAT-103 INFORMATICAdocentes.uto.edu.bo/abaltazarc/wp-content/uploads/2014/09/cap-iii.pdfMAT-103 INFORMATICA Pág. 6 Repeat (Repetir) For (Desde/para) 3.5.1 Estructura mientras La estructura

MAT-103 INFORMATICA

Pág. 11

CAP. 4. ESTRUCTURA DE DATOS

4.1. Arrays unidimensionales (vectores)

Un array es una dimensión (unidimensional-vector), es un tipo de datos estructurado compuesto de un número de elementos finitos, tamaño fijo y elementos homogéneos. Finito indica que hay un último elemento que tiene un final, tamaño fijo significa que el tamaño del array debe ser conocido en tiempo de compilación, homogéneo significa que todos los elementos del array son del mismo tipo.

Los elementos del array se almacenan en posiciones continuas de memoria, a cada una de las cuales se puede acceder directamente.

Vector A

A[1]

A[4]

A[3]

A[2]

A[5]

25

70

51

32

2

Vector A compuesto

de 5 filas y una

columna

Ej: Supongamos que se desea almacenar las notas o calificaciones del primer parcial de los 50 estudiantes del examen de ¿Programación? Para almacenar estas calificaciones se necesita, reservar cincuenta posiciones de memoria, dar un nombre al array y a cada uno de los cincuenta estudiantes, asignarles su calificación correspondiente, es decir dar el índice o subíndice del array.

Page 12: MAT-103 INFORMATICAdocentes.uto.edu.bo/abaltazarc/wp-content/uploads/2014/09/cap-iii.pdfMAT-103 INFORMATICA Pág. 6 Repeat (Repetir) For (Desde/para) 3.5.1 Estructura mientras La estructura

MAT-103 INFORMATICA

Pág. 12

Vector

Calificaciones

Calificación [1]

Calificación [3]

Calificación [2]

25

32

70

Calificación [6] 51

Nombre del vector: Calificaciones

Subíndice:[1] [2] [3] [6]

Contenido: Calificación [20]=70

Ej: Registrar las cantidades de tickets de diferentes artículos.

Articulo [1]

Articulo [3]

Articulo [2]

40

7

52

Articulo [20] 15

Contenido (valor) Tipo: Entero

Índice o Subíndice

Nombre del vector

Ej: Diseñar un vector que pueda registrar las tallas de estudiantes de la Facultad Técnica.

Page 13: MAT-103 INFORMATICAdocentes.uto.edu.bo/abaltazarc/wp-content/uploads/2014/09/cap-iii.pdfMAT-103 INFORMATICA Pág. 6 Repeat (Repetir) For (Desde/para) 3.5.1 Estructura mientras La estructura

MAT-103 INFORMATICA

Pág. 13

Talla[2]Talla[1] Talla[3] Talla[4] Talla[5] Talla[6] Talla[7] Talla[8] Talla[9] Talla[10]

1,641,54 1,75 1,40 1,78 1,80 2,00 1,55 1,94 1,74

Talla: Nombre del Array

[1] - [10] Índice o Subíndice

1,74; 2,00 Contenido (Valor Tipo: Real)

4.1.1. Declaración del tipo array.-

Normalmente la estructura de un array (Vector) se describe por la declaración del tipo Array, a continuación se asigna el almacenamiento para uno o más array de este tipo.

Formato:

Type

Nombre_array = Array [tipo subíndice] Of Tipo;

Nombre_array = Identificador valido.

Tipo subíndice= Puede ser de tipo ordinal: bolean o char, un tipo enumerado o sea tipo Durango existe un elemento por cada valor del tipo subíndice.

Tipo= Describe el tipo de cada elemento del vector, todos los elementos de un vector son del mismo tipo.

Ej: Declaración de las calificaciones:

Ej: Declaración de cantidades de artículos:

Type

Calificación=Array [1..50] Of Integer;

Type

Articulo=Array [1..20] Of Integer;

Page 14: MAT-103 INFORMATICAdocentes.uto.edu.bo/abaltazarc/wp-content/uploads/2014/09/cap-iii.pdfMAT-103 INFORMATICA Pág. 6 Repeat (Repetir) For (Desde/para) 3.5.1 Estructura mientras La estructura

MAT-103 INFORMATICA

Pág. 14

Ej: Declaración de tallas:

El subíndice o índice del array debe ser de tipo simple: entero (Integer, ShortInt, Byte, Word), lógicos, carácter o enumerado, pero no Real.

Ejemplos típicos: 1 . . 10 Entero ‘C’. . ‘N’ Caracteres True . . False Lógicos Azul . . Marron Enumerados

4.1.2. Variables de tipo array.-

Las declaraciones de tipo de dato Array no crea ninguna variable especifica tipo Array en realidad la declaración Type proporciona información perteneciente a un grupo de Array como un todo.

Las variables tipo Array son creadas utilizando la palabra reservada Var, cuyo formato es:

Var

Nombre array: Nombre Tipo;

Nombre array = Nombre elegido por la variable. Nombre tipo = Igual nombre que el utilizado en Type

Ej:

Ej: Calificaciones de los estudiantes:

Type

Talla=Array [1..10] Of Real;

Type Articulo=Array [1..20] Of Integer;

Var Lista: Articulo;

Type Calificación=Array [1..50] Of Integer;

Var Notas: Calificación;

Page 15: MAT-103 INFORMATICAdocentes.uto.edu.bo/abaltazarc/wp-content/uploads/2014/09/cap-iii.pdfMAT-103 INFORMATICA Pág. 6 Repeat (Repetir) For (Desde/para) 3.5.1 Estructura mientras La estructura

MAT-103 INFORMATICA

Pág. 15

4.2. Operaciones con vectores

Los vectores (arrays) no se pueden leer / escribir en una sola operación o sentencia, la lectura y escritura de un array se debe hacer elemento a elemento, para realizar estas operaciones se deben leer o visualizar los componentes de un array mediante estructuras repetitivas.

Las operaciones que se pueden realizar con vectores durante el proceso de resolución de un problema son:

Asignación

Lectura / escritura

Recorrido (acceso secuencial)

Actualizar (añadir, borrar, insertar)

Ordenación

Búsqueda

4.2.1 Asignación de un vector.-

La asignación de valores a un elemento del vector se realizará con la instrucción de asignación:

A [20] 5 Asigna el valor 5 al elemento 20 del

vector A

Si se desea asignar valores a todos los elementos de un vector, se debe recurrir a estructuras repetitivas (desde, mientras o repetir) e incluso selectivas (si-entonces, según).

Leer (A [ I ])

Si se introducen los valores 5, 7, 8, 14 y 12 mediante asignaciones

A[1] 5

A[2] 7

A[3] 8

A[4] 14

A[5] 12

El ejemplo anterior ha asignado diferentes valores a cada elemento del vector A; si se desea dar el mismo valor a todos los elementos, la notación algorítmica se simplifica con el siguiente formato:

Desde I = 1 hasta 5 hacer A [ I ] 8

Page 16: MAT-103 INFORMATICAdocentes.uto.edu.bo/abaltazarc/wp-content/uploads/2014/09/cap-iii.pdfMAT-103 INFORMATICA Pág. 6 Repeat (Repetir) For (Desde/para) 3.5.1 Estructura mientras La estructura

MAT-103 INFORMATICA

Pág. 16

Fin _ desde

Donde A [ I ] tomará los valores numéricos A [1] =8;A [2] =8; ....... ;A[5]=8; Se puede utilizar también la notación.

A 8

Para indicar la asignación de un mismo valor a cada elemento de un vector A. Esta notación se considerará con mucho cuidado para evitar confusión con posibles variables simples numéricas de igual nombre (A).

4.2.2 Lectura / escritura de un vector.-

La lectura de datos en arrays u operaciones de entrada normalmente se realizan con estructuras repetitivas, aunque puede también hacerse con estructuras selectivas. Las instrucciones simples de lectura se representarán como:

Leer [A] Lectura del vector A Escribir [A] Escritura del vector A Leer (V[5]) Leer el elemento V[5] del vector V

Los elementos de un vector pueden ser visualizados situando una sentencia de salida dentro de una estructura repetitiva.

4.2.3 Almacenamiento de arrays en memoria

La representación gráfica describe el almacenamiento de los diferentes arrays de una o dos dimensiones, el almacenamiento en la computadora está dispuesto fundamentalmente en secuencia contigua, de modo que cada acceso a una matriz o tabla en la maquina debe realizar la tarea de convertir en la posición dentro del array en una posición perteneciente a una línea.

A[1,1] A[1,4]A[1,3]A[1,2]

A[2,1] A[2,4]A[2,3]A[2,2]

A[3,1] A[3,4]A[3,3]A[3,2]

A[1]

A[2]

A[i]

A[n]

4.2.4 Almacenamiento de un vector

Page 17: MAT-103 INFORMATICAdocentes.uto.edu.bo/abaltazarc/wp-content/uploads/2014/09/cap-iii.pdfMAT-103 INFORMATICA Pág. 6 Repeat (Repetir) For (Desde/para) 3.5.1 Estructura mientras La estructura

MAT-103 INFORMATICA

Pág. 17

El almacenamiento de un vector en memoria se realiza en celdas o posiciones secuenciales, así en el caso de un vector A con un subíndice de rengo 1 a n.

A[1]

A[2]

A[i]

A[n]

.

.

.

.

.

.

Posición B

Posición B+1

Posición B+n-1

4.3. Arrays de varias dimensiones

Es un grupo de datos pueden ser representados en una tabla o matriz con dos o más subíndices.

Ej.: Tablas de distancias kilométricas entre ciudades Un cuadro de horarios de trenes o aviones Informe de ventas periódicas (mes / semana / día / ventas totales)

Se pueden definir tablas o matrices como arrays multidimensionales, cuyos elementos se pueden referenciar por dos, tres o más subíndices, los cuales se dividen en dos grandes grupos:

Arrays bidimensionales 2 dimensiones Arrays multidimensionales 3 o más dimensiones

4.3.1 Arrays bidimensionales (tablas / matrices)

Un arrays bidimensional (tabla o matriz) es un array con dos índices, al igual que los vectores que deben ser ordinales, para localizar o almacenar

Page 18: MAT-103 INFORMATICAdocentes.uto.edu.bo/abaltazarc/wp-content/uploads/2014/09/cap-iii.pdfMAT-103 INFORMATICA Pág. 6 Repeat (Repetir) For (Desde/para) 3.5.1 Estructura mientras La estructura

MAT-103 INFORMATICA

Pág. 18

un valor en el array se deben especificar dos posiciones (dos subíndices), uno para la fila y otro para la columna.

C [ 3 , 4] Elemento C de la fila 3 y columna 4

1

2

3

4

5

1 2 3 4 5 6 7 8

FILAS

COLUMNAS

A[1,1] A[1,2] A[1,3] A[1,8]

A[5,8]A[5,1]

A[3,4]

Array bidimensional A de 5 filas y 8 columnas

4.3.2 Declaración de los arrays bidimensionales.-

Los arrays bidimensionales (tablas, matrices) se crean con demarcaciones con la palabra reservada Type y Var.

Se debe indicar en la declaración de una matriz: 1. Nombre del array. 2. Tipo del array. 3. Rango permitido (subíndice).

Formato:

Ej:

Type

Identificador=Array [indice1, indice2] Of Tipo elemento;

Type Estudiantes=Array [1..5, 1..4] Of Real; Var Clase: Estudiantes;

Page 19: MAT-103 INFORMATICAdocentes.uto.edu.bo/abaltazarc/wp-content/uploads/2014/09/cap-iii.pdfMAT-103 INFORMATICA Pág. 6 Repeat (Repetir) For (Desde/para) 3.5.1 Estructura mientras La estructura

MAT-103 INFORMATICA

Pág. 19

El orden más natural de procesar los vectores es de orden secuencial del 1ro al último, en el caso de las matrices existen diferentes órdenes para su recorrido, lo más usuales son: recorrido por filas y recorrido por columnas.

Recorrido por filas/columnas.-

Los elementos de la primera fila / columna se procesa primero y a continuación los de la segunda fila columna y a si sucesivamente.

Ej: Sea el array A de 3 filas y 4 columnas.

A[1,1] A[1,4]A[1,3]A[1,2]

A[2,1] A[2,4]A[2,3]A[2,2]

A[3,1] A[3,4]A[3,3]A[3,2]

Recorrido por filas

A[1,1] A[1,4]A[1,3]A[1,2]

A[2,1] A[2,4]A[2,3]A[2,2]

A[3,1] A[3,4]A[3,3]A[3,2]

Recorrido por columnas

Page 20: MAT-103 INFORMATICAdocentes.uto.edu.bo/abaltazarc/wp-content/uploads/2014/09/cap-iii.pdfMAT-103 INFORMATICA Pág. 6 Repeat (Repetir) For (Desde/para) 3.5.1 Estructura mientras La estructura

MAT-103 INFORMATICA

Pág. 20

A[1,1]

A[1,2]

A[1,3]

A[1,4]

A[2,1]

A[2,2]

A[2,3]

A[2,4]

A[3,1]

A[3,2]

A[3,3]

A[3,4]

A[1,1]

A[2,1]

A[3,1]

A[1,2]

A[2,2]

A[3,2]

A[1,3]

A[2,3]

A[3,3]

A[1,4]

A[2,4]

A[3,4]

Almacenamiento por filasAlmacenamiento por

columnas

4.4. Arrays multidimensionales

Un array puede ser definido de tres dimensiones, cuatro dimensiones, hasta de n-dimensiones. Los conceptos de rango de subíndices y número de elementos se pueden ampliar directamente desde un array de una y dos dimensiones a estos arrays son de orden más alto.

Turno pascal no limita el número de dimensiones de un array, pero si que debe estar declarado el tipo de cada subíndice.

Formato:

Ejemplo:

1. type

Exámenes = Array[1..5, 1..3] of 0..100; Dinero = Array[1..50, 1..12, 1980..1990] of real;

2. type

Fila = array [1 . . 10] of integer; T1 = array [1 . . 5] of Fila;

1. Type Identificador = array [indice 1] of array [indice 2] .. of array [indice n] of tipo de elemento. 2. type Identificador = array [índice 1, índice 2 .. índice n] of tipo de elemento.

Page 21: MAT-103 INFORMATICAdocentes.uto.edu.bo/abaltazarc/wp-content/uploads/2014/09/cap-iii.pdfMAT-103 INFORMATICA Pág. 6 Repeat (Repetir) For (Desde/para) 3.5.1 Estructura mientras La estructura

MAT-103 INFORMATICA

Pág. 21

T2 = array [1 . . 5] of array [ 1 . . 12] of integer; T3 = array [1 . . 5, 1 . . 12] of integer;