Está en la página 1de 51

Unidad 1.

Programacin (I)
1.1. Objetivos del tema.
Solo pretender que centremos un poco lo que es la tarea de la programacin, y que sobre todo es un
aspecto de lgica, lgica aplastante.

1.2. Introduccin.
Intentar dar una definicin 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 aplicacin, un paquete informtico, hay que combinar varios
elementos.

Tcnica.
Diseo.
Imaginacin.

Tcnica, que se puede aprender, y que es lo que se quiere ensear en este curso de iniciacin.
Diseo, estilo, gusto, que es ms difcil ensearlo, pues es una cuestin personal, y se trata de ofrecer
nuestro producto en un formato agradable para quien lo va a utilizar.
Imaginacin, conocida la tcnica de programacin, est capacidad se puede adquirir con la experiencia,
es ms difcil, porque la capacidad de poder crear, imaginar la solucin, o forma en la cual se desea
plantear o mostrar lo que se quiere obtener, es una capacidad individual que cada uno tiene ms o
menos desarrollada.

Estos elementos nos permitirn 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
solucin ptima a nuestro problema.
En programacin hay una gran variedad de tipos de programas, y un amplio espectro de perifricos en
el mercado.
Su conocimiento nos puede facilitar la solucin de un problema.

Procedimientos, funciones, son las herramientas de las que nos valemos en la programacin para la
resolucin 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 informacin, por lo tanto hay que
manejar de forma adecuada dicha informacin.

1.3. Elementos de programacin.


Podramos denominar los siguientes apartados como elementos de la programacin.

Tener claro que queremos hacer.


Dominar los elementos a nuestro alcance.
Imaginar espacialmente la solucin que deseamos obtener.
Aplicar dicha solucin.

Tener claro que queremos hacer, en condiciones normales, la creacin de un programa parte de una
fase de diseo que da como resultado final como tiene que ser un programa y lo que hay que hacer es
transcribir a cdigo 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 aplicacin 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 solucin que deseamos obtener, la progresin en la tcnica de la
programacin, con el tiempo nos llevar a imaginar, por decirlo de alguna forma, la solucin 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 solucin, y solo quedar con todos los datos aplicarlos a la solucin que en principio
creemos ms 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 dnde has de llegar.
Tener claro en que orden quieres hacerlo.
Lo mas importante en programacin son los conceptos. Si se tienen claros, a continuacin, podrs
buscar las herramientas que necesitas en el lenguaje que usas y realizars correctamente tu labor.
Memorizar cosas no es importante, es ms importante saber donde esta un manual y buscar ah la
informacin, que necesitemos.
El cambiar a otro lenguaje de programacin, si los conceptos son slidos, no supondr ningn trauma,
pues cambiarn las instrucciones que usas, pero no el orden en que se tienen que realizar los pasos.
Dominar la herramienta de programacin de que dispones.
Realizar las pruebas adecuadas de funcionamiento correcto del programa.
La fase de depuracin y pruebas de un programa son importantsimas, 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. Caractersticas.
Se podran aadir 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 codificacin en distintos lenguajes.

3 Modificabilidad.
Ha de facilitar su mantenimiento, es decir, debe permitir que se modifique o actualice en funcin de las
necesidades del problema a resolver. Para ello es conveniente comentar adecuadamente el cdigo.
Un programa debe quedar escrito y documentado de tal forma que otra persona que venga detrs pueda
modificarlo o ampliarlo sin excesiva dificultad.

4 Eficiencia.
Se debe aprovechar al mximo los recursos del ordenador, minimizando el empleo de memoria y el
tiempo de ejecucin. Adems, 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
solucin, lo que conlleva la elaboracin de mdulos para resolver problemas concretos.

6 Estructuracin.
Lo programas deben tener nica y exclusivamente estructuras lineales, alternativas y cclicas,
exclusivamente, o dicho de otra forma, no es conveniente utilizar instrucciones de salto, aunque estn
disponibles en el lenguje de programacin.

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 depuracin 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 disea una rutina, funcin, procedimiento o mtodo nuevo, esta debe probarse fuera del
programa, para asegurarse de su correcto diseo y que devuelve correctamente los resultados,
asignndole en la prueba todos los valores posibles para verificar su correcto funcionamiento.
En un programa pequeo eso es muy fcil de probar y de controlar su ejecucin 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 cmo funciona y entenderlo, si no,
no nos aportar nada.

Unidad 2. Estructura y representacin de un


programa (I)
2.1. Objetivos del tema.
Veamos lo que es un programa, en cuanto a sus elementos mnimos, y estructura mnima, poco a poco
iremos ampliando e introduciendo el resto de elementos.

