Descargar

Lenguaje de programación para niños (página 3)

Enviado por jaimemontoya


Partes: 1, 2, 3, 4

'TextBox1.Text = variabledeclaradasiono1

'TextBox2.Text = variabledeclaradasiono2

'TextBox3.Text = cadenavariabledeclaradasiono1

'TextBox4.Text = cadenavariabledeclaradasiono2

'TextBox5.Text = arreglovariablesenteras(1)

'TextBox6.Text = arreglovariablescadena(1)

'TextBox7.Text = Val(provisional1)

'TextBox8.Text = Val(provisional3)

'TextBox9.Text = variableenteraencontradaenlaasignacion

'TextBox1.Text = variableenteraencontradaenlaasignacion

'TextBox2.Text = variablecadenaencontradaenlaasignacion

'TextBox3.Text = arreglovariablesenteras(1)

'TextBox4.Text = arreglovariablescadena(1)

'TextBox1.Text = arreglo(1)

'TextBox2.Text = arreglo(2)

'TextBox3.Text = arreglo(3)

'TextBox4.Text = arreglo(4)

'TextBox5.Text = arreglo(5)

'TextBox6.Text = arreglo(6)

'TextBox7.Text = arreglo(7)

'TextBox1.Text = value

'TextBox1.Text = contadordepalabrasporlinea

'TextBox2.Text = arreglo(1)

'TextBox3.Text = arreglo(5)

'TextBox6.Text = arreglo(4)

'TextBox7.Text = arreglo(5)

'TextBox8.Text = arreglo(6)

'TextBox9.Text = arreglo(7)

'TextBox10.Text = arreglo(8)

'TextBox1.Text = provisional1

'TextBox2.Text = provisional2

'TextBox3.Text = provisional3

'TextBox1.Text = Strings.Right(arreglo(3), 1)

'TextBox1.Text = arreglo(numero)

'TextBox1.Text = enter(1)

'TextBox2.Text = enter(2)

'TextBox3.Text = enter(3)

'TextBox4.Text = enter(4)

'TextBox1.Text = Strings.Right(Strings.Left(arreglo(4), Strings.Len(arreglo(4)) – 2), Strings.Len(arreglo(4)) – 3)

'TextBox1.Text = arreglovariablescadena(1)

'TextBox2.Text = arreglovariablescadena(2)

'TextBox3.Text = arreglovariablescadena(3)

'TextBox1.Text = arreglovariablesenteras(1)

'TextBox2.Text = arreglovariablescadena(1)

'TextBox3.Text = contadordevariablesenteras

'TextBox4.Text = contadordevariablescadena

'TextBox6.Text = numerodepalabras

'TextBox1.Text = arreglo(1)

'TextBox2.Text = arreglo(2)

'TextBox3.Text = arreglo(3)

'TextBox4.Text = arreglo(4)

'TextBox5.Text = arreglo(5)

'TextBox8.Text = arreglovariablesenteras(1)

'TextBox9.Text = arreglovariablesenteras(2)

'If Len(arreglo(i)) = 4 And arreglo(i – 1) = "leer" Then 'Hay un paréntesis de apertura, una variable, un paréntesis de cierre y un punto y coma al final de línea. Antes de eso hay un read.

'arreglovariablesenteras(numeroarreglovariablesenteras) = Mid(arreglo(i), 2, 1) 'Se están metiendo variables de tipo entero al arreglo de variables.

'contadordevariablesenteras = contadordevariablesenteras + 1

'numeroarreglovariablesenteras = numeroarreglovariablesenteras + 1

''Else

'' If Len(arreglo(i)) = 2 Then 'Hay una variable y un punto y coma al final de linea, se ha hecho una asignacion.

''arreglovariablesenteras(numeroarreglovariablesenteras) = Mid(arreglo(i), 1, 1)

''End If

'Else

' If Len(arreglo(i)) = 4 And arreglo(i – 1) = "leerl" Then

'arreglovariablescadena(numeroarreglovariablescadena) = Mid(arreglo(i), 2, 1) 'Se están metiendo variables de tipo cadena al arreglo.

'contadordevariablescadena = contadordevariablescadena + 1

'numeroarreglovariablescadena = numeroarreglovariablescadena + 1

