Unidad 1.

Programación (I)
1.1. Objetivos del tema.
Solo pretender que centremos un poco lo que es la tarea de la programación, y que sobre todo es un
aspecto de lógica, lógica aplastante.
1.2. Introducción.
Intentar dar una definición de lo que es programar en la actualidad es muy atrevido, por lo que el que
desee una de esas definiciones solo tiene que acudir a Internet y encontrara seguro un sin fin de ellas.
Pero para escribir un programa, una aplicación, un paquete informático, hay que combinar varios
elementos.

Técnica.
Diseño.
Imaginación.

Técnica, que se puede aprender, y que es lo que se quiere enseñar en este curso de iniciación.
Diseño, estilo, gusto, que es más difícil enseñarlo, pues es una cuestión personal, y se trata de ofrecer
nuestro producto en un formato agradable para quien lo va a utilizar.
Imaginación, conocida la técnica de programación, está capacidad se puede adquirir con la experiencia,
es más difícil, porque la capacidad de poder crear, imaginar la solución, o forma en la cual se desea
plantear o mostrar lo que se quiere obtener, es una capacidad individual que cada uno tiene más o
menos desarrollada.

Estos elementos nos permitirán combinar otros tres elementos, que son

El hardware, el ordenador.
Los procedimientos, funciones, clases y objetos.
Las estructuras de datos.

Hardware, conocer los distintos elementos con los que se puede contar para poder llegar a obtener una
solución óptima a nuestro problema.
En programación hay una gran variedad de tipos de programas, y un amplio espectro de periféricos en
el mercado.
Su conocimiento nos puede facilitar la solución de un problema.

Procedimientos, funciones, son las herramientas de las que nos valemos en la programación para la
resolución de un programa, para resolver un problema.

Estructuras de datos, los dos elementos anteriores nos permiten sacar el rendimiento de un programa,
pero un programa utiliza datos, pocos o muchos, pero siempre información, por lo tanto hay que
manejar de forma adecuada dicha información.
1.3. Elementos de programación.
Podríamos denominar los siguientes apartados como elementos de la programación.

– Tener claro que queremos hacer.
– Dominar los elementos a nuestro alcance.
– Imaginar espacialmente la solución que deseamos obtener.
– Aplicar dicha solución.

Tener claro que queremos hacer, en condiciones normales, la creación de un programa parte de una
fase de diseño que da como resultado final como tiene que ser un programa y lo que hay que hacer es
transcribir a código dicho resultado.
Por lo tanto antes de iniciar la escritura de un programa es imprescindible saber de forma clara y sin
paliativos que es lo que queremos hacer, si una silla o un barco.

Normalmente una buena aplicación suele conllevar un ahorro en el tiempo final, por que no hay que
retroceder ni tampoco corregir.
Dominar los elementos a nuestro alcance, implica tener un conocimiento y dominio de los elementos
mencionados anteriormente.
Imaginar espacialmente la solución que deseamos obtener, la progresión en la técnica de la
programación, con el tiempo nos llevará a imaginar, por decirlo de alguna forma, la solución o la forma
de enfocar como deseamos hacer el programa que nos encargan, pero eso a otro nivel, os irá pasando a
lo largo del curso, ya que con los ejercicios que iremos planteando, a medida que los vayamos leyendo
de forma inconsciente os ira apareciendo la forma de enfocarlos.

Aplicar dicha solución, y solo quedará con todos los datos aplicarlos a la solución que en principio
creemos más adecuada, y que luego modificaremos muchas veces.
Hay un principio, “si funciona no lo toques”, pero claro ..., así que cada cual decida cuando parar.

1.4. Lo principal de un programador.
Tener las ideas claras, saber de forma exacta que es lo que tienes y a dónde has de llegar.
Tener claro en que orden quieres hacerlo.
Lo mas importante en programación son los conceptos. Si se tienen claros, a continuación, podrás
buscar las herramientas que necesitas en el lenguaje que usas y realizarás correctamente tu labor.
Memorizar cosas no es importante, es más importante saber donde esta un manual y buscar ahí la
información, que necesitemos.
El cambiar a otro lenguaje de programación, si los conceptos son sólidos, no supondrá ningún trauma,
pues cambiarán las instrucciones que usas, pero no el orden en que se tienen que realizar los pasos.
Dominar la herramienta de programación de que dispones.
Realizar las pruebas adecuadas de funcionamiento correcto del programa.
La fase de depuración y pruebas de un programa son importantísimas, porque eso nos lleva a un
producto final fiable y de probada eficacia, lo cual da fiabilidad al producto, y al programador que lo
crea.
Un programa que no da confianza no se utiliza.
1.5. Características.
Se podrían añadir o quitar, pero estas son importantes.
1 Legibilidad.
Debe ser posible leerlo y entenderlo con facilidad, el uso de nombre de variables adecuados y
comentarios, facilita este apartado.
2 Portabilidad.
Crear estructuras que permitan su codificación en distintos lenguajes.
3 Modificabilidad.
Ha de facilitar su mantenimiento, es decir, debe permitir que se modifique o actualice en función de las
necesidades del problema a resolver. Para ello es conveniente comentar adecuadamente el código.
Un programa debe quedar escrito y documentado de tal forma que otra persona que venga detrás pueda
modificarlo o ampliarlo sin excesiva dificultad.
4 Eficiencia.
Se debe aprovechar al máximo los recursos del ordenador, minimizando el empleo de memoria y el
tiempo de ejecución. Además, como es obvio, debe resolver el problema para el que ha sido planteado.
5 Modularidad.
Se debe procurar no tener que resolver el mismo problema varias veces. A igual problema, igual
solución, lo que conlleva la elaboración de módulos para resolver problemas concretos.
6 Estructuración.
Lo programas deben tener única y exclusivamente estructuras lineales, alternativas y cíclicas,
exclusivamente, o dicho de otra forma, no es conveniente utilizar instrucciones de salto, aunque estén
disponibles en el lenguje de programación.
1.6. Problemas en los programas.
Cuando se tienen problemas con un programa, lo mejor es ir haciendo pruebas por zonas, visualizando
contenidos mediante las herramientas, opciones de depuración del entorno que utilizamos, de las
variables que nos interesan y comprobando que se ejecutan las zonas del programa que a nosotros nos
interesan que se ejecute.
Cuando se diseña una rutina, función, procedimiento o método nuevo, esta debe probarse fuera del
programa, para asegurarse de su correcto diseño y que devuelve correctamente los resultados,
asignándole en la prueba todos los valores posibles para verificar su correcto funcionamiento.
En un programa pequeño eso es muy fácil de probar y de controlar su ejecución correcta.
Copiar un programa no es malo, no suele hacerse, suelen copiarse ideas, o mejorar cosas que se
observan en otros paquetes, pero lo importante si se hace, es saber cómo funciona y entenderlo, si no,
no nos aportará nada.
Unidad 2. Estructura y representación de un
programa (I)
2.1. Objetivos del tema.
Veamos lo que es un programa, en cuanto a sus elementos mínimos, y estructura mínima, poco a poco
iremos ampliando e introduciendo el resto de elementos.
2.2. Introducción.
Un ordenador tiene como misión la de realizar, o facilitar las tareas que de otra forma se realizarían en
una forma tediosa e incomoda.
Los ordenadores son capaces de ejecutar programas.
Los programas están realizados por personas y los ejecutan los ordenadores.
Los programas utilizan información en su ejecución, y como resultado de su ejecución facilitan, o no,
nuevos datos.
Los datos que se utilizan en los programas forman parte de las instrucciones que ejecuta el programa.
2.3. Escribir un programa.
Toda actividad necesita de un argot, jerga y convenios para poderse entender entre las personas que se
dedican a una misma labor. No es que se pretenda aislarse del resto de las personas, sino que es
necesario ese convenio y un lenguaje específico que a cada cosa le asigne su nombre característico y
propio, y de esa forma facilite la comunicación entre las personas.
De esta forma surge en cada profesión una serie de símbolos y palabras para facilitar el trabajo.