2.2. Introduccin.
Un ordenador tiene como misin la de realizar, o facilitar las tareas que de otra forma se realizaran en
una forma tediosa e incomoda.
Los ordenadores son capaces de ejecutar programas.
Los programas estn realizados por personas y los ejecutan los ordenadores.
Los programas utilizan informacin en su ejecucin, y como resultado de su ejecucin 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 especfico que a cada cosa le asigne su nombre caracterstico y
propio, y de esa forma facilite la comunicacin entre las personas.
De esta forma surge en cada profesin una serie de smbolos y palabras para facilitar el trabajo.

Existe varias formas de representar un programa de forma previa a su codificacin y a partir de los
datos que nos entregan como consecuencia de la fase previa de anlisis.

Seudocdigo
Ordinogramas.

Lo que sigue es un pequeo ejemplo de un programa muy sencillo, en formato de seudocdigo.

Inicio
Escribir Clculo del rea de un tringulo

Leer Introduzca la base del tringulo, Base


Leer Introduzca la altura del tringulo, Altura

Area = (Base * Altura) / 2


Escribir El rea del tringulo es , Area
Fin

Esta forma de escribir, o de describir dicho programa se denomina pseudocdigo.

Como se puede comprobar, es una forma sencilla de describir un programa en un formato muy
prximo al ser humano, pero tambin se puede desarrollar de forma grfica.

Para ello los smbolos utilizados bsicamente son:

Y a continuacin vemos el ejemplo de antes representado mediante organigrama.

Ambos sistemas son vlidos, cada cual puede elegir el que ms le guste.
Expliquemos lo visto.

Escribir Clculo del rea de un tringulo

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

Instruccin

Escribir

Literal

Clculo

El fin de sta instruccin es el de poder comunicarse con la persona que est utilizando el programa, y
poder emitir mensajes, de ayuda, de ttulo, etc

Leer Base del tringulo, Base

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

Instruccin

Leer

Literal

Introduzca

Dato

Base

El fin de sta instruccin 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
ms o menos similar, Begin End,
Todos los programas de una u otra forma tienen delimitado donde empieza y donde acaban, el sistema
cambia en funcin de la sintaxis de cada uno de los lenguajes de programacin.

Los programas no son solamente como lo visto en el ejemplo, son algo ms complejos e incorporan
estructuras que ya incorporaremos ms adelante.

Unidad 3. Los datos (I)


3.1. Objetivos del tema.
Hemos visto en el tema anterior como un programa es algo muy fcil, claro el ejemplo era muy fcil,
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 ms.

3.2. Introduccin.
Los datos en un programa es uno de los elementos vitales del mismo, pero en la vida cotidiana los
utilizamos a diario tambin, si nos fijamos en los datos que utilizamos, nos daremos cuenta que son
letras y nmeros, nmeros solo o solo letras.
Tambin, cuando a lo largo del da alguien nos da un dato pequeo, 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 tambin disponen de memoria, y tambin manejan informacin, datos, y en funcin de
lo voluminosos que sean los datos, los almacenarn 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.


Informticamente los datos son de dos tipos bsicos, nmeros y letras, o numricos y alfanumricos.
Con los datos numricos realizamos operaciones de clculo y con los alfanumricos representamos
informacin y la almacenamos para el uso en el programa.

El dato numrico utilizar en memoria un espacio adecuado para el valor que puede tomar.
Como la memoria en un ordenador es vital, conviene aprovecharla al mximo.
Un valor numrico puede tomar un valor desde cero, olvidemos los nmeros 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.

Cmo se crean los rangos?


Pensemos en que un ordenador solo sabe utilizar un uno y un cero, ausencia de voltaje y presencia de
voltaje elctrico, 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 dgitos utilizados se denomina bit, (Binary digit).

Por lo tanto para almacenar un nmero del cero al nueve, necesitaremos una combinacin de ceros y
unos que permitan representar cada uno de esos nmeros, y como son diez, se necesitan diez
combinaciones.

10

11

100

101

110

111

1000

1001

Esa sera la combinacin para representar los diez dgitos del cero al nueve.

Cada uno de esos dgitos los denominamos bits, por lo tanto el cinco necesita tres bits para
representarlo.
Si siguiramos esa secuencia podramos ir creando todos los nmeros 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 alfanumricos no tiene problema en su representacin, pues cada carcter ocupa un byte en
memoria, tantos caracteres tantos bytes, dentro de las limitaciones del lenguaje de programacin que se
este utilizando.
El motivo de utilizar un byte para cada carcter es que el nmero de caracteres mximo distintos en un
idioma latino, o anglosajon, tomando los nmeros como caracteres independientes, incluidos letras
acentuadas y caracteres de puntuacin 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 carcter para almacenarlo se utilizaran dos.

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

Pero los nmeros son datos compactos, no se pueden andar separando de forma arbitraria, ya que hay
que realizar operaciones de clculo con ellos, por lo tanto han de ocupar uno, dos o x bytes, pero
contiguos, para as poder operar matemticamente.
Por lo tanto los nmeros que podemos representar en un sistema depender del nmero de bytes que
pongamos juntos para representar ese nmero.

