Elementos de Scripts Leonel Morales Díaz Ingeniería Simple [email_address] Disponible en: http://www.ingenieriasimple.com/introprogra Copyright 2008 by Leonel Morales Díaz – Ingeniería Simple. Derechos reservados
Ejemplo <HTML> <Head><Title>Esta página se construye dinámicamente</Title></Head> <Body> <H1>Esta tabla de 20x40 se construye dinámicamente</H1> <Div Align=Center><Table Border=1 Width=80%> <Script Language=“VBScript”> Option Explicit Dim i,j For i=1 To 20 Document.Write “<TR>” For j=1 To 40 Document.Write “<TD>&nbsp;</TD>” Next Document.Write “</TR>” Next </Script> </Table></Div></Body></HTML> ej036.html
Algoritmo Conjunto ordenado y finito de operaciones Que solucionan un problema
Algoritmo Tabla de 20 x 40 Hacer 20 filas En cada fila hacer 40 celdas Da la idea pero ... ... Muy general ...
Algoritmo Hacer 20 veces lo siguiente: Dibujar el inicio de la fila Hacer 40 veces lo siguiente: Dibujar una celda Dibujar el final de la fila Mejor, pero... ... No es fácil codificarlo ...
Algoritmo Poner i en 0 Hacer el siguiente bloque si i < 20 Dibujar inicio de fila Poner j en 0 Hacer el siguiente bloque si j < 40 Dibujar una celda Hacer j = j + 1 Dibujar el final de la fila Hacer i = i + 1
Algoritmo Poner i en 0 Hacer el siguiente bloque si i < 20 Dibujar inicio de fila Poner j en 0 Hacer el siguiente bloque si j < 40 Dibujar una celda Hacer j = j + 1 Dibujar el final de la fila Hacer i = i + 1 Dim i,j For i=1 To 20 Document.Write “<TR>” For j=1 To 40 Document.Write “<TD>&nbsp;</TD>” Next Document.Write “</TR>” Next
Algoritmo Poner i en 0 Hacer el siguiente bloque si i < 20 Dibujar inicio de fila Poner j en 0 Hacer el siguiente bloque si j < 40 Dibujar una celda Hacer j = j + 1 Dibujar el final de la fila Hacer i = i + 1 Dim i,j For i=1 To 20 Document.Write “<TR>” For j=1 To 40 Document.Write “<TD>&nbsp;</TD>” Next Document.Write “</TR>” Next
Algoritmo Poner i en 0 Hacer el siguiente bloque si i < 20 Dibujar inicio de fila Poner j en 0 Hacer el siguiente bloque si j < 40 Dibujar una celda Hacer j = j + 1 Dibujar el final de la fila Hacer i = i + 1 Dim i,j For i=1 To 20 Document.Write “<TR>” For j=1 To 40 Document.Write “<TD>&nbsp;</TD>” Next Document.Write “</TR>” Next
Algoritmo Poner i en 0 Hacer el siguiente bloque si i < 20 Dibujar inicio de fila Poner j en 0 Hacer el siguiente bloque si j < 40 Dibujar una celda Hacer j = j + 1 Dibujar el final de la fila Hacer i = i + 1 Dim i,j For i=1 To 20 Document.Write “<TR>” For j=1 To 40 Document.Write “<TD>&nbsp;</TD>” Next Document.Write “</TR>” Next
Algoritmo Poner i en 0 Hacer el siguiente bloque si i < 20 Dibujar inicio de fila Poner j en 0 Hacer el siguiente bloque si j < 40 Dibujar una celda Hacer j = j + 1 Dibujar el final de la fila Hacer i = i + 1 Dim i,j For i=1 To 20 Document.Write “<TR>” For j=1 To 40 Document.Write “<TD>&nbsp;</TD>” Next Document.Write “</TR>” Next
Algoritmo Poner i en 0 Hacer el siguiente bloque si i < 20 Dibujar inicio de fila Poner j en 0 Hacer el siguiente bloque si j < 40 Dibujar una celda Hacer j = j + 1 Dibujar el final de la fila Hacer i = i + 1 Dim i,j For i=1 To 20 Document.Write “<TR>” For j=1 To 40 Document.Write “<TD>&nbsp;</TD>” Next Document.Write “</TR>” Next
Algoritmo Debe ser independiente del lenguaje Debe ser general Puede ser: Subalgoritmo: si no funciona para todos los casos Algoritmo: si funciona para todos los casos Entendible por una “máquina” En el lenguaje de la máquina
Ejemplo <HTMl><Head><Title>Crea una tabla dinámicamente</Title></Head> <Body> <Table Border=1 Width=80%> <Script Language=&quot;javascript&quot;> With(document) { for (var i=0;i<20;i++) { write(&quot;<TR>&quot;); for (var j=0;j<40j++) { write(&quot;<TD>&nbsp;</TD>&quot;); } write(&quot;</TR>&quot;); } } </Script> </Table></Center></Body> ej039.html
Algoritmo Poner i en 0 Hacer el siguiente bloque si i < 20 Dibujar inicio de fila Poner j en 0 Hacer el siguiente bloque si j < 40 Dibujar una celda Hacer j = j + 1 Dibujar el final de la fila Hacer i = i + 1 with(document) { for (var i=0;i<20;i++) { write(&quot;<TR>&quot;); for (var j=0;j<40j++) { write(&quot;<TD>&nbsp;</TD>&quot;); } write(&quot;</TR>&quot;); } }
Algoritmos Dibujar un círculo en una cuadrícula Resolver un laberinto Ordenar un conjunto de números Encontrar un nombre en el directorio Resolver un sudoku Jugar al ahorcado
Variables Posiciones de memoria Para almacenamiento de datos En nuestra memoria pueden ser Un número (teléfono, dinero, carné) Una frase (slogan, de un libro, una dirección) Una imagen (una foto, una herramienta) Un sonido (canción, sonido de celular) Pueden cambiar su valor (varían)
Variables En la computadora Tienen nombre Tipo de dato Numérico: entero, real, fecha, hora, etc. Alfanumérico: caracteres, cadenas de caracteres. Binario: imágenes, objetos, archivos, etc.
Variables <HTML> <Head><Title>Esta página se construye dinámicamente</Title></Head> <Body> <H1>Esta tabla de 20x40 se construye dinámicamente</H1> <Div Align=Center><Table Border=1 Width=80%> <Script Language=“VBScript”> Option Explicit Dim i,j For i=1 To 20 Document.Write “<TR>” For j=1 To 40 Document.Write “<TD>&nbsp;</TD>” Next Document.Write “</TR>” Next </Script> </Table></Div></Body></HTML>
Variables <Div Align=Center><Table Border=1 Width=80%> <Script Language=“VBScript”> Option Explicit Dim i,j For i=1 To Fils Document.Write “<TR>” For j=1 To Cols Document.Write “<TD>&nbsp;</TD>” Next Next </Script> </Table></Div></Body></HTML>
Variables Document.Write “<TD>&nbsp;</TD>” ¿Es variable?
Constantes Valores que no cambian También tienen tipo Enteros, reales, cadenas de caracteres Sirven para: Inicializar variables Construír fómulas Construír expresiones Pueden tener nombre Ej.: Pi = 3.141592654
Algoritmo: construír un cículo Construír un cículo coloreando cuadrados de un arreglo o tabla de n*n posiciones. Ej. 11*11:
Construír un círculo Dibujar la cuadrícula
Construír un círculo Dibujar la cuadrícula Establecer sistema de coordenadas (0,0) (0,10) (10,0) (10,10)
Construír un círculo Dibujar la cuadrícula Establecer sistema de coordenadas Calcular el radio R (0,0) (0,10) (10,0) (10,10) R
Construír un círculo Dibujar la cuadrícula Establecer sistema de coordenadas Calcular el radio R Establecer el centro (0,0) (0,10) (10,0) (10,10) R
Construír un círculo Dibujar la cuadrícula Establecer sistema de coordenadas Calcular el radio R Establecer el centro Calcular los pares (X,Y) en un cuadrante (0,0) (0,10) (10,0) (10,10) R
Construír un círculo Dibujar la cuadrícula Establecer sistema de coordenadas Calcular el radio R Establecer el centro Calcular los pares (X,Y) en un cuadrante Para cada par (X,Y) colorear los puntos (X,Y) (-X,Y) (X,-Y) (-X,-Y) (0,0) (0,10) (10,0) (10,10) R
Construír un círculo Calcular los pares (X,Y) en un cuadrante Tomar valores para X desde 0 hasta R Para cada valor de X calcular Y por Pitágoras (0,0) (0,10) (10,0) (10,10) R
Construír un círculo Calcular los pares (X,Y) en un cuadrante Tomar valores para X desde 0 hasta R Para cada valor de X calcular Y por Pitágoras (0,0) (0,10) (10,0) (10,10) R X Y
Construír un círculo Calcular los pares (X,Y) en un cuadrante Tomar valores para X desde 0 hasta R Para cada valor de X calcular Y por Pitágoras (0,0) (0,10) (10,0) (10,10) R X Y
Construír un círculo Calcular los pares (X,Y) en un cuadrante Tomar valores para X desde 0 hasta R Para cada valor de X calcular Y por Pitágoras (0,0) (0,10) (10,0) (10,10) R X Y
Construír un círculo Preguntas ¿Es un algoritmo? ¿Un subalgoritmo? ¿Qué pasa con tablas de número par de columnas o filas? ¿Qué pasa cuando N = 0? (0,0) (0,10) (10,0) (10,10) R X Y ej040.html
Construír un círculo Proyecto Resolver el problema de los lados Resolver el problema de las cuadrículas con número par de columnas Puntos extra si viene también en Javascript Puntos extra si funciona en FireFox ¡¡¡ No sean ambiciosos !!! (0,0) (0,10) (10,0) (10,10) R X Y ej040.html