Existe varias formas de representar un programa de forma previa a su codificación y a partir de los
datos que nos entregan como consecuencia de la fase previa de análisis.

Seudocódigo
Ordinogramas.

Lo que sigue es un pequeño ejemplo de un programa muy sencillo, en formato de seudocódigo.

Inicio
Escribir “Cálculo del área de un triángulo”

Leer “Introduzca la base del triángulo”, Base
Leer “Introduzca la altura del triángulo”, Altura

Area = (Base * Altura) / 2
Escribir “El área del triángulo es “, Area
Fin

Esta forma de escribir, o de describir dicho programa se denomina pseudocódigo.

Como se puede comprobar, es una forma sencilla de describir un programa en un formato muy
próximo al ser humano, pero también se puede desarrollar de forma gráfica.

Para ello los símbolos utilizados básicamente son:





Y a continuación vemos el ejemplo de antes representado mediante organigrama.



Ambos sistemas son válidos, cada cual puede elegir el que más le guste.
Expliquemos lo visto.

Escribir “Cálculo del área de un triángulo”

Esto es una instrucción que incorpora un texto que se llama literal, y en un programa de verdad en lugar
de estar en castellano estará en ingles.

Instrucción Escribir
Literal “Cálculo …”

El fin de ésta instrucción es el de poder comunicarse con la persona que está utilizando el programa, y
poder emitir mensajes, de ayuda, de título, etc…

Leer “Base del triángulo”, Base

Esto es una instrucción que es capaz de visualizar un texto y esperar a que el usuario escriba un dato.

Instrucción Leer
Literal “Introduzca …”
Dato Base

El fin de ésta instrucción es el de poder recibir datos por teclado desde la persona que está utilizando el
programa.

Inicio
.. / ..
Fin

Esta es la forma de delimitar el programa en su inicio y final, cada lenguaje dispone de una sintaxis
más o menos similar, Begin End,
Todos los programas de una u otra forma tienen delimitado donde empieza y donde acaban, el sistema
cambia en función de la sintaxis de cada uno de los lenguajes de programación.

Los programas no son solamente como lo visto en el ejemplo, son algo más complejos e incorporan
estructuras que ya incorporaremos más adelante.
Unidad 3. Los datos (I)
3.1. Objetivos del tema.
Hemos visto en el tema anterior como un programa es algo muy fácil, claro el ejemplo era muy fácil,
pero se trataba de dejar visto, que es así.
Ahora vamos a ver que en el tema anterior hemos utilizado datos, pero que en realidad los datos son
algo más.
3.2. Introducción.
Los datos en un programa es uno de los elementos vitales del mismo, pero en la vida cotidiana los
utilizamos a diario también, si nos fijamos en los datos que utilizamos, nos daremos cuenta que son
letras y números, números solo o solo letras.
También, cuando a lo largo del día alguien nos da un dato pequeño, normalmente no memorizamos,
pero si es largo o complejo, lo apuntamos, ¿Por qué?, por que tenemos nuestras limitaciones, por la
edad, por lo despistados que somos etc..
Los ordenadores también disponen de memoria, y también manejan información, datos, y en función de
lo voluminosos que sean los datos, los almacenarán en la memoria central del ordenador, o en un
soporte, en el disco duro o lo grabaremos en un disquete o disco compacto, etc..
3.3. Los tipos de datos.
Informáticamente los datos son de dos tipos básicos, números y letras, o numéricos y alfanuméricos.
Con los datos numéricos realizamos operaciones de cálculo y con los alfanuméricos representamos
información y la almacenamos para el uso en el programa.

El dato numérico utilizará en memoria un espacio adecuado para el valor que puede tomar.
Como la memoria en un ordenador es vital, conviene aprovecharla al máximo.
Un valor numérico puede tomar un valor desde cero, olvidemos los números negativos, hasta ...., hasta
un valor que es imposible escribir, o sea, infinito.
Pero eso en un ordenador es imposible de asumir.
Por lo tanto lo que hacemos es que creamos rangos, y a cada rango le asignamos un tipo de dato.

¿Cómo se crean los rangos?
Pensemos en que un ordenador solo sabe utilizar un uno y un cero, ausencia de voltaje y presencia de
voltaje eléctrico, sistema binario, pero nosotros utilizamos lo que denominamos el sistema decimal, es
decir diez elementos en lugar de dos.
En este sistema, cada uno de los dígitos utilizados se denomina bit, (Binary digit).

Por lo tanto para almacenar un número del cero al nueve, necesitaremos una combinación de ceros y
unos que permitan representar cada uno de esos números, y como son diez, se necesitan diez
combinaciones.

0 0
1 1
2 10
3 11
4 100
5 101
6 110
7 111
8 1000
9 1001

Esa sería la combinación para representar los diez dígitos del cero al nueve.

Cada uno de esos dígitos los denominamos bits, por lo tanto el cinco necesita tres bits para
representarlo.
Si siguiéramos esa secuencia podríamos ir creando todos los números decimales en binario.

Estos bit se agrupan en grupos de

1 bit.
4 bit un cuarteto.
8 bit un octeto, un octeto es un byte.
1024 bytes, es un Kilobyte. Kb.
1024 Kb son un Megabyte, Mgb
1024 Mgb. son un Gigabyte.

Si nos preguntamos porque se usa 1024 en lugar de 1000, la respuesta es que hay que buscar bloques de
8 bits, que son un byte, 1024 es 2
10
.

Los datos alfanuméricos no tiene problema en su representación, pues cada carácter ocupa un byte en
memoria, tantos caracteres tantos bytes, dentro de las limitaciones del lenguaje de programación que se
este utilizando.
El motivo de utilizar un byte para cada carácter es que el número de caracteres máximo distintos en un
idioma latino, o anglosajon, tomando los números como caracteres independientes, incluidos letras
acentuadas y caracteres de puntuación no supera los 256, con un byte podemos obtener 256
combinaciones distintas, del 0 al 255.
Actualmente se utiliza un sistema de dos bytes que de forma unilateral implanto una empresa de
software, por lo cual, aunque nosotros usemos un carácter para almacenarlo se utilizarían dos.

Esto permite que se puedan representar hasta 65535 combinaciones de símbolos, necesario para los
lenguajes orientales, que usan símbolos en lugar de letras.