Por ejemplo si ponemos un solo byte a disposicin del sistema, solo podremos representar nmeros
entre el 0 y el 255. Un byte son 8 bits, las combinaciones son 2 8 que es igual a 256, que son los
nmeros que podemos representar.
Como eso es muy pobre, el rango ms pequeo que se utiliza es el de dos bytes, que permiten manejar
nmeros entre 32767 y + 32768, como nmeros enteros.

Aunque eso parece un rango muy pequeo, en programacin los nmeros 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 nmeros hay .... ? , claro que hay ms, pero esos ya se han dado en
clasificar en otro tipo de datos, los llamados nmeros reales.
Los nmeros reales se representan con otro sistema, no creeremos que se puede asignar espacio en
memoria para el nmero 12345678901234567890, o bien para el 0,12345678901234567890, eso no es
factible.
Por lo tanto en funcin del tamao del espacio usado en memoria se puede abarcar ms o menos
valores.

Esta tabla muestra los valores mximos y mnimos en funcin del nmero de bytes utilizados en lun
lenguaje de programacin..
Pensemos que hace aos un nmero entero utilizaba dos bytes, ahora en los lenguajes modernos utiliza
4, por lo que se aumenta el nmero de valores posibles vlidos.

Byte nmeros
Booleano
Integer rangos
Long Entero largo
Single precisin nmeros
(positivos)
Single precisin
nmeros(negativos)
Double precisin
nmeros(positivos)
Double precisin nmeros
(negativos)

Bytes
1
2
2
4
4

Mximo
255
True
32,767
2,147,483,647
3.402823E+38

Mnimo
0
False
-32,768
-2,147,483,648
1.401298E-45

-1.401298E-45

-3.402823E+38

1.797693134862315D+308 4.940656458412465D-324

-4.940656458412465D324

1.797693134862315D+308

Pero para representar las letras sucede lo mismo, tambin hay que buscar una combinacin de ceros y
unos.
Y como adems hay que representar otra serie de caracteres de control que se utilizan en otras tareas,
todos y cada uno de ellos necesita de una representacin en binario de su valor en el sistema o idioma
que nosotros utilizamos.

La suma de todos esos nmeros, 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
instruccin, o de forma aislada, vamos a ver que son las expresiones y su evaluacin.

4.2. Introduccin.
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 evalan y que producen un resultado que permite resolver o tomar una decisin.
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 expresin para que produzca un resultado.

4.3. Expresiones.
Las expresiones estn 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 ejecucin del programa, cuando
un dato est almacenado en una variable y su valor es esttico, 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
bsicamente eran de dos tipos numricos y alfanumricos.
Con las variables alfanumricas almacenamos datos de texto, para el uso que sea pertinente en el
programa.
Con las variables numricas almacenamos datos de valor numrico, con las que podemos realizar
operaciones de clculo.
Si las variables son numricas, en realidad, y recordando el cuadro de posibles valores del tema
anterior, las variables numricas en realidad podrn ser:

Byte

Integer
Long
Real

Hay que tener presente que el nombre de los tipos cambiar en funcin del lenguaje utilizado, por
ejemplo el Real tambin podemos encontrarlo como simple y doble precisin.

La expresin es la unin de una serie de variables unidas por operadores que expresan una condicin,
un clculo, una comparacin.
En estas expresiones los operadores se evalan en el siguiente orden,

Parntesis, de dentro a fuera.


Signo.
Potencia.
Productos y divisiones.
Suma y restas.
Concatenacin.
Relacionales.
Negacin.
Conjuncin.
Disyuncin.

Cuando hay expresiones que contienen operadores de ms de una categora, se resuelven antes las que
tienen operadores aritmticos, a continuacin las que tienen operadores de comparacin y por ltimo
las de operadores lgicos.

Los operadores de comparacin tienen todos la misma prioridad; es decir, se evalan de izquierda a
derecha, en el orden en que aparecen. Los operadores lgicos y aritmticos se evalan en el siguiente
orden de prioridad:

Tipos de operadores.

Aritmticos

Relacionales

Operadores lgicos

Exponenciacin

Igualdad

Negacin lgica

Negacin

Desigualdad, distinto

Conjuncin

Multiplicacin y divisin
Divisin de enteros

Menor que
Mayor que

Mdulo aritmtico (Mod)

Menor o igual que

Adicin y substraccin

Mayor o igual que

Disyuncin
Exclusin lgica
Equivalencia
Implicacin

En cada lenguaje de programacin cada operador tiene un smbolo asignado, en la mayora coinciden,
pero hay algunos que cambian de forma significativa, por lo que cuando se entre en cada lenguaje se
expondrn los mismos.

