Vous êtes sur la page 1sur 21

MAT-103 INFORMATICA

CAP. 3. PROGRAMACION ESTRUCTURADA


3.1. Tcnicas de programacin
Las herramientas de programacin fundamentalmente los diagramas de
flujo, son las representaciones grficas utilizada para el diseo de algoritmos
y programas, este tipo de herramienta constituye el fundamento de
programacin.
Las tcnicas de programacin se clasifican en las tcnicas de
programacin modular y programacin estructurada, de modo que se
pueda que se pueda conseguir un programa eficaz.
3.1.1 Programacin modular
La programacin modular es uno de los mtodos de diseo ms flexibles y
potentes para mejorar la productividad de un programa, el programa se
divide en mdulos (partes independientes), cada una de las cuales ejecuta
una nica actividad o tarea y se codifican independientemente de otros
mdulos, cada uno de estos mdulos 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 3 1 Modulo 4 1 Modulo 4 2

Modulo 2 1 Modulo 2 2

Modulo 2 2 1 Modulo 2 2 2

3.2. Programacin estructurada

Pg. 1
MAT-103 INFORMATICA

Se refiere a un conjunto de tcnicas que han ido evolucionando desde los


primeros trabajos, estas tcnicas aumentan considerablemente la
productividad del programa reduciendo el elevado tiempo requerido para
escribir, verificar, depurar y mantener los programas.
La programacin estructurada utiliza un nmero limitado de estructuras de
control que minimiza la complejidad de los problemas.
La programacin estructurada es el conjunto de tcnicas que incorporan:
Diseo descendente (top-down)
Recursos abstractos
Estructuras bsicas
3.2.1 Diseo 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 metodologa
descendente consiste en efectuar una relacin entre las sucesivas etapas de
estructuracin de modo que se relacionen unas con otras mediante entradas
y salidas de informacin, es decir se descompone el problema en etapas o
estructuras jerrquicas, 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 programacin estructurada se auxilia de los recursos abstractos en lugar
de recursos concretos de que se dispone un determinado lenguaje de
programacin.
Descomponer un programa en trminos de recursos abstractos consiste en
descomponer una determinada accin compleja en funcin de un nmero de
acciones ms simples, capaces de ser ejecutadas por una computadora y
que constituirn sus instrucciones.
3.2.3 Estructuras bsicas
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

Pg. 2
MAT-103 INFORMATICA

Un programa se define como propio si se cumple las siguientes


caractersticas:
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 accin (instruccin) sigue
a otra en secuencia. La estructura secuencial tiene una entrada y una salida
cuya representacin grfica es:
DIAGRAMA DE PSEUDOCODIGO CODIFICACIN
FLUJO

Accin 1 Inicio BEGIN


<Accin 1 > <Accin 1 >
<Accin 2 > <Accin 2 >
Accin 2 <Accin 3 > <Accin 3 >
<Accin n > <Accin n >
Fin END.
Accin n

3.4. Estructura alternativa


Estructura de control selectiva se utiliza para tomar decisiones lgicas de ah
suelen denominar estructuras de decisin o alternativa, en la estructura
selectiva se evala una condicin y en funcin del resultado de la misma se
realiza una opcin u otra dependiendo de la prueba lgica.
La estructura selectiva o alternativas existen tres estructuras que suelen ser:
Simples
Dobles
Mltiples
3.4.1 Alternativa simple

Pg. 3
MAT-103 INFORMATICA

La estructura alternativa simple {(Si _ entonces) en ngles (if_then)},


ejecuta una determinada accin cuando se cumple una determinada
condicin que evala la condicin.
Si la condicin es verdadera, entonces ejecuta la accin S1
Si la condicin es falsa, entonces no hacer nada.
DIAGRAMA DE PSEUDOCODIGO CODIFICACIN
FLUJO

Condicin Si <Condicin> Entonces If <Condicin> Then


<Accin S1> <Accin S1>
Verdad Fin _ si Endif
Falso
Accin S1

3.4.2 Alternativa doble


Es una estructura que permite elegir entre dos opciones o alternativas
posibles, en funcin del cumplimiento o no de una determinada condicin.
Si la condicin es verdadera, se ejecuta la accin S1 y si es falsa se ejecuta
la accin S2
DIAGRAMA DE PSEUDOCODIGO CODIFICACIN
FLUJO
Si <Condicin> entonces If <Condicin> Then
Verdad Falso <Accin S1> <Accin S1>
Condicin
Si_no Else
Accin S1 Accin S2 <Accin S2> <Accin S2>
Fin_si Endif