Pero los números son datos compactos, no se pueden andar separando de forma arbitraria, ya que hay
que realizar operaciones de cálculo con ellos, por lo tanto han de ocupar uno, dos o x bytes, pero
contiguos, para así poder operar matemáticamente.
Por lo tanto los números que podemos representar en un sistema dependerá del número de bytes que
pongamos juntos para representar ese número.

Por ejemplo si ponemos un solo byte a disposición del sistema, solo podremos representar números
entre el 0 y el 255. Un byte son 8 bits, las combinaciones son 2
8
que es igual a 256, que son los
números que podemos representar.
Como eso es muy pobre, el rango más pequeño que se utiliza es el de dos bytes, que permiten manejar
números entre –32767 y + 32768, como números enteros.
Aunque eso parece un rango muy pequeño, en programación los números enteros se usan para contar
cosas, y en un porcentaje muy elevado de casos es suficiente ese rango, siempre que se haga un uso
adecuado de los recursos.

Claro la pregunta sale sola ¿ pero números hay .... ? , claro que hay más, pero esos ya se han dado en
clasificar en otro tipo de datos, los llamados números reales.
Los números reales se representan con otro sistema, no creeremos que se puede asignar espacio en
memoria para el número 12345678901234567890, o bien para el 0,12345678901234567890, eso no es
factible.
Por lo tanto en función del tamaño del espacio usado en memoria se puede abarcar más o menos
valores.

Esta tabla muestra los valores máximos y mínimos en función del número de bytes utilizados en lun
lenguaje de programación..
Pensemos que hace años un número entero utilizaba dos bytes, ahora en los lenguajes modernos utiliza
4, por lo que se aumenta el número de valores posibles válidos.

Bytes Máximo Mínimo
Byte números 1 255 0
Booleano 2 True False
Integer rangos 2 32,767 -32,768
Long Entero largo 4 2,147,483,647 -2,147,483,648
Single precisión números
(positivos)
4 3.402823E+38 1.401298E-45
Single precisión
números(negativos)
4 -1.401298E-45 -3.402823E+38
Double precisión
números(positivos)
8 1.797693134862315D+308 4.940656458412465D-324
Double precisión números
(negativos)
8 -4.940656458412465D-
324
-
1.797693134862315D+308

Pero para representar las letras sucede lo mismo, también hay que buscar una combinación de ceros y
unos.
Y como además hay que representar otra serie de caracteres de control que se utilizan en otras tareas,
todos y cada uno de ellos necesita de una representación en binario de su valor en el sistema o idioma
que nosotros utilizamos.

La suma de todos esos números, letras y caracteres de control aproximadamente es de unos 170
elementos.
Unidad 4. Las expresiones (I)
4.1. Objetivos del tema.
Hemos visto en el tema anterior que en un programa uno de los apartados a utilizar son los datos.
Los datos en si no son nada si no se utilizan, y la forma de utilizarlos es en expresiones, dentro de una
instrucción, o de forma aislada, vamos a ver que son las expresiones y su evaluación.
4.2. Introducción.
Las instrucciones es la forma de hacer que un programa haga la tarea para la cual lo estamos
escribiendo, pero esas instrucciones tienen que manejar datos, y al final lo que hacemos es escribir
expresiones que se evalúan y que producen un resultado que permite resolver o tomar una decisión.
Para utilizar los datos necesitamos crear esas expresiones, las expresiones las crearemos utilizando los
datos y los operadores que me permiten dar sentido a esa expresión para que produzca un resultado.
4.3. Expresiones.
Las expresiones están compuestas por datos, y los datos en un programa se almacenan en variables.
Las denominamos de esa forma porque su valor cambia a lo largo de la ejecución del programa, cuando
un dato está almacenado en una variable y su valor es estático, por ejemplo declaramos la variable Pi =
3,1415, entonces la denominamos constante.
Las variables, como ya se comentó antes, almacenan datos, y los datos hemos quedado que
básicamente eran de dos tipos numéricos y alfanuméricos.
Con las variables alfanuméricas almacenamos datos de texto, para el uso que sea pertinente en el
programa.
Con las variables numéricas almacenamos datos de valor numérico, con las que podemos realizar
operaciones de cálculo.
Si las variables son numéricas, en realidad, y recordando el cuadro de posibles valores del tema
anterior, las variables numéricas en realidad podrán ser:

Byte
Integer
Long
Real

Hay que tener presente que el nombre de los tipos cambiará en función del lenguaje utilizado, por
ejemplo el Real también podemos encontrarlo como simple y doble precisión.

La expresión es la unión de una serie de variables unidas por operadores que expresan una condición,
un cálculo, una comparación.
En estas expresiones los operadores se evalúan en el siguiente orden,

Paréntesis, de dentro a fuera.
Signo.
Potencia.
Productos y divisiones.
Suma y restas.
Concatenación.
Relacionales.
Negación.
Conjunción.
Disyunción.

Cuando hay expresiones que contienen operadores de más de una categoría, se resuelven antes las que
tienen operadores aritméticos, a continuación las que tienen operadores de comparación y por último
las de operadores lógicos.
Los operadores de comparación tienen todos la misma prioridad; es decir, se evalúan de izquierda a
derecha, en el orden en que aparecen. Los operadores lógicos y aritméticos se evalúan en el siguiente
orden de prioridad:


Tipos de operadores.

Aritméticos Relacionales Operadores lógicos
Exponenciación Igualdad Negación lógica
Negación Desigualdad, distinto Conjunción
Multiplicación y división Menor que Disyunción
División de enteros Mayor que Exclusión lógica
Módulo aritmético (Mod) Menor o igual que Equivalencia
Adición y substracción Mayor o igual que Implicación

En cada lenguaje de programación cada operador tiene un símbolo asignado, en la mayoría coinciden,
pero hay algunos que cambian de forma significativa, por lo que cuando se entre en cada lenguaje se
expondrán los mismos.

Cuando hay multiplicación y división en la misma expresión, cada operación se evalúa a medida que
aparece, de izquierda a derecha. Del mismo modo, cuando se presentan adiciones y substracciones en
una misma expresión, cada operación se evalúa tal como aparecen de izquierda a derecha. Es posible
usar paréntesis para saltar el orden de preferencia y forzar que algunas partes de una expresión se
evalúen antes que otras. Las operaciones entre paréntesis se realizan antes que las de fuera. Sin
embargo, dentro de los paréntesis, la precedencia de los operadores se mantiene.

El operador de concatenación de cadenas (&) o (+) no es realmente un operador aritmético, pero en
orden de prioridad se encuentra a continuación de todos los operadores aritméticos y antes que todos
los operadores de comparación.
4.4. ¿Como se distinguen los tipos de variable?
La diferenciación entre un tipo y otro de variables, se realiza de dos formas básicamente,

En la creación a la hora de definirlas se les asigna un tipo, pero el nombre no lleva ningún carácter
identificativo,

En la creación a la hora de definirlas se les asigna un tipo y además el nombre lleva un carácter que la
identifica como tal tipo, si se utiliza el sistema de notación hungara.

