Sei sulla pagina 1di 10

COLEGIO SANTA ROSA DE LIMA LIC. YENY R. R.

SALINAS
DISCIPLINA: ALGORITMIA BTI 3ER AÑO
“Si no súmas a los demás, no restes”

Capacidades: Comprende el concepto de una Estructura de datos.

Tema I: Datos

Concepto de dato:

Un dato es la expresión general que describe los objetos con los cuales opera una computadora.
Todos los datos tienen un tipo asociado con ellos. Un dato puede ser un simple carácter, tal
como "b" o un valor entero tal como 35. El tipo de dato determina la naturaleza del conjunto de
valores que puede tomar una variable.

Clasificaciones en los tipos de datos

En Pascal existen gran variedad y cantidad de tipos de datos. Pero en este tutorial sólo se
trataran los básicos para que puedas ir construyendo tus primeros programas.

Existen muchas clasificaciones para los tipos de datos, y dependiendo de la fuente que mires, te
mostrarán una u otra. A continuación tienes una de las posibles clasificaciones:

 Dinámicos
 Estáticos
 El tipo cadena
 Estructurados
 Simples
 Ordinales
 No-ordinales

Tipos de Datos Estáticos:

En los programas cada elemento de datos debe ser de un tipo específico. El tipo de datos
determina cómo se representaran los elementos de datos en la computadora y qué tipo de
procesamiento podrá ejecutar sobre ellos la computadora. Los datos a procesar por una
computadora pueden clasificarse en:

a) Datos Simples: ocupan sólo una casilla de memoria, por lo tanto una variable simple hace
referencia a un único valor a la vez. Hay tres tipos básicos de datos simples, los cuales son:

 Datos Numéricos:
 Enteros: 3, 7, -10, 9, 15, 50
 reales: 0.52, 664.32, 6.579, 8.0, -9.3, -47.23
 Datos Alfanuméricos (carácter y cadena):
 Carácter:
o Datos tipo carácter (char)
o Datos tipo Cadena (string)
 Cadena Char
o Caracteres Alfabéticos (A,B,C,…Z,a,b,c…z)
o Caracteres Numéricos (0,1,2,…9)
o Caracteres Especiales (+, -, *, /, ^, . , ;, <, >, $, …….)
 Cadena String
o ‘Hola Juan López’
o ’12 de octubre de 1496’
COLEGIO SANTA ROSA DE LIMA LIC. YENY R. R. SALINAS
DISCIPLINA: ALGORITMIA BTI 3ER AÑO
o ‘Enunciado cualquiera’
 Datos Lógicos o boléanos:
 TRUE (verdadero)
 FALSE (falso)
 UNKNOWN (desconocido)

Datos simples de Tipos ordinales

Dentro de los tipos simples, los ordinales son los más abundantes. De un tipo se dice que es
ordinal porque el conjunto de valores que representa se puede contar, es decir, podemos
establecer una relación uno a uno entre sus elementos y el conjunto de los números naturales.

Dentro de los tipos simples ordinales, los más importantes son:

 El tipo entero (integer): Como ya habrás leído el tipo de datos entero es un tipo simple, y
dentro de estos, es ordinal. Al declarar una variable de tipo entero, estás creando una
variable numérica que puede tomar valores positivos o negativos, y sin parte decimal. Este
tipo de variables, puedes utilizarlas en asignaciones, comparaciones, expresiones
aritméticas, etc.

type
tContador = integer;
var
i : tContador;
n : integer;

begin
n := 10; (* asignamos valor al maximo *)
i := 1; (* asignamos valor al contador *)

while (i <= n) do begin


writeln('El valor de i es ',i);
i := i + 1
end
end.

 El tipo lógico (boolean): El tipo de datos lógico es el que te permite usar variables que
disponen sólo de dos posibles valores: cierto o falso. Debido a esto, su utilidad salta a la
vista, y no es otra que variables de chequeo. Nos sirven para mantener el estado de un
objeto mediante dos valores:
 si/no
 cierto/falso
 funciona/no funciona
 on/off
 etc.

