Leccin 1: INICIACIN A LA PROGRAMACIN Programacin web : www.ibserveis.com Leccin 1 : Iniciacin y variables Iniciacin y variables
En esta leccin se aprende a escribir un primer programa Hola mundo . Esto significa que se maneja correctamente un editor de texto, en este caso Notepad++, para sacar por pantalla, en el navegador web, una pequea frase.
El concepto de Variable tambin se asimila fcilmente a partir de ejemplos muy reveladores.
Al ser una iniciacin total de la programacin, se incluyen enlaces a varios videos para las personas que necesiten ms explicacin de cmo realizar los primeros ejercicios.
Para ms informacin de los conceptos de esta leccin, puede visitarse w3scholls (esta en ingls)
Para cualquier aclaracin, pueden ponerse en contacto con el autor, a travs de www.ibserveis.com
Est prohibido cualquier tipo de distribucin sin permiso del autor. Est prohibida la reproduccin de este curso para su utilizacin comercial. Est permitido el uso en comn en aulas fsicas donde se enseen asignaturas de programacin.
Programacin web : www.ibserveis.com Leccin 1 : Iniciacin y variables Video 1 Ejercicio 1: inicio con Notepad ++
Ejercicio 1) a) Abrir Notepad ++ ( o cualquier otro editor de HTML) b) Archivo Nuevo c) LenguajeH..HTML d) Copiar el cdigo que empieza por <!DOCTYPE html> siguiente. e) Archivo..Guardar como. Ej1.html f) Ejecutar. Launch in X (ver en el explorador, Firefox u otro)
Si no aparece nada en el explorador puede haber un fallo copiando el texto.
Solucin: En Firefox , pulsar CTRL + Maysculas + J , para abrir consola de errores. Fijarse en el ltimo error que seala. Corregirlo y GUARDAR de nuevo el archivo Ej1 Programacin web : www.ibserveis.com Leccin 1 : Iniciacin y variables Video 2 : Depuracin de errores (consola de errores) Video 2.1 : Depuracin con Firebug
Ejercicio 2) Crear archivo nuevo Ej2.htm y copiar el siguiente cdigo. Una vez guardado, ejecutar el programa: Launch in <!DOCTYPE html> <html> <body> <script type="text/javascript"> var a, b; a = 10; b = 5; resultado = a + b;
document.write("Variable a contiene " + a ); document.write("</br>"); document.write("Variable b contiene " + b ); document.write("</br>"); document.write("La suma de a+b es " + resultado ); </script> <p>Las variables contienen datos que pueden sumarse</p>
</body> </html>
Ejercicio 3) Atencin: Ejercicio con error para aprender a corregir errores. Crear archivo nuevo Ej3.htm y copiar el siguiente cdigo. Una vez guardado, ejecutar el programa: ver en el explorador. <!DOCTYPE html> <html> <body> <script type="text/javascript"> var a, b; a = 2; b = 8; resultado = a * b;
document.write("Variable a contiene " + a ); document.write("</br>"); document.write("Variable b contiene " + b ); document.write("</br>"); document.write("El producto de a por b es " + result ); </script> <p>Los puntos de interrupcin son fundamentales para programar</p>
</body> </html>
Programacin web : www.ibserveis.com Leccin 1 : Iniciacin y variables Video 3: Depuracin con puntos de interrupcin, el programa se ejecuta, pero incorrectamente. Video 3.1 : Puntos interrupcin con Internet Explorer
Ejercicio 4) Crear archivo nuevo Ej4.htm y copiar el siguiente cdigo. Una vez guardado, ejecutar el programa: ver en el explorador.
<!DOCTYPE html> <html> <body> <script type="text/javascript"> var a, b; a = "Hola"; b = " mundo!";
document.write("Variable a contiene " + a ); document.write("</br>"); document.write("Variable b contiene " + b ); document.write("</br>"); document.write(a + b ); </script>
<p>El signo '+' sirve para concatenar cadenas de texto</p>
</body> </html>
Ms info en : http://www.w3schools.com/js/js_operators.asp
Ejercicio 5) Ejecutar el siguiente programa (Ej5). Introduccin de valores por teclado. Qu accin realiza la instruccin num = parseInt(dato); ? <html> <body> <script type="text/javascript"> var dato, num;
dato = window.prompt("Introduce nmero ?", "0"); num = parseInt(dato);
document.write("Entero introducido " + num ); </script>
<p><br>Prueba con una letra. Resultado <b>NaN</b> (not a number).</p> </body> </html> Programacin web : www.ibserveis.com Leccin 1 : Iniciacin y variables Ejercicio 6) Ejecutar el siguiente programa (Ej6). Introducimos dos nmeros y se suman
<!DOCTYPE html> <html> <body>
<script type="text/javascript"> var dato1, dato2, num1, num2;
dato1 = window.prompt("Introduce primer nmero ?", "0"); num1 = parseInt(dato1); dato2 = window.prompt("Introduce segundo nmero ?", "0"); num2 = parseInt(dato2);
resultado = num1 + num2;
document.write("<br/> <br/> La suma es " + resultado ); </script>
<p>Para sumar, las variable deben ser numricas.</p> </body> </html>
Ms informacin sobre variables (en ingls): http://www.w3schools.com/js/js_variables.asp Programacin web : www.ibserveis.com Leccin 1 : Iniciacin y variables Ejercicio 7) ALGORITMO (NO programa) con introduccin de 2 nmeros. El resultado es indicar cual es el mayor. Completar, con lpiz, el pseudocdigo donde aparece XXX inicio num1 0: num2 0 Introducir "Introduce primer nmero";num1 Introducir "Introduce segundo nmero";num2
Si (num1>num2) Escribir "El mayor es el nmero ", XXX sino Escriure "El mayor es el nmero ", XXX
Fin si Fin
Ms informacin sobre condicionales: http://www.w3schools.com/js/js_if_else.asp
Ejercicio 8) Ejecutar el siguiente programa (Ej8.htm). Introduccin de 2 nmeros y el programa indica cul es el mayor. <html xmlns="http://www.w3.org/1999/xhtml"> <body> <script type="text/javascript"> <!-- var dato1,dato2; var num1, num2;
if (num1 > num2) { resultat = " el primer"; } else { resultat = " el segundo"; }
document.write("<h3>El ms gran es " + resultat + "</h3>"); //--> </script> </body> </html> Programacin web : www.ibserveis.com Leccin 1 : Iniciacin y variables Ejercicio 9) Programacin de objetos (elementos) de la pgina web.
<!DOCTYPE html> <html> <body>
<h1>Ejercicio elemento Web</h1>
<p id="demo">El primer parrafo es un elemento</p>
<script type="text/javascript"> document.getElementById("demo").innerHTML="Programacion sobre elementos"; </script>
</body> </html>
Ejercicio 10) Objeto Math utilizado para crear nmero aleatorio.
<!DOCTYPE html> <html> <body>
<p id="demo"></p>
<script type="text/javascript"> var suerte = (Math.random() * 6); var dado = parseInt(suerte) + 1;
var obj1=document.getElementById("demo")
if (dado>3) { obj1.innerHTML="Has ganado, ha salido el numero " + dado; } else { obj1.innerHTML="Lo siento, ha salido el nuemero "+ dado; } </script>
</body> </html>
Programacin web : www.ibserveis.com Leccin 1 : Iniciacin y variables
Ejercicio 11) Programa que lee tres notas de un alumno, calcula la media e indicar el valor de la nota y la palabra Excelente si tiene un valor mayor que 8 , Aprobado entre 5 y 8 , Suspendido < 5
if (media >8) { resultat = " Excelente"; } else { if (media >=7) resultat = " Notable"; else resultat = " Aprobado"; } document.write("La nota final es " + media + " y esta usted" + resultat );
</script> </body> </html>
Ejercicio 12) Aadir al programa anterior, el resultado de Bien si la nota est entre 5 y 6
Ejercicio 13) Realizar programa que indica la nota final: suspendido, aprobado, bien, notable, excelente a partir de la introduccin de la nota numrica.
Programacin web : www.ibserveis.com Leccin 1 : Iniciacin y variables 14) Algoritmo simplificado de un Cajero automtico
si respuesta = ingresar Hacer ingreso de cantidad Escribir Ingreso hecho en su cuenta
si no si cantidad divisible por 5 (billetes disponibles de 5 ,10 i 20) Escribir A dbito o crdito? Leer forma
si forma = debito extraer de su cuenta si no extraer a crdito fin si
si no Escribir Solo billetes de 5, 10 y 20 fin si
fin si
Escribir Gracias por utilizar este servicio
fin
Programacin web : www.ibserveis.com Leccin 1 : Iniciacin y variables
FIN EJERCICIOS 1
Prxima leccin: Leccin2 - Depuracin de programas
Para entender la importancia de la depuracin de errores es importante realizar muchos ejercicios y adquirir prctica. La segunda leccin es una seleccin de ejercicios muy pensada y progresiva en su dificultad . Programacin web : www.ibserveis.com Leccin 2 : Depuracin de errores.
Programacin web con ejercicios en Javascript.
Leccin 2: DEPURACIN DE ERRORES EN LOS PROGRAMAS Programacin web : www.ibserveis.com Leccin 2 : Depuracin de errores.
Depuracin de errores
Ahora que ya funcionan los programas, hay que conseguir disearlos y fabricarlos correctamente. Hay que conseguir depurar todos los errores para llegar a tener un producto robusto.
Para ms informacin de los conceptos de esta leccin, puede visitarse http://www.drpaulcarter.com/cs/debug.php (en ingls)
Para cualquier aclaracin, pueden ponerse en contacto con el autor, a travs de www.ibserveis.com
Est prohibido cualquier tipo de distribucin sin permiso del autor. Est prohibida la reproduccin de este curso para su utilizacin comercial. Est permitido el uso en comn en aulas fsicas donde se enseen asignaturas de programacin.
Programacin web : www.ibserveis.com Leccin 2 : Depuracin de errores.
Acciones a realizar en el diseo de programas:
Antes de iniciar el cdigo hay que PENSAR como realizarlo modularmente. Empezando por el ncleo principal y comprobando su funcionamiento antes de aadir ms cdigo. Despus vamos aadiendo ms funcionalidades al cdigo. Por ejemplo: Si estamos realizando un programa de una tienda en internet: empezaramos el programa con la suma de precios de los artculos escogidos y comprobar su buen funcionamiento bajo cualquier circunstancia (pruebas de carga)
Como depurar programas. (traduccin) http://www.drpaulcarter.com/cs/debug.php Los errores ms comunes al programar son: 1. Programar sin pensar antes que se va a hacer. 2. Escribir cdigo sin estructurar. 1. Pensando en la programacin. Cuando un programador profesional debe resolver un problema, nunca empieza tecleando cdigo en el ordenador. Antes de nada se disea, se piensa sobre las diferentes formas de atacar el problema. Nunca hay que pensar que por empezar antes a escribir cdigo, antes se acaba el programa. Un programa que se planifica antes de escribir cdigo, funciona correctamente antes que otro sin planificar. Puede ser que sin planificar tengamos resultados antes, pero seguro que no son los ms eficientes y adems pueden dar mucho ms trabajo de depuracin. Un programa que se ha pensado y planificado antes, tiene menos fallos de depuracin y menos fallos lgicos en su desarrollo. Hay varias tcnicas para disear y planificar programas. La ms comn es conocida como top-down design y se trata de esbozar y comprobar la parte principal del programa para luego ir haciendo las otras funciones. Los programas deben iniciarse con el nucleo de la aplicacin, comprobar que funciona correctamente e ir creciendo modularmente. Top-down design divide el programa es subtareas. Cada tarea es un programa pequeo que debe ser resuelto. Ese programa deber ser resuelto de forma totalmente comprensible y comprobar al100% su funcionamiento, independientemente de otros subprogramas. Una vez tengas esbozado y re-pensada la mejor solucin para cada tarea, cada subprograma, es cuando se empieza a escribir cdigo.
Programacin web : www.ibserveis.com Leccin 2 : Depuracin de errores.
2. Programacin estructurada. Un programa se dice que es estructurado cuando se divide en sub-unidades que pueden ser probadas separadamente. Es una gran ventaja para la depuracin y para el mantenimiento del programa. La depuracin de un programa debe realizarse mientras se construyen cada una de las sub-unidades y no esperar a finalizar el cdigo para probar si tiene errores. Evidentemente, acotar, encontrar y resolver errores en pequeas porciones de cdigo es una forma muy eficiente de trabajar. No hace falta que el programa sea Orientado a objetos para que sea estructurado, pero la POO (programacin orientada a objetos) implica la estructuracin obligatoria del programa. La POO tambin facilita la reutilizacin de cdigo y su distribucin para ser utilizada en otros programas. Cada sub-unidad puede y debe depurarse separadamente, iccluso a traves de pequeos programas de carga. Programas que simulan la utilizacin bajo fuerte demanda del programa puesto a prueba. Por supuesto, el depurar pequeas unidades ofrece muchas ms facilidades que intentar arreglar todo un extenso cdigo.
Programacin web : www.ibserveis.com Leccin 2 : Depuracin de errores.
How to Debug a Program When you have eliminated the impossible, whatever remains, however improbable, must be the truth. Sherlock Holmes in "The Sign of the Four" Cuando hayas eliminado lo imposible, aquello que permanece, aunque improbable, debe ser la verdad. The primary difference between a programmer right out of college and one with five years' experience is the ability to debug programs. Debugging is still an art, not a science; but there are some techniques that can help. For more ideas on debugging, see The Elements of Programming Style by Kernighan and Plauger ACOTAR PROBLEMA, aislar parte del cdigo que produce el problema, simplificar al mximo la parte de cdigo que no funciona. Begin finding bugs by reproducing the problem. Start by getting exact input if you can. Try reproducing the problem in your test environment with as little data as possible. Ask about all the conditions present when the problem occurred (for example, other users, batch jobs, etc.)
Puede volver a recordar los Video 3 y Video 3.1 sobre puntos de interrupcin.
Ejercicio 2.1) Hacer seguimiento de la variable num mediante punto de interrupcin y DEBUG <html> <head> </head> <body> <script language="javascript"> var num; num=1;
while (num!=5) { dato=prompt('Introduce nmero del 1 al 10:',''); num=parseInt(dato);
document.write(num + '</br>'); } document.write("Fin del programa"); </script>
</body> </html>
Programacin web : www.ibserveis.com Leccin 2 : Depuracin de errores.
Ejercicio 2.2) Programa que lee tres notas de un alumno, calcula la media e indica si est suspendido o aprobado (nota media mayor o igual a 5) <html> <body> <script type="text/javascript"> var nota1, nota2, nota3; var media;
if (media <=5) { resultat = " Aprobado"; } else { resultat = " Suspendido"; } document.write("<h3>La nota final es " + resultat + "</h3>"); </script> </body> </html>
Ejercicio 2.2 bis) El programa anterior tiene un error de lgica. Encontrarlo gracias a la depuracin con puntos de interrupcin y corregirlo.
Programacin web : www.ibserveis.com Leccin 2 : Depuracin de errores.
Ejercicio 2.3) Realizar programa en Javascript perteneciente al siguiente Algoritmo : Introduccin de 2 nmeros y el ordenador indica cual es el mayor o si son iguales inicio num1 0: num2 0 Introducir "Introduce primer nmero";num1 Introducir "Introduce segundo nmero";num2
Si (num1>num2) Escribir "El mayor es el primero ", num1 sino SI (num2>num1) Escribir "El mayor es el segundo ", num2 sino Escribir "Los nmeros son iguales" fin si
fin si Fin
Ejercicio 2.4) Realizar programa en Javascript a partir de este PSEUDOCODIGO: Calcula la suma de los nmeros enteros entre 1 y 10 (1+2+3+4....)
inicio suma 0: conta 0
Mientras conta menor que 10 conta conta + 1 suma suma + conta Fin Mientras
Escribir La suma es; suma Fin
Ejercicio 2.5) Realizar programa que da el resultado de multiplicar los nmeros enteros pares del 10 al 20 ( 10*12*14... )
Programacin web : www.ibserveis.com Leccin 2 : Depuracin de errores.
Teora y sintaxis condicionales: http://www.codexexempla.org/curso/curso_4_2_c.php
Programacin web : www.ibserveis.com Leccin 2 : Depuracin de errores.
Ejercicio 2.7) Ejercicio 2.6 optimizado.
Ahora como mximo se ejecutan dos instrucciones de comparacin, no 2 dobles como el cdigo anterior y como mnimo tan solo 1 (no dos como el anterior). En caso de haber ms condicionales, estructurarlas anidadamente ahorra muchas comparaciones que no es obligatorio hacer.
<!DOCTYPE html> <html> <body> <script type="text/javascript"> <!-- var marca,modelo,descuento;
marca = window.prompt("Marca?", "0"); modelo = window.prompt("Modelo?", "0");
if (marca=="ford") if (modelo =="fiesta") { descuento = 5; } else { descuento = 10; }
Programacin web : www.ibserveis.com Leccin 2 : Depuracin de errores.
Informacin sobre funciones: http://www.w3schools.com/js/js_functions.asp
Ejercicio 2.8) Ejecutar el siguiente cdigo. En qu momento se dispara la funcin? <html> <head>
<script type="text/javascript">
function ejemplo() { window.alert("Hola Mundo!"); }
</script>
</head> <body>
<p><input type="button" onclick="ejemplo()" value="Llamada a funcin"></p>
</body> </html>
Ejercicio 2.9) Colocar un punto de interrupcin en la primera lnea 8 de cdigo del ejercicio anterior (Windows.alert (Hola Mundo) y otro punto de interrupcin en la lnea 16 (<p><input type).
Empezar la depuracin e ir ejecutando paso a paso por procedimientos (F10)
Ver el orden en que se ejecutan las instrucciones. Pulsar el botn Llamada a funcin para llegar al punto de interrupcin de la funcin.
Programacin web : www.ibserveis.com Leccin 2 : Depuracin de errores.
Ejercicio 2.10) Ejecutar el siguiente programa: Funciones de calculo <html> <head> <title>Exercici Funcions</title> <script language="javascript"">
function Cuadrado(numero) { var calculo = numero * numero; document.write("<p/> Resultado = " + calculo + "</p>"); }
Ejercicio 2.11) Ejemplo aplicacin condicionales compuestos. Realizar programa para una agencia de viajes. Si el usuario introduce como origen la ciudad de Palma y como destino Barcelona, el descuento se establece en el 5%. Con el mismo origen, si el destino es Madrid el descuento es del 10% y si el destino es Valencia , el descuento es del 15%.
Programacin web : www.ibserveis.com Leccin 2 : Depuracin de errores.
Ejercicio 2.12) Ejecutar el siguiente cdigo. Qu est haciendo la instruccin RETURN? Cul es su traduccin del ingls? <html> <head> <script type="text/javascript"> <!-- function suma() { var dato1, dato2, n1, n2;
Programacin web : www.ibserveis.com Leccin 2 : Depuracin de errores.
Ejercicio 2.13) Realizar un programa con una funcin: Esta funcin muestra en pantalla la suma de dos nmeros introducidos por el usuario en otra parte del cdigo.
Ejercicio 2.14) Realizar programa donde el usuario introduce 3 nmeros y en ordenador indica cual es el central (ni el mayor, ni el menor de los 3)
Programacin web : www.ibserveis.com Leccin 2 : Depuracin de errores.
FIN EJERCICIOS 2
Prxima leccin: Leccin3 ms Funciones
Cuando se trabaja en un programa, no se realiza todo en un mismo bloque, sino que el cdigo se reparte en funciones, cada una con un objetivo bien determinado. Programacin web : www.ibserveis.com Leccin 3 : Funciones y lgica.
Programacin web con ejercicios en Javascript.
Leccin 3: Funciones y lgica. Programacin web : www.ibserveis.com Leccin 3 : Funciones y lgica.
Funciones y lgica
Qu fcil es programar.. mal.
En poco tiempo cualquier persona est capacitada para programar, pero se necesita experiencia, dedicar tiempo y trabajo para realizar un cdigo estructurado preparado para su mantenimiento y posible crecimiento.
La forma de aprender a programar elegantemente (implica profesionalidad) es ver y asimilar programas realizados con un cdigo limpio y bien elaborado.
Para cualquier aclaracin, pueden ponerse en contacto con el autor, a travs de www.ibserveis.com
Est permitido el uso en comn en aulas fsicas donde se enseen asignaturas de programacin. Est prohibido cualquier tipo de distribucin sin permiso del autor. Est prohibida la reproduccin de este curso para su utilizacin comercial.
Programacin web : www.ibserveis.com Leccin 3 : Funciones y lgica.
Ejercicio 3.1) Programa donde se introducen 3 nmeros y el programa seala el mayor de los tres.
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <script type="text/javascript"> <!-- var dato1,dato2, dato3; var A, B, C, resultado;
dato1 = window.prompt("Primer nmero?", "0"); A = parseInt(dato1);
dato2 = window.prompt("Segundo nmero?", "0"); B = parseInt(dato2);
dato3 = window.prompt("Tercer nmero?", "0"); C = parseInt(dato3);
if ((A > B) && (A>C)) resultado = "A";
if ((B > A) && (B>C)) resultado = "B";
if ((C > A) && (C>B)) resultado = "C";
document.write("<h3>El mayor numero es " + resultado + "</h3>"); //--> </script> </body> </html>
Ejercicio 3.2) Cuntas instrucciones, como mnimo, realiza el programa anterior?
Programacin web : www.ibserveis.com Leccin 3 : Funciones y lgica.
Ejercicio 3.3) Programacin estructurada; el programa seala el mayor de tres nmeros.
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <script type="text/javascript"> <!-- var dato1,dato2, dato3; var A, B, C, resultado;
dato1 = window.prompt("Primer nmero?", "0"); A = parseInt(dato1);
dato2 = window.prompt("Segundo nmero?", "0"); B = parseInt(dato2);
dato3 = window.prompt("Segundo nmero?", "0"); C = parseInt(dato3);
if (A > B) if (A>C) resultado = "A"; else resultado ="C"; else if(B>C) resultado = "B"; else resultado ="C";
document.write("<h3>El mayor numero es " + resultado + "</h3>"); //-->
</script> </body> </html>
Ejercicio 3.4) Cuntas instrucciones, como mnimo, realiza el programa anterior? y como mximo?
Programacin web : www.ibserveis.com Leccin 3 : Funciones y lgica.
Ejercicio 3.5) Crear programa, en una pgina web, donde el usuario intruduce su altura (cm), edad, sexo y peso actual. El programa responde con el peso ideal.
Por ejemplo : usuario introduce 176, 22, H, 79. El programa ejecuta la frmula: 50 + ((Altura-150) / 4) *3 + (Edad 20) /4 * (0.9 si es mujer)
El resultado es: peso ideal = 70,5.
<html> <head> <title>Peso ideal</title> </head>
<body> <script type="text/javascript">
function pesoideal() {
var dato, peso, altura, sexo, edad; dato = window.prompt("Dgame su altura en cm"); altura = parseInt(dato);
dato = window.prompt("Digame su edad en aos") edad = parseInt(dato);
sexo = window.prompt("Dgame su sexo, hombre = h o mujer = m");
Programacin web : www.ibserveis.com Leccin 3 : Funciones y lgica.
Ejercicio 3.7) Programa que calcula Potencia, Intensidad y voltaje de la corriente elctrica.
<html> <head> <script type="text/javascript">
function potencia() { var v, i, p; v = window.prompt("Introduce la voltaje","0"); i = window.prompt("Introduce la intensidad","0"); p = (v * i); document.write("La potencia es: ", p); }
function voltaje() { var v, i, p; i = window.prompt("Introduce la intensidad","0"); p = window.prompt("Introduce la potencia","0"); v = (p / i); document.write("El voltaje es: ", v); }
function intensidad() { var v, i, p; v = window.prompt("Introduce la voltaje","0"); p = window.prompt("Introduce la potencia","0"); i = (p / v); document.write("La intensidad es: ", i); } </script> </head>
Ejercicio 3.9) Realizar programa con dos funciones: Una muestra en pantalla la suma de dos nmeros introducidos por el usuario. La otra funcin, muestra la multiplicacin de los dos nmeros introducidos por el usuario. Programacin web : www.ibserveis.com Leccin 3 : Funciones y lgica.
Ejercicio 3.10) Crear un programa Calculadora, con las 4 operacions bsicas, sumar restar, multiplicar y dividir.
Como se ha de subdividir el programa? Lo implemento con funciones? . Cuntas funciones son necesarias? Solucin 1: <head> <script type="text/javascript">
function sumar() { var num1; var num2; var res; num1 = parseInt(document.calculadora.valor1.value); num2 = parseInt(document.calculadora.valor2.value); res = num1 + num2;
document.calculadora.resultado.value = res; }
function restar() { var num1; var num2; var res; num1 = parseInt(document.calculadora.valor1.value); num2 = parseInt(document.calculadora.valor2.value); res = num1 - num2;
document.calculadora.resultado.value = res; }
function multiplicar() { var num1; var num2; var res; num1 = parseInt(document.calculadora.valor1.value); num2 = parseInt(document.calculadora.valor2.value); res = num1 * num2; document.calculadora.resultado.value = res; }
function dividir() { // codigo similar a los anteriores } </script> </head>
<body> <form name="calculadora"> Primer nmero: <input type="text" name="valor1"><br> Segundo nmero: <input type="text" name="valor2"><br>
</form> </body> Programacin web : www.ibserveis.com Leccin 3 : Funciones y lgica.
Solucin 2: <head> <script type="text/javascript">
function calcula(operacio) { var num1; var num2; var res; num1 = parseInt(document.calculadora.valor1.value); num2 = parseInt(document.calculadora.valor2.value);
if (operacio == 1) res = num1 + num2; if (operacio == 2) res = num1 + num2; if (operacio == 3) res = num1 * num2; if (operacio == 4) res = num1 / num2;
document.calculadora.resultado.value = res; }
</script> </head>
<body> <form name="calculadora">
Primer nmero: <input type="text" name="valor1"><br> Segundo nmero: <input type="text" name="valor2"><br>
Programacin web : www.ibserveis.com Leccin 3 : Funciones y lgica.
Ejercicio 3.11) Cdigo en lenguaje C. Qu opinin te merece este cdigo? Se entiende fcilmente? Es ordenado? Est estructurado?
int main() { int num1,num2,resultado=0; char opcion;
printf("Escribe el primer numero:"); scanf("%i",&num1); printf("Escribe el segundo numero:"); scanf("%i",&num2); printf("\nElige la operacion que quieres que ejecute:\n\n"); printf("Para sumar los 2 numeros escribe S o s \n"); printf("Para restar los 2 numeros escribe R o r \n"); printf("Para multiplicar los 2 numeros escribe M o m \n"); printf("Para Dividir los 2 numeros escribe D o d \n\n"); printf("Opcion:"); scanf("%s",&opcion);
if (opcion=='S' || opcion=='s') { resultado=num1+num2; } if (opcion=='R' || opcion=='r') { printf("Si quieres restar num1-num2 elige A a \n"); printf("Si quieres restar num2-num1 elige B b\n"); printf("Opcion:"); scanf("%s",&opcion); if (opcion=='A' || opcion=='a') resultado=num1-num2; else resultado=num2-num1; } if (opcion=='M' || opcion=='m') { resultado=num1*num2; } if (opcion=='D' || opcion=='d') { printf("Si quieres dividir num1/num2 elige A a \n"); printf("Si quieres dividir num2/num1 elige B b\n"); printf("Opcion:"); scanf("%s",&opcion); if (opcion=='A' || opcion=='a') { resultado=num1/num2; } else { resultado=num2/num1; } } printf("\nEl resultado es: %i\n\n", resultado); system ("pause"); } Programacin web : www.ibserveis.com Leccin 3 : Funciones y lgica.
Ejercicio 3.12) NO ejecutar el siguiente programa. Sin ver por pantalla: Qu saldra si se introduce 178? <html> <body> <script type="text/javascript"> var dato; var altura; dato = window.prompt("Escribe tu altura en cm", "0"); altura = parseInt(dato);
Ejercicio 3.13) Colocar punto de interrupcin en primer condicional y depurar paso a paso (F10) Contar cuantas comparaciones en total realiza el programa. Funciona el programa para todos los casos posibles? <html> <body> <script type="text/javascript"> var dato; var altura;
dato1 = window.prompt("Escribe tu altura en cm", "0"); altura = parseInt(dato1); sexo = window.prompt("Escribe si eres Hombre o Mujer (h-m)", "0");
if (altura >180 && sexo =="h") resultado = "Eres alto"; else { if (altura >=150 && sexo =="h") resultado = "Altura media"; else resultado = "Eres bajo"; }
if (altura >170 && sexo =="m") resultado = "Eres alta"; else { if (altura >=130 && sexo =="m") resultado = "Altura media"; else resultado = "Eres baja"; } document.write(resultado); </script> </body> </html> Programacin web : www.ibserveis.com Leccin 3 : Funciones y lgica.
Ejercicio 3.14) Depurar paso a paso (F10) contando comparaciones en total que realiza el programa. <html> <body> <script type="text/javascript"> var dato; var altura;
dato1 = window.prompt("Escribe tu altura en cm", "0"); altura = parseInt(dato1); sexo = window.prompt("Escribe si eres Hombre o Mujer (H-M)", "0");
if (sexo =="H") { if (altura >180) resultado =" Eres alto"; else { if (altura >=150) resultado = "Altura media"; else resultado = "Eres bajo"; } }
Ejercicio 3.16) Cul de los tres programas anteriores es mejor? Por qu? Programacin web : www.ibserveis.com Leccin 3 : Funciones y lgica.
Ejercicio 3.17) Ejecutar el siguiente programa.
Hay un cdigo mejor para obtener el mismo resultado?
<html> <body>
<script language="javascript"> var dia,mes,ao; mes=prompt('Introduzca el nmero del mes:',''); mes=parseInt(mes);
if (mes==1 || mes==3 || mes==5 || mes==7 || mes==8 || mes ==10 || mes==12) { document.write('Este mes tiene 31 dias.'); } else { if (mes==2) document.write('Este mes puede tener 30 dias.'); else document.write('Este mes tiene 30 dias.'); }
</script>
</body> </html> Programacin web : www.ibserveis.com Leccin 3 : Funciones y lgica.
Ejercicio 3.18) Ejecutar el siguiente programa : Mayor de 3 nmeros <html> <head> </head> <body> <script language="javascript"> var num1,num2,num3; num1=prompt('Introduce primer nmero:',''); num2=prompt('Introduce segundo nmero:',''); num3=prompt('Introduce tercer nmero:','');
if (num1>num2 && num1>num3) { document.write('el mayor es el '+num1); } else { if (num2>num3) { document.write('el mayor es el '+num2); } else { document.write('el mayor es el '+num3); } } </script> </body> </html>
Programacin web : www.ibserveis.com Leccin 3 : Funciones y lgica.
Ejercicio 3.19) El siguiente programa Cuntas instrucciones if realiza como mnimo?
<html> <head> </head> <body> <script language="javascript"> var num1,num2,num3; num1=prompt('Introduce primer nmero:',''); num2=prompt('Introduce segundo nmero:',''); num3=prompt('Introduce tercer nmero:','');
Los bucles For permiten racionalizar las instrucciones repetitivas, una forma ms de aplicar la lgica a la programacin.
Los Formularios permiten introduccin de varios datos por parte del usuario.
Para cualquier aclaracin, pueden ponerse en contacto con el autor, a travs de www.ibserveis.com
Est permitido el uso en comn en aulas fsicas donde se enseen asignaturas de programacin. Est prohibido cualquier tipo de distribucin sin permiso del autor. Est prohibida la reproduccin de este curso para su utilizacin comercial.
Programacin web : www.ibserveis.com Leccin 4 : Bucles. Formularios
Informacin del bucle for : http://www.w3schools.com/js/js_loop_for.asp
Ejercicio 4.1) Realizar seguimiento de las variables i , x <html> <body> <p id="central"></p> <script type="text/javascript">
var x="",i;
for (i=0;i<5;i++) { x= x + "El numero es " + i + "<br />"; }
document.getElementById("central").innerHTML=x;
</script> </body> </html>
Ejercicio 4.2) Crear programa para que salga en pantalla los siguiente: 54321 4321 321 21 1
Ejercicio 4.3) Realizar seguimiento de las variables i , x <html> <body> <p id="central"></p> <script type="text/javascript">
var i, j; var x = "<table>";
for (i = 1; i <= 10; i++) // 10 filas { x= x + "<tr>";
for (j = 1; j <= i; j++) // nmeros en cada fila x= x + "<td> El numero es " + i + "<td />";
x = x + "</tr>"; }
x = x + "</table>"; document.getElementById("central").innerHTML= x;
</script> </body> </html>
Ejercicio 4.4) Ejecutar el programa y entender su lgica. <html> <head> <script type="text/javascript"> var fila; var columna = parseInt(window.prompt("Introduce el tamao: ", "0"))
for (fila = 1; fila <= columna; fila++) { for (espacios = columna - fila; espacios > 0; espacios--) document.write("  ");
for (conta = 1; conta < (2 * fila); conta++) document.write("*");
Ejercicio 4.5) En base al ejercicio anterior, realizar programa que dibuja un ROMBO
Ejercicio 4.6) <html> <body>
<p>Pulsa el boton y se crean HTML tags de la 1 a la 6</p> <button onclick="funcion1()">Pulsa aqui</button> <div id="centrakl"></div>
<script type="text/javascript"> function funcion1() { var result="" var i; for (i=1; i<=6; i++) { result = result + "<h" + i + ">Titulo " + i + "</h" + i + ">"; }
Ejercicio 4.7) Buscar informacin y algn ejemplo ms de la propiedad . innerHTML document.getElementById("central").innerHTML= result;
Programacin web : www.ibserveis.com Leccin 4 : Bucles. Formularios
Ejercicio 4.8) Realizar una pgina web, con programacin en Javascript, con al menos una funcin. En esta web se pide al usuario 2 nmeros del 1 al 10. Una vez introducidos los nmeros, el ordenador muestra una tabla (HTML) que contiene la tabla de multiplicar del nmero 1 hasta el nmero2.
Ejemplo: El usuario introduce el nmero 2 y 4 , la web ensea por pantalla: 2 x1 = 2 2 x 2 = 4 2 x 3 = 6 2 x 4 = 8
Ejercicio 4.9) Realizar programa en Javascript: JUEGO DADOS Queremos programar un juego de dados en un pgina web. El usuario empieza con 100 para poder apostar. El usuario decide a que nmero apuesta del 1 al 6, y tambin que cantidad de euros quiere apostar. Se lanza un dado (asignacin al azar de un nmero del a 1 al 6) Si el usuario acierta el nmero, gana el doble de lo que ha postado. Si no acierta, pierde todo lo apostado.
El juego acaba cuand el usuario llega a 0 euros o al llegar a 500 euros
Programacin web : www.ibserveis.com Leccin 4 : Bucles. Formularios
4.11) Realizar programa en el cual el usuario introduce un valor en un FORM y por pantalla sale como resultado su 10%.
Programacin web : www.ibserveis.com Leccin 4 : Bucles. Formularios
4.12) Realizar programa para una web, en el cual el usuario introduce 2 notas y su peso ponderado. Pulsando el botn Calcula , la web muestra como resultado la nota media ponderada.
4.13) Ejecutar el siguiente programa. Que realiza la instruccin eval?
4.14) Fer un seguiment dels valors de les Variables daquest codi (punts dinterrupci) <html> <head> <script type="text/javascript">
function f() { var solo_aqui = 100; z = solo_aqui; } </script> </head>
<body> <script type="text/javascript">
var x, y;
// asignacin y = "Bon dia";
document.write("<p>" + x + "<br></p>"); document.write("<h3>" + y + "</h3>"); f(); document.write("<p>" + z + "<br></p>"); </script>
<p><br>Las variables definidas en la funcin (<var>solo_aqui</var>) existen durante el tiempo de ejecucin de la funcin. El resto son variables globales.</p> </body> </html>
Programacin web : www.ibserveis.com Leccin 4 : Bucles. Formularios
4.15) Del anterior ejercicio: Qu tipo de variable es z? local o global? porqu?
4.16) Aadir una tercera nota el ejercicio de la media ponderada (4.12)
4.17) realizar un programa en el ciual se introduce un valor numrico en un FORM y como resultado se muestran el nresultado de elevar el nmero al cuadrado y tambin al cubo. a) Realizar con una funcin. b) Realizar con al menos , DOS funciones.
Programacin web : www.ibserveis.com Leccin 4 : Bucles. Formularios
FIN EJERCICIOS 4
Prxima leccin: Leccin 5 Arrays
Almacenamiento de mltiple informacin indexada. Al realizar un programa trabajamos con lgica y datos, en la siguiente leccin vemos el inicio de la gestin y almacenaje de datos.
Programacin web : www.ibserveis.com Leccin 5 : Arrays.
Al aumentar el nmero de datos que tiene que manejar un programa, se hace necesaria una forma indexada para manejarlos. A cada uno de los datos, a cada una de esas variables, le corresponder a un nmero que puede controlarse mediante bucles tipo for o mediante contadores en aumento.
Para cualquier aclaracin, pueden ponerse en contacto con el autor, a travs de www.ibserveis.com
Est permitido el uso en comn en aulas fsicas donde se enseen asignaturas de programacin. Est prohibido cualquier tipo de distribucin sin permiso del autor. Est prohibida la reproduccin de este curso para su utilizacin comercial.
Programacin web : www.ibserveis.com Leccin 5 : Arrays.
1) Declaracin y uso de Arrays. <!DOCTYPE html> <html> <body> <script type="text/javascript">
for (var i = 0; i < 4; i++) document.write(nuevosCoches[i] + "<br>");
</script>
</body> </html>
2) Iniciacin a los Arrays. Propiedad lenght <html> <body>
<script type="text/javascript">
var dias = new Array("lunes", "martes", "mircoles", "jueves", "viernes", "sbado", "domingo");
document.write("<h2>Das de la semana</h2>");
for (var i = 0; i < dias.length; i++) document.write(dias[i] + "<br>");
</script> </body> </html>
Programacin web : www.ibserveis.com Leccin 5 : Arrays.
3) Recorrido inverso. <html> <body>
<script type="text/javascript">
var dias = new Array("lunes", "martes", "mircoles", "jueves", "viernes");
document.write("<h2>Das de la semana</h2>");
final = (dias.length -1);
for (var i = final; i >1 ; i=i-2) document.write(dias[i] + "<br>");
</script> </body> </html>
4) Uso del ndice <!DOCTYPE html>
<script type="text/javascript"> <!-- var dias = new Array("lunes", "martes", "mircoles", "jueves", "viernes");
document.write("<h2>Das de la semana</h2>");
dato1 = window.prompt("Introduce nmero del 1 al 7", "0"); num1 = parseInt(dato1);
document.write("</br></br>"); document.write("El dia introducido es: " + dias[num1]); //--> </script>
Programacin web : www.ibserveis.com Leccin 5 : Arrays.
5) Modificar Array.
<script type="text/javascript"> <!-- var alum = new Array("Andres", "Angela", "Bernat", "Carol", "Maria", "Joan"); var notas = new Array(6);
for (var x = 0; x < 6; x++) notas[x] = 5;
document.write("<h2>Notas de la asignatura</h2>");
v_dato = window.prompt("Dime el nmero del alumno (0-5)", "0"); valor = parseInt(v_dato); document.write("</br></br> La nota de " + alum[valor] + " al iniciar es " + notas[valor]);
datonota = window.prompt("Introduce su nueva nota", "0"); numnota = parseInt(datonota);
notas[valor] = numnota;
document.write("</br></br><h2>Las notas finales son</h2>");
for (var i =0; i <5 ; i++) { document.write( i + "-" + alum[i]); document.write(notas[i] + "<br>"); } //--> </script>
6) Propiedades disponibles: PUSH
<script type="text/javascript"> <!-- var dias = new Array("lunes", "martes", "mircoles", "jueves", "viernes");
dias.push(100);
document.writeln(dias); //--> </script>
Programacin web : www.ibserveis.com Leccin 5 : Arrays.
7) Funciones MOSTRAR array - Funcin Modificar arrays (variables globales) UTILIZAR PUNTOS INTERRUPCIN para seguir el valor de las variables dentro y fuera de las funciones
// Variables Globales var alum = new Array("Ana", "Bernat", "Carol", "David", "Elena", "Francesc"); var notas = new Array(6); for (var x = 0; x < 6; x++) notas[x] = 10;
function mostrar() { document.write("<h2>Los datos ahora son </h2>"); for (var i =0; i <5 ; i++) { document.write( i + "-" + alum[i]); document.write(notas[i] + "<br>"); } }
function modificar(numalumno) { nuevanota = window.prompt("Introduce su nueva nota", "0"); valornota = parseInt(nuevanota);
notas[numalumno] = nuevanota; } </script> </head>
<body> <script type="text/javascript">
document.write("<h3> Inicio Programa Notas </h3>"); mostrar();
dato = window.prompt("Dime el nmero del alumno (0-5)", "0"); x = parseInt(dato);
modificar(x); mostrar(); </script>
<p></br>Final Programa</p>
</body> </html>
Programacin web : www.ibserveis.com Leccin 5 : Arrays.
8) Funcin rollover (aadir imgenes prova1.gif , prova2.gif en la misma carpeta)
<head> <script type="text/javascript"> imagen01 = new Image() imagen01.src = "prova1.gif" imagen02 = new Image() imagen02.src = "prova2.gif"
function rollover(nombreimagen, nova) { document.images[nombreimagen].src = nova.src } </script> </head>
9) Clase Strings (tipo particular de Array de caracteres) <body> <script type="text/javascript">
var str = "abcdefghijklmnopqrstuwxyz"; document.write("Nmero de caracteres de " + str + ": " + str.length);
</script>
</br><p>Valor de la propiedad <b>length</b> es el nmero de caracteres de un <em>string</em>.</p> </body> </html>
10) Strings - Substring <script type="text/javascript"> var str = "abcdaafgaa6hijkaa2ml";
document.write(str.substring(8)); document.write("<br>"); document.write(str.substring(5, 9)); </script> <p><br></p> <p>El mtodo <b>substring</b> retorna una subcadena entre los ndices dados.</p> </body> </html> Programacin web : www.ibserveis.com Leccin 5 : Arrays.
11) Realizar programa donde el usuario introduce una palabra y el ordenador responde , calculando resultado en una FUNCIN, el nmero total de vocales de esa palabra.
12) Realizar programa donde el usuario introduce una palabra. El programa consta, de al menos, DOS FUNCIONES: la funcin f_vocales(variable) recibe la palabra y saca por pantalla el nmero total de vocales de esa palabra. La segunda funcin se llama f_total(variable), esta funcin recibe la palabra y saca por pantalla el nmero total de letras.
Programacin web : www.ibserveis.com Leccin 5 : Arrays.
13) Programa Marco de Fotos
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Marco de fotos</title> <script language="javascript" type="text/javascript">
// Creamos una nueva propiedad para el objeto Array Array.prototype.pasarMayusculas=function() { for (i=0;i<this.length;i++) { this[i]=this[i].toUpperCase(); } }
function Transformar() // Utilizamos la "nueva" propiedad pasarMayusculas { Alumnos.pasarMayusculas(); }
function Mostrar() { var objVer=document.getElementById("iniciar"); objVer.innerHTML=Alumnos; } </script>
<body> <p id="iniciar">Primero puedes Ver, luego pasar a maysculas y volver a Ver</p> <br/><br/> <button onclick="Mostrar()">Ver Alumnos</button> <button onclick="Transformar()">Pasar a maysculas</button>
</body> </html>
Programacin web : www.ibserveis.com Leccin 5 : Arrays.
15) Crear programa con dos Arrays, el primero llamado DatosIniciales con 10 nmeros entre el 0 y el 50. El segundo Array se llama DatosFinales, y se declara con 10 posibles valores (0 hasta 9). A travs de una funcin, se rellena el Array DatosFinales con los nmeros mayores de 25 del Array DatosIniciales.
16) Array bidimensional: 3 asignaturas, 5 alumnos (15 notas en total) <html><head> <script type="text/javascript"> // Declaracin global var notas = new Array (6); for(i=1;i<6;i++) notas[i]=new Array(4); // 3 asignaturas cada alumno.
function inicializar() { for (var i = 1; i < 6; i++) // Cada Alumno for (var j = 1; j < 4; j++) // 3 notas notas [i][j] = 0; } function mostrar() { document.write("<h3>Los datos ahora son: </h3>");
for (var i = 1; i < 6; i++) // Cada Alumno for (var j = 1; j < 4; j++) document.write("Alumno " + i + " , nota : " + notas[i][j] + "<br>"); } function modificar(numalumno) { dato= window.prompt("Introduce asignatura para cambiar nota", "0"); asignatura = parseInt(dato);
nuevanota = window.prompt("Introduce su nueva nota", "0"); valornota = parseInt(nuevanota);
if (opor == 1) { alert("Game Over | La solucin era: " + elegida); bloquear(); } }
if (correcto == introducidas) { alert("Has ganado!!"); bloquear(); }
} // fin cdigo Jugar Programacin web : www.ibserveis.com Leccin 5 : Arrays.
//Cdigo SOLUCIONAR
function solucionar() {
var solucion;var word; solucion = document.getElementById("formsolucion").value;
if (solucion == elegida) { alert("Has ganado!!"); bloquear();
for (i = 0; i <= elegida.length; i++) { word = (elegida.substr([i], 1)); if (word != " ") { document.getElementById('casilla' + i).value = word; } } } else { alert("No es esa, sigue intentandolo..."); document.getElementById('formsolucion').value = ""; } } // fin cdigo Solucionar
//FUNCION RECONOCER INTRO function validarEnter(event) {
var key = event.keyCode || event.which; if (key == 13) {return true;} else { return false;} }
// Valores INICIALES palabras = new Array("PULP FICTION", "EL CODIGO DA VINCI", "FUGA DE CEREBROS", "JUNGLA DE CRISTAL", "LOS PADRES DE ELLA", "LA RED SOCIAL", "PIRATAS DEL CARIBE", "MISION IMPOSIBLE", "STAR WARS", "EL PADRINO", "EL SEOR DE LOS ANILLOS", "TITANIC");
letrasmal = new Array(); usadas = new Array();
var alea = parseInt(Math.random() * (palabras.length)); var elegida = palabras[alea]; var numletras = elegida.length; var numcasillas; var espacios = 0;