miércoles, 30 de marzo de 2016

Capitulo 12: Small Basic, Arreglos. Parte 1


Diario de un programador.- Dia 30

Arreglos, vectores, arrays...

En algunos lugares le dicen arreglos, en otros le llaman vectores, en otros arrays en otros matrices unidimensionales, pero es importante saber que todos se refieren a lo mismo.
Recordemos un ejercicio propuesto en el capítulo 6, el cual solicita al usuario siete notas y luego calcula su promedio. El programa se veía así:

TextWindow.WriteLine("Promediando calificaciones...")

TextWindow.Write("Ingresa la primera nota ")
nota1 = TextWindow.ReadNumber()

TextWindow.Write("Ingresa la segunda nota ")
nota2 = TextWindow.ReadNumber()

TextWindow.Write("Ingresa la tercera nota ")
nota3 = TextWindow.ReadNumber()

TextWindow.Write("Ingresa la cuarta nota ")
nota4 = TextWindow.ReadNumber()

TextWindow.Write("Ingresa la quinta nota ")
nota5 = TextWindow.ReadNumber()

TextWindow.Write("Ingresa la sexta nota ")
nota6 = TextWindow.ReadNumber()

TextWindow.Write("Ingresa la septima nota ")
nota7 = TextWindow.ReadNumber()

promedio = (nota1 + nota2 + nota3 + nota4 + nota5 + nota6 + nota7) / 7
TextWindow.WriteLine("El promedio es " + promedio)

Como se puede apreciar, se repite demasiadas veces la solicitud "Ingresa la nota..." y por cada solicitud hay una variable distinta. Si no fuesen 7 notas sino 100, ¿habría que crear una variable por cada ingreso? Al usar arreglos, eso no es necesario. Un arreglo es un tipo especial de variable que permite almacenar más de un valor al mismo tiempo.
Para lograr esto, a la variable hay que agregarle un índice, este índice es el que diferencia u ordena los datos ingresados en la variable, el índice, el cual puede ser un número u otra variable, se debe encerrar entre corchetes []. Un ejemplo de arreglo sería así: arreglo[i]

El ejercicio anterior, utilizando arreglos, quedaría así:

TextWindow.WriteLine("Promediando calificaciones...")
suma = 0
For i = 1 To 7
    TextWindow.Write("Ingresa la nota nro." + i + " ")
    nota[i] = TextWindow.ReadNumber()
    suma = suma + nota[i]
EndFor
promedio = suma / 7
TextWindow.WriteLine("El promedio es " + promedio)

En este caso, el arreglo nota[i] Se puede representar de la siguiente forma:
nota[i] = {1, 2, 3, 4, 5, 6, 7}
Cada número, representa una casilla dentro del arreglo, en este caso la primera casilla, de ahora en adelante, el primer índice, está representado con el número 1 (En muchos otros lenguajes, el primer índice es el cero)
Supongamos que estas son las notas que se ingresaron en el arreglo
5, 6, 7, 4, 3, 1, 2


La nota que se encuentra en el primer índice es 5 y la nota que se encuentra en el último índice es el 2 (índice nro. 7)
Si modificamos el programa anterior y le decimos que muestre lo que se almacenó en el quinto índice, el programa nos mostrará el número 3.

TextWindow.WriteLine("Promediando calificaciones...")
suma = 0
For i = 1 To 7
    TextWindow.Write("Ingresa la nota nro." + i + " ")
    nota[i] = TextWindow.ReadNumber()
    suma = suma + nota[i]
EndFor
TextWindow.WriteLine(nota[5])

Aquí colocaré otro ejemplo, para tratar de explicar los índices

For i = 1 To 5
    TextWindow.Write("Ingresa nombre nro." + i + " ")
    nombre[i] = TextWindow.Read()
EndFor
TextWindow.Write("Que indice deseas consultar? ")
indice = TextWindow.ReadNumber()
TextWindow.WriteLine(nombre[indice])

Esto es todo por ahora, en  la parte 2 se seguirán dando ejemplos. Nos vemos




lunes, 28 de marzo de 2016

Capitulo 11: Small Basic, ciclo Do


Diario de un programador.- Dia 29

Esta vez veré el ciclo do-while, el cual es otro de los estudiados en muchos lenguaje de programación, aunque en algunos lenguajes no está presente, como por ejemplo en python o en small basic, motivo por el cual no podré realizar ejercicios prácticos con esta instrucción hasta que llegue el momento de estudiar un lenguaje que si lo tiene, como por ejemplo Java. Así que, cuando llegue el momento de estudiarlo en el lenguaje que lo soporte, voy a colocar ejemplos y ejercicios. Debido a esto, solamente se mencionará sus características. Este tipo de bucle es muy parecido a la instrucción while, pero su principal diferencia, es que este tipo de bucle SIEMPRE se inicia por lo menos una vez, ya que la condición a evaluar, se encuentra al final de toda la instrucción y no al principio, como sucede con el bucle while. Un ejemplo de esto podría ser:

do
   variable = 1
   instrucción 1
   instrucción 2
   instrucción 3
   ...
while variable <> 0 <---------- Aquí se evalúa la condición

Como se puede ver en el ejemplo, la condición se evalúa al final de la instrucción y si la condición es evaluada como verdadera, entonces se repite todo lo que hay después de la instrucción "do".
¿Por qué usar do-while en vez de simplemente usar while? Pues, por la razón que en algunas ocasiones vamos a necesitar que el ciclo se inicie por lo menos UNA vez y hacer eso con la instrucción do-while, resulta mucho más cómodo. Por ejemplo: El programa del capítulo anterior fue escrito de la siguiente forma:

usuario = "@"
While usuario <> "estudiante"
   TextWindow.Write("Ingresa tu nombre de usuario ")
   usuario = TextWindow.Read()

   If usuario = "estudiante" Then
      TextWindow.WriteLine("Bienvenido al sistema!!!")

  Else
      TextWindow.WriteLine("Nombre de usuario no valido")
  EndIf
EndWhile

En este ejemplo, es necesario que el bucle se ejecute al menos una vez y por eso se tuvo que crear una variable al inicio del programa (usuario = "@"). Si en small basic estuviese la instruccion do-while, este programa hubiese sido algo más o menos así:

do
   TextWindow.Write("Ingresa tu nombre de usuario ")
   usuario = TextWindow.Read()
   If usuario = "estudiante" Then
      TextWindow.WriteLine("Bienvenido al sistema!!!")
   Else
      TextWindow.WriteLine("Nombre de usuario no valido")
   EndIf
While usuario <> "estudiante"


Como se puede ver, es muy parecido, pero la condición a evaluar se encuentra al final del programa.

Eso es todo por ahora, en el próximo capitulo, se estudiaran los arreglos o vectores

Gustavo J. Cerda Nilo
Septiembre 2015. Ultima modificacion, marzo 2016




C++ El apuntador This

El apuntador This En C++, cada objeto tiene acceso a su propia dirección a través de un puntero o apuntador denominado This. Lo...