You are on page 1of 75

Identificacin de estructuras algortmicas

selectivas.

introduccin
Estas estructuras se identifican porque en la fase de solucin del problema
existe algn punto en el cual es necesario establecer una pregunta, para
decidir si ciertas acciones deben realizarse o no.

Las condiciones se especifican usando expresiones lgicas. La


representacin de una estructura selectiva se hace con palabras en
pseudocdigo (if then else o en espaol si entonces - sino) y en
flujograma con una figura geomtrica en forma de rombo.
Las estructuras selectivas o alternativas se clasifican en:

ESTRUCTURA SELECTIVA
Las estructuras de control selectivas se
utilizan para resolver problemas donde sea
necesario tomar decisiones, es decir, donde se
tengan diferentes caminos para llegar a la
solucin de un determinado problema.

CONDICIONES
Las condiciones se construyen con la ayuda
de los operadores relacionales y booleanas
NOMBRE

OPERADOR

Mayor que

>

Menor que

<

Igual que

Mayor o igual

>=

Menor o igual

<=

Diferente

<>

NOMBRE

OPERADOR

Conjuncin

AND

Disyuncin

OR

Negacin

NOT

Estructuras selectivas
Las estructuras selectivas se clasifican en 3
tipos:
1.Selectiva simple
2.Selectiva doble
3.Selectiva mltiple

FLUJO DE CONTROL
En las estructuras selectivas se evala una condicin y
en funcin del resultado de la misma se realiza una
instruccin u otra.
Las estructuras selectivas o alternativas pueden ser:
-Simples
-Dobles
-Mltiples

Simple (SI ENTONCES).


Segmento de programa constituido por una instruccin
o un conjunto de instrucciones producto de evaluar
una determinada condicin.
Se plantean cuando en un programa existen un cierto
nmero de posibles alternativas.
Las estructuras de decisin o selectivas son simples,
dobles o mltiples.

La estructura selectiva si entonces permite que el


flujo del algoritmo siga por un camino especfico si
se cumple una condicin
Si al evaluar la condicin, el resultado es
verdadero, entonces se ejecuta cierta condicin
Luego se contina con el flujo normal del algoritmo

EJEMPLO:
Si <condicin> entonces
<accin S1>
fin_si
// S1 accin compuesta
si <condicin> entonces
<accin S1>
<accin S2>

<accin Sn>
fin_si

Doble (SI ENTONCES/SINO).


Permite seleccionar una ruta de dos posibles, en
base a la verdad (V) o falsedad (F) de la
condicin.

Las estructuras selectiva doble ejecuta la


condicin, si es verdadera realiza una accin y si
es falsa realiza otra accin. En las condiciones se
utiliza operadores lgicos.

Representacin Grafica

V
Condicin

Instrucciones

Instrucciones

Su expresin en Pseudocdigo
Si condicin entonces
Instrucciones 1
Instrucciones 2
Instrucciones N
Sino
Instrucciones 1
Instrucciones 2
Instrucciones N
Fin si

Mltiple (SI MLTIPLE).


Las estructuras selectiva mltiple es que realiza
varias instrucciones o grupos instrucciones
simple cuando evaluado las condiciones que se
presente en un programa. En las condiciones se
utiliza operadores lgicos.

CONDICION

V
CONDICION

CONDICION

Instrucciones

Instrucciones

F
Instrucciones

Instrucciones

Su expresin en Pseudocdigo
Si condicin entonces
Si condicin entonces
Si condicin entonces
Instrucciones
sino
Instrucciones
fin si
sino
Instrucciones
fin si
Sino
Instrucciones
Fin 3

En cascada (anidadas).
En numerosos casos en el desarrollo de la solucin de
problemas, encontramos que luego de tomar una decisin y
marcar el camino correspondiente a seguir, es necesario
tomar otra decisin. Luego de evaluar las condiciones, se
seala nuevamente la rama correspondiente a seguir y
nuevamente podemos tener que tomar otra decisin. El
proceso puede repetirse numerosas veces. En el siguiente
ejemplo tenemos una estructura selectiva SI ENTONCES
que contiene dentro de ella otra estructura selectiva SI
ENTONCES / SINO.