Cuando hay multiplicacin y divisin en la misma expresin, cada operacin se evala a medida que
aparece, de izquierda a derecha. Del mismo modo, cuando se presentan adiciones y substracciones en
una misma expresin, cada operacin se evala tal como aparecen de izquierda a derecha. Es posible
usar parntesis para saltar el orden de preferencia y forzar que algunas partes de una expresin se
evalen antes que otras. Las operaciones entre parntesis se realizan antes que las de fuera. Sin
embargo, dentro de los parntesis, la precedencia de los operadores se mantiene.

El operador de concatenacin de cadenas (&) o (+) no es realmente un operador aritmtico, pero en


orden de prioridad se encuentra a continuacin de todos los operadores aritmticos y antes que todos
los operadores de comparacin.

4.4. Como se distinguen los tipos de variable?

La diferenciacin entre un tipo y otro de variables, se realiza de dos formas bsicamente,

En la creacin a la hora de definirlas se les asigna un tipo, pero el nombre no lleva ningn carcter
identificativo,

En la creacin a la hora de definirlas se les asigna un tipo y adems el nombre lleva un carcter que la
identifica como tal tipo, si se utiliza el sistema de notacin hungara.

La notacin hungara, consiste en prefijos en minsculas que se aaden a los nombres de las variables, y
que indican su tipo.
El resto del nombre indica, lo ms claramente posible, la funcin que realiza la variable.

4.5. Operadores.
Indican que tipo de accin 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 operacin ha de estar representada por un
operador.
Los operadores se dividen por el tipo de operacin que realizan.

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

Aritmticas.

Sumas restas ...

Lgicas.

Condicin And Condicin, o Condicin Or Condicin.

Relacionales.

Mayor o Igual, >=, <=, =, >, <

Que se corresponde con los tipos de operadores descritos anteriormente.

Luego para cada tipo de operacin son necesarios unos smbolos que identifiquen la accin que se desea
realizar.
A continuacin exponemos los operadores en un formato que suele ser habitual, pero que despus habr que
volver a ver en el lenguaje correspondiente.

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

1 Aritmticos.
Para indicar clculos de tipo matemtico.

Suma

Resta

Multiplicacin

Divisin

/, Divisin entera, o DIV

Resto divisin

Mod

Raz cuadrada

Sqr

Exponenciacin

Ejemplos.

Variable = Variable + 1
Variable = Variable + OtraVariable

Suma y adems es un Contador.


Suma, y lo llamamos Acumulador.

Variable = Variable * 3 + OtraVariable

2 Lgicos.
And, Or, Not, Xor, Imp. Eqv
Los operadores lgicos unen dos o ms condiciones para formar una nica expresin.
2.1 And.
Se utiliza para efectuar una conjuncin lgica de dos expresiones.

Sintaxis

resultado = expresin1 And expresin2

La sintaxis del operador And consta de las siguientes partes:

Parte
resultado

Descripcin
Obligatorio;

cualquier variable numrica.

Comentarios
Si y slo si ambas expresiones se evalan como True, el resultado es True. Si cualquiera de las
expresiones es False, el resultado es False. La siguiente tabla ilustra cmo se determina el resultado:

La tabla de verdad es:


Expresin1
True
True
False
False

Expresin2
True
False
True
False

Resultado
True
False
False
False

El operador And ejecuta tambin una comparacin bit a bit para identificar los bits de dos expresiones
numricas que tienen la misma posicin y establece el bit correspondiente en el resultado segn la
siguiente tabla de decisin lgica:
La tabla de verdad es :
Bit
0
0
1
1

Bit
0
1
0
1

Resultado
0
0
0
1

2.2 Or.
Se utiliza para ejecutar una disyuncin lgica sobre dos expresiones.

Sintaxis

resultado = expresin1 Or expresin2

La sintaxis del operador Or consta de las siguientes partes:

Parte
resultado

Descripcin
Obligatorio;

cualquier variable numrica.

Comentarios
Si cualquiera de las expresiones, o ambas, es True, el resultado es True. La siguiente tabla indica cmo
se determina el resultado:
La tabla de verdad es:
Expresin1
True
True
False
False

Expresin2
True
False
True
False

Resultado
True
True
True
False

El operador Or ejecuta una comparacin bit a bit para identificar los bits de dos expresiones numricas
que tienen la misma posicin y establece el bit correspondiente en el resultado segn la siguiente tabla
de decisin lgica:
La tabla de verdad es:
Bit1
0
0

Bit2
0
1

Resultado
0
1

1
1

0
1

1
1

2.3 Not.
Se utiliza para ejecutar una negacin lgica sobre una expresin.

Sintaxis

resultado = Not expresin

La sintaxis del operador Not consta de las siguientes partes:

Parte
resultado
expresin