' End If

'End If

'If caracter = Chr(10) Then 'No se está trabajando con esto.

'enter(enternumero) = otrocontador 'No se está trabajando con esto.

'enternumero = enternumero + 1 'No se está trabajando con esto. 'enternumero almacena el número de enter que hay en el RichTextBox1.Text. Osea el número de líneas.

'otrocontador = 0 'No se está trabajando con esto.

'End If 'No se está trabajando con esto.

'arreglovariablescadena(numeroarreglovariablescadena) = arreglo(i – 4)

'contadordevariablescadena = contadordevariablescadena + 1

'For ii As Integer = 1 To numeroarreglovariablescadena

'If provisional1 = arreglovariablescadena(ii) Then 'De x + y guardarlo_en a; provisional1 almacenaría x. Con esto se está comparando con cada una de las variables cadena almacenadas en el arreglo para ver si ya se ha inicializado con leer (variable) ó dándole valores.

'cadenavariabledeclaradasiono1 = 1 'Cuando cadenavariabledeclaradasiono1 valga 1, entoncees las variables utilizadas en la asignación ya han sido declaradas. De lo contrario no han sido declaradas y se mandará un mensaje más adelante en el código donde se hará saber que se está utilizando una variable sin haberla declarado antes.

'End If

'If provisional3 = arreglovariablescadena(ii) Then 'De x + y guardarlo_en a; provisional3 almacenaría y. Con esto se está comparando con cada una de las variables cadena almacenadas en el arreglo para ver si ya se ha inicializado con leer (variable) ó dándole valores.

'cadenavariabledeclaradasiono2 = 1 'Cuando cadenavariabledeclaradasiono2 valga 1 , entonces las variables utilizadas en la asignación ya han sido declaradas. De lo contrario no han sido declaradas y se mandará un mensaje más adelante en el código donde se hará saber que se está utilizando una variable sin haberla declarado antes.

'End If

'Next

'numeroarreglovariablescadena = numeroarreglovariablescadena + 1

'arreglovariablesenteras(numeroarreglovariablesenteras) = arreglo(i – 4)

'contadordevariablesenteras = contadordevariablesenteras + 1

'For ii As Integer = 1 To numeroarreglovariablesenteras 'Ciclo para determinar si las variables utilizadas dentro de una asignación ya han sido inicializadas o se están utilizando sin haberlas antes declarado o sin haberles dado valores.

'If provisional1 = arreglovariablesenteras(ii) Then 'De x + 3 guardarlo_en x; provisional1 almacenaría x. Con esto se está comparando con cada una de las variables enteras almacenadas en el arreglo para ver si ya se ha inicializado con leer (variable) ó dándole valores.

'variabledeclaradasiono = 1 'Cuando variabledeclaradasiono valga 1, entoncees las variables utilizadas en la asignación ya han sido declaradas. De lo contrario no han sido declaradas y se mandará un mensaje más adelante en el código donde se hará saber que se está utilizando una variable sin haberla declarado antes.

'End If

'If provisional3 = arreglovariablesenteras(ii) Then 'De x + 3 guardarlo_en x; provisional3 almacenaría 3. Con esto se está comparando con cada una de las variables enteras almacenadas en el arreglo para ver si ya se ha inicializado con leer (variable) ó dándole valores.

'variabledeclaradasiono = 1 'Cuando variabledeclaradasiono valga 1, entoncees las variables utilizadas en la asignación ya han sido declaradas. De lo contrario no han sido declaradas y se mandará un mensaje más adelante en el código donde se hará saber que se está utilizando una variable sin haberla declarado antes.

'End If

'Next

'numeroarreglovariablesenteras = numeroarreglovariablesenteras + 1

'If (variabledeclaradasiono1 <> 1 Or variabledeclaradasiono2 <> 1 Or cadenavariabledeclaradasiono1 <> 1 Or cadenavariabledeclaradasiono2 <> 1) And lineade5palabras = 1 Then 'Porque si no es igual a uno la variable lineadecincopalabras significa que no hubo ninguna asignación, entonces variabledeclaradasiono1 siempre sería diferente de uno y por lo tanto todo el tiempo se estaría diciendo que se ha utilizado una variable sin haberla declarado, incluso cuando ni siquiera se haya hecho una asignación. Por lo tanto hay dos condiciones en este if para que se llegue a decir que se ha utilizado una variable sin haberla asignado antes.