Estructura selectiva
simple Si Entonces
Estructura
selectiva doble Si
Entonces / SINO

CONDICIN
1

CONDICION 2

OPERACIN 1

OPERACIN 2

Si condicin1 Entonces
Si condicin 2 Entonces
Hacer operacin1
Sino
Hacer operacin 2
Fin Si
Fin Si .

B. Uso de estructuras algortmicas


repetitivas.

ESTRUCTURAS REPETITIVAS
Un tipo muy importante
de estructura es el
algoritmo necesario para
repetir una o varias
acciones
un
numero
determinado de veces.
Las estructuras que repiten
una
secuencia
de
instrucciones un numero
determinado de veces se
denominan ciclos.

ESTRUCTURAS REPETITIVAS
Se denomina iteracin al
hecho de repetir la
ejecucin
de
una
secuencia de acciones.
Las
dos
principales
preguntas a realizarse en
el diseo de un bucle son:
Qu contiene el ciclo?
Cuntas veces se tiene que
repetir?

ESTRUCTURAS REPETITIVAS
Para detener la ejecucin
de los ciclos se utiliza una
condicin de parada.
El pseudocdigo de una
estructura repetitiva tendr
este formato:

ESTRUCTURAS REPETITIVAS
inicio
//iniciacin de variables
repetir
acciones S1, S2
salir segn condicin
acciones Sn, Sn + 1,
fin_repetir

ESTRUCTURAS REPETITIVAS
Los enunciados a utilizar
sern:
Iterar
(loop)
mientras (while)
hacer-mientras (dowhile)
repetir
(repeat)
desde
(for)

ESTRUCTURAS REPETITIVAS
algoritmo SUMA 1
inicio
K=0
S=0
leer (n)
mientras K < n hacer
K = K+ 1
S = S +K
fin_mientras
escribir (S)
fin

ESTRUCTURAS REPETITIVAS
MIENTRAS
La estructura repetitiva mientras
es aquella en que el cuerpo del
ciclo se repite mientras se
cumple determinada condicin.
Cuando se ejecuta la instruccin
mientras, la primera cosa que
sucede es que se evala la
condicin.

Uso de estructuras algortmicas


repetitivas.

Estructura repetitiva o ciclo: PARA


(FOR)
El ciclo PARA conocido comnmente como FOR, es la estructura
algortmica adecuada para utilizar en un ciclo que se ejecutar un
nmero definido de veces. Este tipo de estructura est presente en
todos los lenguajes de programacin, ya sean estructurados u
orientados a objetos. Por ejemplo cuando necesitamos calcular la
nmina total de la empresa, tenemos que sumar los sueldos de los N
empleados de la misma. Cuando necesitamos obtener el promedio de
calificaciones de un curso, debemos sumar las N calificaciones de los
alumnos y dividir esa suma entre N. es decir, sabemos de antemano
cuntas veces tenemos que repetir una determinada operacin, accin
o tarea. El nmero de repeticiones no depende de las proposiciones
dentro del ciclo. El nmero de veces se obtiene del planteamiento del
problema o de una lectura que indica que el nmero de iteraciones se
debe realizar para N ocurrencias.

Diagrama de flujo de la estructura


algortmica PARA (FOR)

PARA V desde VI
hasta VF HACER
.
.
.
{proceso}
.
.
.
V = V + ID
FIN PARA

Dnde:
V Es la variable de control
del ciclo
VI Es el valor inicial
VF Es el valor inicial
ID Es el incremento o
decremento, segn sea la
estructura repetir
ascendente o descendente.

V (contador del ciclo, generalmente representado por las letras I, J, K, V) toma


un valor inicial y se compara con VF (Valor Final). El ciclo se ejecuta
mientras V es menor, menor igual, mayor o mayor igual al valor de V. El valor
de V se incrementa o decremento en cada iteracin. Cuando V supera el valor
de V. entonces el ciclo se detiene Algoritmos que calcula y escribe la nmina
de

La Estructura Repetitiva Mientras


(While)
La estructura repetitiva Mientras conocida como
while, es la estructura adecuada para utilizar en
un ciclo cuando no sabemos el nmero de veces
que ste se ha de repetir. Dicho nmero depende
de las proposiciones dentro del ciclo