Descripcin
Obligatorio;

cualquier variable numrica.

Obligatorio; cualquier expresin.

Comentarios
La siguiente tabla muestra cmo se determina el resultado:
Expresin
Trae
False

Resultado
False
True

Adems, 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 decisin lgica:
La tabla de verdad es:
Bit1
0
1

Resultado
1
0

2.4 Xor.
Se utiliza para realizar una exclusin lgica entre dos expresiones.

Sintaxis

[resultado =] expresin1 Xor expresin2

La sintaxis del operador Xor consta de las siguientes partes:

Parte
resultado

Descripcin
Obligatorio;

cualquier variable numrica.

Comentarios
Si una y slo una de las expresiones es True, el resultado es True. Sin embargo, si cualquiera de las
expresiones es Null, el resultado es tambin Null. Cuando ninguna de las expresiones es Null, el
resultado se determina de acuerdo con la siguiente tabla:
La tabla de verdad es:
Expresin1
True
True
False
False

Expresin2
True
False
True
False

Resultado
False
True
True
False

El operador Xor funciona como operador lgico y bit a bit. Ejecuta una comparacin bit a bit para
identificar los bits de dos expresiones utilizando lgica de O exclusivo para obtener el resultado, segn
la siguiente tabla de decisin lgica:
La tabla de verdad es:
Bit1
0

Bit2
0

Resultado
0

0
1
1

1
0
1

1
1
0

2.5 Imp.
Se utiliza para efectuar una implicacin lgica de dos expresiones.

Sintaxis

resultado = expresin1 Imp expresin2

La sintaxis del operador Imp consta de las siguientes partes:

Parte
resultado

Descripcin
Obligatorio;

cualquier variable numrica.

Comentarios
La siguiente tabla ilustra cmo se determina el resultado:
La tabla de verdad es:
Expresin1
True
True
False
False

Expresin2
True
False
True
False

Resultado
True
False
True
True

El operador Imp ejecuta una comparacin bit a bit para identificar los bits de dos expresiones
numricas que tienen la misma posicin y establece el bit correspondiente en el resultado segn la
siguiente tabla de decisin lgica:
La tabla de verdad es:
Bit1
0

Bit2
0

Resultado
1

0
1
1

1
0
1

1
0
1

2.6 Eqv.
Se utiliza para efectuar una equivalencia lgica de dos expresiones.

Sintaxis

resultado = expresin1 Eqv expresin2

La sintaxis del operador Eqv consta de las siguientes partes:

Parte
resultado

Descripcin
Obligatorio;

cualquier variable numrica.

Comentarios
Si cualquiera de las expresiones es de tipo Null, el resultado es tambin Null. Si ninguna de las
expresiones es Null, el resultado se determina segn la siguiente tabla:
La tabla de verdad es:
Expresin1
True
True
False
False

Expresin2
True
False
True
False

Resultado
True
False
False
True

El operador Eqv ejecuta una comparacin bit a bit para identificar los bits de dos expresiones
numricas que tienen la misma posicin y establece el bit correspondiente en el resultado segn la
siguiente tabla de decisin lgica:
La tabla de verdad es:
Bit1

Bit2

Resultado

0
0
1
1

0
1
0
1

1
0
0
1

3 Cadenas, strings.
El smbolo utilizado habitualmente es el + y el &, que no representa una suma, sino la concatenacin o unin
de dos variables alfanumricas, creando una nueva con el contenido de ambas.

4 Relacionales
>, >=, <>, <, <=, =.
Son los smbolos que se usan en una comparacin 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. Introduccin.
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 diseado.
Las instrucciones de un lenguaje de programacin 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 ms o menos complejo.
El mejor ejemplo podramos verlo en un edificio.
Un edificio se construye a base de ir aadiendo 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 programacin, esa estructura se basa en los procedimientos y funciones que escribimos en el
programa, y esos procedimientos, funciones y mtodos, los llenamos de instrucciones.

5.3. Instrucciones.
La secuencia de instrucciones escritas en un orden lgico, que indican las operaciones a realizar para
resolver un problema, es lo que denominamos programa.
Las instrucciones sin las expresiones en la mayora de los casos no tienen razn de ser.

1 Smbolos.
En un tema anterior pusimos los smbolos ms utilizados en los organigramas.
Cada uno de esos smbolos se traduce en una instruccin en un programa.

Inicio o final de programa, procedimiento, funcin o mtodo.

Condicin dentro de un programa, se convierte en un

If condicin then accin else accin.


Si se cumple la condicin entonces hacemos y sino se cumple hacemos
esto otro.

Este rectngulo normalmente albergar operaciones de clculo,


expresiones.

A=A+B

Entrada de datos por teclado, es la forma de recabar informacin del


usuario.

Visualizar datos en el monitor, de esa forma podemos ofrecer