'RichTextBox2.Text = ""

'MsgBox("Está utilizando una variable que no ha sido declarada", MsgBoxStyle.OkOnly, "Error")

'RichTextBox1.Focus()

'End If

End Sub

Private Sub SalirDelProgramaToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SalirDelProgramaToolStripMenuItem.Click

Dim mensaje As Integer

mensaje = MsgBox("¿Quieres realmente salir del programa?", vbYesNo, "Cerrando…")

If mensaje = 6 Then

Form3.Show()

Me.Hide()

End If

End Sub

Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

RichTextBox1.Text = ""

RichTextBox2.Text = ""

End Sub

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click

Dim mensaje As Integer

mensaje = MsgBox("¿Quieres realmente salir del programa?", vbYesNo, "Cerrando…")

If mensaje = 6 Then

Form3.Show()

Me.Hide()

End If

End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

Dim ejemplo1nino As String

Dim ejemplo1pascal As String

ejemplo1nino = "inicio" & Chr(10) & "leer (numero1);" & Chr(10) & "leerl (palabra1);" & Chr(10) & "leers (numero2);" & Chr(10) & "leerls (palabra2);" & Chr(10) & "numero1 + 3 guardarlo_en nuevonumero;" & Chr(10) & "fin"

ejemplo1pascal = "program lenguaje_para_ninos (input, output);" & Chr(10) & "var numero1 : integer;" & Chr(10) & " numero2 : integer;" & Chr(10) & " palabra1 : string;" & Chr(10) & " palabra2 : string;" & Chr(10) & "begin" & Chr(10) & "read (numero1);" & Chr(10) & "read (palabra1);" & Chr(10) & "readln (numero2);" & Chr(10) & "readln (palabra2);" & Chr(10) & "nuevonumero := numero1 + 3;" & Chr(10) & "end"

RichTextBox1.Text = ejemplo1nino

RichTextBox2.Text = ejemplo1pascal

End Sub

Private Sub Ejemplo1ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Ejemplo1ToolStripMenuItem.Click

Dim ejemplo1nino As String

Dim ejemplo1pascal As String

ejemplo1nino = "inicio" & Chr(10) & "leer (numero1);" & Chr(10) & "leerl (palabra1);" & Chr(10) & "leers (numero2);" & Chr(10) & "leerls (palabra2);" & Chr(10) & "numero1 + 3 guardarlo_en nuevonumero;" & Chr(10) & "fin"

ejemplo1pascal = "program lenguaje_para_ninos (input, output);" & Chr(10) & "var numero1 : integer;" & Chr(10) & " numero2 : integer;" & Chr(10) & " palabra1 : string;" & Chr(10) & " palabra2 : string;" & Chr(10) & "begin" & Chr(10) & "read (numero1);" & Chr(10) & "read (palabra1);" & Chr(10) & "readln (numero2);" & Chr(10) & "readln (palabra2);" & Chr(10) & "nuevonumero := numero1 + 3;" & Chr(10) & "end"

RichTextBox1.Text = ejemplo1nino

RichTextBox2.Text = ejemplo1pascal

End Sub

Private Sub BorrarTodoToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BorrarTodoToolStripMenuItem.Click

RichTextBox1.Text = ""

RichTextBox2.Text = ""

End Sub

Private Sub TraducirALenguajePascalToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TraducirALenguajePascalToolStripMenuItem.Click

Dim longituddecadena As Integer

Dim caracter As String

Dim cadena As String

Dim caractersiguiente As String

Dim contador As Integer

Dim arreglo(1000) As String

Dim enter(1000) As String 'No se está trabajando con esto.'Cada elemento de este arreglo contiene el número de palabras por línea. Por ejemplo, enter(5)=3 significa que hay tres palabras en la línea 5.

Dim numero As Integer

Dim numerodepalabras As Integer

Dim palabra As String

Dim programa As String

Dim enternumero As Integer

Dim otrocontador As Integer

Dim arreglodeclararvariablesenteras(1000) As String