En la estructura mientras se distinguen dos partes:


Ciclo: conjunto de instrucciones que se ejecutarn repetidamente.
Condicin de terminacin: la evaluacin de esta condicin
permite decidir cundo finalizar la ejecucin del ciclo. La condicin
se evala al inicio del mismo.
El diagrama de flujo de la
estructura algortmica mientras es
el siguiente:
Dnde:
PI: La proposicin inicial, debe
tener un valor verdadero
inicialmente. Si el valor de PI es
falso, entonces el ciclo no se
ejecuta.

Aplicacin de estructuras de
datos.

Una estructura de datos es una coleccin de


datos que pueden ser caracterizados por su
organizacin y las operaciones que se definen en
ella. Dentro de ellas encontramos distintos tipos,
los tipos de datos ms frecuentes en los
diferentes lenguajes son:
Tipos de datos.

Estructuras de Datos
Almacenamien
to Contiguo
Lineales
Estructur
as de
Datos

No
lineales

Almacenamien
to No
Contiguo

Tipos de datos
estndar
simples

estructurados

definidos por el
programador (no
estndar)

simples o
estticos

compuestos
o dinmicos

entero (integer) real (real)


carcter (char) lgico
(boolean)
subrango (subrange)
enumerativo
(enumerated)
arrays (vectores/matrices)
registros ficheros conjuntos
estructurados cadenas
(string)
listas (pilas/colas)
listas enlazadas
rboles grafos

Vectores y matrices.

Las estructuras estticas son aquellas en las que


el tamao de memoria ocupado se define antes
de que el programa se ejecute y no puede
modificarse durante la ejecucin Las estructuras
dinmicas son aquellas en las que no se debe
definir previamente el tamao de memoria Los
datos simples tienen en comn que cada variable
representa un elemento, en los estructurados un
identificador puede representar mltiples datos
individuales, pudiendo cada uno de estos ser
referenciados independientemente.

ARRAY UNIDIMENSIONALES:
VECTORES
ARRAY (ARREGLO): Es un conjunto finito y
ordenado de elementos homogneos.
Ordenado : cada elemento del arreglo puede ser
identificado Homogneo : son del mismo tipo
de dato El tipo ms simple de arreglo es el
unidimensional o vector (matriz de una
dimensin).

Por ejemplo podra ser un vector


denominado NOTAS
NOTAS[1]

NOTAS[2]

NOTAS[k]
..........

NOTAS[j]
......

Los subndices 1, 2, k, n, indican la posicin del elemento, en


Pascal van entre corchetes. El primer elemento es el 5, el segundo
es el 8, el elemento k es 7 y el ensimo es 3. Un array puede ser
declarado de dos formas distintas que son:

Declaraciones Tipo Array En las declaraciones


del tipo array usaremos los siguientes pasos.: 1.
La estructura del arreglo se describe en Type. 2.
Se le asigna ese tipo a una o ms variables. Type
XX = array [1..3000] of real; Var: Alfa : XX;
array y of son obligatorias [1...3000] indica los
valores que toman los ndices del vector, son del
tipo subrango. real identifica que tipo de
elementos almacena el vector.

Pilas y colas.

PILAS
Definicin:
Estructura de datos lineal donde los elementos
pueden ser aadidos o removidos solo por un
extremo.
Trabajan con filosofa LIFO (Last In- First Out ).
Ejemplos:
Pila de platos
Pila de discos
Pila de llamadas a funciones
Pila de recursin
Pila de resultados parciales de formulas aritmticas, etc.

OPERACIONES BASICAS CON


PILAS
-PUSH (insertar).- Agrega un elementos a la pila en el
extremo llamado tope.
-POP (remover).- Remueve el elemento de la pila que se
encuentra en el extremo llamado tope.
-VACIA.- Indica si la pila contiene o no contiene
elementos.
-LLENA.- Indica si es posible o no agregar nuevos
elementos a la pila.

REPRESENTACIN DE PILAS:
Usando arreglos: Define un arreglo de una dimensin
(vector) donde se almacenan los elementos.

TOPE: Apunta hacia el elemento que se