informacin 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 pgina, la flecha apunta a un smbolo que est en la


misma pgina.

Conector fuera de pgina, la flecha apunta a un smbolo 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,

Ejecucin lineal o secuencial.


Ejecucin alternativa, tomar una decisin.
Ejecucin repetitiva.

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

Cada smbolo del organigrama, o cada lnea del seudo cdigo es una instruccin.
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
smbolos del organigrama, veremos que no hay ninguna accin de repeticin, no hay ninguna flecha
que vuelva hacia arriba a un punto por el que ya hemos pasado.

Tampoco hay ningn punto en el que se divida el programa entre dos posibilidades despus de una
pregunta.

4 Alternativas.

En la imagen de la izquierda
podemos observar como hay
una decisin 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 accin cuando
una condicin no se cumple, a lo mejor solo nos piden que visualicemos los nmeros primos, entonces
si un nmero no es primo pasaremos al siguiente y ya est, no hay por que hacer nada.

En un organigrama, cuando se usa un smbolo de


decisin, es decir un Si el nmero es primo, la
salida de la derecha siempre es la que indicar la
accin que se ejecutar cuando se cumpla la
condicin, 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 condicin en la que preguntamos por Resto
mayor que cero.

Y se podran seguir anidando condiciones.

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

Mientras se cumple una condicin.


Repite hasta que se cumple una condicin

Una estructura repetitiva esta formada por una serie de


instrucciones que estn escritas en el interior de otra
instruccin que permite que esas instrucciones se
ejecuten un nmero determinado de veces, mientras se
cumple una condicin, o hasta que se cumpla una
condicin.

Si observamos las imgenes veremos que en una la


condicin 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 condicin se cumple al llegar al bucle.

En el caso del hasta, Repeat, las instrucciones del interior del bucle se ejecutarn siempre al menos una
vez, ya que la condicin 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 continuacin, podemos observar como en los dos casos se realiza la
misma accin, 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 nmero uno, la accin de
incremento del contador, se realiza despus de la
accin de visualizar la variable X, mientras que
en la de la derecha, el nmero dos, es al revs.

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 condicin de salida, ese nmero todava no ha sido
visualizado.
En el segundo caso, cuando X vale veinte en la condicin de salida, ese nmero ya ha sido visualizado,
esos son los matices.

La programacin est llena de matices y tonteras 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.
Traduccin, en un bucle lo importante es siempre:

Con que valores o condiciones empiezas,


En que momento realizas la progresin,
Cuando realizas la accin que te interesa en el bucle
En que momento abandonas el bucle, condicin 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 ms utilizado acaba siendo el mientras, pues casi siempre nos interesa
tener controlado que se cumpla determinada condicin antes de entrar en el bucle.

Otro matiz, si en un bucle Repite la condicin es hasta que sea de color verde en un bucle mientras la
condicin se invierte y ser mientras sea de color verde.

Aunque nadie se lo creer, con lo que hemos visto, a nivel de creacin de la estructura de un programa,
no hay nada ms 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 programacin no es solo lo que se ha visto, todava quedan temas por ver,
muchos temas, pero en realidad, para crear un programa, no hace falta nada ms 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. Introduccin.
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.
Obtencin de resultados.

La programacin ha avanzado mucho desde sus inicios, actualmente la programacin 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 programacin, de sus
requerimientos.
Como mnimo se tendr que declarar las variables que intervengan en el programa, de tal forma que
queden disponibles para su utilizacin en el programa.
Despus tenemos los procedimientos y las funciones, que en funcin del lenguaje o de los criterios que
deseemos aplicar, podramos decir que pertenecen a ste apartado, ya que tanto un procedimiento,
funcin o clase, antes de su utilizacin deben existir en el programa, por lo tanto segn deseemos
aplicar los criterios podramos incluirlos aqu o no.
Hay que tener presente que las sintaxis y las estructuras de cada lenguaje de programacin 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 despus deseemos
utilizar.

6.4. Clases.
El estilo de programacin actual est basado en las clases.
Las clases no es nada ms que una forma distinta de ver la forma de escribir un programa, pero le
aade una serie de ventajas que ante no estaban disponibles de una forma tan cmoda como se
consigue con las clases.
Nos permiten escribir el cdigo de forma que queda protegido, encapsulado y no es posible su
modificacin.
Adems 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:

Cuntos metros cuadrados quiere que tenga la casa?


Cuntas habitaciones quiere?
Quiere terraza?
Cuntos baos desea?, etc..

Y despus de estas preguntan viramos los planos en funcin de esos parmetros.


En funcin de la respuesta la casa sera de una forma o de otra, sin embargo la clase Casa siempre
sera la misma, cambiara el resultado en funcin de los parmetros que le hubiramos facilitado.