type
tLogico = boolean;
var
llueve : tLogico; (* si llueve o no *)
paraguas : boolean; (* si encuentro o no el paraguas *)

begin
COLEGIO SANTA ROSA DE LIMA LIC. YENY R. R. SALINAS
DISCIPLINA: ALGORITMIA BTI 3ER AÑO
(* aqui se determinarian los valores de "llueve" y "paraguas" *)

if llueve and (not paraguas) then


writeln('Me quedo en casita')
else
writeln('Me voy a dar un paseo')
end.

 El tipo carácter (char): Con el tipo carácter puedes tener objetos que representen una letra,
un número, etc. Es decir, puedes usar variables o constantes que representen un valor
alfanumérico. Pero ojo, cada variable sólo podrá almacenar un carácter. Sin embargo, con
las cadenas de caracteres (strings) puedes contener en una sóla variable más de un carácter.
Por ejemplo, puedes tener en una variable tu nombre.
type
tNombre = string[10]; (* puede almacenar 10 caracteres *)
var
nombre : tNombre; (* variable para almacenar el nombre *)
letra_NIF : char; (* caracter para contener la letra del NIF
*)

begin
nombre := 'Beni';
letra_NIF := 'L';

writeln('Mi nombre es ',nombre,' y mi letra es ',letra_NIF)


end.

Tipos no-ordinales

Simplificando, podríamos reducir los tipos simples no-ordinales al tipo real. Este tipo nos sirve
para declarar variables que pueden tomar valores dentro del conjunto de los números reales.

A diferencia de los tipos ordinales, los no-ordinales no se pueden contar. No se puede establecer
una relación uno a uno entre ellos y los número naturales. Dicho de otra forma, para que un
conjunto se considere ordinal se tiene que poder calcular la posición, el anterior elemento y el
siguiente de un elemento cualquiera del conjunto. ¿Cuál es el sucesor de 5.12? Será 5.13, o
5.120, o 5.121, ...

b) Datos Estructurados: a diferencia de los datos simples, estos ocupan más de una casilla de
memoria, entre ellos tenemos:

1. Arreglos: Un Arreglo es una estructura de datos que almacena bajo el mismo nombre
(variable) a una colección de datos del mismo tipo. Existen dos tipos de arreglos,
Arreglos Unidimensionales (Vectores) y Bidimensionales (Matrices).
 Vectores: Es un arreglo de “N” elementos organizados en una dimensión donde “N”
recibe el nombre de longitud o tamaño del vector. Para hacer referencia a un
elemento del vector se usa el nombre del mismo, seguido del índice (entre
corchetes), el cual indica una posición en particular del vector. Por ejemplo:

Vec[x]
Donde:
COLEGIO SANTA ROSA DE LIMA LIC. YENY R. R. SALINAS
DISCIPLINA: ALGORITMIA BTI 3ER AÑO
Vec………… Nombre del arreglo
x…………… Numero de datos que constituyen el arreglo

Vec (1) Vec(2) Vec(3) Vec(4)


2 5 7 1

Hacer para I = 1 a 10

Leer vec[I]
Fin-para

Hacer mientras I <= 10

Leer vec[I]
Fin-mientras

I=1

Repetir

Leer vec[I]

I=I+1

Hasta-que I>10

Matriz o Tabla: Es un arreglo de M * N elementos organizados en dos dimensiones donde “M”


es el número de filas o reglones y “N” el número de columnas. Para representar una matriz se
necesita un nombre de matriz se necesita un nombre de matriz acompañado de dos índices.

Mat [R,C]: Donde R indica el renglón y C indica la columna, donde se encuentra almacenado el
dato. Representación gráfica de una matriz Mat [R,C]

Donde R -> Renglones y C->Columnas

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


2,1 2,2 2,3 2.4
3,1 3,2 3,3 3,4
4,1 4,2 4,3 4,4
2. Registros
3. Archivos o ficheros
4. Punteros