3.4.3 Alternativa mltiple


Con frecuencia en la prctica, es necesario que existan ms de dos
elecciones posibles. La eleccin de decisin mltiple evaluara una expresin
que podr tomar n valores distintos 1,2,3,4, ...n. Segn que elija uno de
estos valores en la condicin, se realizara una de las n acciones o lo que es

Pg. 4
MAT-103 INFORMATICA

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


posibles.
DIAGRAMA DE FLUJO

Condicin?
1 2 5 n
3 4

Accin S1 Accin S2 Accin S3 Accin S4 Accin S5 Accin S6

PSEUDOCODIGO CODIFICACIN

Segn _sea Expresin (E) hacer Case Expresin of


[e1]: Accin S1 [e1]: Accin S1
[e2]: Accin S2 [e2]: Accin S2
[e3]: Accin S3 [e3]: Accin S3
Si_no
Else
Accin Sx
Accin Sx
Fin_segun
End_case

3.5. Estructura Repetitiva


Las computadoras estn especialmente diseadas para todas aquellas
aplicaciones en las cuales una operacin o conjunto de ellas deben repetirse
muchas veces.
Las estructuras que repiten una secuencia de instrucciones un nmero
determinado de veces se denomina bucles y se llama iteracin al hecho de
repetir la ejecucin de una secuencia de acciones.
Bucle.- Es una estructura de control que permite la repeticin 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 repeticin como ser:
While (Mientras)
Pg. 5
MAT-103 INFORMATICA

Repeat (Repetir)
For (Desde/para)

3.5.1 Estructura mientras


La estructura de repeticin while (mientras) es aquella en la que el nmero
de interacciones no se conoce por anticipado y el cuerpo del bucle se repite
mientras se cumple una determinada condicin por esta razn se llama
bucles condicionales.
Cuando la sentencia while se ejecuta, la primera cosa que sucede es la
evaluacin de la expresin lgica.
Si la expresin lgica se evala a falso (False) entonces ninguna
accin se realiza y el programa prosigue en la siguiente sentencia
despus del bucle.
Si la expresin lgica se evala a verdadero (True), entonces se
ejecuta el cuerpo del bucle y se evala de nuevo a la expresin
lgica.
Este proceso se repite mientras que la expresin lgica permanezca
verdadera, despus de cada iteracin, la expresin lgica se evala y se
verifica de nuevo.
Reglas de funcionamiento.-
1. La condicin (Expresin lgica) se evala antes y despus de cada
ejecucin del bucle si la condicin es verdadera se ejecuta el bucle y si
es falsa el control pasa a la sentencia siguiente del bucle.

Caso 1
DIAGRAMA DE FLUJO PSEUDOCODIGO CODIFICACIN

Condicin Falso Mientras CONDICIN hacer While EXPRESIN LGICA Do


Accin S1 Accin S1;
Verdad Fin _ mientras
Accin S1

Pg. 6
MAT-103 INFORMATICA

Caso 2
DIAGRAMA DE FLUJO CODIFICACIN

Condicin Falso While EXPRESIN LGICA Do


Begn
Verdad
Accin S1
Accin S1 Accin S2
End.
Accin S2

2. Si la condicin se evala 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 condicin 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 condicin haciendo que su valor pase a falso, si la
expresin 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
caractersticas de los bucles While_do es que la condicin se evala al
principio de cada iteracin, y si es falsa no se ejecuta el bucle nunca.
La sentencia Repeat especifica un bucle condicional que se repite hasta que
la condicin sea verdadera, tal bucle se denomina bucle Repeat _ until.
DIAGRAMA DE FLUJO PSEUDOCODIGO CODIFICACIN

Repetir Repeat
Accin S1 Accin S1
Accin S1
Accin S2 Accin S2
Hasta _que <Condicin> Until <Condicin>
Accin S2
Falso

Verdad
Condicin ?

Pg. 7
MAT-103 INFORMATICA