Pero imagnese que en la clase casa, se nos olvido escribir la pregunta Desea garaje, la casa se
quedara sin preguntar si quiere o no garaje, pero con escribir un mtodo que sea capaz de aadir un
garaje, la Clase quedara 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 mtodos para cada una de las caractersticas de la casa.


Los mtodos son la parte ejecutiva de la clase, y se escriben mediante le uso de
procedimientos y funciones en funcin de su diseo.
La parte de captura de informacin, o la asignacin 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 debera estar escrito un sin fin de veces.
Por lo tanto en lugar de repetir el cdigo a lo largo del programa lo que se hace es
escribirlo en el interior de un procedimiento y llamar a la ejecucin del mismo
cada vez que haga falta.
Eso facilita la escritura del programa, la modificacin del mismo y su claridad.
Podemos ver en el ejemplo lateral como podra ser el organigrama de un
programa cualquiera, sencillo, pero vlido. Como podemos ver el organigrama
aunque claro es largo y pesado de leer, imagnense eso con un programa de
verdad, no sera prctico, de escribir ni de seguir.
Si nos fijamos en las acciones de se programa, podemos observar que hay cuatro
pasos.

Carga.
Visualizacin.
Proceso.
Visualizacin.

Como podemos ver la visualizacin se repite.

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

Y el programa principal quedara 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.

Adems es mucho ms sencillo seguir el programa as, que con todo el cdigo 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 ejecucin del mismo.


Los procedimientos pueden o no devolver datos, tras la ejecucin del mismo.

Un procedimiento participa de la resolucin de la estructura de un programa, forma parte de la misma,


y con una correcta utilizacin de los mismos conseguiremos un programa ordenado y fcil de
modificar, a la vez que fcil de entender por terceros y de modificar en un futuro.

El uso de procedimientos debe ir acompaado 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 funcin es una parte de nuestro cdigo que formar parte de una
expresin especializada en realizar algn tipo de operacin, clculo,
comparacin, dibujo, ...
Por lo tanto una funcin 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
condicin y si es cierto realizar una accin y sino otra, lo correcto es que se cree una funcin y se
utilice como parte de la instruccin condicional.

Cuando se ejecuta la funcin, sta devolver un


valor, en el ejemplo supongamos que devuelve
cierto o falso en funcin de los valores.

En el programa nosotros podremos utilizar la


funcin dentro de nuestras expresiones, con lo que
se facilita la escritura del mismo y se simplifica.

En el ejemplo podemos ver como la funcin esta


dentro de la instruccin condicional, y el resultado
de su ejecucin har que se ejecute una u otra de las ramas del programa.

En el ejemplo con seudocdigo podemos observar como la funcin se integra como una expresin en el
interior de la condicin, y su resultado ser el que provoque la accin en el entonces o en el si no.

Si Funcin(A,B) entonces
Accin

Si no
Accin
Fin de condicin.

En ste ejemplo vemos un ejemplo ms, en ste caso la funcin recibira un valor numrico, y
devolvera cierto si el nmero es primo, y falso si no lo es.
En caso de cumplirse se ejecutara la accin de escribir que el nmero s es primo, en caso contrario se
escribira en pantalla, que el nmero no es primo.

Si NumeroPrimo(Numero) entonces
Escribir El nmero es primo ,Numero
Si no
Escribir Este nmero no es primo, Numero
Fin de condicin.

Por lo tanto nosotros podemos crear las funciones que necesitamos, y estas se integran como parte de la
instruccin 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 fcil poderlo leer.

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

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 nombrndolos de dentro hacia fuera, es decir

Dato
Variable
Expresin
Instruccin
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. Introduccin.

Si nuestro estilo de programacin no contempla, comparte, o lo que cada uno desee, el uso de clases y
objetos, el escalafn 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 filosofas distintas, pero no se puede negar
que el uso de clases es positivo dentro de la programacin.
En la actualidad el tipo de programacin que se realiza es lo que denominamos, P. O. O., programacin
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.

Mtodos

que son procedimientos y funciones, en cuyo interior tenemos las


estructuras bsicas de programacin vistos en el tema cinco y en el
tema anterior.

Eventos

que se construyen tambin mediante cdigo.

7.3. Clase.
En programacin, 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 ftbol, una pelcula, una
sensacin, y al que dotamos de una serie de caractersticas, alto, bajo, grande pequeo 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 informtica 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
fisonoma, caracterstica, a los elementos que describen esa fisonoma, lo llamamos propiedades.
Las tareas que queramos que sea capaz de realizar las denominamos mtodos.
Y a la capacidad de reaccionar a los estmulos 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
podramos crear una serie de caractersticas, propiedades, como

Sexo
Altura
Color del pelo
Color de los ojos

Por lo tanto las propiedades describen el objeto.