Dim arreglodeclararvariablescadena(1000) As String

Dim arreglovariablesenteras(1000) As String 'arreglo que guarda las variables.

Dim numeroarreglovariablesenteras As Integer

Dim arreglovariablescadena(1000) As String

Dim numeroarreglovariablescadena As Integer

Dim contadordevariablesenteras As Integer

Dim concatenardeclaraciondevariablesenteras As String

Dim contadordevariablescadena As Integer

Dim concatenardeclaraciondevariablescadena As String

Dim contadordepalabrasporlinea As Integer

Dim provisional1 As String

Dim provisional2 As String

Dim provisional3 As String

Dim variabledeclaradasiono1 As Integer

Dim variabledeclaradasiono2 As Integer

Dim lineade5palabras As Integer 'Para evaluar si hubo línea de asignación y ver si se ha utilizado variable sin que antes haya sido declarada.

Dim ambiguedaddeoperadores As Integer

Dim variableenteraencontradaenlaasignacion As Integer 'Se le pondrá el valor de 1 a esta variable cuando en una asignación se estén utilizando variables de tipo entero, es decir variables que se hayan declarado como enteras.

Dim variablecadenaencontradaenlaasignacion As Integer 'Se le pondrá el valor de 1 a esta variable cuando en una asignación se estén utilizando variables de tipo cadena, es decir variables que se hayan declarado como cadena.

Dim cadenavariabledeclaradasiono1 As Integer

Dim cadenavariabledeclaradasiono2 As Integer

Randomize() 'Inicializa el generador de números random.

Dim value As Integer = CInt(Int((6 * Rnd()) + 1)) 'Genera un número random entre 1 y 6. Esto se ocupará más adelante para darle colores aleatorios al RichTextBox1.Text y al RichTextBox2.Text.

concatenardeclaraciondevariablesenteras = "var "

concatenardeclaraciondevariablescadena = ""

numeroarreglovariablesenteras = 1

numeroarreglovariablescadena = 1

enternumero = 1

palabra = ""

numero = 1

cadena = LCase(Trim(RichTextBox1.Text))

longituddecadena = Len(RichTextBox1.Text)

For i As Integer = 1 To longituddecadena

caracter = Mid(cadena, i, 1) 'La variable caracter evalúa caracter por caracter desde el primero hasta el último.

If caracter = " " Or caracter = Chr(10) Then 'Si el caracter que se está evaluando es un espacio en blanco o un enter, entonces tomamos eso como parámetro para evaluar si lo que sigue es otro espacio en blanco, y si no fuera así, se concluye que ya hay una palabra.

caractersiguiente = Mid(cadena, i + 1, 1) 'variable que evalúa lo que hay después del carácter evaluado por el for, para saber si hay dos o más espacios juntos y no tomarlos en cuenta como palabra.

If caractersiguiente <> " " And caractersiguiente <> Chr(10) And caractersiguiente <> Chr(13) Then 'Osea que NO hay dos o más espacios en blanco juntos.

contador = contador + 1 'El CONTADOR DE PALABRAS incrementa en uno hasta que lo que hay después de un espacio en blanco ya no es otro espacio en blanco, sino que una letra.

otrocontador = otrocontador + 1 'No se está trabajando con esto.

End If

End If

If caracter <> " " And caracter <> Chr(10) Then

palabra = palabra + caracter 'La variable palabra almacena palabras completas.

arreglo(numero) = palabra 'AQUI SE METEN PALABRAS A CADA ELEMENTO DEL ARREGLO DE PALABRAS. La variable numero es el número de elemento del arreglo.

Else

If caractersiguiente <> " " And caractersiguiente <> Chr(10) And caractersiguiente <> "" Then

palabra = "" 'Palabra vuelve a valer nada porque terminó una palabra, y hay que comenzar de cero para almacenar otra nueva palabra.

numero = numero + 1 'Aumenta para que el elemento del arreglo cambie de número porque se quiere almacenar una siguiente o una nueva palabra.

End If

End If

Next

numerodepalabras = contador + 1 'Almacena el número total de palabras que hay en el RichTextBox.Text

For i As Integer = 1 To numerodepalabras 'Este For sirve exclusivamente para capturar las variables de tipo entero, pero no sirve para cambiar palabras, sino que eso lo hace el For que viene después.