Clase07

  • 1.
    Elementos de ScriptsLeonel Morales Díaz Ingeniería Simple [email_address] Disponible en: http://www.ingenieriasimple.com/introprogra Copyright 2008 by Leonel Morales Díaz – Ingeniería Simple. Derechos reservados
  • 2.
    Ejemplo <HTML> <Head><Title>Estapágina se construye dinámicamente</Title></Head> <Body> <H1>Esta tabla de 20x40 se construye dinámicamente</H1> <Div Align=Center><Table Border=1 Width=80%> <Script Language=“VBScript”> Option Explicit Dim i,j For i=1 To 20 Document.Write “<TR>” For j=1 To 40 Document.Write “<TD>&nbsp;</TD>” Next Document.Write “</TR>” Next </Script> </Table></Div></Body></HTML> ej036.html
  • 3.
    Algoritmo Conjunto ordenadoy finito de operaciones Que solucionan un problema
  • 4.
    Algoritmo Tabla de20 x 40 Hacer 20 filas En cada fila hacer 40 celdas Da la idea pero ... ... Muy general ...
  • 5.
    Algoritmo Hacer 20veces lo siguiente: Dibujar el inicio de la fila Hacer 40 veces lo siguiente: Dibujar una celda Dibujar el final de la fila Mejor, pero... ... No es fácil codificarlo ...
  • 6.
    Algoritmo Poner ien 0 Hacer el siguiente bloque si i < 20 Dibujar inicio de fila Poner j en 0 Hacer el siguiente bloque si j < 40 Dibujar una celda Hacer j = j + 1 Dibujar el final de la fila Hacer i = i + 1
  • 7.
    Algoritmo Poner ien 0 Hacer el siguiente bloque si i < 20 Dibujar inicio de fila Poner j en 0 Hacer el siguiente bloque si j < 40 Dibujar una celda Hacer j = j + 1 Dibujar el final de la fila Hacer i = i + 1 Dim i,j For i=1 To 20 Document.Write “<TR>” For j=1 To 40 Document.Write “<TD>&nbsp;</TD>” Next Document.Write “</TR>” Next
  • 8.
    Algoritmo Poner ien 0 Hacer el siguiente bloque si i < 20 Dibujar inicio de fila Poner j en 0 Hacer el siguiente bloque si j < 40 Dibujar una celda Hacer j = j + 1 Dibujar el final de la fila Hacer i = i + 1 Dim i,j For i=1 To 20 Document.Write “<TR>” For j=1 To 40 Document.Write “<TD>&nbsp;</TD>” Next Document.Write “</TR>” Next
  • 9.
    Algoritmo Poner ien 0 Hacer el siguiente bloque si i < 20 Dibujar inicio de fila Poner j en 0 Hacer el siguiente bloque si j < 40 Dibujar una celda Hacer j = j + 1 Dibujar el final de la fila Hacer i = i + 1 Dim i,j For i=1 To 20 Document.Write “<TR>” For j=1 To 40 Document.Write “<TD>&nbsp;</TD>” Next Document.Write “</TR>” Next
  • 10.
    Algoritmo Poner ien 0 Hacer el siguiente bloque si i < 20 Dibujar inicio de fila Poner j en 0 Hacer el siguiente bloque si j < 40 Dibujar una celda Hacer j = j + 1 Dibujar el final de la fila Hacer i = i + 1 Dim i,j For i=1 To 20 Document.Write “<TR>” For j=1 To 40 Document.Write “<TD>&nbsp;</TD>” Next Document.Write “</TR>” Next
  • 11.
    Algoritmo Poner ien 0 Hacer el siguiente bloque si i < 20 Dibujar inicio de fila Poner j en 0 Hacer el siguiente bloque si j < 40 Dibujar una celda Hacer j = j + 1 Dibujar el final de la fila Hacer i = i + 1 Dim i,j For i=1 To 20 Document.Write “<TR>” For j=1 To 40 Document.Write “<TD>&nbsp;</TD>” Next Document.Write “</TR>” Next
  • 12.
    Algoritmo Poner ien 0 Hacer el siguiente bloque si i < 20 Dibujar inicio de fila Poner j en 0 Hacer el siguiente bloque si j < 40 Dibujar una celda Hacer j = j + 1 Dibujar el final de la fila Hacer i = i + 1 Dim i,j For i=1 To 20 Document.Write “<TR>” For j=1 To 40 Document.Write “<TD>&nbsp;</TD>” Next Document.Write “</TR>” Next
  • 13.
    Algoritmo Debe serindependiente del lenguaje Debe ser general Puede ser: Subalgoritmo: si no funciona para todos los casos Algoritmo: si funciona para todos los casos Entendible por una “máquina” En el lenguaje de la máquina
  • 14.
    Ejemplo <HTMl><Head><Title>Crea unatabla dinámicamente</Title></Head> <Body> <Table Border=1 Width=80%> <Script Language=&quot;javascript&quot;> With(document) { for (var i=0;i<20;i++) { write(&quot;<TR>&quot;); for (var j=0;j<40j++) { write(&quot;<TD>&nbsp;</TD>&quot;); } write(&quot;</TR>&quot;); } } </Script> </Table></Center></Body> ej039.html
  • 15.
    Algoritmo Poner ien 0 Hacer el siguiente bloque si i < 20 Dibujar inicio de fila Poner j en 0 Hacer el siguiente bloque si j < 40 Dibujar una celda Hacer j = j + 1 Dibujar el final de la fila Hacer i = i + 1 with(document) { for (var i=0;i<20;i++) { write(&quot;<TR>&quot;); for (var j=0;j<40j++) { write(&quot;<TD>&nbsp;</TD>&quot;); } write(&quot;</TR>&quot;); } }
  • 16.
    Algoritmos Dibujar uncírculo en una cuadrícula Resolver un laberinto Ordenar un conjunto de números Encontrar un nombre en el directorio Resolver un sudoku Jugar al ahorcado
  • 17.
    Variables Posiciones dememoria Para almacenamiento de datos En nuestra memoria pueden ser Un número (teléfono, dinero, carné) Una frase (slogan, de un libro, una dirección) Una imagen (una foto, una herramienta) Un sonido (canción, sonido de celular) Pueden cambiar su valor (varían)
  • 18.
    Variables En lacomputadora Tienen nombre Tipo de dato Numérico: entero, real, fecha, hora, etc. Alfanumérico: caracteres, cadenas de caracteres. Binario: imágenes, objetos, archivos, etc.
  • 19.
    Variables <HTML> <Head><Title>Estapágina se construye dinámicamente</Title></Head> <Body> <H1>Esta tabla de 20x40 se construye dinámicamente</H1> <Div Align=Center><Table Border=1 Width=80%> <Script Language=“VBScript”> Option Explicit Dim i,j For i=1 To 20 Document.Write “<TR>” For j=1 To 40 Document.Write “<TD>&nbsp;</TD>” Next Document.Write “</TR>” Next </Script> </Table></Div></Body></HTML>
  • 20.
    Variables <Div Align=Center><TableBorder=1 Width=80%> <Script Language=“VBScript”> Option Explicit Dim i,j For i=1 To Fils Document.Write “<TR>” For j=1 To Cols Document.Write “<TD>&nbsp;</TD>” Next Next </Script> </Table></Div></Body></HTML>
  • 21.
  • 22.
    Constantes Valores queno cambian También tienen tipo Enteros, reales, cadenas de caracteres Sirven para: Inicializar variables Construír fómulas Construír expresiones Pueden tener nombre Ej.: Pi = 3.141592654
  • 23.
    Algoritmo: construír uncículo Construír un cículo coloreando cuadrados de un arreglo o tabla de n*n posiciones. Ej. 11*11:
  • 24.
    Construír un círculoDibujar la cuadrícula
  • 25.
    Construír un círculoDibujar la cuadrícula Establecer sistema de coordenadas (0,0) (0,10) (10,0) (10,10)
  • 26.
    Construír un círculoDibujar la cuadrícula Establecer sistema de coordenadas Calcular el radio R (0,0) (0,10) (10,0) (10,10) R
  • 27.
    Construír un círculoDibujar la cuadrícula Establecer sistema de coordenadas Calcular el radio R Establecer el centro (0,0) (0,10) (10,0) (10,10) R
  • 28.
    Construír un círculoDibujar la cuadrícula Establecer sistema de coordenadas Calcular el radio R Establecer el centro Calcular los pares (X,Y) en un cuadrante (0,0) (0,10) (10,0) (10,10) R
  • 29.
    Construír un círculoDibujar la cuadrícula Establecer sistema de coordenadas Calcular el radio R Establecer el centro Calcular los pares (X,Y) en un cuadrante Para cada par (X,Y) colorear los puntos (X,Y) (-X,Y) (X,-Y) (-X,-Y) (0,0) (0,10) (10,0) (10,10) R
  • 30.
    Construír un círculoCalcular los pares (X,Y) en un cuadrante Tomar valores para X desde 0 hasta R Para cada valor de X calcular Y por Pitágoras (0,0) (0,10) (10,0) (10,10) R
  • 31.
    Construír un círculoCalcular los pares (X,Y) en un cuadrante Tomar valores para X desde 0 hasta R Para cada valor de X calcular Y por Pitágoras (0,0) (0,10) (10,0) (10,10) R X Y
  • 32.
    Construír un círculoCalcular los pares (X,Y) en un cuadrante Tomar valores para X desde 0 hasta R Para cada valor de X calcular Y por Pitágoras (0,0) (0,10) (10,0) (10,10) R X Y
  • 33.
    Construír un círculoCalcular los pares (X,Y) en un cuadrante Tomar valores para X desde 0 hasta R Para cada valor de X calcular Y por Pitágoras (0,0) (0,10) (10,0) (10,10) R X Y
  • 34.
    Construír un círculoPreguntas ¿Es un algoritmo? ¿Un subalgoritmo? ¿Qué pasa con tablas de número par de columnas o filas? ¿Qué pasa cuando N = 0? (0,0) (0,10) (10,0) (10,10) R X Y ej040.html
  • 35.
    Construír un círculoProyecto Resolver el problema de los lados Resolver el problema de las cuadrículas con número par de columnas Puntos extra si viene también en Javascript Puntos extra si funciona en FireFox ¡¡¡ No sean ambiciosos !!! (0,0) (0,10) (10,0) (10,10) R X Y ej040.html