Datos Secuenciales
Determina la velocidad final de un auto si su velocidad inicial es 0 km/h y su aceleración es 0.8
m/s2; y el tiempo transcurrido es de 30 segundos.

►Determina el perímetro de un rectángulo.


1.- Inicio.
2.- Variables; Perímetro, L1=10 cm, L2=20 cm, L3=10 cm, L4=10 cm.
3.- Perímetro es igual a L1+L2+L3+L4.
COLEGIO SANTA ROSA DE LIMA LIC. YENY R. R. SALINAS
DISCIPLINA: ALGORITMIA BTI 3ER AÑO
4.- P=10+20+10+20
5.- P=60 cm.
6.- Fin.

►Convierte una cantidad cualquiera de guaraníes a dólares.


1.-Inicio.
2.-Determinar variables. x= guaraníes; y= ¿?dólares.
3.- Un dólar=5800
4.- y= x/5800
5.- y= total de dólares
6.- 1000 guaraníes son ……. dólares.
7.- Fin.

►Determina el área de un pentágono.


1.- Inicio.
2.- Variables; Área= ¿?, Perímetro=10, Apotema=8.
3.- Área es igual a 10*8/2
4.- Área=40
5.- Fin

►Determina la velocidad final de un auto si su velocidad inicial es 0 km/h y su aceleración es


0.8 m/s2; y el tiempo transcurrido es de 30 segundos.
COLEGIO SANTA ROSA DE LIMA LIC. YENY R. R. SALINAS
DISCIPLINA: ALGORITMIA BTI 3ER AÑO
“No esperes de la vida motivos para ser feliz, dale los motivos y sé feliz”

Capacidades: Establece las diferencias entre los distintos tipos de datos estructurados.

Tema II: Estructura de Datos

Estudia y aplica diferentes formas de organizar información dentro de una aplicación,


para manipular, buscar e insertar estos datos de manera eficiente.

Se clasifican en dos grande grupos, estructura estática y estructura dinámica.

1. Estructura estática

a) Pilas
Las pilas son un tipo de listas que tienen la particularidad de sólo poder eliminar o insertar en
la cima de la lista. A estas acciones se le conocen como apilar y desapilar y conlleva a que el último
elemento que ingresa a la pila sea el primero en salir a lo cual se le conoce como LIFO (Last in
First out).

Operaciones: Una pila cuenta con 2 operacines imprescindibles: apilar y desapilar, a las que en las
implementaciones modernas de las pilas se suelen añadir más de uso habitual.

 Crear: se crea la pila vacía.


 Apilar: se añade un elemento a la pila.(push)
 Desapilar: se elimina el elemento frontal de la pila.(pop)
 Cima: devuelve el elemento que esta en la cima de la pila. (top o peek)
 Vacía: devuelve cierto si la pila está vacía o falso en caso contrario.

b) Colas
Esta estructura es otro tipo de lista que nos permite emular el comportamiento de una fila o
cola de la vida real donde el primer elemento en ingresar a la fila es el primero en salir, lo que
quiere decir que las inserciones (Encolar) se realizan al final y las extracciones (Desencolar)
se realizan al frente de la cola, lo cual se conoce como FIFO (First in First out). Debido a que
el primer elemento en entrar será también el primero en salir.

Las colas se utilizan en sistemas informáticos, transportes y operaciones de investigación (entre


otros), dónde los objetos, personas o eventos son tomados como datos que se almacenan y se
guardan mediante colas para su posterior procesamiento. Este tipo de estructura de datos
COLEGIO SANTA ROSA DE LIMA LIC. YENY R. R. SALINAS
DISCIPLINA: ALGORITMIA BTI 3ER AÑO
abstracta se implementa en lenguajes orientados a objetos mediante clases, en forma de listas
enlazadas.

Operaciones Básicas

 Crear: se crea la cola vacía.


 Encolar (añadir, entrar, push): se añade un elemento a la cola. Se añade al final de esta.
 Desencolar (sacar, salir, pop): se elimina el elemento frontal de la cola, es decir, el primer
elemento que entró.
 Frente (consultar, front): se devuelve el elemento frontal de la cola, es decir, el primero
