JAVASCRIPT.pptx

44
ALGORITMOS

Transcript of JAVASCRIPT.pptx

ALGORITMOS

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

Palabras reversadas

• Palabras propias del lenguaje

Palabras reservadas

script

var

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

Quiz

Hacer un algoritmo que simule el comportamiento de un reloj digital,imprimiendo la hora, minutos y segundos de un día desde las 00:00:00 horas hasta las 23:59:59 horasHacer prueba de escritorio.