Documente Academic
Documente Profesional
Documente Cultură
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, 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 optima 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.
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.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.
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza. Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier medio. octubre-2010.
Buscar
Bsqueda personalizada
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza.
Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier medio. octubre-2010.
Buscar
Bsqueda personalizada
Levantarse se puede dividir en Suena el despertador. Levantar la ropa de la cama Abrir la ventana.
Pero Levantar la ropa de la cama se puede dividir en Sujeta la ropa Desplzala hacia atrs Suelta la ropa
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza. Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier medio. octubre-2010.
Buscar
Bsqueda personalizada
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.
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.
Leer Introduzca la base del tringulo, Base Leer Introduzca la altura del tringulo, Altura
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.
Ambos sistemas son vlidos, cada cual puede elegir el que ms le guste.
Pg. 2.1
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza. Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier medio. octubre-2010.
Buscar
Bsqueda personalizada
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 Literal
Escribir 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
Esto es una instruccin que es capaz de visualizar un texto y esperar a que el usuario escriba un dato.
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.
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza. Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier medio. octubre-2010.
Buscar
Bsqueda personalizada
Introducir dos nmeros y calcular la suma de los mismos, visualizando el resultado final. Repetir para la resta y la multiplicacin.
Hallar el rea y la longitud de una circunferencia, solicitando el radio de la misma R . Area = PI * R al cuadrado, Longitud = 2 * PI * R .
3 4
Hallar el rea de un tringulo. Area = Base por Altura / 2. Introducir un nmero A y calcular B. comprobar el resultado. B= A * (A+5) / A + (A*5),
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza. Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier medio. octubre-2010.
Buscar
Bsqueda personalizada
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza. Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier medio. octubre-2010.
Buscar
Bsqueda personalizada
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..
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.
0 1 2 3 4 5 6 7 8 9
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.
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 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.
8
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.
Pg. 3.1
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza. Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier medio. octubre-2010.
Buscar
Bsqueda personalizada
Mximo
Mnimo
255
Booleano Integer rangos Long largo Single precisin nmeros (positivos) Single precisi n nmeros(negativ os) Double precisin nmeros(positiv os) Double precisin nmeros (negativos) Entero
2 2 4
3.402823E+38
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.
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza. Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier medio. octubre-2010.
Buscar
Bsqueda personalizada
Byte s Byte nmeros Booleano Integer rangos Long largo Single precisin nmeros (positivos) Single precisi n nmeros(negativ os) Double 8 4 4 Entero 1 2 2 4
Mximo
Mnimo
3.402823E+38
1.401298E-45
-1.401298E-45
-3.402823E+38
1.797693134862315D
4.940656458412465D
+308
-324
4.940656458412465D324
1.797693134862315D +308
Deseo contar los espectadores de un partido de ftbol, qu tipo de dato utilizaras en el programa.
Deseo saber cuntos espectadores entran a ver una obra de teatro, qu tipo de dato utilizaras en el programa.
Deseo saber cuntas botellas se llenan al final del da en una fbrica, que tiene una capacidad mxima de fabricacin de 1000 botellas por minuto.
Si deseo representar en un programa un texto con el cual informar de un error de ejecucin al usuario, que tipo de dato utilizara.
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza. Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier medio. octubre-2010.
Buscar
Bsqueda personalizada
Los nmeros se pueden representar tambin como datos alfanumricos, al fin y al cabo la A es un carcter igual que el 1, pero entonces no podemos operar matemticamente con l.
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza. Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier medio. octubre-2010.
Buscar
Bsqueda personalizada
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:
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 lgicos Exponenciacin Negacin Multiplicacin y divisin Divisin de enteros Mdulo aritmtico (Mod) Adicin y substraccin
Relacionales
Operadores
Igualdad Desigualdad, distinto Menor que Mayor que Menor o igual que Mayor o igual que
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.
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.
Pg. 4.1
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza. Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier medio. octubre-2010.
Buscar
Bsqueda personalizada
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 Resto divisin Raz cuadrada Exponenciacin Ejemplos. Variable = Variable + 1 un Contador. Variable = Variable + OtraVariable llamamos Acumulador. Suma, y lo Suma y adems es + * /, Divisin entera, o DIV Mod Sqr ^
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.
Parte resultado
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:
2.2 Or. Se utiliza para ejecutar una disyuncin lgica sobre dos expresiones.
Parte resultado
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 1 1 Bit2 0 1 0 1
Pg. 4.2
Resultado 0 1 1 1
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza. Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier medio. octubre-2010.
Buscar
Bsqueda personalizada
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
Parte resultado
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 0 1 1 Bit2 0 1 0 1
Pg. 4.3
Resultado 0 1 1 0
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza. Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier medio. octubre-2010.
Buscar
Bsqueda personalizada
Parte resultado
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 0 1 1 2.6 Eqv. Se utiliza para efectuar una equivalencia lgica de dos expresiones. Bit2 0 1 0 1 Resultado 1 1 0 1
Parte resultado
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 0 0 1 1 Bit2 0 1 0 1 Resultado 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.
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza. Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier medio. octubre-2010.
Buscar
Bsqueda personalizada
El ejemplo completo.
2
Se escribe Se interpreta
10 / 2 * 5 5*5 Resultado 25
Se escribe Se interpreta
5 - 2 > 4 AND NOT 0.5 = 1 / 2 5 - 2 > 4 AND NOT 0.5 = 1 / 2 3 > 4 AND NOT 0.5 = 1 / 2 False AND NOT 0.5 = 1 / 2 False AND NOT True False AND False
Resultado
False
V alor V ariable
10
3,141592
2.7 18281
Pi
1 2 3 4 5 6 7
2 * X + 0.5 * Y - 1/5 * Z Pi * Y 2 > Y OR 2 * Pi * X < = Z E (X - 1) / ( X * Z ) / ( X / Z) Don + Juan= Don Juan Or A= a X - Y + Z + Pi - E + 2.576689 (-3) * X+2*Y-1 / 2*z 2 * Y 2 - 6 * Y + 12
8 9
(2 * Y) 2 - 6 * Y + 12 (Y(2*X) - 6 * (Z / 10 ) ) / 2
10 X>3 AND Y = 4 or X + Y <= Z 11 X>3 AND (Y= 4 or X + Y >= Z) 12 NOT METODO+LOGIA = LOGIA+METODO
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza. Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier medio. octubre-2010.
Buscar
Bsqueda personalizada
Se escribe Pi * X^2 > Y OR 2 * Pi * x < = Z Se evala Pi * X^2 > Y OR 2 * Pi * x < = Z Pi * 1 > Y OR 2 * Pi * x < = Z 3,141592 > Y OR 2 * Pi * x < = Z 3,141592 > Y OR 6.283184 < = Z False OR 6.283184 < = Z False OR True
Resultado True
Se escribe E Se evala E E E E
(X-1)
/ ( X * Z ) / ( X / Z) / ( X * Z ) / ( X / Z)
(X-1)
/ ( X * Z ) / ( X / Z) / 10 / ( X / Z) / 10 / 0,1
Se evala Don + Juan= Don Juan Or A= a Don Juan= Don Juan Or A= a True Or A= a True Or False
Resultado True
Se escribe X - Y + Z + Pi - E + 2.576689 Se evala X - Y + Z + Pi - E + 2.576689 -3 + Z + Pi - E + 2.576689 +7 + Pi - E + 2.576689 10,141592 - E + 2.576689 7,423311 + 2.576689 Resultado 10
Se escribe 2 * Y ^ 2 - 6 * Y + 12 Se evala 2 * Y ^ 2 - 6 * Y + 12 2 * 16 - 6 * Y + 12 32 - 6 * Y + 12
32 - 24 + 12 8 + 12 Resultado 20
- 6 * (Z / 10 ) ) / 2 - 6 * (Z / 10 ) ) / 2
(2*X)
Se escribe X > 3 AND Y = 4 OR X + Y < = Z Se evala X > 3 AND Y = 4 OR X + Y < = Z X > 3 AND Y = 4 OR 5 < = Z False AND Y = 4 OR 5 < = Z False AND True OR 5 < = Z False AND True OR True False OR True
Resultado True
Se escribe X > 3 AND (Y= 4 OR X + Y > = Z) Se evala X > 3 AND (Y= 4 OR X + Y > = Z) X > 3 AND (Y= 4 OR 5 > = Z) X > 3 AND (True OR 5 > = Z) X > 3 AND (True OR False) X > 3 AND True False AND True Resultado False
Se escribe NOT METODO+LOGIA = LOGIA+METODO Se evala NOT METODO+LOGIA = LOGIA+METODO NOT METODOLOGIA = LOGIA+METODO NOT METODOLOGIA = LOGIAMETODO NOT False
Resultado True
El smbolo +, se usa como concatenacin.
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza. Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier medio. octubre-2010.
Buscar
Bsqueda personalizada
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.
If condicin then accin else accin. Si se cumple la condicin entonces hacemos y sino se cumple hacemos esto otro.
A=A+B
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.
Ejecucin lineal o secuencial. Ejecucin decisin. Ejecucin repetitiva. alternativa, tomar una
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.
Pg. 5.1
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza. Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier medio. octubre-2010.
Buscar
Bsqueda personalizada
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.
En observar
el
ejemplo dentro
podemos de la
como
pregunta de Tiempo mayor que 180, hay a su vez otra condicin en la que preguntamos por Resto mayor que cero.
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 instrucciones que se permite ejecuten que un esas 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.
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
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.
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza. Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier medio. octubre-2010.
Buscar
Bsqueda personalizada
8. - Introducir dos nmeros A y B. Si A es mayor que B calcular y visualizar A + B y A / B. Si A no es mayor que B calcular y visualizar A * B y B - A. 9. - Introducir dos nmeros A y B. Si A es menor que B calcular y visualizar A * B y B - A. Si A no es menor que B calcular y visualizar A + B y A / B. 10. - Introducir dos nmeros A y B y visualizarlos en orden creciente. 11. - Introducir dos nmeros A y B y visualizarlos en orden decreciente. 12. - Introducir dos nmeros A y B y visualizar el resultado de: Si A es mayor que B calcular A / B. Si A es menor que B calcular A * B. Si A es igual que B calcular A + B. 13. - Introducir dos nmeros A y B. Si A es distinto que B calcular y visualizar A + B y A / B. Si A es igual que B calcular y visualizar A * B y B - A. 14. - Visualizar los nmeros entre 10 y 20 15. - Visualizar los nmeros entre 20 y 10. 16. - Visualizar los nmeros entre 10 y 20 y sumarlos. 17. - Visualizar los nmeros entre 20 y 10 que sean pares.
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza.
Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier medio. octubre-2010.
Buscar
Bsqueda personalizada
2 la condicin ser A< B 3 , 4 y 5, la condicin ser A<> B o A = B, en funcin de si deseamos salir por afirmacin o por negacin.
Inicio Ejercicio Uno. Declarar A y B como enteras. Escribir Introducir dos valores e indicar cual es el mayor Leer Introduzca A, A Leer introduzca B, B Si A > B Entonces Escribir El mayor es A Si no Escribir El mayor es B Fin de condicin.
Final
calcular
visualizar A *ByBA.
Podemos comprobar que la estructura es la misma pero cambia el contenido de las acciones. Inicio Ejercicio Ocho. Declarar A y B como enteras. Escribir Introducir dos valores numricos Leer Introduzca A, A Leer introduzca B, B Si A > B Entonces Escribir A + B Escribir A / B Si no Escribir A * B Escribir B - A Fin de condicin. Final
Introducir nmeros A y B.
dos
Si
visualizar A *B Si y B - A. A no es
visualizar A + B y A / B.
Se repite la estructura cambiando la condicin y el contenido de las acciones. Introducir dos nmeros A y B y visualizarlos en orden creciente.
cambiando
Introducir dos nmeros A y B y visualizar el resultado de: Si B Si A es mayor A / B. menor que que
calcular A es
En ste ejercicio aparece un nuevo smbolo, A comparado con B, por eso la condicin puede tener tres salidas, pero han de estar documentadas, como se puede observar en el mismo. Inicio Ejercicio Doce. Declarar Resultado, A y B como enteras. Escribir Introducir dos valores numricos Leer Introduzca A, A Leer introduzca B, B Si A > B Entonces Resultado = A / B Si no Si A < B Entonces Resultado = A * B Si no Resultado = A + B Fin de condicin Fin de condicin. Escribir El resultado es , Resultado Final
Introducir dos nmeros A y B. Si A es distinto que B calcular y visualizar A + B y A / B. Si A es igual que B calcular y visualizar A * B y B - A.
Los siguientes ejercicios, son bucles, y las soluciones estn hechas en la mayora de los casos con bucles del tipo Repeat. Sera conveniente que los hicieran tambin con el bucle While.
Inicio Ejercicio Catorce. Declarar X como Entera. Escribir Visualizamos los nmeros entre diez y veinte X = 10 Inicio de repite Escribir X X = X + 1 Hasta que X > 20 Final
Inicio Ejercicio Catorce. Declarar X como Entera. Escribir Visualizamos los nmeros entre diez y veinte X = 9 Inicio de repite X = X + 1 Escribir X Hasta que X = 20 Final
Inicio Ejercicio Dieciseis. Declarar X y Suma como Entera. Escribir Visualizamos los nmeros entre diez y veinte X = 10
Inicio de repite Escribir X Suma = Suma + X X = X + 1 Hasta que X > 20 Escribir El Valor de la suma es , Suma Final Visualizar los nmeros entre 20 y 10 que sean pares.
La condicin X Mod 2 significa si el resto de la divisin de X por 2 es cero, o sea que es par.
Inicio Ejercicio Diecisiete. Declarar X como Entera. Escribir Visualizamos los nmeros entre diez y veinte X = 21 Inicio de repite X = X 1 Si X Mod 2 = 0 Entonces
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza. Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier medio. octubre-2010.
Buscar
Bsqueda personalizada
6.2. Introduccin.
Un programa esta dividido en varios bloques. Declaraciones. Procedimientos y funciones de usuario. Programa principal.
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:
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.
Sin embargo podemos dividir ese programa en bloques, cada bloque es un procedimiento.
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.
Pg. 6.1
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza. Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier medio. octubre-2010.
Buscar
Bsqueda personalizada
Cuando
se
ejecuta
la
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.
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,
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.
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza. Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier medio. octubre-2010.
Buscar
Bsqueda personalizada
Si A no es mayor que B calcular y visualizar A * B y B - A. 4. - Introducir dos nmeros A y B y visualizarlos en orden creciente. 5. - Introducir dos nmeros A y B y visualizar el resultado de: Si A es mayor que B calcular A / B. Si A es menor que B calcular A * B. Si A es igual que B calcular A + B. 6. - Introducir dos nmeros A y B. Si A es distinto que B calcular y visualizar A + B y A / B. Si A es igual que B calcular y visualizar A * B y B - A. 7. - Visualizar los nmeros entre 10 y 20 8. - Visualizar los nmeros entre 10 y 20 y sumarlos.
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza. Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier medio. octubre-2010.
Buscar
Bsqueda personalizada
Inicio Funcion Mayor(A,B) Declarar Result como Alfanumrico Si C > D Entonces Result = Si no Result = El mayor es B Fin de condicin. Mayor = Result Final de Funcion El mayor es A
Inicio Ejercicio Uno. Declarar A y B como enteras. Escribir Introducir dos valores e indicar cual es el mayor Leer Introduzca A, A Leer introduzca B, B
Final
El ejercicio dos es igual, cambiando el valor de la pregunta en la funcin por menor, A <B
Introducir dos nmeros A y B. Si A es mayor que B calcular y visualizar A + B y A / B. Si A no es mayor que B calcular y visualizar A * B y B - A.
Esta es una solucin, pero tambin se puede hacer esto otro, todo es cuestin de gustos. Observar que la entrada de datos se realiza en el procedimiento.
El ejercicio no se debe resolver con una funcin pues se devuelven dos datos, y su solucin debe pasar por un procedimiento. Tambin observar que el procedimiento se llama como si fuera una instruccin ms del programa, no forma parte de una instruccin.
Procedimiento Proceso(A,B) Si A > B Entonces Escribir A + B Escribir A / B Si no Escribir A * B Escribir B - A Fin de condicin. Fin de procedimiento
Inicio Ejercicio Tres. Declarar A y B como enteras. Escribir Introducir dos valores numricos Leer Introduzca A, A Leer introduzca B, B
Proceso(A,B) Final
O la otra opcin.
Si A > B Entonces Escribir A + B Escribir A / B Si no Escribir A * B Escribir B - A Fin de condicin. Fin de procedimiento
Inicio Ejercicio Tres. Escribir Introducir dos valores numricos Proceso Final
Introducir dos nmeros A y B y visualizar el resultado de: Si A es mayor que B calcular A / B. Si A es menor que B calcular A * B. Si A es igual que B calcular A + B.
En ste ejercicio aparece de nuevo el smbolo, A comparado con B, por eso la condicin puede tener tres salidas, pero han de estar documentadas, como se puede observar en el mismo.
Leer Introduzca A, A Leer introduzca B, B Si A > B Entonces Resultado = A / B Si no Si A < B Entonces Resultado = A * B Si no Resultado = A + B Fin de condicin Fin de condicin. Escribir El resultado es , Resultado
Fin de procedimiento
Inicio Ejercicio Cinco. Escribir Introducir dos valores numricos Proceso() Final
Introducir dos nmeros A y B. Si A es distinto que B calcular y visualizar A + B y A / B. Si A es igual que B calcular y visualizar A * B y B - A.
Los siguientes ejercicios, son bucles, y las soluciones estn hechas en la mayora de los casos con bucles del tipo Repeat. Sera conveniente que los hicieran tambin con el bucle While.
Procedimiento Proceso() Declarar X como Entera. Escribir Visualizamos los nmeros entre diez y veinte X = 10 Inicio de repite Escribir X X = X + 1 Hasta que X > 20 Fin de procedimiento
Procedimiento Proceso() Declarar X como Entera. Escribir Visualizamos los nmeros entre diez y veinte X = 9 Inicio de repite X = X + 1 Escribir X
Procedimiento Proceso() Declarar X y Suma como Entera. Escribir Visualizamos los nmeros entre diez y veinte y su suma X = 10 Inicio de repite Escribir X Suma = Suma + X X = X + 1 Hasta que X > 20
Funcion Calcula() Declarar X y Suma como Entera. X = 10 Inicio de repite Escribir X Suma = Suma + X X = X + 1 Hasta que X > 20 Final de funcion
Inicio Ejercicio Ocho. Escribir Visualizamos los nmeros entre diez y veinte y su suma Escribir El Valor de la suma es , Calcula Final
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza. Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier medio. octubre-2010.
Buscar
Bsqueda personalizada
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
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
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
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.
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.
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.
Pg. 7.1
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza. Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier medio. octubre-2010.
Buscar
Bsqueda personalizada
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.
Le ensearemos solo a
Y despus crearamos una nueva clase que heredara esas capacidades y le aadiramos otras nuevas.
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.
Pg. 7.2
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza. Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier medio. octubre-2010.
Buscar
Bsqueda personalizada
Clase Humano Propiedad Sexo Propiedad Altura Propiedad Raza Propiedad ColorOjos Propiedad ColorPelo
Cada uno de esos mtodos, contendr el cdigo adecuado para que se realice la accin que tiene como misin.
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.
Mientras haya Palabras Leer Palabra Si hay que leer en voz alta Mujer.Hablar Palabra Fin de condicin Fin de mientras
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.
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
Pg. 7.3
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza. Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier medio. octubre-2010.
Buscar
Bsqueda personalizada
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
Mujer.ColorPelo = Negro
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.
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza. Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier medio. octubre-2010.
Buscar
Bsqueda personalizada
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza. Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier medio. octubre-2010.
Buscar
Bsqueda personalizada
Clase Casa Propiedad M2Cocina Propiedad M2Baos Propiedad M2Salon Propiedad Habitaciones Propiedad M2Habitacion Propiedad Baos
Metodo CrearHabitacion Declarar X X = 0 Mientras X < Habitaciones DibujarHabitacion M2Habitacion X = X + 1 Fin de mientras Fin de metodo
Piso.M2Salon = 20 Piso.M2Bao = 8
Piso.M2Habitacion = 12
Piso.CrearSalon Piso.CrearBao
.. / .. Fin de programa
Esta solucin es eso, solo una versin, y que cada cual puede mejorar y reinterpretar.
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza. Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier medio. octubre-2010.
Buscar
Bsqueda personalizada
8.2. Introduccin.
Es un lenguaje de programacin que actualmente respeta prcticamente todas las caractersticas de la P. O. O.. Anteriormente la generacin de un programa ejecutable con Basic generaba un ejecutable, actualmente genera un archivo intermedio que se ejecuta posteriormente por la mquina virtual de Studio Net. Esta caracterstica, que hoy incorporan otros lenguajes de programacin, convierte a VB en un lenguaje portable en el momento que exista una mquina virtual para otros sistema operativos distintos de Windows.
8.3. Caractersticas.
Es fcil de utilizar, igualmente para personas que estn inicindose como para expertos en la materia. El entorno de diseo para un entorno grfico es muy cmodo y fcil de utilizar. Es un lenguaje orientado a objetos. Existe un amplio espectro de objetos en el mercado para poderse integrar en el lenguaje. No dispone de punteros.
8.4. Advertencias.
El problema de las maysculas de otros lenguajes aqu no se da, e incluso el editor de texto de VB unifica el nombre de las variables cuando las escribes de otra forma.
http://www.microsoft.com/spanish/msdn/vstudio/express/default.mspx
El entorno en si es muy amplio y explicarlo en su totalidad no es el motivo de sta documentacin, vamos a abordar solamente la parte que nos interesa para sta fase de iniciacin a la programacin con ste lenguaje.
8.7. Descarga.
Seguir los pasos que se indican en la pgina de Microsoft.
Pg. 8.1
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza. Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier medio. octubre-2010.
Buscar
Bsqueda personalizada
En el escritorio de Windows dispondremos de un icono, hayamos deseado asignarle y con el que accederemos a la aplicacin.
En funcin de cmo hayamos configurado en la instalacin nos aparecer un tipo de inicio u otro, el que sigue puede ser uno de ellos, pero tambin puede aparecer una ventana con un enlace a las ltimas noticias sobre Studio net y con los ltimos proyectos abiertos a la izquierda.
En esta opcin si nos fijamos podemos ver las pestaas de una serie de ventanas que posteriormente sern tiles en el desarrollo de nuestros programas. Empezando de izquierda a derecha, la pestaa de Cuadro de herramientas que nos visualizar los objetos disponibles para el diseo de los formularios de nuestros programas.
Aqu vemos la pestaa de la caja de herramientas a la izquierda y a la derecha ya desplegada. Se puede visualizar de varias
La ventana de explorador de soluciones es la que permite ver todos los elementos que componen el proyecto actual, dispone de varios estilos de
visualizacin.
La
ventana
de
propiedades
nos
permite
acceder a todas las propiedades de los objetos del formulario momento que tengamos seleccionado en ese
Al seleccionar una propiedad en la parte inferior de la ventana aparece una pequea leyenda de las caractersticas de dicha propiedad.
Pg. 8.2
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza. Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier medio. octubre-2010.
Buscar
Bsqueda personalizada
En el escritorio de Windows dispondremos de un icono, hayamos deseado asignarle y con el que accederemos a la aplicacin.
En funcin de cmo hayamos configurado en la instalacin nos aparecer un tipo de inicio u otro, el que sigue puede ser uno de ellos, pero tambin puede aparecer una ventana con un enlace a las ltimas noticias sobre Studio net y con los ltimos proyectos abiertos a la izquierda.
En esta opcin si nos fijamos podemos ver las pestaas de una serie de ventanas que posteriormente sern tiles en el desarrollo de nuestros programas. Empezando de izquierda a derecha, la pestaa de Cuadro de herramientas que nos visualizar los objetos disponibles para el diseo de los formularios de nuestros programas.
Aqu vemos la pestaa de la caja de herramientas a la izquierda y a la derecha ya desplegada. Se puede visualizar de varias formas, en funcin de las necesidades de diseo del formulario.
La ventana de explorador de soluciones es la que permite ver todos elementos componen los que el proyecto actual, dispone de
varios estilos de
visualizacin.
de
propiedades
nos
permite
Pg. 8.2
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza. Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier medio. octubre-2010.
Buscar
Bsqueda personalizada
Para iniciar un proyecto nuevo seleccionaremos la opcin Archivo Nuevo proyecto., de la barra de herramientas.
En ese momento se pone en marcha un asistente, como no, y nos pedir el tipo de proyecto que deseamos crear.
Para los ejemplos que vamos a ir viendo seleccionaremos la opcin que vemos en la imagen, Windows Aplicacin de Consola.
Son ejercicios sencillos que no necesitan de la complejidad de un formulario, y as no nos distraemos de lo importante.
El nombre del proyecto, podemos cambiarlo por el nombre que deseemos, y su ubicacin ser la que l tiene por defecto, podemos dejarla o bien crear la nuestra propia.
Hay que tener presente que cada proyecto se ubica en un directorio, donde estarn todos los archivos que se creen para dicho proyecto.
Al pulsar Aceptar, nos crea la estructura bsica del proyecto que hemos seleccionado, y ya podemos empezar a escribir nuestro primer programa.
dato1 = 20 dato2 = 10
dato2
"
Module Module1
dato1 = 20 dato2 = 10
dato2
"
&
End Module
Module Module1
dato1 = 20 dato2 = 10
dato2
"
&
End Module
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza. Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier medio. octubre-2010.
Buscar
Bsqueda personalizada
En VB en modo consola, y si se desea en modo grfico tambin, la fase de inicio es el denominado Main del programa, desde donde empieza la ejecucin del mismo, siguiendo las instrucciones que en l hayamos escrito, como podemos ver en el ejemplo anterior.
Module Module1
Es el nombre del mdulo que en ste caso contiene el Main, y que si deseamos podemos cambiar de nombre, y al final disponemos de un End Module..
Sub Main()
Es el punto de inicio de nuestro programa, y podemos observar como al final disponemos de un End Sub.
As Integer As Integer
System.Console.WriteLine("dato1 resultado)
dato2
" &
El & lo que consigue es unir el texto entre comillas y el valor de la variable resultado en una sola frase.
Tcnicamente es incorrecto, pues para ello ambos datos deberan ser del tipo alfanumrico, pero bueno as es la sintaxis en el algunos casos con Microsoft.
System.Console.ReadKey()
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza. Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier medio. octubre-2010.
Buscar
Bsqueda personalizada
El ejemplo anterior se puede resolver como sigue, creando una clase. Para ello en el men seleccionamos Proyecto Agregar clase y le asignamos el nombre que deseemos, en el ejemplo PrimeraClase. Nos dejar un espacio en blanco creado, en el cual hemos de aadir nuestro cdigo.
End Class
Sub New(ByVal Dato1 As Integer, ByVal Dato2 As Integer) Select Case Dato1 = 0 Or Dato2 = 0 Case True System.Console.WriteLine("Valores incorrectos") Case Else D1 = Dato1 D2 = Dato2 End Select End Sub del objeto
Public Sub Sumar() Dim Resultado As Integer Resultado = D1 + D2 System.Console.WriteLine("dato1 Resultado) System.Console.ReadKey() End Sub End Class + dato2 = " &
programa, para ello hay que utilizar las opciones del men de edicin.
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza. Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier medio. octubre-2010.
Buscar
Bsqueda personalizada
9.2. Introduccin.
Un programa es una estructura ms o menos compleja, en funcin del tamao del mismo.
Pero el cdigo que lo compone no puede estar todo en el Main del mismo, sera difcil de entender y de modificar, adems de muy largo, por lo tanto conviene trocear. Si recordamos el ejercicio del primer tema, ese es el camino, pequeos trozos de programa, fciles de escribir y de modificar.
9.4. Procedimientos.
Siempre hemos de procurar crear procedimientos que sean cortos. Se ha de intentar seguir la pauta de que un procedimiento no supere en mucho la capacidad de lneas de una pantalla o de una hoja de papel, no por ningn requisito tcnico, si no por comodidad nuestra, lo cual no impide en absoluto que cuando nos interese lo superemos.
Un procedimiento debe de ser un espacio estanco, su forma de comunicacin con los datos que hay en el exterior debe ser los que figuran en la lnea de parmetros. Cualquier otra forma de utilizacin, tcnicamente puede ser correcta, y de hecho habr alguna vez que habr que saltarse esa
problemas.
Si creamos procedimientos sin dependencias del programa en el que se ubican, podemos cambiarlo de aplicacin para aprovecharlo sin necesidad de reescribirlo, porque todos los datos que figuran en su interior tienen como origen su lnea de parmetros, y no existe otra forma de comunicacin. As no pueden haber sorpresas.
Un procedimiento es un elemento de nuestro programa, este elemento puede recibir o no datos y devolver o no datos.
Pg. 9.1
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza. Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier medio. octubre-2010.
Buscar
Bsqueda personalizada
El
procedimiento A y B son
conocidos
por
el
programa
principal, A conoce
Las variables de nivel de programa, pueden ser utilizadas por los procedimientos en su interior, no es aconsejable. Es conveniente utilizar el paso de variables, ms que el uso de las globales, ya que eso le da independencia al procedimiento.
Si nosotros diseamos un procedimiento, ste tendr unas necesidades de datos. Esos datos sern propios o externos, los propios no hay problema, pero los externos hemos de facilitrselos, para ello hay unas normas. El envo y recepcin han de realizarse en el mismo orden y con el mismo tipo de datos. Si vemos el ejemplo, vemos que ambas coinciden en el color, digamos que sea el tipo, son del mismo tamao, digamos que sea el dato que se enva.
El siguiente ejemplo vemos que no coinciden ni color, tipo, ni tamao dato, ni el nmero de parmetros que se envan y reciben.
El nombre no tiene porque coincidir, pensemos que el mismo procedimiento puede utilizarse en varios programas, no tienen porque coincidir los nombres de las variables por eso, si no sera un problema bastante serio.
Actualmente hay lenguajes que permiten que haya variables de uso opcional en la lnea de parmetros.
Aqu podemos ver como en el programa principal se enva dos variables a CALCULA, en este procedimiento se reciben en el mismo orden y con el mismo tipo.
su
vez
luego llama
desde CALCULA se
a REPRESENTA y se le enva
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza. Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier medio. octubre-2010.
Buscar
Bsqueda personalizada
De esa forma podemos conseguir que un procedimiento trabaje con los datos de otro procedimiento o programa sin necesidad de que las variables se llamen igual.
El paso de datos por referencia a un procedimiento, nos da la posibilidad de poder modificar el valor de una variable pasada en el procedimiento, y que ste sea devuelto al programa principal o al procedimiento que lo ha llamado. Cuando se pasa un dato por valor el dato es recibido por el procedimiento pero ste dato si se modifica en su interior no se recibe modificado en el lugar en el que se llama al procedimiento.
procedimiento, y que la variable no pueda ser modificada en su contenido al finalizar la ejecucin del procedimiento y devolverse el control al programa principal o al procedimiento que lo ha llamado.
No estamos hablando de empresas, si no de los procedimientos. Los procedimientos pueden ser pblicos o privados, depender del mbito en el cual deseamos que sean utilizados. Cuando el procedimiento se desea utilizar solo en el programa actual, y que no sea llamado desde otro programa, se declaran como privados, Private. Cuando el procedimiento deseamos que sea algo de utilizacin genrica desde cualquier punto de la aplicacin entonces lo declaramos como pblico, Public. Normalmente los procedimientos pblicos suelen agruparse en mdulos fuera del programa, y agruparlos por temas, lo cual permite tener el cdigo ordenado y fcilmente accesible. Cuando desarrollamos una clase, el procedimiento o funcin que se declara como pblico, suele ser, se convierte en un mtodo que el usuario puede utilizar en su objeto.
Pg. 9.3
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza. Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier medio. octubre-2010.
Buscar
Bsqueda personalizada
Visto como se inicia en VB un programa, veamos ahora como resolver un ejercicio, basndonos en el uso de procedimientos.
10.2. Introduccin.
A la hora de programar, podemos optar por varias soluciones, programacin clsica o con objetos. Actualmente lo adecuado es utilizar objetos, por lo tanto deberamos elegir ese camino, pero es una decisin personal e intransferible. Si nos aclaramos mejor con procedimientos y funciones, sin profundizar en clases, podemos plantearnos las clases como un segundo nivel, al que intentar llegar despus. Pero el camino es el de empezar por los procedimientos, ya que como se ha comentado, un mtodo es un procedimiento o una funcin.
El nombre del proyecto, podemos cambiarlo por el nombre que deseemos, y su ubicacin ser la que l tiene por defecto, podemos dejarla o bien crear la nuestra propia.
Module Module1
dato1 = 20 dato2 = 10
dato2
"
&
Tal cual lo vemos funciona, y el ejercicio quedara resuelto, pero vamos un poco ms all.
Esta es una solucin, pero as no se puede hacer un programa, un programa es una estructura muy compleja, o puede llegar a serlo, y para eso hace falta una estructura que sea resistente y eficiente.
Pg. 10.1
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza. Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier medio. octubre-2010.
Buscar
Bsqueda personalizada
10.2. Introduccin.
A la hora de programar, podemos optar por varias soluciones, programacin clsica o con objetos. Actualmente lo adecuado es utilizar objetos, por lo tanto deberamos elegir ese camino, pero es una decisin personal e intransferible. Si nos aclaramos mejor con procedimientos y funciones, sin profundizar en clases, podemos plantearnos las clases como un segundo nivel, al que intentar llegar despus. Pero el camino es el de empezar por los procedimientos, ya que como se ha comentado, un mtodo es un procedimiento o una funcin.
Tomemos como punto de partida el del ejemplo del tema anterior, creemos un proyecto del tipo consola y dmosle un nombre.
El nombre del proyecto, podemos cambiarlo por el nombre que deseemos, y su ubicacin ser la que l tiene por defecto, podemos dejarla o bien crear la nuestra propia.
Module Module1
dato1 = 20 dato2 = 10
dato2
"
&
Tal cual lo vemos funciona, y el ejercicio quedara resuelto, pero vamos un poco ms all.
Esta es una solucin, pero as no se puede hacer un programa, un programa es una estructura muy compleja, o puede llegar a serlo, y para eso hace falta una estructura que sea resistente y eficiente.
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza. Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier medio. octubre-2010.
Buscar
Bsqueda personalizada
Empecemos por pasar parmetros al procedimiento, por lo que en la lnea de parmetros tendr que aparecer las dos variables. Las variables tendrn que ir declaradas con el tipo que les corresponde.
resultado = D1 + D2
Dato2
{0}
"
Al procedimiento despus hay que llamarlo para que se ejecute desde el programa principal, y por lo tanto tambin tiene que enviarse las variables que se supone tiene que recibir en la lnea de entrada al mismo.
Procedimiento(dato1,dato2)
En el programa principal, dichas variables debern estar declaradas para poderse utilizar.
Module Module1 Private Sub Procedimiento(ByVal D1 As Integer, ByVal D2 As Integer) Dim resultado As Integer
resultado = D1 + D2
dato2
{0}
",
dato1 = 20 dato2 = 10
End Module
Comprobemos que las variables que se pasan lo son en el mismo orden, del mismo tipo y con el mismo dato, d1 desde dato1 y d2 desde dato2.
Pg. 10.2
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza. Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier medio. octubre-2010.
Buscar
Bsqueda personalizada
1 Estructuras alternativas.
Una estructura alternativa es una instruccin en la que se puede ejecutar una de entre varias posibilidades, la ms sencilla es del tipo If.
if (Expresin) Then
dat1 = dato
Donde expresin ser cualquier expresin cuyo resultado de evaluacin final siempre es del tipo cierto o falso. Pueden ir o no acompaadas de un else, en funcin de que sea necesario para nuestro programa.
dat1 = 25 end if
Hay otra instruccin alternativa que es Select Case, que mucho ms estructurada y ms potente en cuanto a sencillez de posibilidades de creacin de estructuras. Aqu tenemos un ejemplo con los posibles valores que nos interese de X, pero hay un sin fin de posibilidades en cuanto a posibles expresiones para evaluar.
Select case X
case 1 Instruccin; Instruccin; case 2 Instruccin; Instruccin; Case else Console.writeline("error" ) End Select
case 2: nombremes = "Febrero" case 3: nombremes = "Marzo" .. / .. case 12: nombremes = "Diciembre" Case Else NombreMes = "Incorreccto" End Select
En caso de que en la estructura deseemos dar una salida para la situacin en la que no se cumpla ninguna de las situaciones previstas, podemos utilizar la opcin de Case else
Dicho de otra forma es el equivalente del else en la instruccin If, vista anteriormente.
En el ejemplo tenemos una variable con un valor previsto de -1 y desconocemos cuales son las otras posibilidades, por lo tanto utilizamos case else para el resto.
Select Case valor case -1 Console.writeline("No existe") Case else Console.writeline("Encontrado en la posicin {0} " , valor) End Select
Las estructuras alternativas pueden ir anidadas una en el interior de otra hasta alcanzar el nivel necesario para resolver la estructura que se nos presenta.
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza. Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier medio. octubre-2010.
Buscar
Bsqueda personalizada
El control de la estructura est al final del mismo. Si observamos la imagen podemos observar como el smbolo en forma de rombo, que es el que indica el control del bucle est situado al final de la estructura, y al principio solo hay instrucciones.
La flecha indica al punto del programa en el cual se inicia la estructura o en el que est la primera instruccin del bucle.
Si observamos las flechas podemos observar como la ltima instruccin del bucle es la encargada de analizar la situacin en ese momento, para volver a iniciar una vez ms el ciclo o seguir hacia la siguiente instruccin, ya fuera del bucle.
Su sintaxis es la siguiente.
do
Sin embargo si observamos la imagen del bucle mientras, podemos observar como a diferencia del bucle repite, la instruccin de control est situada al inicio del mismo.
Esto implica que si al llegar al inicio del bucle, la condicin que expresamos en ese momento no se cumple, el bucle no se ejecutar, no entraremos en el mismo, o si lo queremos ver as, el bucle est protegido en su ejecucin.
Si observamos las flechas podemos observar como al acabar la ltima instruccin del bucle se retorna al inicio del mismo, donde est la instruccin de control, en ese momento se analiza la situacin y se vuelve a ejecutar una vez ms el ciclo, o se abandona el mismo, siguiendo a la siguiente instruccin.
Su sintaxis es la siguiente.
Hay una tercera opcin de bucle que es el For. Este bucle se ejecuta para un valor inicial, hasta un valor final, con un incremento determinado, no deja de ser una variacin de un bucle mientras.
Existe la instruccin exit for, exit do, dentro de los bucles, pero quizs sea poco didctico y no sea muy adecuado su utilizacin en una primera fase del lenguaje, al igual que el uso del for, hasta que no se haya avanzado ms en el dominio del mismo.
En los bucles, sean del tipo que sean, y se utilicen para lo que sea, siempre hay que tener presente el valor de partida, el valor final, y el momento en el que se realiza el
incremento del contador, si es que se usa, o de la instruccin que provoque la progresin en el mismo. Por ejemplo en la visualizacin de los nmeros del 0 al 9, utilizaremos una variable del tipo entero. Le daremos un valor inicial de cero, en el bucle la primera instruccin ser visualizar, y la condicin del bucle ser mientras que x sea menor que diez. El resultado ser correcto.
Pero si alteramos el orden de las instrucciones, el valor cero inicial, ya no ser vlido, pues el primer valor que se visualizar ser uno, y perdemos la visualizacin del cero. Adems la condicin final tampoco ser vlida, pues acabaremos en diez, no en nueve, que es de lo que se trata. Prubelo.
Por lo tanto hay que tener siempre presente, el punto de partida, los valores intermedios, el valor de la progresin, en que momento, y cual es el ltimo valor que debe procesarse en el bucle. Teniendo eso presente no debe haber nunca problemas en el manejo de los bucles.
Pg. 10.4
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza. Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier
medio. octubre-2010.
Buscar
Bsqueda personalizada
//
Visualizar
// Incremento de
// Acumulador
10.6. Conclusiones.
Hemos visto como se inicia un programa en VB, las distintas estructuras que se utilizan en programacin, como se escriben y su uso dentro de los procedimientos, falta ver las funciones.
Hemos de tener presente que en lo que podemos denominar programa principal, que en muchas ocasiones es algo ficticio, o no muy prximo a la realidad, no se escribe casi cdigo, si no llamadas a procedimientos, o declaracin y ejecucin de los objetos que se han declarado, y donde realmente se escriben los programas es en los procedimientos, y funciones que se convierten en mtodos en las clases.
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza. Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier medio. octubre-2010.
Buscar
Bsqueda personalizada
Hallar el rea y la longitud de una circunferencia, solicitando el radio de la misma R . Area = PI * R al cuadrado, Longitud = 2 * PI * R .
Introducir dos nmeros A y B y visualizar el resultado de: Si A es mayor que B calcular A / B. Si A es menor que B calcular A * B. Si A es igual que B calcular A + B.
4 5
Visualizar los nmeros entre 10 y 20. Visualizar los nmeros entre 10 y 20 y sumarlos.
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza. Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier medio. Octubre-2010.
Buscar
Bsqueda personalizada
unidad
10:
Primer
programa
en
VB,
Dado que estructuralmente los ejercicios estn resueltos, exponemos solo el cdigo de los mismos.
Introducir dos nmeros y calcular la suma de los mismos, visualizando el resultado final. Repetir para la resta y la multiplicacin.
Module Module1 Private Integer) Dim resultado As Integer Sub Uno(ByVal D1 As Integer, ByVal D2 As
resultado = D1 + D2
dato2
{0}
",
Si en la solucin del ejercicio se tienen problemas del tipo Option Strict On no permite la conversin de String en Integer, la solucin pasa por: dato1 = CInt(Console.ReadLine()) dato2 = CInt(Console.ReadLine())
O bien por realizar el siguiente cambio, en la barra de Men seleccionar la opcin Proyecto Propiedades. Y a continuacin, seleccionar la pestaa de compilar y en la opcin Option Strict que est en On, cambiarlo a Off.
Hallar el rea y la longitud de una circunferencia, solicitando el radio de la misma R . Area = PI * R al cuadrado, Longitud = 2 * PI * R .
Private Sub Dos(Rad as Double) Dim Longitud As Double Dim Area As Double
Area = PI * Rad ^ 2 Longitud = 2 * PI * Rad Console.WriteLine() Console.WriteLine("El rea de la circunferencia es {0} ", Area) Console.WriteLine() Console.WriteLine("La longitud de la circunferencia es {0} ", Longitud) Console.WriteLine() Console.Write("Pulse cualquier tecla para finalizar ... ") Console.Read() End Sub
Introducir dos nmeros A y B y visualizar el resultado de: Si A es mayor que B calcular A / B. Si A es menor que B calcular A * B. Si A es igual que B calcular A + B.
Private Sub Tres(A As Long, B As Long) Select Case A Case Is > B Console.WriteLine("{0} es mayor que {1} y la divisin es {2} ", A, B, A / B) Case Is < B Console.WriteLine("{0} es menor que {1} y la
multiplicacin es {2} ", A, B, A * B) Case Is = B Console.WriteLine("{0} es igual que {1} y la suma es {2} ", A, B, A + B) End Select Console.WriteLine() Console.Write("Pulse cualquier tecla para finalizar ... ") Console.Read() End Sub
Y en el Main
Sub Main
")
")
Tres(A,B)
End Sub
Console.WriteLine() Console.Write("Pulse cualquier tecla para continuar ... ") Console.Read() End Sub
En ste ejercicio se ha optado por agrupar todo el cdigo en el procedimiento. 5 Visualizar los nmeros entre 10 y 20 y sumarlos.
Console.WriteLine("Visualizar los nmeros entre 10 y 20 y sumarlos") Console.WriteLine() Suma = 0 X = 10 Do Console.WriteLine(X) Suma = Suma + X X = X + 1 Loop Until X > 20
Console.Write("Pulse cualquier tecla para continuar ... ") Console.Read() End Sub
Console.WriteLine("Visualizar los nmeros entre 10 y 20 y sumarlos") Console.WriteLine() Suma = 0 X = 9 Do X = X + 1 Console.WriteLine(X) Suma = Suma + X Loop Until X = 20
Console.Write("Pulse cualquier tecla para continuar ... ") Console.Read() End Sub
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza. Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier medio. octubre-2010.
Buscar
Bsqueda personalizada
11.2. Introduccin.
Un programa es una estructura ms o menos compleja, en funcin del tamao del mismo. Pero el cdigo que lo compone no puede estar todo en el Main del mismo, sera difcil de entender y de modificar, adems de muy largo, por lo tanto conviene trocear. Si recordamos el ejercicio del primer tema, ese es el camino, pequeos trozos de programa, fciles de escribir y de modificar. Y la solucin era el dividir el programa y crear procedimientos. Ahora vamos a ver las funciones, pero las funciones a pesar de que en su interior pueden albergar el mismo tipo de estructuras que un procedimiento, tienen un fin distinto dentro de un programa.
11.3. Creacin.
Hay una mxima que s podra servir, y es que en el momento en que en el programa aparece cdigo repetido, ya podemos empezar a pensar en la creacin de una funcin o un procedimiento, segn corresponda. Tambin hay que tener en cuenta que la llamada a una funcin o un procedimiento consume recursos y tiempo de ejecucin, pero en la actualidad se piensa poco en esos parmetros. Resolver de forma recursiva el factorial de un nmero es bonito, pero y si el nmero es algo grande? Con un procedimiento resuelvo el programa y voy creando la estructura del mismo. Una funcin es un trozo de cdigo especializado en hacer algo en concreto, por ejemplo, el ejercicio del rea de un triangulo o de una circunferencia, se resolvi mediante un procedimiento, pero su solucin correcta es la de una funcin, por qu?, pues normalmente el rea del triangulo es un dato que voy a calcular y que puede aparecer hasta en una expresin habitualmente.
Esta es la solucin con un procedimiento, ejecutamos el procedimiento y nos devuelve un dato llamado Area, que lo usamos en el texto de informe al usuario.
Escribe
El
rea
del
triangulo
es
AreaTriangulo(Base,Altura)
Cuando escribir una funcin o un procedimiento?, en el ejemplo podemos ver un criterio. Un procedimiento es una lnea de mi programa, lo llamo y se ejecuta, resuelvo el problema estructural del programa con ellos. Una funcin forma parte de una instruccin, una funcin siempre devuelve un dato, un procedimiento no tiene porque hacerlo.
En el caso de una funcin no nos sirve el criterio de que un procedimiento crezca en demasa, para crear una funcin, hay una diferencia de base entre un procedimiento y una funcin, y es que un procedimiento puede formar, o forma parte, de la resolucin lgica de un programa, parte de su estructura, pero una funcin es una parte de nuestro programa que est especializado en algo muy concreto y que solo sabe resolver ese tema, y no formar parte de la estructura del programa, colabora en su solucin.
Evidentemente que s convierte en ms legible un programa, el uso de una funcin, pero no es la forma de resolver un programa, por supuesto que su uso es necesario en programacin, pero hay que ver ese matiz entre ambas herramientas de programacin.
Un procedimiento, un mtodo, cuando crece se puede dividir en varios procedimientos, pero no en varias funciones.
En el diseo de una funcin, hay que mantener el criterio, de que solo se utilice las variables que se definan en la misma, y las que se reciban en la lnea de entrada, pero de forma todava mucho ms taxativa, una funcin, por naturaleza, es una parte de cdigo mucho ms reutilizable, normalmente, que un procedimiento, por lo tanto debe ser todava mucho ms aislado, autnomo.
De todos modos, ser la experiencia la que nos ira marcando cuando usar el procedimiento y cuando la funcin.
Una funcin devuelve siempre un nico dato, un procedimiento puede devolver uno o varios, o ninguno, pero es que si se usan adecuadamente las funciones, con un nico dato es suficiente.
funciones es dividirlas por las propias del lenguaje y las que diseemos nosotros, todos los lenguajes de
En el ejemplo vemos una funcin escrita por nosotros, y vemos como en su interior utilizamos funciones del lenguaje en el que se escribe esa funcin.
La funcin del ejemplo es del tipo alfanumrico porque lo que devuelve es un dato alfanumrico.
Por lo tanto tendremos tantos tipos de funciones como tipos de datos disponga el lenguaje que estamos utilizando.
Pg. 11.1
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza. Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier
medio. octubre-2010.
Buscar
Bsqueda personalizada
Pueden ser pblicas o privadas, y pueden declararse en el programa actual o en un mdulo disponible para toda la aplicacin, proyecto.
Esos datos sern propios o externos, los propios no hay problema, pero los externos hemos de facilitrselos, para ello hay unas normas. El envo y recepcin han de realizarse en el mismo orden y con el mismo tipo de datos. Si vemos el ejemplo, vemos que ambas coinciden en el color, digamos que sea el tipo, son del mismo tamao, digamos que sea el dato que se enva. El siguiente ejemplo vemos que no coinciden ni color, tipo, ni tamao dato, ni el nmero de parmetros que se envan y reciben.
El nombre no tiene porque coincidir, pensemos que el mismo procedimiento puede utilizarse en varios programas, no tienen porque coincidir los nombres de las variables por eso, si no sera un problema bastante serio.
Actualmente hay lenguajes que permiten que haya variables de uso opcional en la lnea de parmetros.
permite que un procedimiento sea independiente del programa que lo llama. De esa forma podemos conseguir que un procedimiento o una funcin, trabaje con los datos de otro procedimiento o programa sin necesidad de que las variables se llamen igual.
El paso de datos por referencia a una funcin, nos da la posibilidad de poder modificar el valor de una variable pasada en la funcin, y que ste sea devuelto al programa principal o al procedimiento que lo ha llamado.
Otro apartado, es que por la definicin intrnseca de lo que debe ser una funcin, no sea correcto realizar ese tipo de
actuaciones, paso por referencia en una funcin, ya que eso en realidad me permitira devolver no un dato, si no varios en la misma, uno en la funcin y otros en la lnea de parmetros recibidas, en lo las que
variables
Pero hemos de saberlo y comprobar que el lenguaje lo permite o no, y de esa forma si llega el momento utilizarlo.
Cuando se pasa un dato por valor el dato es recibido por el procedimiento o funcin, pero ste dato si se modifica en su interior no se recibe modificado en el lugar en el que se realiza la llamada a la funcin.
El paso de datos por valor a un procedimiento o funcin, nos da la posibilidad de poder enviar el dato de una variable y que la variable no pueda ser modificada en su contenido al finalizar la ejecucin del procedimiento o funcin, y devolverse el control al programa principal o al procedimiento que lo ha llamado.
Pg. 11.2
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza. Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier
medio. octubre-2010.
Buscar
Bsqueda personalizada
As que lo ms sencillo es declarar una variable temporal a la que le asignamos un valor por defecto y que despus cuando finalice la ejecucin de la funcin asignaremos al nombre de la misma.
Hay que pensar que tanto una funcin como un procedimiento son mini programas, pero en el caso de una funcin an ms.
Esta es una forma de plantear una funcin, pero el momento y el estilo de cada uno es personal e intransferible, por lo que a partir de ah cada cual puede ir creando su estilo.
Pg. 11.3
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza. Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier medio. octubre-2010.
Buscar
Bsqueda personalizada
12.2. Introduccin.
La programacin est basada en las estructuras. Estructuras de datos y estructuras de programas. Los programas son a su vez contenedores de estructuras de elementos individuales que ejecutan cdigo. El elemento ms pequeo es la instruccin. Despus nos encontramos con procedimientos y funciones. El siguiente nivel es la clase y por ltimo el programa.
Los procedimientos y las funciones, dependiendo de la estructura del lenguaje utilizado, y del estilo de programacin individual de cada uno, estn bien en mdulos independientes, de forma que son pblicos para toda la aplicacin, o de forma privada en el interior de un programa, o una clase.
En VB, las funciones son funciones y podrn o no pertenecer a una clase y ser un mtodo, se albergar en el interior de una clase, haciendo referencia al mismo mediante el nombre de la clase y a continuacin el de la funcin, mtodo, o si est en el mismo nivel, con utilizar la funcin es suficiente, como vemos en el ejemplo.
Console.Writeline(Factorial ,FuncionFactorial(3))
de
es
"
Pero no toda la resolucin de una clase se realiza mediante cdigo que se pueda o se tenga que traducir en un mtodo. La programacin adems se basa en la divisin de un problema grande, en varios pequeos, aquello de divide y vencers, por lo que por esa misma filosofa es imposible, e ilgico, que todo se convierta en mtodos. Los mtodos son la parte lgica visible de una clase, lgica en cuanto a que es aquello que cara al usuario le ayuda a resolver un problema en pasos comprensibles para l. Con las funciones sucede lo mismo, al fin y al cabo, no son nada ms que otra de las herramientas de programacin.
funcin
puede
estar Private
en
el
en
un Public
mdulo
palabra
reservada
que
indica
que
es
una
Function
Despus funcin,
lo
que
sigue
es
el
nombre
de
la
FuncionFactorial Entre parntesis los datos que se reciben, indicando el tipo de cada uno de
(ByVal n as Integer) tipo de dato que Integer continuacin empieza el cdigo de la funcin que acaba con la se devuelve en la
End Function.
Private Function FuncionFactorial(ByVal n As Integer) As Integer If (n <= 1) Then FuncionFactorial = 1 Else FuncionFactorial = n * FuncionFactorial(n - 1) End If End Function
En el ejemplo vemos la funcin, esta funcin calcula el factorial de un nmero, otro tema es que sea la mejor solucin, pero es una funcin.
Public Function InvierteCadena(ByVal Cadena As String) As String Dim Result As String = "" Dim x As Integer
While x <> Len(Cadena) x = x + 1 Result = Mid(Cadena, x, 1) & Result End While InvierteCadena = Result End Function
Cadena = InvierteCadena(Cadena)
Pg. 12.1
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza. Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier medio. octubre-2010.
Buscar
Bsqueda personalizada
Public Function InvierteCadena(ByVal Cadena As String) As String Dim Result As String = "" Dim x As Integer
Result = Mid(Cadena, x, 1) & Result End While InvierteCadena = Result End Function
El nombre de la funcin InvierteCadena y los argumentos que va a recibir, Cadena como string, y se recibe por valor, en VB hay que indicarlo, por defecto aparecer siempre por valor, ByVal.
InvierteCadena = Result
End Function
InvierteCadena = Result
FuncionFactorial = n * FuncionFactorial(n - 1)
El nombre de la funcin es la encargada de recibir el valor que se va a devolver al punto de llamada de la misma, y el dato que se le asigna debe ser del mismo tipo que se declara en la funcin.
En el primero de los casos la variable que recibe el procedimiento, puede ser utilizada en el interior del mismo, pero los cambios que sufra, no podrn ser devueltos al programa que lo ha llamado, el procedimiento recibe el valor de la variable, pero no la variable.
Por referencia, sin embargo la variable recibida podr ser utilizada y si ha sufrido cambio en su valor, ste podr ser devuelto al programa que lo ha llamado, el procedimiento recibe una referencia a la variable, por lo tanto los cambios que se realicen a la misma, perduran a la finalizacin del procedimiento, o funcin.
En VB se puede recibir datos por valor, ByVal, y por referencia, ByRef, tanto en un procedimiento, SUB, o una funcin, Function. Dicho de otra forma, podramos enviar datos por referencia a una funcin y recibir datos devueltos en el nombre de la funcin y en la variable que nosotros consideremos adecuado. Un ejemplo:
Private Function InvierteCadena(ByVal Cadena As String, ByRef R As String) As String Dim Result As String = "" Dim x As Integer
While x <> Len(Cadena) x = x + 1 Result = Mid(Cadena, x, 1) & Result End While InvierteCadena = Result R = Result End Function
, ByRef R As String)
Que podemos observar que es por referencia, ByRef, y despus para probar que se puede utilizar:
R = Result
Sub Main() Dim C As String = ARROZ Dim R As String Console.WriteLine("Valor funcin") Console.WriteLine("Cadena invertida {0} es {1} ", C, InvierteCadena("ARROZ", R)) por referencia en una
End Sub
es el que sigue:
Valor por referencia en una funcin La cadena invertida ARROZ es ZORRA La cadena invertida ARROZ es ZORRA
Y como se puede comprobar, la funcin solo se ejecuta una vez. Pero a pesar de eso, no debemos utilizar esta estrategia, una funcin debe devolver el dato en su nombre.
12.5. Conclusiones.
El paso de datos se puede hacer por valor y por referencia, Los datos han de enviarse en el mismo orden en el que se reciben en la funcin. Han de ser del mismo tipo. No tienen porque llamarse de la misma forma. No hay valores opcionales.
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza. Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier medio. octubre-2010.
Buscar
Bsqueda personalizada
1. Hallar el rea y la longitud de una circunferencia, solicitando el radio de la misma R . Area = PI * R al cuadrado, Longitud = 2 * PI * R . 2. Hallar el rea de un tringulo. Area = Base por Altura / 2. 3. Introducir un nmero A y visualizar si es o no primo. 4. Introducir una calificacin (entre cero y diez), equivalente alfabtico, segn la siguiente tabla. De 3 -------> M.D. e imprimir su
Desde 3 y menor que 5 -------> INS. Desde 5 y menor que 6 -------> SUF Desde 6 y menor que 7 -------> BIEN Desde 7 y menor que 9 -------> NOT. Desde 9 hasta 10 -------> SOB.
5. Introducir un valor en metros y visualizar su valor en millas terrestres, marinas , yardas y leguas. Milla terrestre = 1.609,34 m. Milla marina = 1.852,00 m. Yarda = 4.190 m. Legua = 0,9144 m. 6. Introducir una fecha en pantalla con el formato da, mes y ao en tres variables numricas, validar la fecha y emitir el mensaje de fecha incorrecta o correcta.
7. A partir de los siguientes valores de moneda extranjera, crear una funcin que a partir de un importe en pesetas devuelva su equivalente en la moneda que se indique. 1 Franco francs 1 Lira 1 Libra esterlina 1 Dlar americano 1 Marco alemn 1 Franco suizo 1 Florn holands 1 Escudo portugus 25,2400 0,0859 245,5560 150,2280 84,6480 101,7550 5,1170 0,8262 25,3920 0,0864 247,0340 151,1320 85,1570 102,3670 75,5690 0,8312
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza. Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier medio. octubre-2010.
Buscar
Bsqueda personalizada
1.- Hallar el rea y la longitud de una circunferencia, solicitando el radio de la misma R . Area = PI * R al cuadrado, Longitud = 2 * PI * R .
Module Module1
Private Function AreaCirculo(ByVal Radio As Double) As Double AreaCirculo = Radio * Radio * 3.1415 End Function
Private Function LongitudCirculo(ByVal Radio As Double) As Double LongitudCirculo = Radio * 2 * 3.1415 End Function
Console.WriteLine("Clculo del rea y longitud de un circulo") Radio = Console.ReadLine Console.WriteLine("Area de radio {0} es {1} ", Radio, AreaCirculo(Radio)) Console.WriteLine("Longitud Radio, LongitudCirculo(Radio)) Console.ReadKey() End Sub End Module radio {0} es {1} ",
Module Module1
Private Function AreaTriangulo(ByVal Base As Double, ByVal Altura As Double) As Double AreaTriangulo = Base * Altura / 2 End Function
Console.WriteLine("Clculo del rea de un tringulo") Console.WriteLine("Introducir Base") Base = Console.ReadLine Console.WriteLine("Introducir Altura") Altura = Console.ReadLine Console.WriteLine("Area tringulo de base {0} y altura {1} es {2} ", Base, Altura, AreaTriangulo(Base, Altura))
Module Module1 Public Function Primos(ByVal Numero As Long) As Boolean Dim X As Integer = 3 Dim Final As Long Dim Result As Boolean = True
Select Case Numero Mod 2 <> 0 Case True Final = CLng(Numero / 2) + 1 While X < Final And Result Result = Numero Mod X <> 0 X = X + 1
End While Case Else If Numero > 2 Then Result = False End Select Primos = Result End Function
Sub Main() Dim Numero As Integer Console.WriteLine("Nmeros primos") Console.WriteLine("Introducir nmero") Numero = Console.ReadLine Select Case Objeto.Primos(Numero) Case True Console.WriteLine("El Numero) Case Else Console.WriteLine("El nmero {0} no es primo ", Numero) End Select Console.ReadKey() End Sub End Module nmero {0} es primo ",
4.- Introducir una calificacin (entre cero y diez), equivalente alfabtico, segn la siguiente tabla. De 3 -------> M.D.
e imprimir su
Desde 3 y menor que 5 -------> INS. Desde 5 y menor que 6 -------> SUF Desde 6 y menor que 7 -------> BIEN Desde 7 y menor que 9 -------> NOT. Desde 9 hasta 10 -------> SOB.
Module Module1 Private Function Calificacion(ByVal Nota As Single) As String Dim Texto As String = "" Select Case Nota Case 0 To 2.99 Texto = "M.D." Case 3 To 4.99 Texto = "Ins" Case 5 To 5.99 Texto = "Suf" Case 6 To 6.99 Texto = "Bien" Case 7 To 8.99 Texto = "Not" Case 9 To 10.0 Texto = "Sob" Case Else Texto = "Calificacin erronea" End Select Calificacion = Texto End Function
Sub Main() Dim Nota As Single Console.WriteLine("Introducir nota ") Nota = Console.ReadLine Console.WriteLine(Calificacion(Nota)) Console.ReadKey() End Sub End Module
5.- Introducir un valor en metros y visualizar su valor en millas terrestres, marinas , yardas y leguas. Milla terrestre = 1.609,34 m.
Module Module1 Private Function Conversion(ByVal M As Single, _ ByVal Single Dim C As Single Select Case T Case "T" C = CSng(M / 1609.34) Case "M" C = CSng(M / 1852) Case "L" C = CSng(M / 4190) Case "Y" C = CSng(M / 0.9144) End Select Conversion = C End Function T As String) As
Sub Main() Dim Metros As Single Dim Tipo as String Console.WriteLine("Convertir distancia en metros ") Console.WriteLine("Introducir distancia en metros") Metros = Console.ReadLine Console.WriteLine("Introducir M/T/L/Y ")
Tipo
= Console.ReadLine
6.- Introducir una fecha en pantalla con el formato da, mes y ao en tres variables numricas, validar la fecha y emitir el mensaje de fecha incorrecta o correcta. Module Module1 Function Fecha(ByVal D As Integer, _ ByVal M As Integer, _ ByVal A As Integer) _ As Boolean
Select Case M Case 1, 3, 5, 7, 8, 10, 12 Fec = D > 0 And D < 32 Case 4, 6, 9, 11 Fec = D > 0 And D < 31 Case 2 Select Case A Mod 100 = 0 Case True Fec = (D > 0 And D < 29) Or (D = 29 And A Mod 400 = 0) Case Else Fec = (D > 0 And D < 29) Or (D = 29 And A Mod 4 = 0) End Select End Select Fecha = Fec End Function
Sub Main() Dim Dia As Integer Dim Mes As Integer Dim Year As Integer Console.WriteLine("Comprobar fecha ") Console.WriteLine("Introducir dia") Dia = Console.ReadLine Console.WriteLine("Introducir mes") Mes = Console.ReadLine Console.WriteLine("Introducir ao") Year = Console.ReadLine Select Case Fecha(Dia, Mes, Year) Case True Console.WriteLine("La fecha es correcta") Case Else Console.WriteLine("La fecha no es correcta") End Select Console.ReadKey() End Sub End Module
7.- A partir de los siguientes valores de moneda extranjera, crear una funcin que a partir de un importe en pesetas devuelva su equivalente en la moneda que se indique. Module Module1 Function ConversionMoneda(ByVal Pesetas As Single, _ ByVal Single Dim Result As Single Select Case Moneda Case "F" Result = CSng(Pesetas / 25.24) Case "L" Result = CSng(Pesetas / 0.0859) Case "I" Moneda As String) As
Result = CSng(Pesetas / 245.556) Case "D" Result = CSng(Pesetas / 150.228) Case "M" Result = CSng(Pesetas / 84.648) Case "S" Result = CSng(Pesetas / 101.755) Case "H" Result = CSng(Pesetas / 5.117) Case "P" Result = CSng(Pesetas / 0.826) End Select ConversionMoneda = Result End function
Console.WriteLine("Convertir moneda ") Console.WriteLine("Introducir pesetas") Pesetas = Console.ReadLine Console.WriteLine("Introducir F/L/I/D/M/S/H/P") Moneda = Console.ReadLine Console.WriteLine("El importe de {0} pesetas en la moneda {1} es {2} ", Pesetas, Moneda, moneda
Las soluciones por las que se ha optado son mejorables, y solo pretenden ilustrar como abordar una funcin.
En estos ejercicios en algunos casos sera necesario aadir instrucciones del tipo
T = Ucase(T)
Siendo T una variable de tipo char, que puede venir indistintamente en minsculas o maysculas, de esa forma nos aseguramos su completo funcionamiento, convirtindola a maysculas.
Tambin se ha optado por utilizar una variable auxiliar, y luego que la funcin reciba su valor, no siendo eso imprescindible, pero sin embargo si vlido en cualquier lenguaje.
CSng, CDbl, Cint, etc, son funciones de conversin de un valor numrico a un valor determinado, Single, doble, entero etc..
Ello viene obligado por la definicin del parmetro Option Strict, para acceder al mismo
Si est en off, no exige la conversin obligada de tipos, es fuente de posibles errores, si est en On, s.
Su valor adecuado debera ser On, aunque obligue a la conversin de los datos.
Aviso legal: Este curso es gratuito siempre que se visualice desde la pgina web de aulaClic. No est permitido utilizar estos cursos en empresas, academias o centros de enseanza. Antonio Arjona Cornejo. Todos los derechos reservados. Prohibida la reproduccin por cualquier medio. octubre-2010.
Buscar
Bsqueda personalizada