elemento que entró.

2. Estructura de datos Dinámica

a. Arrays

Los arrays son una estructura que almacena los datos un elemento al lado del otro. En la mayoria
de lenguajes de programación esta estructura de datos es de tamaño fijo y no puede guardar
datos de diferentes tipos, es decir no puedo guardar valores numericos y booleanos al mismo
tiempo, aunque claramente hay excepciones, por ejemplo: Javascript.

Es recomendable usar arrays cuando el acceso a estos datos se realizan de manera aleatoria, en
caso contrario es recomendable usar las listas.

b. Listas enlazadas
COLEGIO SANTA ROSA DE LIMA LIC. YENY R. R. SALINAS
DISCIPLINA: ALGORITMIA BTI 3ER AÑO
Las listas enlazadas son un tipo de estructura de datos similar a los arrays con la diferencia de que
por defecto no tenemos por qué saber la cantidad de elementos que va a contener. Estas listas
se componen de nodos los cuales tienen dos atributos: el primero es el item o elemento que va
a contener este nodo y el segundo atributo es una referencia al siguiente elemento de la lista.

Las operaciones que podemos realizar sobre una lista enlazada son las siguientes:

Recorrido. Esta operación consiste en visitar cada uno de los nodos que forman la lista . Para
recorrer todos los nodos de la lista, se comienza con el primero, se toma el valor del campo liga
para avanzar al segundo nodo, el campo liga de este nodo nos dará la dirección del tercer nodo,
y así sucesivamente.

Inserción. Esta operación consiste en agregar un nuevo nodo a la lista. Para esta operación se
pueden considerar tres casos:

 Insertar un nodo al inicio.


 Insertar un nodo antes o después de cierto nodo.
 Insertar un nodo al final.

Borrado. La operación de borrado consiste en quitar un nodo de la lista, redefiniendo las ligas que
correspondan. Se pueden presentar cuatro casos:

 Eliminar el primer nodo.


 Eliminar el último nodo.
 Eliminar un nodo con cierta información.
 Eliminar el nodo anterior o posterior al nodo cierta con información.

Búsqueda. Esta operación consiste en visitar cada uno de los nodos, tomando al campo liga como
puntero al siguiente nodo a visitar.

Lista enlazada simple: La lista enlazada básica es la lista enlazada simple la cual tiene un enlace
por nodo. Este enlace apunta al siguiente nodo en la lista, o al valor NULL o a la lista vacía, si es el
último nodo.
COLEGIO SANTA ROSA DE LIMA LIC. YENY R. R. SALINAS
DISCIPLINA: ALGORITMIA BTI 3ER AÑO
Listas enlazadas dobles: Cada nodo tiene dos enlaces: uno apunta al nodo anterior, o apunta al
valor NULL o a la lista vacía si es el primer nodo; y otro que apunta al siguiente nodo siguiente, o
apunta al valor NULL o a la lista vacía si es el último nodo.

Listas enlazadas circulares: En una lista enlazada circular, el primer y el último nodo están unidos
juntos. Esto se puede hacer tanto para listas enlazadas simples como para las doblemente
enlazadas. Para recorrer un lista enlazada circular podemos empezar por cualquier nodo y seguir
la lista en cualquier dirección hasta que se regrese hasta el nodo original. Desde otro punto de
vista, las listas enlazadas circulares pueden ser vistas como listas sin comienzo ni fin. Este tipo de
listas es el más usado para dirigir buffers para “ingerir” datos, y para visitar todos los nodos de
una lista a partir de uno dado.

Cada nodo tiene un enlace, similar al de las listas enlazadas simples, excepto que el siguiente
nodo del último apunta al primero. Como en una lista enlazada simple, los nuevos nodos pueden
ser solo eficientemente insertados después de uno que ya tengamos referenciado. Por esta
razón, es usual quedarse con una referencia solamente al último elemento en una lista enlazada
circular simple, esto nos permite rápidas inserciones al principio, y también permite accesos al
primer nodo desde el puntero del último nodo.