encuentra en el extremo de la pila.
(inicialmente es -1).

Ejemplo
Inicio:

Insertar

Insertar

Insertar

Eliminar

A:

B:

C:

elemento

Tope

-1

Tope

Tope

Tope

Tope

COLAS
Definicion. Es una lista lineal de elementos en la que las
operaciones de insertar y eliminar se realizan en diferentes
extremos de la cola.
Trabajan con filosofa FIFO ( First In - First out), el primer
elemento en entrar es el primer elemento en salir.
Ejemplos:
Cola de automviles esperando servicio en una gasolinera
Cola de clientes en una ventanilla del banco para pagar un servicio
Cola de programas en espera de ser ejecutados por una computadora.

TIPOS DE COLAS:
Cola simple: Estructura lineal donde los elementos salen en el
mismo orden en que llegan.
Cola circular: Representacin lgica de una cola simple en un
arreglo.
Cola de Prioridades: Estructura lineal en la cual los
elementos se insertan en cualquier posicin de la cola y se
remueven solamente por el frente.
Cola Doble (Bicola): Estructura lineal en la que los elementos
se pueden aadir o quitar por cualquier extremo de la cola
(cola bidireccional).

Operaciones bsicas en Colas Simples


Insertar.- Almacena al final de la cola el elemento que se
recibe como paramtro.
Eliminar.- Saca de la cola el elemento que se encuentra al
frente.
Vaca.- Regresa un valor booleano indicando si la cola tiene o
no elementos (true si la cola esta vaca, false si la cola
tiene al menos un elemento).
Llena.- Regresa un valor booleano indicando si la cola tiene
espacio disponible para insertar nuevos elementos ( true
si esta llena y false si existen espacios disponibles).

Estado de la cola:

Operaciones:

Inicio: Cola Vaca


1.- Insertar A

2.- Insertar B

3.- Insertar C
4.- Remover Elemento

5.- Insertar D

6.- Remover Elemento

Listas.

LISTAS
Una lista es una coleccin lineal de elementos llamados nodos
donde el orden de los mismos se establece mediante punteros o
referencias y existe un puntero/referencia especial llamado inicio
para localizar al primer elemento.
Ejemplos:
inicio

*Lista enlazada de 0 elementos


Informacin enlace

inicio
* Lista enlazada de 4 elementos

Los nodos de las listas


Un nodo se divide en 2 partes:
Informacin: Contiene la informacin del elemento.
Enlace: Contiene la direccin del siguiente nodo de la lista.
informacin

Nodo

enlace

public class Nodo{


// atributos
public String informacin;
public Nodo enlace;
// el constructor de nodos
Nodo (String n){
informacin = n;
enlace = null;
}
}

Listas Simples
Coleccin lineal de elementos llamados nodos.
Existe un elemento llamado inicio que apunta al
primer elemento de la lista.
Cada nodo contiene un campo de enlace que apunta
al siguiente elemento.
El ltimo elemento de la lista en su campo enlace
apunta a nulo.
Al principio el apuntador inicio apunta a nulo.

Operaciones con listas simples

Insertar: Agrega un elemento a la lista.


Eliminar: Retira un elemento de la lista.
Buscar: Busca un elemento en la lista.
Recorrer: Visita todos los elementos de la lista.
Vaca: Indica si la lista contiene o no elementos.
Tamao: Indica el nmero de elementos de la lista.

Con las operaciones anteriores, define una interfase


para una lista simple que contiene datos de tipo
String.

Operaciones con listas dobles

Insertar: Agrega un elemento a la lista.


Eliminar: Retira un elemento de la lista.
Buscar: Busca un elemento en la lista.
Recorrer hacia adelante: Visita todos los elementos de la lista
desde el inicio hasta el final.
Recorrer hacia atrs: Visita todos los elementos de la lista
desde el final hasta el inicio.
Vaca: Indica si la lista contiene o no elementos.
Tamao: Indica el nmero de elementos de la lista.

Con las operaciones anteriores, define una interfase


para una lista doble que contiene datos de tipo
Integer.

rboles.
- Simple
- Binario

Un rbol es una estructura no lineal en la que