La notación hungara, consiste en prefijos en minúsculas que se añaden a los nombres de las variables, y
que indican su tipo.
El resto del nombre indica, lo más claramente posible, la función que realiza la variable.
4.5. Operadores.
Indican que tipo de acción se ha de realizar con dos variables.
Hemos quedado que las variables contienen datos.
Los datos son para manejarlos y obtener otros datos a partir de ellos.
Para eso hay que realizar distintos tipos de operaciones y cada operación ha de estar representada por un
operador.
Los operadores se dividen por el tipo de operación que realizan.

Las distintas operaciones que se pueden realizar en un programa son:

Aritméticas. Sumas restas ...
Lógicas. Condición And Condición, o Condición Or Condición.
Relacionales. Mayor o Igual, >=, <=, =, >, <

Que se corresponde con los tipos de operadores descritos anteriormente.
Luego para cada tipo de operación son necesarios unos símbolos que identifiquen la acción que se desea
realizar.
A continuación exponemos los operadores en un formato que suele ser habitual, pero que después habrá que
volver a ver en el lenguaje correspondiente.

Con el fin de poder realizar los ejemplos, se han utilizado los símbolos que se utilizan en Visual Basic.

1 Aritméticos.
Para indicar cálculos de tipo matemático.
Suma +
Resta -
Multiplicación *
División /, División entera, o DIV
Resto división Mod
Raíz cuadrada Sqr
Exponenciación ^
Ejemplos.
Variable = Variable + 1 Suma y además es un Contador.
Variable = Variable + OtraVariable Suma, y lo llamamos Acumulador.
Variable = Variable * 3 + OtraVariable
2 Lógicos.
And, Or, Not, Xor, Imp. Eqv
Los operadores lógicos unen dos o más condiciones para formar una única expresión.
2.1 And.
Se utiliza para efectuar una conjunción lógica de dos expresiones.

Sintaxis
resultado = expresión1 And expresión2

La sintaxis del operador And consta de las siguientes partes:

Parte Descripción
resultado Obligatorio; cualquier variable numérica.

Comentarios
Si y sólo si ambas expresiones se evalúan como True, el resultado es True. Si cualquiera de las
expresiones es False, el resultado es False. La siguiente tabla ilustra cómo se determina el resultado:

La tabla de verdad es:
Expresión1 Expresión2 Resultado
True True True
True False False
False True False
False False False
El operador And ejecuta también una comparación bit a bit para identificar los bits de dos expresiones
numéricas que tienen la misma posición y establece el bit correspondiente en el resultado según la
siguiente tabla de decisión lógica:
La tabla de verdad es :
Bit Bit Resultado
0 0 0
0 1 0
1 0 0
1 1 1


2.2 Or.
Se utiliza para ejecutar una disyunción lógica sobre dos expresiones.

Sintaxis
resultado = expresión1 Or expresión2

La sintaxis del operador Or consta de las siguientes partes:

Parte Descripción
resultado Obligatorio; cualquier variable numérica.

Comentarios
Si cualquiera de las expresiones, o ambas, es True, el resultado es True. La siguiente tabla indica cómo
se determina el resultado:
La tabla de verdad es:
Expresión1 Expresión2 Resultado
True True True
True False True
False True True
False False False
El operador Or ejecuta una comparación bit a bit para identificar los bits de dos expresiones numéricas
que tienen la misma posición y establece el bit correspondiente en el resultado según la siguiente tabla
de decisión lógica:
La tabla de verdad es:
Bit1 Bit2 Resultado
0 0 0
0 1 1
1 0 1
1 1 1
2.3 Not.
Se utiliza para ejecutar una negación lógica sobre una expresión.

Sintaxis
resultado = Not expresión

La sintaxis del operador Not consta de las siguientes partes:

Parte Descripción
resultado Obligatorio; cualquier variable numérica.
expresión Obligatorio; cualquier expresión.

Comentarios
La siguiente tabla muestra cómo se determina el resultado:
Expresión Resultado
Trae False
False True

Además, el operador Not invierte los valores de bit de cualquier variable y establece el bit
correspondiente en resultado, de acuerdo con la siguiente tabla de decisión lógica:
La tabla de verdad es:
Bit1 Resultado
0 1
1 0

2.4 Xor.
Se utiliza para realizar una exclusión lógica entre dos expresiones.

Sintaxis
[resultado =] expresión1 Xor expresión2

La sintaxis del operador Xor consta de las siguientes partes:

Parte Descripción
resultado Obligatorio; cualquier variable numérica.

Comentarios
Si una y sólo una de las expresiones es True, el resultado es True. Sin embargo, si cualquiera de las
expresiones es Null, el resultado es también Null. Cuando ninguna de las expresiones es Null, el
resultado se determina de acuerdo con la siguiente tabla:
La tabla de verdad es:
Expresión1 Expresión2 Resultado
True True False
True False True
False True True
False False False
El operador Xor funciona como operador lógico y bit a bit. Ejecuta una comparación bit a bit para
identificar los bits de dos expresiones utilizando lógica de O exclusivo para obtener el resultado, según
la siguiente tabla de decisión lógica:
La tabla de verdad es:
Bit1 Bit2 Resultado
0 0 0
0 1 1
1 0 1
1 1 0
2.5 Imp.
Se utiliza para efectuar una implicación lógica de dos expresiones.

Sintaxis
resultado = expresión1 Imp expresión2

La sintaxis del operador Imp consta de las siguientes partes:

Parte Descripción
resultado Obligatorio; cualquier variable numérica.

Comentarios
La siguiente tabla ilustra cómo se determina el resultado:
La tabla de verdad es:
Expresión1 Expresión2 Resultado
True True True
True False False
False True True
False False True
El operador Imp ejecuta una comparación bit a bit para identificar los bits de dos expresiones
numéricas que tienen la misma posición y establece el bit correspondiente en el resultado según la
siguiente tabla de decisión lógica:
La tabla de verdad es:
Bit1 Bit2 Resultado
0 0 1
0 1 1
1 0 0
1 1 1
2.6 Eqv.
Se utiliza para efectuar una equivalencia lógica de dos expresiones.

Sintaxis
resultado = expresión1 Eqv expresión2

La sintaxis del operador Eqv consta de las siguientes partes:

Parte Descripción
resultado Obligatorio; cualquier variable numérica.