Lista Enlazada Doblemente Circular: En una lista enlazada doblemente circular, cada nodo tiene
dos enlaces, similares a los de la lista doblemente enlazada, excepto que el enlace anterior del
primer nodo apunta al último y el enlace siguiente del último nodo, apunta al primero. Como en
una lista doblemente enlazada, las inserciones y eliminaciones pueden ser hechas desde
cualquier punto con acceso a algún nodo cercano. Aunque estructuralmente una lista circular
doblemente enlazada no tiene ni principio ni fin, un puntero de acceso externo puede establecer
el nodo apuntado que está en la cabeza o al nodo cola, y así mantener el orden tan bien como
una lista doblemente enlazada con falsos nodos.

c. Arboles binarios
Los arboles binarios son estructuras de datos que se componen
de una nueva clase de nodo donde cada uno contiene un item o
un valor, una referencia a un nodo que sera el hijo izquierdo y
otra referencia para el nodo derecho, una característica esencial
de los arboles binarios es que la inserción de sus elementos se
realizan siguiendo un criterio, si el item del nodo a insertar es
menor a su nodo padre, la inserción se realiza por la izquierda y
en caso contrario la inserción se realiza por el lado derecho y
como consecuencia de esto nuestro arbol siempre estara
organizado de tal manera que los hijos izquierdos de cada nodo seran menores a el y los derechos
seran mayores, lo cual nos permite realizar búsquedas muy eficientes debido a la organización de
esta información donde para buscar un elemento solo es necesario ir comparando el valor a
buscar con el valor del nodo actual y asi tomar la decisión si ir por la izquierda o por la derecha,
ahorrandonos las búsquedas por el otro lado del arbol.
COLEGIO SANTA ROSA DE LIMA LIC. YENY R. R. SALINAS
DISCIPLINA: ALGORITMIA BTI 3ER AÑO

Algoritmo para practicar en laboratorio


1 signos del zodiaco
VAR
M= cadena
D= numérico

INICIO
Leer m, d
Sí (m= “marzo” y d>= 21) y (m= “abril” y d<=20) entonces
Escribir “Eres Aries”
Fin _ sí
Sí no sí (m= “abril” y d>= 21) y (m= “mayo” y d<= 20) entonces
Escribir “Eres Tauro”
Fin _ sí
Sí no sí (m= “mayo” y d>= 21) y (m= “junio” y d<= 20) entonces
Escribir “Eres Géminis”
Fin _ sí
Sí no sí (m= “junio” y d>= 21) y (m= “julio” y d<= 20) entonces
Escribir “Eres Cáncer”
Fin _ sí
Sí no sí (m= “julio” y d>= 21) y (m= “agosto” y d<= 20) entonces
Escribir “Eres Leo”
Fin _ sí
Sí no sí (m= “agosto” y d>= 21) y (m= “septiembre” y d<= 20) entonces
Escribir “Eres Virgo
Fin _ sí
Sí no sí (m= “septiembre” y d>= 21) y (m= “octubre” y d<= 20) entonces
Escribir “Eres Libra”
Fin _ sí
Sí no sí (m= “octubre” y d>= 21) y (m= “noviembre” y d<= 20) entonces
Escribir “Eres Escorpión”
Fin _ sí
Sí no sí (m= “noviembre” y d>= 21) y (m= “diciembre” y d<= 20) entonces
Escribir “Eres Sagitario”
Fin _ sí
Sí no sí (m= “diciembre” y d>= 21) y (m= “enero” y d<= 20) entonces
Escribir “Eres Capricornio”
Fin _ sí
Sí no sí (m= “enero” y d>= 21) y (m= “febrero” y d<= 20) entonces
Escribir “Eres Acuario”
Fin _ sí
Sí no sí (m= “febrero” y d>= 21) y (m= “marzo” y d<= 20) entonces
Escribir “Eres Picis”
Fin _ sí
Sí no Escribir “Fecha no reconocida”
Fin _sí
3. FIN

Potrebbero piacerti anche