cada nodo puede apuntar a uno o varios nodos.
Tambin se suele dar una definicin recursiva:
un rbol es una estructura en compuesta por un
dato y varios rboles.
Esto son definiciones simples. Pero las
caractersticas que implican no lo son tanto.

Un rbol en el que en cada nodo o bien todos o ninguno de los hijos


existe, se llama rbol completo.
En una cosa, los rboles se parecen al resto de las estructuras que
hemos visto: dado un nodo cualquiera de la estructura, podemos
considerarlo como una estructura independiente. Es decir, un nodo
cualquiera puede ser considerado como la raz de un rbol completo.
Existen otros conceptos que definen las caractersticas del rbol, en
relacin a su tamao:
Orden: es el nmero potencial de hijos que puede tener cada elemento
de rbol. De este modo, diremos que un rbol en el que cada nodo
puede apuntar a otros dos es de orden dos, si puede apuntar a tres ser
de orden tres, etc.
Grado: el nmero de hijos que tiene el elemento con ms hijos dentro
del rbol. En el rbol del ejemplo, el grado es tres, ya que tanto 'A'
como 'D' tienen tres hijos, y no existen elementos con ms de tres
hijos.

Nivel: se define para cada elemento del rbol como


la distancia a la raz, medida en nodos. El nivel de la
raz es cero y el de sus hijos uno. As sucesivamente.
En el ejemplo, el nodo 'D' tiene nivel 1, el nodo 'G'
tiene nivel 2, y el nodo 'N', nivel 3.
Altura: la altura de un rbol se define como el nivel del
nodo de mayor nivel. Como cada nodo de un rbol puede
considerarse a su vez como la raz de un rbol, tambin
podemos hablar de altura de ramas. El rbol del ejemplo
tiene altura 3, la rama 'B' tiene altura 2, la rama 'G' tiene
altura 1, la 'H' cero, etc.

Arboles binarios
Los rboles de orden dos son bastante especiales, de hecho les
dedicaremos varios captulos. Estos rboles se conocen tambin
como rboles binarios. Frecuentemente, aunque tampoco es
estrictamente necesario, para hacer ms fcil moverse a travs del
rbol, aadiremos un puntero a cada nodo que apunte al nodo padre.
De este modo podremos avanzar en direccin a la raz, y no slo hacia
las hojas.
Es importante conservar siempre el nodo raz ya que es el nodo a
partir del cual se desarrolla el rbol, si perdemos este nodo,
perderemos el acceso a todo el rbol.
El nodo tpico de un rbol difiere de los nodos que hemos visto hasta
ahora para listas, aunque slo en el nmero de nodos. Veamos un
ejemplo de nodo para crear rboles de orden tres:

Se trata de rboles de orden 2 en los que se


cumple que para cada nodo, el valor de la clave
de la raz del subrbol izquierdo es menor que el
valor de la clave del nodo y que el valor de la
clave raz del subrbol derecho es mayor que el
valor de la clave del nodo.

Arreglos.
Arreglos se define como una coleccin finita, homognea y
ordenada de elementos
Finita: todo arreglo tiene limites, es decir, debe determinarse cual
ser el numero mximo de elementos que podrn formar parte del
arreglo.
Homognea: todos los elementos de un arreglo son del mismo
tipo o naturaleza( todos los enteros, todos booleanos,etc.-), pero
nunca una combinacin de distintos tipos.
Ordenada: se debe determinar cual es el primer elemento, el
segundo, el tercero. Y el ensimo elemento.

Arreglos unidimensionales
Es un tipo de datos estructurado que est formado de una
coleccin finita y ordenada de datos del mismo tipo. Es la
estructura natural para modelar listas de elementos iguales.
Estn formados por un conjunto de elementos de un mismo
tipo de datos que se almacenan bajo un mismo nombre, y
se diferencian por la posicin que tiene cada elemento
dentro del arreglo de datos. Al declarar un arreglo, se debe
inicializar sus elementos antes de utilizarlos. Para declarar
un arreglo tiene que indicar su tipo, un nombre nico y la
cantidad de elementos que va a contener.