Reglas de funcionamiento.
1. La condicin (expresin lgica) se evala al final del bucle despus de
ejecutarse las sentencias.
2. Si la expresin lgica es falsa, se vuelve a repetir el bucle y se ejecuta
todas las sentencias.
3. Si la expresin lgica es verdad se sale del bucle y se ejecuta la
sentencia a until.
4. La sintaxis no requiere begn y end.
3.5.3 Estructura desde/para
La sentencia for requiere que conozcamos por anticipado el nmero 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 situacin y no se conoce de antemano el nmero de
repeticiones, entonces se debe utilizar la sentencia While o Repeat en lugar
de For.
Incrementos de contador de FOR (TO)
Caso 1
DIAGRAMA DE FLUJO PSEUDOCODIGO CODIFICACIN

I := Vo Vf Desde I Vo HASTA Vf HACER For I := Vo To Vf Do


Accin S1 Accin S1;
Fin _ desde

Accin S1

Vo = Valor Inicial
Vf = Valor final
I

Pg. 8
MAT-103 INFORMATICA

Caso 2
DIAGRAMA DE FLUJO PSEUDOCODIGO CODIFICACIN

I := Vo Vf
Para I Vo HASTA Vf HACER For I := Vo To Vf Do
Accin S1 begin
Fin _ para Accin S1
Accin S2
Accin S1
End.

Accin S2

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:

DIAGRAMA DE FLUJO PSEUDOCODIGO CODIFICACIN

I := Vf Vo
Para I Vf HASTA Vo HACER For I:= Vf Downto Vo Do
Accin S1 begin
Fin _ para Accin S1
Accin S2
Accin S1
End.

Accin S2

3.5.4 Estructura iterar


No se considera como una estructura bsica de la programacin
estructurada, porque no produce programas legibles, permite la salida en un
punto intermedio del bucle cuando se cumple una condicin.

Pg. 9
MAT-103 INFORMATICA

Puede usarse en las estructuras mientras, repetir y desde.


DIAGRAMA DE FLUJO PSEUDOCODIGO CODIFICACIN
Do
Iterar Acciones
Acciones Acciones Exit_if <Condicin>
Salir_Si <Condicion> Acciones
Acciones Loop
Verdad
Condicin ? Fin_iterar>
Falso

Acciones

Pg. 10
MAT-103 INFORMATICA

CAP. 4. ESTRUCTURA DE DATOS


4.1. Arrays unidimensionales (vectores)
Un array es una dimensin (unidimensional-vector), es un tipo de datos
estructurado compuesto de un nmero de elementos finitos, tamao fijo y
elementos homogneos. Finito indica que hay un ltimo elemento que tiene
un final, tamao fijo significa que el tamao del array debe ser conocido en
tiempo de compilacin, homogneo 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.

A[1] 25

A[2] 2
Vector A compuesto
Vector A A[3] 32 de 5 filas y una
columna
A[4] 70

A[5] 51

Ej: Supongamos que se desea almacenar las notas o calificaciones del


primer parcial de los 50 estudiantes del examen de Programacin? 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 calificacin correspondiente, es decir dar el ndice o subndice
del array.

Pg. 11
MAT-103 INFORMATICA

Calificacin [1] 25

Calificacin [2] 70 Nombre del vector: Calificaciones


Subndice:[1] [2] [3] [6]
Vector Contenido: Calificacin [20]=70
Calificacin [3] 32
Calificaciones

Calificacin [6] 51

Ej: Registrar las cantidades de tickets de diferentes artculos.

Articulo [1] 40

Articulo [2] 52

Articulo [3] 7
Contenido (valor) Tipo: Entero

Articulo [20] 15

ndice o Subndice

Nombre del vector

Ej: Disear un vector que pueda registrar las tallas de estudiantes de la


Facultad Tcnica.

Pg. 12
MAT-103 INFORMATICA

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

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

Talla: Nombre del Array


[1] - [10] ndice o Subndice
1,74; 2,00 Contenido (Valor Tipo: Real)

4.1.1. Declaracin del tipo array.-


Normalmente la estructura de un array (Vector) se describe por la
declaracin del tipo Array, a continuacin se asigna el almacenamiento para
uno o ms array de este tipo.
Formato:
Type
Nombre_array = Array [tipo subndice] Of Tipo;

Nombre_array = Identificador valido.


Tipo subndice= Puede ser de tipo ordinal: bolean o char, un tipo
enumerado o sea tipo Durango existe un
elemento por cada valor del tipo subndice.
Tipo= Describe el tipo de cada elemento del vector,
todos los elementos de un vector son del mismo
tipo.
Ej: Declaracin de las calificaciones:

Type
Calificacin=Array [1..50] Of Integer;

Ej: Declaracin de cantidades de artculos:

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

