javascript.pptx
TRANSCRIPT
CONTENIDO
ESTRUCTURA DE UN ALGORITMO
ESTRUCTURS DE CONTROL CONDICIONALES
COMENTARIOS
INSTRUCCIÓN DE SALTO (vaya_a)
CONTADORES
ACUMULADORES
ESTRUCTURS DE CONTROL CONDICIONALES REPETITIVAS
INTRODUCCION
Que es un algoritmo?
•Hombre ejecuta algoritmos constantemente
• Cajero automático
• Ir a clase
•Lenguaje algorítmico, permite plasmar claramente los pasos o instrucciones
•Lenguaje algorítmico (sencillo, formal, transición)
•Javascript: Lenguaje interpretado embebido en una página web HTML.
Secuencia de pasos o instrucciones, realizados en un orden determinado, con
un fin claramente definido
Estructura de un algoritmo
<script type=“text/javascript”>
</script>
CUERPODEL
ALGORITMO
DELIMITADORES• No implican ejecución de
acción alguna.• Uso obligatorio• Palabras reservadas
Tiene significado especial dentro del algoritmo y por lo tanto su
uso es restringido.
Que hay?•Instrucciones ejecutables•Instrucciones no ejecutables•Entrada de datos•Procesamiento de datos•Presentación de resultados
Los algoritmos son sensibles a minúsculas / mayúsculas.
Estructura de un algoritmo<html> <head> </head> <body> <a href=http://www.escuelaing.edu.co>ECI</a>
<script type="text/javascript"> document.write('Hola Mundo');
</script> <input type="button" id="send" value="Trx" /> </body></html>
DELIMITADORES
Tiene significado especial dentro del algoritmo y por lo tanto su uso es
restringido.
Cuerpo del algoritmo
Variables
Lugares de memoria donde se pueden almacenar datos
Característica de las variables
Nombre Referencia a un espacio de memoria específico.Representativo al contenido.
Tipo
Naturaleza del dato
entero
real
carácter
Cadena de caracteres
Contenido Dato almacenado
Declaración de variables
Una variable existe si tiene asignado un espacio de memoria
Antes de cualquier instrucción ejecutable
var tipo lista_de_variables
entero
real
caracter
Cadena_de
•Instrucciones declarativas•No ejecutables (no afectan contenido de variables, solo reserva
memoria)•Palabras reservadas NO pueden ser utilizadas como nombres de variables.
Ej: <html> <head> </head> <body> <script type="text/javascript"> var nombre, edad, altura, casado, genero;
nombre='FRANCISCO'; edad=10; altura=1.80; casado=true; genero='M' ; </script> </body></html>
Declaración de variables
Al ejecutar este algoritmo se genera
ENTORNO DE MEMORIA
Variable Tipo Contenido
nombre ? ?
edad ? ?
altura ? ?
casado ? ?
genero ? ?
A la variable no se le ha definido tipo ni
valor“basura”
El tipo de variable es de acurdo con el valor
asignado.
Se solicita espacio en memoria para cinco variables.
Instrucción de asignación
Permite cambiar el contenido de una variable
Operaciones aritméticas solo con variables numéricas
Instrucción de asignación Tipo de variable Observación sobre la instrucción
nombre = ‘x’ caracter Es válida e implica el cambio del contenido de la variable nombre por el carácter x.
edad = ‘8’ caracter Es válida e implica el cambio del contenido de la variable edad por el carácter 8.
edad = x caracter Es válida siempre y cuando la variable x exista y sea de tipo carácter. Implica el cambio del contenido de la variable edad por el contenido de la variable x.
pais = “Colombia campeon” cadena_de 20 Es válida e implica el cambio del contenido de la variable pais por la cadena de caracteres Colombia campeon
valor = “3” cadena_de 10 Es válida e implica el cambio del contenido de la variable valor por la cadena de caracteres 3.
saldo = b cadena_de 12 Es válida siempre y cuando la variable b exista y sea de tipo cadena de caracteres. Implica el cambio del contenido de la variable saldo por el contenido de la variable b.
Instrucción de asignación
Variables numéricas
a = 5
5 = a
a == 5
5 != a
a = dContenido de la variable
a es cambiado por el contenido de la variable d
Entorno de memoria para…
…a = 8d = a…
…a = 8d = d + a…
Inicializar una variable significa definir su
contenido (con instrucciones de
asignación)
Operadores aritméticosSuma +
Resta -
Multiplicación *
División /
variable = •Constante•Variable•Expresión
Ej: Sumar los números 7 y 20
<html> <head> <title> SUMAR DOS NUMEROS </title> </head> <body>
<script type="text/javascript"> var resultado ;
resultado = 7 + 20 ;
</script> </body></html>
Entorno de memoria
Terminación anormal de un algoritmo “aborto”
Otra forma de hacer el algoritmo
Operaciones entre enteros y reales
Tener presente tanto la operación como los tipos de los operandos (entero / real)
1--- = 0.52
Instrucción Operandos Resultado Observaciones
n1 n2 res
res = n1 + n2 entero entero entero Para la división, si los operandos son enteros, se trunca la parte decimal (1/2=0)res = n1 - n2 entero real real
res = n1 * n2 real entero real
res = n1 / n2 real real real
La parte decimal se indica con
punto (.)
Operaciones entre enteros y reales
Instrucción Operandos Resultado Observaciones
op1 op2 op3 res
res = op1+op2-op3 4 7 13.8
res = op1/op2 + 101 6 4
res = op3*2 – op1/2.0 5 5 2
res = op1 + op2/3 17 14
-2.8
102
1.5
21
Por lo menos uno de los operandos es real, por lo tanto el resultado es un real
Como op1 y op2 son enteras, op1/op2 da 1 y no 1.5
Aunque op1 es entero op1/2.0 da 2.5, por que 2.0 es una constante real
Como op2 es una variable entera y 3 es una constante entera, op2/3 da un entero.
Ejercicios
Supóngase que las variables op1 y op2 son enteras y que op3 es real.
Generalizar “suma_de_7_y_20”
Instrucciones de entrada o salida
Usuario vs. Computador(usuario hace los requerimientos y se beneficia del algoritmo)
Instrucción de entrada
prompt• Permite la comunicación del usuario con la máquina.• Consiste en almacenar en una variable el valor
suministrado por el usuario.• Una lectura implica una asignación.
variable=prompt( ‘',’' ) ;• 20 = prompt( ‘ingrese nombre’,’ ‘ ) ; ?
Instrucciones de i/o
Instrucción de salida
document.write• Permite la comunicación de la máquina con el
usuario.
• document.write( a, b, c );• document.write( ‘sppc-1’ );• document.write( ‘edad:’, a );
•document.write( a, b, c );•document.write(‘grupo 1 de SPPC’ );
•document.write( ‘edad:’, a);
1. Sumar dos números.
PRUEBA DE ESCRITORIO
Instrucción Efecto
Prueba de escritorio
• Ejecución de un algoritmo es hacer las veces de máquina• Su efecto se refleja en la pantalla y en el entorno de memoria.
<html> <head> <title> SUMAR DOS NUMEROS </title> </head> <body> <script type="text/javascript">
var num1,num2,suma
document.write( 'Suma de dos numeros cualesquiera’ ) ;document.write( ‘Por favor dame el primer número.’ );num1 = prompt( ‘Numero 1’ ) ;document.write( ‘Por favor dame el segundo número.’ );num1 = prompt( ‘Numero 1’ ) ;Suma = num1 + num2document.write( num1,'+',num2,'=',suma ) ;document.write( 'Suma de dos numeros finalizada' ) ;
</script> </body></html>
• ¿Qué pasa si el usuario ingresa un valor real en lugar de uno entero?
• ¿Cómo seria la versión de esta solución para números reales?, y si ingresa números enteros?
• ¿Cómo condicionar el algoritmo a suma de dos números enteros positivos?
• Necesitamos la forma de condicionar la realización de la suma.
• Para establecer relación entre los operandos necesitamos los operadores relacionales.
• Para exigir que la condición “ser positivo” sea satisfecha por ambos operandos se requiere de los conectores lógicos.
Var Tipo Cont
num1 entero ?
num2 entero ?
suma entero ?
Por favor dame el primer
número
Var Tipo Cont
num1 entero 13
num2 entero ?
suma entero ?
Por favor dame el segundo número
Var Tipo Cont
num1 entero 13
num2 entero -4
suma entero 9
Var Tipo Cont
num1 entero 13
num2 entero -4
suma entero ?
13 + -4 = 9Suma de dos
números finalizada
El espacio de memoria reservado para las variables num1, num2 y suma quedan libres
Operadores relacionales
Permiten establecer relaciones entre los operandos.
CONDICIONES
Operador Descripción
== Igual que
> Mayor que
< Menor que
!= Diferente de
>= Mayor o igual que
<= Menor o igual que
Conectores lógicos
Permiten la creación de condiciones compuestas
&&, ||
Condición Expresión
num1 sea mayor que cero num1 > 0
num2 sea mayor que cero num2 > 0
Restringir la suma a operandos positivos num1 > 0 && num2 > 0
Condición simple Condición
simple
Condición compuestaNecesitamos una herramienta que nos permita
preguntar si la condición se satisface.
Estructuras de control condicionales
Permite que la realización de una o más acciones este sujeta a la satisfacción/cumplimiento de una o más condiciones
Estructuras de control condicional NO REPETITIVA
Estructuras de control condicional REPETITIVA
Estructuras de control condicional NO repetitiva if simple
Se utiliza cuando el cumplimiento de la condición o de las condiciones implica la ejecución de una sola instrucción.
if ( condición o condiciones ) instrucción
Por que al cumplirse la condición la instrucción se ejecuta una y solo una vez
Evaluación e dos o más condiciones conectadas con y o con óc1 c2 c1 y c2 c1 ó c2F F F FF V F VV F F VV V V V
if ( k > 0 ) document.write( k,”es un número positivo.” ) ;
Ejercicios
Construya la condición o las condiciones que permitan evaluar si:• El valor de la variable m está entre -2 y 10. (m ≥ -2 &6 m ≤ 10 )• El valor de la variable m es un número par que pertenece al
intervalo (c,d]. ( (m/2)*2 = m && (m > c && m ≤ d) )• El valor de la variable m debe ser 2 veces el valor de la
variable n si el valor de n es negativo. Si n es positivo, m debe ser 10 veces el valor de n.
( (m=2*n && n < 0) || (m=10*n && n>0) )
Estructuras de control condicional NO repetitiva if simple
<script type=“text/javascrpt”>
var num1,num2,suma;
document.write( “Suma de dos números cualesquiera” );
document.write( “Por favor dame el primer número.” );num1 = prompt( “priemr numero” ) ;
document.write( “Por favor dame el segundo número.” );num2 = prompt( “segundo numero” ) ;
suma = num1 + num2
document.write( num1,”+”,num2,”=“,suma);
document.write( “Suma de dos números finalizada” );</script>
<script type=“text/javascrpt”>
var num1,num2,suma;
document.write( “Suma de dos números positivos cualesquiera” );
document.write(“Por favor dame el primer número.” );num1 = prompt( ”primer numero” );document.write(“Por favor dame el segundo número.” );num2 = prompt( ”segundo numero” );
if ( num1 > 0 && num2 > 0 ) suma = num1 + num2;if ( num1 > 0 && num2 > 0 ) document.write(suma,”=“,num1,”+”,num2 );
document.write(“Suma de dos números finalizada” );</script>
Estructuras de control condicional NO repetitiva if de bloque
Se utiliza cuando el cumplimiento de la condición o de las condiciones implica la ejecución de una o más instrucciones.
if ( condición o condiciones ) {
}
CUERPODELIF
Estructuras de control condicional NO repetitiva if de bloque
<script type=“text/javascrpt”>var num1,num2,suma;
document.write( “Suma de dos numeros positivos cualesquiera” );
num1 = prompt( ” Por favor dame el primer numero.” );num2 = prompt( ” Por favor dame el segundo numero.” );
if ( num1 > 0 && num2 > 0 ) { suma = num1 + num2; document.write(suma,”=“,num1,”+”,num2 );}document.write(“Suma de dos números finalizada” );
</script>
Estructuras de control condicional NO repetitiva if de bloque
“suma_dos_numeros_enteros_positivos”<script type=“text/javascript”>
var num1,num2,suma, resp, nombre ;
document.write( “Suma de dos números positivos cualesquiera ¿Deseas intentarlo (s:si, cualquier otro caracter: no)” ) ;resp = prompt ( “Continuar” ) ;
if ( resp = ‘s’ || resp = ‘S’ ) { document.write( “¿Cual es tu nombre?” ) ; nombre = prompt( “Nombre” ) ;
document.write( nombre,“, por favor dame el primer número.” ) ; num1 = prompt( “Numero1” ) ;
document.write( nombre,“, por favor dame el segundo número.” ) ; num2 = prompt( “Numero” ) ;
if ( num1 > 0 && num2 > 0 ) { suma = num1 + num2 document.write( suma,”=“,num1,”+”,num2 ) ; }
if ( num1 ≤ 0 || num2 ≤ 0 ) document.write( “Uno o los dos números es(son) negativo(s) o cero” ) ; document.write( nombre,“, hasta luego.” ) ; document.write( “Tarea finalizada.” ) ;}
if ( resp ≠ ‘s’ && resp ≠ ‘S’ ) { escriba “Bueno… será en otra ocasión.”}
</script>
Estructuras de control condicional NO repetitiva if de bloque con opción else
Permite ordenar la ejecución de una o más instrucciones en caso de que la condición no se cumpla.
if ( condición o condiciones ) {
}else {
}
CUERPODELIF
CUERPODELelse
Solo se ejecuta uno de los dos
Si SI se cumple la condición
Si NO se cumple la condición
Estructuras de control condicional NO repetitiva if de bloque con opción else
<script type=“text/javascript” >
var num1,num2,suma, resp, nombre ;
resp = prompt( ““Suma de dos números positivos cualesquiera ¿Deseas intentarlo (s:si, cualquier otro caracter: no)” ) ;
if ( resp = ‘s’ || resp = ‘S’ ) { nombre = prompt( “¿Cual es tu nombre?” ) ;
num1 = prompt( “nombre,“, por favor dame el primer número.” ) ;
num1 = prompt( “nombre,“, por favor dame el segundo número.” ) ;
if ( num1 > 0 && num2 > 0 ) { suma = num1 + num2 document.write( suma,”=“,num1,”+”,num2 ) ; } else {
document.write( “Alguno de los número es ≤ a cero.”) ; }
document.write( nombre,“, hasta luego.” ) ; document.write( “Tarea finalizada.” ) ;}else { document.write( “Bueno… será en otra ocasión.” ) ;}
</script>
Estructuras de control condicional NO repetitiva if de bloque con opción else
…if ( … ) {
…if ( … ) {
…if ( … ) }
…if ( … ) instrucción
} else {
…}…
} else {
…}…
}
…
…if ( … ) {
…if ( … ) {
…}
else {…
}…if ( … )
instrucciónif ( … ) {
…}
}…
COMENTARIOS
Anotaciones que se hacen en el algoritmo con el fin de documentarlo o hacer aclaraciones sobre partes complejas del mismo.
//Directorio de variables: Descripción del uso que se le da a cada variable dentro del algoritmo.
<script type=“text/javascript”>// Suma de dos númerosvar num1,num2,suma ;
// Directorio de variables// num1: primer número// num2: segundo número// suma: resultado de num1 + num2
dcoment.write( “Suma de dos números positivos cualesquiera” ) ;
num1=prompt(“primer numero” ) ; // primer número
num2 = prompt(“segundo numero” ) ; // segundo número
// Verifica que los dos números sean positivos,// para realizar la suma y escribir el resultado.if ( num1 > 0 && num2 > 0 ) { suma = num1 + num2 document.write( suma,”=“,num1,”+”,num2) ;}
document.write( “Suma de dos números finalizada”);
</script>
COMENTARIOS
<script type=“text/javascript”>
escriba “Que hace este algoritmo”
</script>
<script type=“text/javascript”>
// escriba “Que hace este algoritmo”
</script>
Estructuras de control condicionales repetitivas
Permiten alterar la secuencia de ejecución del algoritmo.
Son repetitivas por que al cumplirse la condición, su cuerpo de instrucciones se ejecutará automáticamente hasta que la evaluación de la condición deje de ser verdadera.
A cada ejecución del cuerpo de la estructura de control condicional repetitiva se le llama Iteración.
Estructuras de control condicionales repetitivaswhile (mientras que)
Permite ordenar la ejecución de una o más instrucciones en caso de que la condición se cumpla.
while ( condición o condiciones ) {
}
CUERPODELmq CICLO:
Posibilidad de ejecutar una serie de instrucciones más de una vez.
Verdadera
• Caulquier instrucción.• Recomendaciones:
• No utilizar instrucciones que modifiquen aquellas variables utilizadas en la condición (ciclo infinito).
Variables de control
Ejercicios
Pedir números a un usuario hasta que el número dado sea negativo.
<script type=“text/javascript”>// Números negativosvar num;
// Directorio de variables// num: número a ser analizado
document.write( “Digite números hasta que ingresar negativo” ) ;
num = 0;while ( num >= 0 ) { document.write( “Por favor dame un número.” ) ; num = prompt(“numero” ) ; // cualquier número}
document.write( “Ingresaste el número negativo”, num ) ;
</script>
Ejercicios(Contador y Acumulador)
1. Imprimir por pantalla los números del 1 al 100.2. Imprimir por pantalla los números pares del 1 al 100.3. Imprimir por pantalla la suma de los números del 1 al 100.4. Calcular la edad y la matrícula promedio para “n” estudiantes.<script type=“text/javascript”>
var num;
document.write( “Serie de numeros del 1 al 100” );
num = 1;
while( num <= 100 ) { document.write( num + “ “ ); num = num + 1;}
document.write(“FIN” );</script>
1ro. Inicialización de la variable de
control
2do. Condición
3ro. Manejo de la variable_de_control
Ejercicios
1. Para n números ingresados por el usuario diga:– Cuantos son pares– Cuantos son impares– Valor de la sumatorio de los números pares– Valor de la sumatoria de los números impares
2. Calcular iterativamente la suma 1+2+3+ ...+n, donde n es un valor dado. Validar que n > 1.
3. Para el siguiente par de funciones, encontrar el valor de N tal que f(N) > g(N):– f(N) = 20*N² + 100– g(N) = N³ + 2*N + 17
Ejercicios4. Dada una cantidad de números “n”, decir cuanto números son mayores que cero y
cuantos son menores que cero.5. Decir cuantas veces el usuario ingresa la frase “Hola Mundo”.6. Escribir por pantalla la palabra “SPPC1” tantas veces como el usuario lo desee.7. Dada una cantidad de números “n”, calcular su suma y su media aritmética.8. Haga prueba de escritorio al siguiente algoritmo:
“ejercicio_8”
empiece
entero cont,lim
lim 10
cont 1
mq ( cont < lim ) haga
escriba cont
cont cont + 1
lim lim + 1
fin_mq
escriba “Valor de cont: “, cont
escriba “Fin del ejercicio 8”
pare
termine
Ejercicios9. De “n” números dados, sumar los que son menores que un número dado
y multiplicar los que sean mayores o iguales a ese valor dado.10. Averiguar la longitud y la cantidad de vocales que hay en un texto que
finaliza con el caracter asterisco (*).11. Construya un algoritmo que pida los límites de un intervalo y escriba los
números reales que pertenecen a el, de 0.1 en 0.1.12. Construya un algoritmo que genere una secuencia de números como la
que se muestra en el ejemplo, de acuerdo con el valor de un entero positivo ingresado por el usuario.
Ej 1:– Valor entero suministrado por el usuario: 4– Resultado: 1 2 2 3 3 3 4 4 4 4
Ej 2:– Valor entero suministrado por el usuario: 5– Resultado: 1 2 2 3 3 3 4 4 4 4 5 5 5 5 5
Ejercicios13. Generar la tabla de multiplicar que el usuario desee. El multiplicador deberá variar desde 0
hasta 9.14. Generar las tablas de multiplicar del 1 al h, donde h > 0 y el multiplicador va de 0 a 9.15. Escriba un algoritmo que genere la siguiente secuencia de números enteros : Valor dado por el usuario: 5
1 3 3 5 5 5 5 7 7 7 7 7 7 7 7 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 El valor entero positivo es el único dato que el usuario tiene que suministrar.16. Escriba un algoritmo que genere la siguiente secuencia de números enteros : Valor dado por el usuario: 4
1 4 4 9 9 9 16 16 16 16El valor entero positivo es el único dato que el usuario tiene que suministrar.
17. Hacer un algoritmo que genere los primeros 11 términos de la serie de Fibonacci.18. Obtener el resultado de las siguientes operaciones sin utilizar los operadores de
multiplicación y división.– m / n– m * n
Estructuras de control condicionales repetitivasfor
for( expr1 ; expr2 ; expr3 ) {
}
CUERPODELfor
CICLO: Posibilidad de
ejecutar una serie de instrucciones más de una vez.
1ro. Inicialización
2do. Condición implícitavariable_de_control ≤ valor_final
3ro. Se incrementa en 1 la variable_de_control
• expr1: Se evalúa incondicionalmente una vez al principio del bucle.• expr2: Se evalúa al principio de cada interacción, si se evalúa como TRUE, el bucle continua, y se ejecutan las instrucciones que conforman el cuerpo del for. Si se evalúa como FALSE, la ejecución de las instrucciones del cuerpo del for termina.• expr3: Se ejecuta al final de cada iteración.
Estructuras de control condicionales repetitivasfor
Ejemplos…for( i=1 ; i <= 5 ; i=i+1 ) { document.write( “Colombia” ) ;}…
…for( i=5 ; i < 1 ; i=i+1 ) { document.write( i ) ;}…
…num = 1 ;for( i=1 ; i<=4 ; i=i+1 ) { document.write( num ) ; num = num + 1 ;}…
Escriba los números impares del 1 al 100 (utilizando estructura para)
…for( i=-7 ; i < -1 ; i=i+1 ) { document.write( i ) ;}…
Escriba los números impares del 1 al 100 (utilizando estructura while)
Quiz
Generar las tablas de multiplicar del 1 al 9, donde laprimera tabla que
se debe mostrar es la que el usuario desee.
NOTA: El multiplicador deberá variar desde 0 hasta 9.
Ej: Número dado por el usuario n=5
La primera tabla debe ser la del 5, seguida por las tablas del 1, 2, 3, 4,
6, 7, 8 y 9
5X0 1x0 2x0 3x0 4x0 6x0 7x0 8x0 9x0
5x1 1x1 2x1 3x1 4x1 6x1 7x1 8x1 9x1
... ... ... ... ... ... ... ... ...
5x9 1x9 2x9 3x9 4x9 6x9 7x9 8x9 9x9
EjerciciosPruebas de escritorio
<script type=“text/javascript”> var cont, num ; num = 3 ; cont = 15 ; while( cont >= 2 ) { document.write( num ) ; num = num + 3 ; cont = cont – 7 ; }</script>
1. Qué hace el algoritmo?2. Valor final de las variables num y cont?
<script type=“text/javascript”> var cont ; for( cont=1 ; cont<=100 ; cont=cont+1 ) { document.write( “Quien mal anda, mal acaba.” ) ; }</script>
3. Que hace el algritmo?4. Valor final de la variable cont?
EjerciciosPruebas de escritorio
<script type=“text/javascript”> var x, m ; x = 3 ; for( m=2+x ; m <= 10 ; m=m+2 9 { document.write( m 9 ; }</script>
1. Que hace el algoritmo?2. Valor final de las variables x y m?
Pedir un número entero positivo n a un usuario y hacer lo sgte:
• Si el número es par, que escriba los números de 1 a n asi:
n = 101 10 2 9 3 8 4 7 5 6
• Si el número es impar, que escriba los números de 1 a n asi:
n = 749 25 9 1