Comentarios
Si cualquiera de las expresiones es de tipo Null, el resultado es también Null. Si ninguna de las
expresiones es Null, el resultado se determina según la siguiente tabla:
La tabla de verdad es:
Expresión1 Expresión2 Resultado
True True True
True False False
False True False
False False True
El operador Eqv ejecuta una comparación bit a bit para identificar los bits de dos expresiones
numéricas que tienen la misma posición y establece el bit correspondiente en el resultado según la
siguiente tabla de decisión lógica:
La tabla de verdad es:
Bit1 Bit2 Resultado
0 0 1
0 1 0
1 0 0
1 1 1
3 Cadenas, strings.
El símbolo utilizado habitualmente es el + y el &, que no representa una suma, sino la concatenación o unión
de dos variables alfanuméricas, creando una nueva con el contenido de ambas.
4 Relacionales
>, >=, <>, <, <=, =.
Son los símbolos que se usan en una comparación para indicar como hacerla, si A ha de ser mayor que B, etc.…
Unidad 5. Las instrucciones (I)
5.1. Objetivos del tema.
Hemos visto lo que es la estructura de un programa, los datos, que esos datos en realidad se convierten
en variables de distinto tipo dentro de un programa, y que esas variables generan o creamos con ellas
expresiones.
Ahora, una vez que tenemos expresiones, hay que utilizarlas para algo, las expresiones pueden ir de
forma aislada o formar parte de las instrucciones de un programa.
5.2. Introducción.
Un programa se construye a base de escribir una serie de instrucciones propias del lenguaje que
utilizamos y con el fin de poder llegar a que ese programa realice la labor para la cual se ha diseñado.
Las instrucciones de un lenguaje de programación son las que nos permiten crear la estructura del
programa.
En los programas vamos creando bloques con las instrucciones, de forma que a base de ir sumando
bloques llegamos a construir un programa más o menos complejo.
El mejor ejemplo podríamos verlo en un edificio.
Un edificio se construye a base de ir añadiendo ladrillos, muchos ladrillos, que se apoyan unos en otros.
Un programa se puede ver como algo similar.
Pero un edificio se sustenta sobre una estructura.
A nivel de programación, esa estructura se basa en los procedimientos y funciones que escribimos en el
programa, y esos procedimientos, funciones y métodos, los llenamos de instrucciones.
5.3. Instrucciones.
La secuencia de instrucciones escritas en un orden lógico, que indican las operaciones a realizar para
resolver un problema, es lo que denominamos programa.
Las instrucciones sin las expresiones en la mayoría de los casos no tienen razón de ser.

1 Símbolos.
En un tema anterior pusimos los símbolos más utilizados en los organigramas.
Cada uno de esos símbolos se traduce en una instrucción en un programa.

Inicio o final de programa, procedimiento, función o método.

Condición dentro de un programa, se convierte en un

If condición then acción else acción.
Si se cumple la condición entonces hacemos y sino se cumple hacemos
esto otro.

Este rectángulo normalmente albergará operaciones de cálculo,
expresiones.

A = A + B

Entrada de datos por teclado, es la forma de recabar información del
usuario.


Visualizar datos en el monitor, de esa forma podemos ofrecer
información al usuario.

Imprimir el dato en la impresora del sistema.


Realizar una entrada o salida de datos desde o hacia un dispositivo, que
no se especifica de forma explicita.

Realizar una entrada o salida de datos desde o hacia un dispositivo que es
de acceso direccionable, normalmente un disco duro.

Conector dentro de página, la flecha apunta a un símbolo que está en la
misma página.

Conector fuera de página, la flecha apunta a un símbolo que está fuera de
la pagina actual.

2 Estructuras.
Cuando creamos un programa, creamos una estructura que se va
ejecutando de forma lineal y en determinados momento necesitamos
tomar decisiones, o hacer que algo se repita.

Con las instrucciones podemos crear esos tres tipos de posibilidades,

Ejecución lineal o secuencial.
Ejecución alternativa, tomar una decisión.
Ejecución repetitiva.

3 Lineal, secuencial.
Si volvemos a los ejercicios que realizamos al principio, aunque aun no hayamos utilizado ningún
lenguaje, podremos ver como de forma instintiva hemos utilizado instrucciones de forma lineal con
expresiones.

Cada símbolo del organigrama, o cada línea del seudo código es una instrucción.
La estructura que se ha utilizado en esos ejercicios es una estructura lineal.

La imagen que tenemos a la derecha es un ejemplo de estructura secuencial, si nos fijamos en los
símbolos del organigrama, veremos que no hay ninguna acción de repetición, no hay ninguna flecha
que vuelva hacia arriba a un punto por el que ya hemos pasado.

Tampoco hay ningún punto en el que se divida el programa entre dos posibilidades después de una
pregunta.
4 Alternativas.
En la imagen de la izquierda
podemos observar como hay
una decisión y la posibilidad
de que se ejecute una u otra
rama del programa, eso es
una estructura alternativa.

Las estructuras alternativas
pueden tener dos salidas,
cuando cumple, la derecha y
cuando no cumple la
izquierda.

La parte de no se cumple, la izquierda, es optativa, es decir, no hay porque escribir una acción cuando
una condición no se cumple, a lo mejor solo nos piden que visualicemos los números primos, entonces
si un número no es primo pasaremos al siguiente y ya está, no hay por que hacer nada.

En un organigrama, cuando se usa un símbolo de
decisión, es decir un “Si el número es primo”, la
salida de la derecha siempre es la que indicará la
acción que se ejecutará cuando se cumpla la
condición, salvo que se indique mediante texto lo
contrario.

Estas instrucciones pueden estar anidadas, unas
dentro de otras.

En el ejemplo podemos observar como dentro de la
pregunta de “Tiempo mayor que 180”, hay a su vez
otra condición en la que preguntamos por “Resto
mayor que cero”.

Y se podrían seguir anidando condiciones.






5 Repetitivas.
Las estructuras repetitivas, permiten que se pueda ejecutar una parte del programa un número
determinado de veces.
Cuantas veces nos han dicho, mientras no te comas la merienda, no iras con tus amigos a jugar al balón,
- bueno ahora es a la PlayStation-, o aquello de hasta que no te ordenes la habitación, no sales.
Pues hemos nombrado los dos tipos base de estructura repetitiva que existen, mientras y hasta.

Mientras se cumple una condición.
Repite hasta que se cumple una condición


Una estructura repetitiva esta formada por una serie de
instrucciones que están escritas en el interior de otra
instrucción que permite que esas instrucciones se
ejecuten un número determinado de veces, mientras se
cumple una condición, o hasta que se cumpla una
condición.

Si observamos las imágenes veremos que en una la
condición que controla cuando se ejecuta el bucle, está al
principio y en la otra está al final.

La diferencia permite que en un caso, mientras, While, solo se ejecuta las
instrucciones del interior del bucle si la condición se cumple al llegar al bucle.

En el caso del hasta, Repeat, las instrucciones del interior del bucle se ejecutarán siempre al menos una
vez, ya que la condición se analiza al final.

Los bucles mientras y repite, pueden usarse indistintamente, pero evidentemente el motivo de su
existencia es porque no siempre se pueden sustituir uno por el otro.
En los bucles, se realiza aquellas acciones que nos sean necesarias en el programa, pero una de las
situaciones habituales es la de realizar operaciones donde se cuentan, o se incrementan valores.
En los dos ejemplos que vemos a continuación, podemos observar como en los dos casos se realiza la
misma acción, que es la de visualizar unos valores que van de diez a veinte.


Sin embargo, si observamos los dos ejemplos,
veremos como hay diferencias en el de la
izquierda, el número uno, la acción de
incremento del contador, se realiza después de la
acción de visualizar la variable X, mientras que
en la de la derecha, el número dos, es al revés.

SI seguimos observando los ejemplos, podemos
ver como en un caso el valor inicial de X es diez,
y en el otro nueve.