Pg. 13
MAT-103 INFORMATICA

Ej: Declaracin de tallas:

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

El subndice o ndice del array debe ser de tipo simple: entero (Integer,
ShortInt, Byte, Word), lgicos, carcter o enumerado, pero no Real.
Ejemplos tpicos:
1 . . 10 Entero
C. . N Caracteres
True . . False Lgicos
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 declaracin Type proporciona informacin
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:

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

Ej: Calificaciones de los estudiantes:

Type
Calificacin=Array [1..50] Of Integer;
Var
Notas: Calificacin;
Pg. 14
MAT-103 INFORMATICA

4.2. Operaciones con vectores


Los vectores (arrays) no se pueden leer / escribir en una sola operacin 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
resolucin de un problema son:
Asignacin
Lectura / escritura
Recorrido (acceso secuencial)
Actualizar (aadir, borrar, insertar)
Ordenacin
Bsqueda
4.2.1 Asignacin de un vector.-
La asignacin de valores a un elemento del vector se realizar con la
instruccin de asignacin:
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, segn).
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 notacin
algortmica se simplifica con el siguiente formato:
Desde I = 1 hasta 5 hacer
A [ I ] 8
Pg. 15
MAT-103 INFORMATICA

Fin _ desde
Donde A [ I ] tomar los valores numricos A [1] =8;A [2] =8; .......
;A[5]=8; Se puede
utilizar tambin la notacin.
A 8
Para indicar la asignacin de un mismo valor a cada elemento de un vector
A. Esta notacin se considerar con mucho cuidado para evitar confusin
con posibles variables simples numricas 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 tambin hacerse con
estructuras selectivas. Las instrucciones simples de lectura se representarn
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 representacin grfica 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 posicin dentro del array en una posicin perteneciente a una lnea.

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

A[i] 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[n]

4.2.4 Almacenamiento de un vector

Pg. 16
MAT-103 INFORMATICA

El almacenamiento de un vector en memoria se realiza en celdas o


posiciones secuenciales, as en el caso de un vector A con un subndice de
rengo 1 a n.

Posicin B A[1]
Posicin B+1 A[2]

.
.
.

A[i]

.
.
.

Posicin B+n-1
A[n]

4.3. Arrays de varias dimensiones


Es un grupo de datos pueden ser representados en una tabla o matriz con
dos o ms subndices.
Ej.: Tablas de distancias kilomtricas entre ciudades
Un cuadro de horarios de trenes o aviones
Informe de ventas peridicas (mes / semana / da / ventas totales)
Se pueden definir tablas o matrices como arrays multidimensionales, cuyos
elementos se pueden referenciar por dos, tres o ms subndices, los cuales
se dividen en dos grandes grupos:
Arrays bidimensionales 2 dimensiones
Arrays multidimensionales 3 o ms 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
Pg. 17
MAT-103 INFORMATICA

un valor en el array se deben especificar dos posiciones (dos subndices),


uno para la fila y otro para la columna.
C [ 3 , 4] Elemento C de la fila 3 y columna 4
COLUMNAS
1 2 3 4 5 6 7 8

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

FILAS 3

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

A[3,4]

Array bidimensional A de 5 filas y 8 columnas

4.3.2 Declaracin 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 declaracin de una matriz:
1. Nombre del array.
2. Tipo del array.
3. Rango permitido (subndice).
Formato:
Type
Identificador=Array [indice1, indice2] Of Tipo elemento;

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

Pg. 18
MAT-103 INFORMATICA

El orden ms 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 ms 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
continuacin los de la segunda fila columna y a si sucesivamente.
Ej: Sea el array A de 3 filas y 4 columnas.
Recorrido por filas

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]

Recorrido por columnas

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]

Pg. 19
MAT-103 INFORMATICA

Almacenamiento por filas Almacenamiento por


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

4.4. Arrays multidimensionales


Un array puede ser definido de tres dimensiones, cuatro dimensiones, hasta
de n-dimensiones. Los conceptos de rango de subndices y nmero de
elementos se pueden ampliar directamente desde un array de una y dos
dimensiones a estos arrays son de orden ms alto.
Turno pascal no limita el nmero de dimensiones de un array, pero si que
debe estar declarado el tipo de cada subndice.
Formato:

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.

Ejemplo:
1. type
Exmenes = 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;
Pg. 20
MAT-103 INFORMATICA

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


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

Pg. 21

Vous aimerez peut-être aussi