|
|
http://www.areatecnologia.com Tecnologia
FUNDAMENTOS DE PROGRAMACIÓN Por www.areatecnologia.com TEORIA DE LA PROGRAMACIÓN
Introducción El ordenador solo entiende el llamado código máquina (1 y 0, hay o no hay corriente). Los lenguajes más cercanos al idioma del ordenador, llamados de bajo nivel, son muy complicados (casi como el código máquina) y poco usados. Los lenguajes de programación de alto nivel permiten dar órdenes al ordenador con un lenguaje parecido al nuestro (Visual Basic, Pascal, GML, LOGO, C++, etc). El problema de los lenguajes de alto nivel es que necesitan un compilador o interprete para traducirlo al código máquina. Hay otros programas como el Action Script 3.0, el Java o el PHP que son programas interpretados, es decir, se analizan y ejecutan las instrucciones por el propio programa. Estos son los mas utilizados actualmente. Los lenguajes, como todo, hay que aprendérselos, pero tienen una ventaja, y es que hay muchos puntos en común. Los llamados Fundamentos de Programación analiza estos puntos. Serán los que aprenderemos, aunque a la vez utilizaremos el Action Script 3.0 (a partir de ahora AS) para aplicar los fundamentos. ¡¡¡EMPECEMOS¡¡¡
1. Comentarios Poner comentarios de lo que vamos haciendo es muy útil, sobre todo cuando llega la hora de revisar el programa, si no, más de una vez nos encontraremos diciendo ¿qué hacía esto aquí? No cuesta nada documentar el programa y nos ahorrará dolores de cabeza. La norma que seguiremos será poner // delante de los comentarios, para identificarlos: // Esto será un comentario y no hará nada en el programa NOSOTROS EN EL TUTORIAL TAMBIÉN PONDREMOS COMENTARIOS
2. Operadores y Expresiones Un operador es un tipo de carácter que realiza una acción especial dentro de una expresión. Una expresión no es más que un conjunto de operadores, variables y constantes relacionados entre sí de un cierto modo. Por ejemplo: + es un operador que suma. Y = 3 + 5 es una expresión cuyo resultado es asignarle a Y la suma de 3 + 5, es decir el valor de 8. Los operadores mas comunes en todos los lenguajes son (incluido AS): + operador que suma - * operador que multiplica - operador que resta - / operador que divide = A la izquierda es igual a lo de la derecha. = = comprueba si es igual lo de la derecha a lo de la izquierda. Si es igual da verdadero (true) > mayor que - < menor que && operador Y || Operador O (ya veremos su uso mas adelante) Las comillas se usan para cadena de caracteres (texto) “5” seria un texto no un numero.
2. Las variables Una variable es como una caja donde metemos cosas (datos). Estos datos los podemos ir cambiando, ahora meto un 3 ahora lo quito y meto un 5. Una variable tiene un nombre, que puede ser una letra, una palabra, varias palabras unidas por el guión bajo o varias palabras sin separar pero la primera letra de cada palabra en mayúsculas ejem.: VidasPerdidas. Las variables también tienen un valor que sería lo que habría dentro de ella (en la caja) en ese momento y que puede ir variando según se vaya desarrollando el programa, por eso se llama variable (por ejemplo la puntuación en un juego). Una variable dependiendo de su valor puede ser numérica: si solo puede tener un valor numérico, de texto: si solo puede contener texto (letra, palabra o frase (string). En las variables de texto, su valor (el texto), debe ir entre comillas. Hay otras variables que se llaman booleanas que solo pueden tener dos valores true o false (algunas veces true se puede sustituir por el 1 y false por el 0). Ejemplos: edad = 3; //variable numérica variableDeTexto = “Edad”; Variable_Numerica = edad + 2 ; //su valor es el valor de la variable edad (numérica) + 2; en este caso sería=5 variableBooleana = true; // podría ser 1
Lo normal es declarar las variables al principio de un programa. Declarar no es más que decir "mira, yo quiero tres variables, y quiero que una se llame Nombre, otra Edad y otra Apellido". A partir de este momento, podrás meter, por ejemplo, “Juan” en Nombre, un 5 en Edad y “Rodríguez” en Apellido. Ojo no es la misma variable Nombre que nombre (mayusculas y minusculas). Las variables se suelen declarar al principio del programa. Para declararlas lo mas común es: var nombre = “Pepe”; var edad = 5; Fíjate que ponemos ; antes de pasar a la siguiente instrucción. Esto siempre se debe hacer así. Podemos sumar, restar, multiplicar y dividir variables. En la declaración ponemos el valor inicial de la variable. Mas adelante cambiaremos su valor.
También es muy habitual especificar el tipo de variable que vamos a crear (numérica, de texto o de otro tipo) a la hora de declararla. Por ejemplo en Action Script 3.0, siempre hay que hacerlo y se pondría String para las de texto y Number para las numéricas. Veamos un ejemplo. var nombre:String = “Juan”; var edad:Number = 16; Como ves se pone el nombre de la variable seguida de dos puntos y el tipo. Conclusión. Las variables tienen que declararse (definir) al principio de la siguiente forma: var nombreVariable:tipoVariable = valorVariable; Una vez definida podemos acceder a su valor solo escribiendo su nombre (sin el var y sin el tipo de variable). Cuando accedemos a una variable, accedemos a su valor en ese momento.
Un ejemplo. Imagina un programa en el que creas una variable con tu edad, y este valor lo almacena en la variable edad. Una vez dado el valor a la variable el programa comprueba: var edad:Number = 12; Si (edad > 18) entonces escribir “Eres Mayor de Edad” Declaramos la variable con un valor inicial de 12. Después le estamos diciendo al programa que si la variable edad (solo se pone su nombre) es un número mayor de 18, escriba Eres Mayor de Edad. Lógicamente en AS no se ponen las ordenes de esa manera. En este caso sería: var edad:Number = 12; If (edad>18) { trace (“Eres Mayor de Edad”) } //Pero esto ya lo veremos más adelante. La orden trace sirve para sacar (trazar) en otra pantalla (no en la del programa) lo que viene entre paréntesis. También nos puede trazar el valor de una variable, por ejemplo trace (edad), como ves sin comillas.
3. Programas y Algoritmos Los lenguajes de programación, cuentan todos en su haber con un juego de "instrucciones". Una instrucción no es más que una orden que nosotros le damos a la máquina. Y es que, al fin y al cabo, un PROGRAMA no es más que una secuencia de instrucciones (escritas en algún lenguaje de programación) pensado para RESOLVER algún tipo de PROBLEMA. Si no sabemos resolver este problema, no podremos escribir el programa. A ti se te puede ocurrir una manera de resolverlo, a tu compañero, otra. Este METODO con el que resolvéis el problema, es lo que se llama ALGORITMO, y es lo que vamos a ver a continuación. Un algoritmo es una secuencia de PASOS a seguir para resolver un problema.
Por ejemplo, cuando quiero ver una película de vídeo, podría hacer: Elijo una película de las de mi colección. -Compruebo SI TV y vídeo están conectados a la red (y procedo). -SI la TV está apagada, la enciendo, SI NO, pues no. Y lo mismo con el vídeo. -Introduzco la película en el vídeo. Dejo el estuche sobre el vídeo. -SI la TV no está en el canal adecuado, la cambio, SI NO, pues no. -Cojo los mandos a distancia (el del TV y el del vídeo). -Me pongo cómodo. -Pulso PLAY en el mando del vídeo. Fijaos bien en unos detalles que son fundamentales y que aparecen en este algoritmo: La descripción de cada paso no me lleva a ambigüedades: los pasos son absolutamente explícitos y no inducen a error. El número de pasos es finito. Tienen un principio y un fin. Según lo visto una mejor definición de algoritmo sería:
“Un algoritmo es una sucesión finita de pasos (no instrucciones como en los programas) no ambiguos que se pueden llevar a cabo en un tiempo finito.” Hay distintas formas de escribir un algoritmo, bien usando un lenguaje específico de descripción de algoritmos, bien mediante representaciones gráficas: diagramas de flujo. Nosotros vamos a usar un lenguaje llamado pseudocódigo (mezcla entre el lenguaje de programacion y el hablado), y a la vez pondremos también las instrucciones que se deberían poner en el lenguaje de programaciónAction Script 3.0. Independiente del lenguaje de programación que vaya a usarse; un algoritmo que esté escrito en pseudocódigo o con un diagrama de flujo es fácilmente traducible a muchos lenguajes de programación. Es decir una vez que tenemos claro como tiene que ser nuestro programa (algoritmo) pasaríamos a escribirlo en el lenguaje de programación (en nuestro caso AS3.0) 1º) Tener claro lo que queremos que haga el programa = Algoritmo 2ª) Crear el programa = Conjunto de Instrucciones
Hay distintas formas de escribir un algoritmo, bien usando un lenguaje específico de descripción de algoritmos, bien mediante representaciones gráficas: diagramas de flujo. Nosotros vamos a usar un lenguaje llamado pseudocódigo, y a la vez pondremos también las instrucciones que se deberían poner en el lenguaje de programación AS3.0. Veamos como se hacen:
Ejercicio: Crea el diagrama de flujo para ver la película del algoritmo anterior (inteligencia artificial). 4. Estructuras de control Las estructuras de control tienen una finalidad bastante definida: su objetivo es ir señalando el orden en que tienen que sucederse los pasos de un algoritmo o de un programa. Es decir como el orden de ejecución del programa Las estructuras de control son de tres tipos: 4.1. Secuenciales 4.2. Selectivas 4.3. Repetitivas
4.1.Estructuras secuenciales Una estructura de control secuencial, en realidad, no es más que escribir un paso del algoritmo detrás de otro, el que primero que se haya escrito será el que primero se ejecute. Veamos un ejemplo: queremos leer el radio de un círculo, calcular su área y mostrar por pantalla al usuario el resultado: - Declarar dos variable; radio y area inicio - mostrar por pantalla “dame el radio del circulo” - leer del teclado la variable radio y asignación del valor de la variable radio - Calcular el área y asignar su valor a la variable area =3.14159*radio - mostrar por pantalla: “el área del circulo es:” + area Muestra una frase de texto y el valor de la variable área Fin Con guión hemos puesto los pasos y sin guión son las aclaraciones de lo que vamos haciendo. El programa hace las ordenes una detrás de otra
4.2.Estructuras selectivas Estas estructuras se utilizan para TOMAR DECISIONES (por eso también se llaman estructuras de decisión o alternativas). Lo que se hace es EVALUAR una condición, y, a continuación, en función del resultado, se lleva a cabo una opción u otra. 4.2.1 Alternativas simples (condicional IF) Son los conocidos "si... entonces". Se usan de la siguiente manera: yo quiero evaluar una condición, y si se cumple (es decir, si es cierta), entonces realizaré una serie de pasos. En AS seria: if (condicion) {se hace esto} 4.2.2 Alternativas dobles (IF…….ELSE….) ¿Qué pasa si no cumple la condición puesta?. Si no decimos nada el programa seguirá a la siguiente orden de forma secuencial. Pero también podemos especificar que pasaría si no cumple la condición. Es el famoso trío "si ... entonces ... sino esto otro". En AS sería: if (condicion) {se hace esto} else {si no cumple la condición se hace esto otro}
Algoritmo para calcular la raiz cuadrada Declarar las variables numero y raiz Poner valor a la variable numero SI numero >=0 ENTONCES: raiz = raiz_cuadrada(numero) mostrar por pantalla raiz SI no Mostrar en pantalla Error fin En AS3.0 sería: var numero:Number = 7; var raiz:Number; //no se pone valor inicial; if (numero>=0) { raiz = Math.sqrt (numero); trace (raiz); } else { trace ("error numero negativo") } Todos sabemos que la raiz de un numero negativo no tiene valor. En AS para calcular la raiz cuadrad es Math.sqrt (el numero). Según esto queremos un programa que nos calcule la raiz cuadrada de un numero: Aquí se ve como cuando se tiene claro lo que se quiere hacer (algoritmo) es muy fácil crear el programa en el lenguaje que sea. Lo que habrá que saber son las Instrucciones diferentes para cada lenguaje de programación.
4.2.3 Alternativas múltiples o con varias condiciones Es muy probable que tengamos la necesidad de incluir en nuestros programas alternativas con muchas opciones posibles: if (variableOpciones=0) {lo que corresponda}; if (variableOpciones=1) {lo que corresponda}; ………. También existe la posibilidad de que deban de cumplirse dos condiciones a la vez: if (condición1 && condición2) {Realiza esto, si se cumple las dos condiciones} o else {se cumple esto otro} O También que se cumpla solo una de varias condiciones: if (condición1 || condición2) {Realiza esto, si se cumple cualquiera de las dos condiciones} Las dos barras verticales se sacan con las teclas Alt Gr + 1
Ejercicios en el cuaderno: Sobre estructuras secuenciales 1. Escribid un algoritmo que calcule el área de un triángulo o de un rectángulo. 2. Escribid un algoritmo que calcule el precio de un artículo tras aplicarle un 16% de IVA. Sobre estructuras selectivas 3. Escribid un algoritmo que lea dos números e imprima por pantalla el mayor de ellos 3. Diseñad un esquema de menú de opciones, por ejemplo, un menú para seleccionar un libro a leer de entre 3 disponibles. .
4.3. Estructuras de control REPETITIVAS Estas estructuras son instrucciones que se repiten formando un bucle. El bucle se repite mientras se cumpla una condición que ha de ser especificada claramente. Cuando deje de cumplirse la condición, se sale fuera del bucle y no se repiten más las instrucciones. Un BUCLE (loop, en inglés) es un trozo de algoritmo o de un programa cuyas instrucciones son repetidas un cierto número de veces, mientras se cumple una cierta condición que ha de ser claramente especificada Básicamente, existen tres tipos de estructuras repetitivas: 4.3.1 Los bucles "mientras..." o "while (en ingles“ 4.3.2 Los bucles "repetir(hacer)... mientras que" o "do... until" Estos no los vamos a estudiar 4.3.3 Los bucles "desde" o "bucles for". 4.3.4 Otras.
Vamos a verlas todas dentro de un ejemplo. Vamos a suponer que estamos pensando en un programa que deba REPETIR algunas veces una acción. Por ejemplo, el ordenador se ha portado mal, y como castigo, le vamos a hacer imprimir por pantalla 3000 veces la frase "Prometo ser bueno". ¿Cómo lo hacemos? ¿Escribimos 3000 veces la instrucción pertinente? ¡Se supone que el castigo es para la máquina, no para uno mismo!. 4.3.1 Estructura MIENTRAS QUE (condición) o "WHILE“ En este tipo de estructura, el cuerpo del bucle (ya sabéis, las acciones que deben ejecutarse repetidas veces) se repite MIENTRAS se cumple una determinada condición, que especificamos entre paréntesis Pseudocódigo Contador = 1 //variable contador con su valor inicial Mientras que(contador<=3.000) Escribir 'Prometo ser bueno' contador = contador + 1 //la variable contador vale 1 mas que antes; fin mientras // no sale del bucle hasta que contador valga 3000 si vale mas de 3000 saldría del bucle para realizar la siguiente instrucción
A la variable que "lleva" la cuenta de las veces que el bucle se ha ejecutado, se le he llamado contador. Fijarse que ANTES de entrar en el bucle le asigno el valor 1 a la variable contador. Si no, al entrar en el bucle y la variable (contador) no tener valor daria error. En cuanto vemos la palabra "mientras" o “while”, ya sabemos que hemos entrado en el bucle. Estamos en la decisión. ¿Es contador<=3000? Yo creo que sí, al menos si es cierto que 1<=3000. Vale, es cierto, así que deben ejecutarse todas las instrucciones del cuerpo del bucle. En nuestro caso, se mostrará por pantalla la frase 'Prometo ser bueno', y, ATENCION, sumo 1 a la variable contador. Como contador valía 1, si ahora le sumo 1, ahora contador vale 2. Llegamos al fin del mientras. Eso significa que se han terminado las instrucciones del cuerpo del bucle: debemos volver a evaluar la condición que tenía el "mientras" o “while” entre paréntesis para ver qué hacemos ahora, salir del bucle o seguir en el. Lógicamente al ser 2 menor de 3000 seguirá realizando el bucle. Así hasta que valga 3001 que saldrá fuera del bucle.
Si la variable tuviera un valor inicial mayor de 3000 el bucle no se ejecutaría nunca. ¿Cómo seria en AS3.0? var contador:Number = 1; while (contador < = 3000) { trace (Prometo ser bueno); contador++; } contador++ es equivalente a decir contador = contador + 1; o también contador += contador; es decir sumar uno a la Variable contador 4.3.2 Estructura REPETIR (hacer)... MIENTRAS QUE (condición) o "DO.....UNTIL“ Aquí, lo que se desea es que un bucle se ejecute al menos una vez antes de comprobar la condición de repetición. Es decir si partiéramos que la variable condición fuera mayor de 3000, en este caso, el bucle se ejecutaría una vez. En el caso de hacerlo con while no se ejecutaría ninguna vez. ¡Esta es la única diferencia¡. No lo estudiamos + por su poca importancia.
4.3.3 Estructura DESDE o "bucles FOR". Esta estructura hubiera sido la más adecuada y mas usada para resolver nuestra situación real. Tiene la peculiaridad que la variable no se define fuera del bucle, sino dentro, y además al llegar el programa al bucle este entrará en el siempre, y se realizará las veces que nosotros definamos. inicio desde (variable contador = 1; hasta que contador<=3.000; contador = contador + 1) hacer mostrar por pantalla 'Prometo ser bueno' fin desde Lo primero que hace es darle a la variable contador el valor 1. Después comprueba si el valor de la variable es menor o igual a 3000 (comprueba la condición), y si la cumple aumenta 1 el valor de la variable contador y realiza las instrucciones que hay dentro del bucle. Así hasta que la condición deja de cumplirse. Normalmente con bucles For se usa la variable i para contar, y no la variable contador. En AS3.0 seria for (var i = 0; i < =3000; i++) { trace(“Prometo ser Bueno); } La forma sería: for (DeclararVariable = Numero; Condicion; ValorNuevodelaVariable) { lo que hace el bucle mientras se cumpla} Ejercicio: Programa que escriba los números del 1 al 10, con while y con for .
EN CUALQUIER PROGRAMA: EL PROGRAMA LEE LAS INSTRUCCIONES DE FORMA SECUENCIAL. CUANDO LLEGA A UNA CONDICIONAL EVALUA LA CONDICIÓN Y PASA A EJECUTAR LA INSTRUCCION QUE MANDA SI SE CUMPLE. SI NO SE SE CUMPLE SIGUE DE FORMA SECUENCIAL, A NO SER QUE SE ESPECIFIQUE QUE HACER EN CASO DE NO CUMPLIRSE. CUANDO EL PROGRAMA ENTRA EN UN BUCLE DE REPETICIÓN, EJECUTA EL BUCLE HASTA QUE DEJA DE CUMPLIR LA CONDICIÓN DEL BUCLE Y SIGUE DE FORMA SECUENCIAL. PROGRAMACION ORIENTADA A OBJETOS (POO ó OOP) Es el tipo de programación más utilizada actualmente. En este tipo de programación, se considera un escenario, como el sitio donde colocamos objetos que actuarán en nuestro programa. Lo que programamos, son las propiedades y las acciones (métodos) de cada objeto que interviene en el escenario, para que realicen acciones de forma independiente. Ejemplo: Un pájaro que vuela, estará en un escenario que puede ser un jardín, y programaremos el vuelo del pájaro, que será el objeto.
SI QUIERES APRENDER MÁS ENTRA EN LOS TUTORIALES DE WWW.AREATECNOLOGIA.COM SI QUIERES APRENDER A PROGRAMAR CON ACTION SCRIPT 3.O PUEDES HACERLO CON LOS VIDEOTUTORIALES DE ACTION SCRIPT
by areatecnologia | Added: 3 years ago
Language: Spanish | Topic: Education
| 3176 Views | 1 Comments | 18 Embeds |
Summary: Por http://www.areatecnologia.com TEORIA BÁSICA PARA PROGRAMACION CON EL ORDENADOR
| URL: |
No comments posted yet
Comments