Si seguimos observando, veremos que las
condiciones de salida del bucle cambian, en un caso por igual a veinte y en otro por ser mayor que
veinte.

En el primer caso cuando X vale veinte en la condición de salida, ese número todavía no ha sido
visualizado.
En el segundo caso, cuando X vale veinte en la condición de salida, ese número ya ha sido visualizado,
esos son los matices.

La programación está llena de matices y “tonterías de éste tipo”, pero es esa la diferencia entre que
funcione correctamente o no.
Un programa no puede ir bien para el noventa por ciento de los valores, si no para el cien por cien de
los mismos.
Traducción, en un bucle lo importante es siempre:

Con que valores o condiciones empiezas,
En que momento realizas la progresión,
Cuando realizas la acción que te interesa en el bucle
En que momento abandonas el bucle, condición de salida.

Si estas condiciones las tenemos presentes, el uso de los bucles carece de problemas.
Lo siguiente es tener presente en que momento hay que utilizar de forma obligatoria un bucle While o
un bucle Repeat.

Con el tiempo veremos que el más utilizado acaba siendo el mientras, pues casi siempre nos interesa
tener controlado que se cumpla determinada condición antes de entrar en el bucle.

Otro matiz, si en un bucle Repite la condición es hasta que “sea de color verde” en un bucle mientras la
condición se invierte y será mientras “sea de color verde”.

Aunque nadie se lo creerá, con lo que hemos visto, a nivel de creación de la estructura de un programa,
no hay nada más que explicar, eso les da una idea, por un lado de lo sencillo que es hacer un programa,
y de lo importante que es tener hasta aquí claro todo lo que se ha visto.

Evidentemente que la programación no es solo lo que se ha visto, todavía quedan temas por ver,
muchos temas, pero en realidad, para crear un programa, no hace falta nada más de lo que se ha visto.
El resto de temas pendientes de ver se apoya en lo visto, de ahí la importancia de tener claro todo lo
visto.
6.1. Objetivos del tema.
Hemos visto todos los componentes de un programa, veamos ahora un programa.
6.2. Introducción.
Un programa esta dividido en varios bloques.
Declaraciones.
Procedimientos y funciones de usuario.
Programa principal.

A su vez en el programa encontramos tres fases.
Entrada de datos.
Proceso de los mismos.
Obtención de resultados.

La programación ha avanzado mucho desde sus inicios, actualmente la programación no se entiende sin
el uso de clases y sus correspondientes objetos que derivan de las mismas.
6.3. Declaraciones.
La parte de declaraciones puede ser muy amplia, dependerá del lenguaje de programación, de sus
requerimientos.
Como mínimo se tendrá que declarar las variables que intervengan en el programa, de tal forma que
queden disponibles para su utilización en el programa.
Después tenemos los procedimientos y las funciones, que en función del lenguaje o de los criterios que
deseemos aplicar, podríamos decir que pertenecen a éste apartado, ya que tanto un procedimiento,
función o clase, antes de su utilización deben existir en el programa, por lo tanto según deseemos
aplicar los criterios podríamos incluirlos aquí o no.
Hay que tener presente que las sintaxis y las estructuras de cada lenguaje de programación son muy
importantes a la hora de hablar de la estructura de un programa, ya que ésta viene marcada por el
mismo.

En fin para resumir, en la fase de declaraciones debemos ubicar todo aquello que después deseemos
utilizar.
6.4. Clases.
El estilo de programación actual está basado en las clases.
Las clases no es nada más que una forma distinta de ver la forma de escribir un programa, pero le
añade una serie de ventajas que ante no estaban disponibles de una forma tan cómoda como se
consigue con las clases.
Nos permiten escribir el código de forma que queda protegido, encapsulado y no es posible su
modificación.
Además por el concepto de clase, esa forma de enfocar el programa, nos va a permitir que de un mismo
enfoque de clase, podamos obtener distintos resultados.
Como ejemplo pensemos en los planos de una casa que sean interactivos y en los que antes de poder
ver los planos de la casa, “los planos nos pregunten”:

¿Cuántos metros cuadrados quiere que tenga la casa?
¿Cuántas habitaciones quiere?
¿Quiere terraza?
¿Cuántos baños desea?, etc..

Y después de estas preguntan viéramos los planos en función de esos parámetros.
En función de la respuesta la casa sería de una forma o de otra, sin embargo la clase “Casa” siempre
sería la misma, cambiaría el resultado en función de los parámetros que le hubiéramos facilitado.

Pero imagínese que en la clase casa, se nos olvido escribir la pregunta “Desea garaje”, la casa se
quedaría sin preguntar si quiere o no garaje, pero con escribir un método que sea capaz de añadir un
garaje, la Clase quedaría actualizada, y sin necesidad de modificar lo que ya tenemos escrito.

Una clase es única, sin embargo sus resultados diversos.
Para conseguir eso es necesario que disponga de los datos para poder desarrollar distintas casas.
De los distintos métodos para cada una de las características de la casa.
Los métodos son la parte ejecutiva de la clase, y se escriben mediante le uso de
procedimientos y funciones en función de su diseño.
La parte de captura de información, o la asignación de datos a la clase, es lo que
denominamos propiedades.
La clase podrá o no responder a impulsos externos, esa capacidad se denomina
evento.
6.5. Procedimientos.
En todo programa hay una parte del mismo que se repite, y que si no se inscribe
en el ámbito de un procedimiento debería estar escrito un sin fin de veces.
Por lo tanto en lugar de repetir el código a lo largo del programa lo que se hace es
escribirlo en el interior de un procedimiento y llamar a la ejecución del mismo
cada vez que haga falta.
Eso facilita la escritura del programa, la modificación del mismo y su claridad.
Podemos ver en el ejemplo lateral como podría ser el organigrama de un
programa cualquiera, sencillo, pero válido. Como podemos ver el organigrama
aunque claro es largo y pesado de leer, imagínense eso con un programa de
verdad, no sería práctico, de escribir ni de seguir.
Si nos fijamos en las acciones de se programa, podemos observar que hay cuatro
pasos.

Carga.
Visualización.
Proceso.
Visualización.

Como podemos ver la visualización se repite.

Sin embargo podemos dividir ese programa en bloques, cada bloque es un procedimiento.


Y el programa principal quedaría como sigue:

Como podemos observar, el procedimiento Visualizar se ejecuta dos veces, pero
esta escrito solo una vez, lo que hacemos es llamarlo en dos ocasiones.

Además es mucho más sencillo seguir el programa así, que con todo el código a la
vista, ya que solo tenemos que acudir a leer aquellos procedimientos que nos
interesen.

Los procedimientos pueden o no recibir datos para la ejecución del mismo.
Los procedimientos pueden o no devolver datos, tras la ejecución del mismo.

