viernes, 29 de septiembre de 2023

OOo Basic. Datos

Tipos de variables según nivel de procesamiento

Diferenciamos las variables según el tipo de datos que contienen, podemos diferenciarlas también en función de su ámbito de aplicación, pero cabe aun una tercera diferenciación en relación al nivel de procesamiento que requiere.




Normalmente dividimos el algoritmo en tres fases: input, procesamiento y output; y lo propio es que el trabajo directo del usuario con las variables (entrada de datos y asignación a variables) se produzca en la fase input, esto es, al inicio del algoritmo, y de una sola vez. 


Esta es una simplificación del funcionamiento de un algoritmo, igual que lo es la imagen representativa del mismo que acabo de mostrar. En la práctica, el proceso de input suele se más complejo y estar más interrelacionado y distribuido a lo largo del desarrollo del algoritmo.

En función de esta complejidad es posible diferenciar tres tipos de variables:
  • Las libres, que responden al funcionamiento simple descrito antes y que reciben asignación directa por parte del usuario mediante interface con los condicionantes que se hayan establecido en el programa.
  • Las condicionadas, cuyo contenido no es establecido directamente por el usuario, sino que resulta de la aplicación de la condicionalidad, lo que equivale a decir que su contenido queda establecido en la fase de procesamiento y no de input.
  • Y las delimitadas, que lo pueden ser de diferentes formas y a diferentes niveles, resultando éstos de la fase de procesamiento, pero que requieren intervención del usuario para concretar la asignación de datos.
Cuando esta tipología de variables se presenta en un algoritmo, podemos decir que las fases Input-Proceso se entremezclan (parcialmente), resultando de ambas una interacción compleja entre el usuario y el programa que no se ajusta al modelo básico-secuencial que es el que normalmente se representa en las explicaciones teóricas. 

Sin embargo no es nada extraño encontrarse con este tipo de desarrollo más complejo. Un ejemplo lo tenemos en el docap Escolarización combinada. Documento de Información a Familias, en el que podemos encontrar los tres tipos de variables:
  • Libres (no sujetas a la condicionalidad): 

sCentroOrdinNombre = InputBox("Nombre del centro:","Escolarización combinada. Centro ordinario","CP El Bosque Encantado")
sCentroOrdinLocalidad = InputBox("Localidad:","Escolarización combinada. Centro ordinario","Villar Torbila")
sCentroEspecNombre= InputBox("Nombre del centro:","Escolarización combinada. Específico","CPEE Vallermoso")
sCentroEspecLocalidad = InputBox("Localidad:","Escolarización combinada. Centro Específico","Olmeda")
        • Condicionadas (las resultantes del condicional if):
        If sAlumSexo = "1" Then
        sAlumTratam1 = "de la alumna"
        sAlumTratam2 = "escolarizada"
        ElseIf sAlumSexo = "2" Then
            sAlumTratam1 = "del alumno"
            sAlumTratam2 = "escolarizado"
        End If 
        • Delimitadas (resultantes también del condicional If)
        If sEtapaIniciales= "EI" Then
        sCurso = InputBox("Curso o nivel:","Alumnado. Datos escolares","1º/2º/3º")
        sNombreEqDir = InputBox ("Responsable del " &  sCentroOrdinNombre, "Responsable firmante")
        sCargoEqDir = InputBox ("Cargo directivo del/de la responsable del " &  sCentroOrdinNombre, "Responsable firmante","Director-Directora-J. de Estudios")
        ElseIf sEtapaIniciales = "EP" Then
        sCurso = InputBox("Curso o nivel:","Alumnado. Datos escolares","1º/2º/3º/4º")
        sNombreEqDir = InputBox ("Responsable del " &  sCentroEspecNombre, "Responsable firmante")
        sCargoEqDir = InputBox ("Cargo directivo del/de la responsable del " &  sCentroEspecNombre, "Responsable firmante","Director-Directora-J. de Estudios")
        End If

        Con estos ejemplos queda claro que mientras que las condicionadas no requieren intervención del usuario, ya que el contenido o dato resulta de la condicionalidad y es asignado directamente a las variables por el algoritmo, las delimitadas requieren de nuevo la participación del usuario, el cual debe intervenir una vez que actúa la condicionalidad con los siguientes posibles resultados:
        • Presencia/Ausencia de presentación de la variable al usuario
        • Alteración del contenido solicitado en función de la condicionalidad
        • y/o acotamiento o delimitación de las opciones de respuesta disponibles al usuario en función de la condicionalidad.
        El modo en que cumplimentemos las variables libres y las delimitadas dependerá de las opciones disponibles en el lenguaje y de la forma que el autor del docap de a la interface. Una forma simple y eficiente consiste en utilizar InputBox() como recurso para ambos tipos de variables, o usar controles de formulario para las variables libres e InputBox() para las delimitadas.

        No hay comentarios:

        Publicar un comentario

        Comenta esta entrada