Arreglos multidimensionales
Es un tipo de dato estructurado, que est
compuesto por dimensiones. Para hacer
referencia a cada componente del arreglo es
necesario utilizar n ndices, uno para cada
dimensin. El trmino dimensin representa el
nmero de ndices utilizados para referirse a un
elemento particular en el arreglo. Los arreglos de
ms de una dimensin se llaman arreglos
multidimensionales.

las operaciones en arreglos pueden clasificarse de la siguiente forma:


Lectura: este proceso consiste en leer un dato de un arreglo y asignar
un valor a cada uno de sus componentes
Escritura: Consiste en asignarle un valor a cada elemento del arreglo.
Asignacin: No es posible asignar directamente un valor a todo el
arreglo
Actualizacin: Dentro de esta operacin se encuentran las
operaciones de eliminar, insertar y modificar datos. Para realizar este
tipo de operaciones se debe tomar en cuenta si el arreglo est o no
ordenado.
Ordenacin.
Bsqueda.
Insertar.
Borrar.
Modificar.

Registros.
Se denomina registro a un conjunto organizado de datos, del mismo o
de diferente tipo que estn relacionados entre si, por contener
informacin relativa, a una entidad, particular y superior de la que
forma parte, esta entidad recibe el nombre de fichero o archivo.
Los registros estn compuestos de campos, que es la unidad mnima
de informacin, entre del registro que es independiente de las dems,
el campo a su vez puede estar dividido en subcampos.
Para diferenciar unos registros de otros, se busca una informacin de
alguno de sus campos que sea totalmente diferente de las dems
contenidas en cualquiera de los campos de los registros. Al campo que
contiene dicha informacin nica, se le llama campo clave

. Esta informacin servir para diferenciar unos registros


de otros, dicho campo puede ser creado con independencia
del resto de los campos del registro o se puede utilizar
como tal uno de los ya disponibles en la estructura de dicho
registro. El campo clave puede estar definido por varios
campos en cuyo caso se establece una cave principal y las
dems sern secundarias.
Para definir un registro necesitamos indicar el nombre del
registro y todos los campos que van a formar parte de ese
registro. Para cada campo, se tendr que especificar el
nombre y el tipo.

Arreglos
Es un tipo de dato estructurado que consta de un conjunto de
elementos que pueden ser del mismo tipo o de tipos diferentes.

Los componentes de un registro se denominan campos. Cada


campo tiene un nombre llamado identificador (nombre) de campo y
un tipo de dato que indica la informacin a almacenar.
Es un tipo de dato estructurado formado por la unin de varios
elementos bajo una misma estructura. Estos elementos pueden ser, o
bien datos elementales (entero, real, carcter, otros), o bien otras
estructuras de datos. A cada uno de esos elementos se le llama
campo.
Un registro se diferencia de un vector en que ste es una coleccin
de datos iguales, es decir, todos del mismo tipo, mientras que en
registro los elementos que la componen, aunque podran serlo, no
tiene porque ser del mismo tipo.

Ejemplo 9: Representar grficamente el


registro EMPLEADO, formado por cuatro
campos (nombre, edad, domicilio y salario)

DECLARACIN DE UN
REGISTRO

El siguiente es el formato para declarar un


registro:

En donde:
Nombre X: es un identificador valido
campo 1, campo 2, campo n: son los nombres de cada uno de
los campos que componen al registro
tipo dato: representa alguno de los tipos de datos de pascal.
nombre Variable Registro: representa la variable de tipo
registro, es decir, esta es la que se utilizara en el programa
para manipular la estructura

Conclusin
En este trabajo se vio sobre las estructuras de un
algoritmo que corresponde a un diagrama de
flujo de un pseudocdigo que desde simple hasta
un animada o soluciones que se da un problema
determinado segn corresponda de igual manera
se vio los datos que se debe llevar una estructura
selectiva y repetitiva y sus elementos que la
conforman.

Referencias

Slideshare
Blogspot
exa.unne.edu.ar
c++ con clase
Rinco del vago
Universidad politcnica de la regin riberea
Campus Cuernavaca

ESCUELA SUPERIOR POLITECNICA DE


CHIMBORAZO FACULTAD DE INFORMATICA Y
ELECTRONICA ESCUELA DE DISEO

GRAFICO

You might also like