Un procedimiento participa de la resolución de la estructura de un programa, forma parte de la misma,
y con una correcta utilización de los mismos conseguiremos un programa ordenado y fácil de
modificar, a la vez que fácil de entender por terceros y de modificar en un futuro.
El uso de procedimientos debe ir acompañado de un uso razonable de las variables.
6.6. Funciones.
Un procedimiento se escribe para resolver la estructura de un programa, y
podrá o no devolver o recibir datos.
Una función es una parte de nuestro código que formará parte de una
expresión especializada en realizar algún tipo de operación, cálculo,
comparación, dibujo, ...
Por lo tanto una función no suele utilizarse para resolver la estructura de un
programa, sino para que se pueda mejorar el mismo.
Si en un programa hay que verificar si un valor cumple una determinada
condición y si es cierto realizar una acción y sino otra, lo correcto es que se cree una función y se
utilice como parte de la instrucción condicional.

Cuando se ejecuta la función, ésta devolverá un
valor, en el ejemplo supongamos que devuelve
cierto o falso en función de los valores.

En el programa nosotros podremos utilizar la
función dentro de nuestras expresiones, con lo que
se facilita la escritura del mismo y se simplifica.

En el ejemplo podemos ver como la función esta
dentro de la instrucción condicional, y el resultado
de su ejecución hará que se ejecute una u otra de las ramas del programa.

En el ejemplo con seudocódigo podemos observar como la función se integra como una expresión en el
interior de la condición, y su resultado será el que provoque la acción en el entonces o en el si no.


Si Función(A,B) entonces
Acción
Si no
Acción
Fin de condición.


En éste ejemplo vemos un ejemplo más, en éste caso la función recibiría un valor numérico, y
devolvería cierto si el número es primo, y falso si no lo es.
En caso de cumplirse se ejecutaría la acción de escribir que el número sí es primo, en caso contrario se
escribiría en pantalla, que el número no es primo.


Si NumeroPrimo(Numero) entonces
Escribir “El número es primo ”,Numero
Si no
Escribir “Este número no es primo”, Numero
Fin de condición.


Por lo tanto nosotros podemos crear las funciones que necesitamos, y estas se integran como parte de la
instrucción que escribimos, lo que proporciona claridad y legibilidad al programa.
Al fin y al cabo un programa bien escrito se convierte en un libro, y debe de ser fácil poderlo leer.

6.7. Conclusiones.
Hemos visto los datos y las expresiones.
Se ha explicado las estructuras de programación,

Secuencial
Alternativa
Repetitiva

En éste tema se ha visto, muy por encima, sin entrar a fondo, clases, lo que son los procedimientos y las
funciones, los hemos nombrado y dejado caer su existencia.
Si lo visto hasta ahora lo tienen asimilado, hemos dado un gran paso.
Unidad 7. Las clases (I)
7.1. Objetivos del tema.
Hemos visto los componentes de un programa, hemos ido nombrándolos de dentro hacia fuera, es decir

Dato
Variable
Expresión
Instrucción
Estructuras
Procedimientos y funciones.

Nos queda ver el o un elemento que contiene a todos estos, que es la clase.
La clase es el elemento estructural que aglutina todos los anteriores y permite que expresemos nuestros
programas.
La clase está a su vez utilizada dentro del programa.
7.2. Introducción.
Si nuestro estilo de programación no contempla, comparte, o lo que cada uno desee, el uso de clases y
objetos, el escalafón acaba con los procedimientos y funciones, y estos se utilizan directamente dentro
del programa.
Ni uno es malo, ni el otro es perfecto, son sistemas, estilos y filosofías distintas, pero no se puede negar
que el uso de clases es positivo dentro de la programación.
En la actualidad el tipo de programación que se realiza es lo que denominamos, P. O. O., programación
orientada a objetos.
Dicho de otra forma, la materia explicada en temas anteriores, se colocan en el interior de lo que
denominamos clases, con las que crearemos los objetos.
Un objeto es un elemento derivado de una clase.
La clase es un elemento estructural en un programa que dispone de

Propiedades que al fin y al cabo son datos, vistos anteriormente.
Métodos que son procedimientos y funciones, en cuyo interior tenemos las
estructuras básicas de programación vistos en el tema cinco y en el
tema anterior.
Eventos que se construyen también mediante código.
7.3. Clase.
En programación, un objeto es un ente que es capaz de realizar tareas y reaccionar ante aquello que
tiene a su alrededor, ante los eventos que lo rodean, sea un partido de fútbol, una película, una
sensación, y al que dotamos de una serie de características, alto, bajo, grande pequeño y que se definen
cuando creamos el objeto y que podemos dejar que quien vaya a utilizarlo los pueda modificar, pero
siempre bajo nuestro control, claro, para eso el objeto lo hemos creado nosotros.

Como lo que no se hace en informática es crear varias veces lo mismo, las clases las escribimos una
sola vez, y lo que se hace es crear algo así como un molde con el que luego vamos haciendo copias.

Para profesionalizar la parrafada de antes, al molde se le llama clase, y a esa clase le dotamos de una
fisonomía, característica, a los elementos que describen esa fisonomía, lo llamamos propiedades.
Las tareas que queramos que sea capaz de realizar las denominamos métodos.
Y a la capacidad de reaccionar a los estímulos exteriores lo llamamos eventos.
7.4. Propiedades.
Un ejemplo muy cercano, el ser humano, si deseamos crear una clase que imite al ser humano le
podríamos crear una serie de características, propiedades, como

Sexo
Altura
Color del pelo
Color de los ojos

Por lo tanto las propiedades describen el objeto.
Podemos crear características internas, que no se podrán utilizar fuera del objeto, y otras que serán
externas y que sí que se verán en el objeto y podrán ser modificadas lo que permitirá crear objetos de
distintos tipos.
Estas características externas son las que de verdad denominamos propiedades, pues es posible que
sean modificadas por quien utiliza la clase, quien de verdad genera después el objeto.
Las características internas, por llamarlas así, son en realidad variables de la clase, las propiedades
también lo son, pero se ven por parte del usuario.
7.5. Método.
Y como queremos que sea capaz de hacer cosas le enseñaremos métodos.

Caminar.
Hablar
Leer
Escribir
Correr

De ésta forma, escribiendo los métodos, es decir el lugar donde se escribe el código de nuestro
programa, se le dota de capacidades ejecutivas a la clase, las capacidades que dispondrá el objeto que
de ella se derive.
7.6. Eventos.
Y para que sea capaz de reaccionar ante lo que tiene a su alrededor, le dotaremos de sentidos, que sería
la forma de poder reaccionar a lo que hay a su alrededor.

Vista
Oído
Olfato
Gusto
Tacto

Con eso conseguimos que un objeto sea capaz de reaccionar a los actos que se producen a su alrededor,
y nosotros generaremos los eventos en los cuales tengamos interés.
Si no necesitamos saber si llueve o no, habrá evento EstaLloviendo, etc..
Y podríamos seguir enseñándole cosas, podríamos seguir escribiendo métodos y creando propiedades
que definan a una persona, en la misma clase, o creando una nueva que herede las capacidades de la
que ya existe.

Longitud del pelo.
Ancho de la cintura
Ancho del pecho
Longitud de las piernas.
7.7. Polimorfismo.
Pero las personas no son todas iguales, y cada una dispone de distintas habilidades, por lo que
podremos dotar de más habilidades a ésta clase, a ésta persona.
Pintar
Dibujar
Sumar
Bailar