If arreglo(i) = "leer" Or arreglo(i) = "leers" Then

arreglovariablesenteras(numeroarreglovariablesenteras) = Strings.Right(Strings.Left(arreglo(i + 1), Strings.Len(arreglo(i + 1)) – 2), Strings.Len(arreglo(i + 1)) – 3)

contadordevariablesenteras = contadordevariablesenteras + 1

numeroarreglovariablesenteras = numeroarreglovariablesenteras + 1

Else

If arreglo(i) = "leerl" Or arreglo(i) = "leerls" Then

arreglovariablescadena(numeroarreglovariablescadena) = Strings.Right(Strings.Left(arreglo(i + 1), Strings.Len(arreglo(i + 1)) – 2), Strings.Len(arreglo(i + 1)) – 3) 'Tomando la variable sin incluir el punto y coma final ni el paréntesis de apertura ni de cierre.

contadordevariablescadena = contadordevariablescadena + 1

numeroarreglovariablescadena = numeroarreglovariablescadena + 1

End If

End If

Next

For i As Integer = 1 To numero 'Todo lo que se hace dentro de este For es para cambiar el orden de asignación, pues el niño pone x + 3 guardarlo_en x; y el programa debe generar x = x + 3;.

contadordepalabrasporlinea = contadordepalabrasporlinea + 1

If arreglo(i) = "inicio" Or arreglo(i) = "entonces" Or arreglo(i) = "hacer" Or arreglo(i) = "de_lo_contrario" Or Strings.Right(arreglo(i), 1) = ";" Then 'Cualquiera de estos casos se daría con una palabra que marca el final de una línea.

If Strings.Right(arreglo(i), 1) = ";" Then

If contadordepalabrasporlinea = 5 Then 'Porque en x + 3 guardarlo_en x; hay 5 palabras, y se cambiará mediante lo que hay dentro del if a x = x + 3;

lineade5palabras = 1 'Para evaluar si hubo línea de asignación y ver si se ha utilizado variable sin que antes haya sido declarada.

provisional1 = arreglo(i – 4)

provisional2 = arreglo(i – 3)

provisional3 = arreglo(i – 2)

arreglo(i – 4) = Strings.Right(Strings.Left(arreglo(i), Strings.Len(arreglo(i)) – 1), Strings.Len(arreglo(i)) – 1) 'Con esto se cambia de x + 3 guardarlo_en x; a x = x + 3, cambiando el elemento x; por x en otra posición del arreglo.

arreglo(i – 3) = arreglo(i – 1)

arreglo(i – 2) = provisional1

arreglo(i – 1) = provisional2

arreglo(i) = provisional3 & ";" 'Como se ha cambiado de la forma x + 3 guardarlo_en x; a la forma x = x + 3;, entonces ya con los arreglos modificados hay que poner un punto y coma al final del 3 para tener x = x + 3; y ya queda todo listo.

For a As Integer = 1 To contadordevariablesenteras

If arreglo(i – 2) = arreglovariablesenteras(a) Then 'La a irá cambiando valor desde 1 hasta contadordevariablescadena, que contiene el número de elemento de la última variable de tipo entero almacenada en el arreglo de variables enteras.

variableenteraencontradaenlaasignacion = 1 'Con darle el valor de 1 se sabrá que efectivamente en la asignación hay una variable entera.

End If

If provisional3 = arreglovariablesenteras(a) Then 'No se le pone arreglo(i) sino que provisional3, porque a estas alturas ya llevaría concatenado un punto y coma al final.

variableenteraencontradaenlaasignacion = 1

End If

Next

For b As Integer = 1 To contadordevariablescadena

If arreglo(i – 2) = arreglovariablescadena(b) Then 'arreglo(i-2) es lo mismo que provisional1

variablecadenaencontradaenlaasignacion = 1

End If

If provisional3 = arreglovariablescadena(b) Then 'No se le pone arreglo(i) sino que provisional3, porque a estas alturas ya llevaría concatenado un punto y coma al final.

variablecadenaencontradaenlaasignacion = 1

End If

Partes: 1, 2, 3, 4
 Página anterior Volver al principio del trabajoPágina siguiente