Podemos crear caractersticas internas, que no se podrn utilizar fuera del objeto, y otras que sern
externas y que s que se vern en el objeto y podrn ser modificadas lo que permitir crear objetos de
distintos tipos.
Estas caractersticas externas son las que de verdad denominamos propiedades, pues es posible que
sean modificadas por quien utiliza la clase, quien de verdad genera despus el objeto.
Las caractersticas internas, por llamarlas as, son en realidad variables de la clase, las propiedades
tambin lo son, pero se ven por parte del usuario.

7.5. Mtodo.
Y como queremos que sea capaz de hacer cosas le ensearemos mtodos.

Caminar.
Hablar
Leer
Escribir
Correr

De sta forma, escribiendo los mtodos, es decir el lugar donde se escribe el cdigo 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 sera
la forma de poder reaccionar a lo que hay a su alrededor.

Vista
Odo
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 inters.
Si no necesitamos saber si llueve o no, habr evento EstaLloviendo, etc..
Y podramos seguir ensendole cosas, podramos seguir escribiendo mtodos 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 ms 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 caractersticas estndar, o un
bebe, si queremos llamarlo as, al que hemos de ir enseando a hacer cosas.

El bebe solo lo definiramos por ejemplo con

Sexo
Altura
Color pelo
Color ojos
Color de la piel

Le ensearemos solo a

Hablar
Leer

Escribir
Andar
Correr

Y le dotaremos de la posibilidad de reaccionar ante

Calor
Fro
Seco
Mojado

Y despus crearamos una nueva clase que heredara esas capacidades y le aadiramos otras nuevas.

De esa forma podramos entrenarlo para que fuera un gran cocinero.


Le potenciaramos la posibilidad de percibir los olores y los sabores.
Mejoraramos su habilidad en el manejo de las manos.

Podramos crear una clase que fuera un matemtico, al cual le potenciaramos sus capacidades mentales
para el clculo y la lgica.

7.9. Ocultacin.
Pero en el manejo de estas posibilidades nunca permitiramos que el diseador de la clase cocinero o
matemtico pudiera cambiar el color del pelo, o de los ojos.
Esta caracterstica que permite proteger las caractersticas del bebe se denomina ocultacin.

7.10. Aplicacin.

Con lo que hemos comentado, si es capaz de asumir, madurar, y comprender lo que ha ledo, el pasar
de la fase de abstraccin a la real le supondr muy poco esfuerzo, ya que los conceptos base de la P. O.
O., son los comentados, solo queda la aplicacin.

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 mtodos, contendr el cdigo adecuado para que se realice la accin que tiene como
misin.

Por ejemplo el mtodo Leer, podra ser

Metodo Leer(NombreLibro)

Fin de metodo

Y recibira como parmetro el nombre de un libro, el cual habra que leer.


En el interior del mtodo podramos 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 podramos aadir un parmetro que fuera leer en voz alta, o podramos aadir una condicin que
fuera leer si no estas cansado.

Por lo tanto podra quedar

Mientras haya Palabras


Leer Palabra
Si hay que leer en voz alta
Mujer.Hablar Palabra
Fin de condicin
Fin de mientras

O podra ser tambin

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 condicin
Fin de mientras

NoEstoyCansado sera una funcin que podra analizar el estado anmico 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 podramos 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 condicin
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 sera 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 caractersticas.

Un ejemplo, desde un programa se pueden utilizar las libreras de Office, y se puede declarar un objeto
que llamemos Hoja y que se crea con las mismas caractersticas y habilidades que puede tener Excel, o
se podra hacer tambin con Word, declaramos un objeto que llamamos Documento del tipo Word, y
podramos escribir un documento de Word a partir del contenido de una base de datos, sin pulsar una
sola tecla, y lo ms divertido, podramos ver como el documento se escribe solo en pantalla.

Ancdotas 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 sera asignar al objeto los valores de las propiedades que definirn al
objeto.

Mujer.Sexo = M
Mujer.Altura = 180
Mujer.Raza = Blanca
Mujer.ColorOjos = Verde
Mujer.ColorPelo = Negro
La siguiente fase ya sera su utilizacin.

Mujer.Leer

Mujer.Escribir

Por lo que el programa podra 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 mnima expresin de lo que podra ser, pero solo pretende ser eso, un ejemplo.

7.11. Conclusiones.
Evidentemente la aplicacin es ms compleja, pero lo es, por los tecnicismos necesarios en la escritura
de los programas, no porque cambie lo expuesto anteriormente.
Si los conceptos estn claros, la comprensin de la tarea de programar se facilita en gran medida.

Programar es dominar una tcnica, la tcnica no cambia, lo que cambian son los lenguajes.
Para llegar a la tcnica y tener agilidad en el planteamiento y comprensin de los planteamientos de un
programa, es necesaria la experiencia, y la experiencia solo se logra con la prctica y el trabajo del da
a da.

También podría gustarte