De esa forma, si nos fijamos cambiando el color de los ojos o del pelo, o del sexo, a partir de un mismo
punto de partida, podemos crear distintos tipos de personas.
7.8. Herencia.
Lo que no vamos a hacer nunca tampoco es escribir una parte de un programa de nuevo, cuando ya lo
hemos escrito anteriormente, por lo que lo que se va haciendo es crear clases, moldes base que luego
vamos enriqueciendo a partir de las ya existentes, a este concepto de aprovechamiento de lo ya
existente lo denominamos herencia.
De esa forma podemos crear una clase base denominada persona con las características estándar, o un
bebe, si queremos llamarlo así, al que hemos de ir enseñando a hacer cosas.

El bebe solo lo definiríamos por ejemplo con

Sexo
Altura
Color pelo
Color ojos
Color de la piel

Le enseñaremos solo a

Hablar
Leer
Escribir
Andar
Correr

Y le dotaremos de la posibilidad de reaccionar ante

Calor
Frío
Seco
Mojado

Y después crearíamos una nueva clase que heredara esas capacidades y le añadiríamos otras nuevas.

De esa forma podríamos entrenarlo para que fuera un gran cocinero.
Le potenciaríamos la posibilidad de percibir los olores y los sabores.
Mejoraríamos su habilidad en el manejo de las manos.

Podríamos crear una clase que fuera un matemático, al cual le potenciaríamos sus capacidades mentales
para el cálculo y la lógica.
7.9. Ocultación.
Pero en el manejo de estas posibilidades nunca permitiríamos que el diseñador de la clase cocinero o
matemático pudiera cambiar el color del pelo, o de los ojos.
Esta característica que permite proteger las características del bebe se denomina ocultación.
7.10. Aplicación.
Con lo que hemos comentado, si es capaz de asumir, madurar, y comprender lo que ha leído, el pasar
de la fase de abstracción a la real le supondrá muy poco esfuerzo, ya que los conceptos base de la P. O.
O., son los comentados, solo queda la aplicación.

Veamos un ejemplo un tanto irreal.

Desarrollamos una clase que denominamos Humano

Clase Humano
Propiedad Sexo
Propiedad Altura
Propiedad Raza
Propiedad ColorOjos
Propiedad ColorPelo

Metodo Caminar
Fin de metodo

Metodo Hablar
Fin de metodo

Metodo Leer
Fin de metodo

Metodo Escribir
Fin de metodo
Fin de Clase

Cada uno de esos métodos, contendrá el código adecuado para que se realice la acción que tiene como
misión.

Por ejemplo el método Leer, podría ser

Metodo Leer(NombreLibro)

Fin de metodo

Y recibiría como parámetro el nombre de un libro, el cual habría que leer.
En el interior del método podríamos tener escrito algo como

Metodo Leer(NombreLibro)

AbrirLibro(NombreLibro)

Mientras haya Hojas
Mientras haya Lineas
Mientras haya palabras
Leer palabra
Fin de mientras
CambiarDeLinea
Fin de mientras
CambiardePagina
Fin de mientras

CerrarLibro

Fin de metodo

Pero podríamos añadir un parámetro que fuera leer en voz alta, o podríamos añadir una condición que
fuera leer si no estas cansado.

Por lo tanto podría quedar

Mientras haya Palabras
Leer Palabra
Si hay que leer en voz alta
Mujer.Hablar Palabra
Fin de condición
Fin de mientras

O podría ser también

Mientras haya Palabras Y NoEstoyCansado
Leer Palabra
Fin de mientras


O evidentemente todo junto.

Mientras haya Palabras y NoEstoyCansado
Leer Palabra
Si hay que leer en voz alta
Mujer.Hablar Palabra
Fin de condición
Fin de mientras

NoEstoyCansado sería una función que podría analizar el estado anímico del objeto Mujer y devolver
Cierto o Falso, de tal forma, que si es cierto se sigue leyendo y si no, se abandona la lectura.

Así que podríamos llegar a algo parecido a lo siguiente.

Metodo Leer(NombreLibro)

AbrirLibro(NombreLibro)

Mientras haya Hojas Y NoEstoyCansado
Mientras haya Lineas Y NoEstoyCansado
Mientras haya Palabras Y NoEstoyCansado
Leer Palabra
Si hay que leer en voz alta
Mujer.Hablar Palabra
Fin de condición
Fin de mientras
CambiarDeLinea
Fin de mientras
CambiardePagina
Fin de mientras

CerrarLibro
Fin de metodo
Una vez que disponemos de la clase ya escrita, el siguiente paso es poderla utilizar.

Eso se realiza ya dentro de nuestro programa.

El primer paso sería declarar un objeto del tipo de la Clase, recordemos que cuando declaramos una
variable, es porque va a almacenar un dato, ese dato tendrá un tipo, y la variable ha de concordar con
ese tipo de dato.
Con los objetos ocurre lo mismo, si declaramos un objeto, es porque deseamos que ese objeto realice
una serie de acciones, el objeto es capaz de realizar esas acciones porque la clase de la que se deriva,
posee esas capacidades.
Por lo tanto hay que crear el objeto de la clase que nosotros sabemos que posee esas características.

Un ejemplo, desde un programa se pueden utilizar las librerías de Office, y se puede declarar un objeto
que llamemos Hoja y que se crea con las mismas características y habilidades que puede tener Excel, o
se podría hacer también con Word, declaramos un objeto que llamamos Documento del tipo Word, y
podríamos escribir un documento de Word a partir del contenido de una base de datos, sin pulsar una
sola tecla, y lo más divertido, podríamos ver como el documento se escribe solo en pantalla.

Anécdotas a parte, un objeto es eso, un elemento en nuestro programa con las capacidades de realizar
las cosas de la clase de la cual deriva.

En el programa el primer paso sería asignar al objeto los valores de las propiedades que definirán al
objeto.

Mujer.Sexo = “M”
Mujer.Altura = 180
Mujer.Raza = “Blanca”
Mujer.ColorOjos = “Verde”
Mujer.ColorPelo = “Negro”
La siguiente fase ya sería su utilización.

Mujer.Leer

O

Mujer.Escribir

Por lo que el programa podría quedar


Inicio Programa
Declarar Mujer del tipo Humano

Mujer.Sexo = “M”
Mujer.Altura = 180
Mujer.Raza = “B”
Mujer.ColorOjos = “Verde”
Mujer.ColorPelo = “Negro”

Mujer.Leer
Fin de programa

Claro está que esto es la mínima expresión de lo que podría ser, pero solo pretende ser eso, un ejemplo.
7.11. Conclusiones.
Evidentemente la aplicación es más compleja, pero lo es, por los tecnicismos necesarios en la escritura
de los programas, no porque cambie lo expuesto anteriormente.
Si los conceptos están claros, la comprensión de la tarea de programar se facilita en gran medida.

Programar es dominar una técnica, la técnica no cambia, lo que cambian son los lenguajes.
Para llegar a la técnica y tener agilidad en el planteamiento y comprensión de los planteamientos de un
programa, es necesaria la experiencia, y la experiencia solo se logra con la práctica y el trabajo del día
a día.