La mesa de Mendeleev sobre informática escolar

(Tarjetas de control)
(Dedicado al Año Internacional de la Tabla Periódica de Elementos Químicos)
(Las últimas adiciones se realizaron el 8 de abril de 2019. La lista de adiciones está justo debajo del corte)

imagen
( Flor de Mendeleev , Fuente )

Recuerdo que pasamos el pato. Estas fueron tres lecciones a la vez: geografía, ciencias naturales y ruso. En una lección de ciencias naturales, un pato fue estudiado como un pato, qué alas tenía, qué patas, cómo nada, etc. En una lección de geografía, se estudió el mismo pato como residente del mundo: era necesario mostrar en el mapa dónde vive y dónde no existe. En ruso, Serafima Petrovna nos enseñó a escribir "u-t-k-a" y leer algo sobre los patos de Brem. De paso, nos informó que en alemán un pato es más o menos, y en francés más o menos. Parece que luego se llamó el "método complejo". En general, todo salió de pasada.

Benjamin Caverin , dos capitanes

En la cita citada, Veniamin Kaverin mostró magistralmente las deficiencias del método de enseñanza integral, pero en algunos casos (quizás bastante raros) los elementos de este método están justificados. Uno de esos casos es la Tabla Periódica de D.I. Mendeleev en las lecciones de informática de la escuela. La tarea de la automatización del programa de acciones típicas con una tabla periódica es obvia para los escolares que han comenzado a estudiar química, y se divide en muchos problemas químicos típicos. Al mismo tiempo, en el marco de la informática, esta tarea nos permite demostrar de forma simple el método de las tarjetas de control, que puede atribuirse a la programación gráfica, entendida en el sentido amplio de la palabra como programación usando elementos gráficos.

(13 de abril de 2019 adiciones hechas:
Apéndice 3: Prueba química
Apéndice 4: Integración de múltiples tareas en un solo programa
8 de abril de 2019 adiciones realizadas:
Apéndice 1: como funciona una calculadora química
Apéndice 2: tareas de muestra para filtros)

Comencemos con la tarea básica. En el caso más simple, la tabla periódica debe mostrarse en la pantalla en la ventana del formulario, donde en cada celda habrá un símbolo químico del elemento: H - hidrógeno, He - helio, etc. Si el cursor del mouse apunta a una celda, en un campo especial de nuestro formulario se muestra el símbolo del elemento y su número. Si el usuario hace clic en LMB, la designación y el número de este elemento seleccionado se indicarán en otro campo del formulario.

imagen

El problema se puede resolver en cualquier PL universal. Tomaremos un viejo y simple Delpi-7, comprensible para casi todos. Pero antes de programar en YP, dibujaremos dos imágenes, por ejemplo, en Photoshop. Primero, dibujemos la tabla periódica como queremos que esté en el programa. Guarde el resultado en el archivo gráfico table01.bmp .

imagen

Para la segunda imagen usamos la primera. Rellenaremos constantemente las celdas de la tabla sin gráficos con colores únicos en el modelo de color RGB. R y G siempre serán 0, y B = 1 para hidrógeno, 2 para helio, etc. Esta cifra será nuestra tarjeta de control, que guardaremos en un archivo con el nombre table2.bmp .

imagen

Se completa la primera etapa de la programación gráfica en Photoshop. Pasemos a la programación gráfica GUI en Delpi-7 IDE. Para hacer esto, abra un nuevo proyecto, donde en el formulario principal colocamos el botón de llamada de diálogo ( tableDlg ), en el que se procesará la tabla. A continuación, trabajamos con el formulario tableDlg .

Colocamos los componentes de la clase TImage en el formulario. Obtener imagen 1 . Tenga en cuenta que en el caso general, para proyectos grandes, los nombres generados automáticamente del tipo ImageN , donde N puede alcanzar varias decenas o más, no son el mejor estilo de programación, y se deben dar nombres más significativos. Pero en nuestro pequeño proyecto, donde N no excederá de 2, puede dejarlo como generado.

En la propiedad Image1.Picture, cargue el archivo table01.bmp . Cree Image2 y cargue nuestra tarjeta de control table2.bmp allí . En este caso, hacemos que el componente sea pequeño e invisible para el usuario, como se muestra en la esquina inferior izquierda del formulario. Agregue controles adicionales, cuyo propósito es obvio. Se completa la segunda etapa de la programación gráfica de la GUI en el IDE Delpi-7.

imagen

Pasamos a la tercera etapa: escribir código en el IDE Delpi-7. El módulo consta de solo cinco controladores de eventos: crear un formulario ( FormCreate ), mover el cursor a lo largo de Image1 ( Image1MouseMove ), hacer clic LMB en la celda ( Image1Click ) y salir del cuadro de diálogo usando los botones OK ( OKBtnClick ) o Cancelar ( CancelBtnClick ). Los encabezados de estos controladores se generan de forma estándar utilizando el IDE.

Código fuente del módulo:
unit tableUnit; //     .. // // third112 // https://habr.com/ru/users/third112/ // //  // 1)   // 2)   :    // 3)    interface uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls, Buttons, ExtCtrls; const size = 104; //   type TtableDlg = class(TForm) OKBtn: TButton; CancelBtn: TButton; Bevel1: TBevel; Image1: TImage; //   Label1: TLabel; Image2: TImage; //  Label2: TLabel; Edit1: TEdit; procedure FormCreate(Sender: TObject); //   procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); //   procedure Image1Click(Sender: TObject); //   procedure OKBtnClick(Sender: TObject); // OK procedure CancelBtnClick(Sender: TObject); // Cancel private { Private declarations } TableSymbols : array [1..size] of string [2]; //    public { Public declarations } selectedElement : string; //   currNo : integer; //    end; var tableDlg: TtableDlg; implementation {$R *.dfm} const PeriodicTableStr1= 'HHeLiBeBCNOFNeNaMgAlSiPSClArKCaScTiVCrMnFeCoNiCuZnGaGeAsSeBrKrRbSrYZrNbMoTcRuRhPdAgCdInSnSbTeIXeCsBaLa'; PeriodicTableStr2='CePrNdPmSmEuGdTbDyHoErTmYbLu'; PeriodicTableStr3='HfTaWReOsIrPtAuHgTlPbBiPoAtRnFrRaAc'; PeriodicTableStr4='ThPaUNpPuAmCmBkCfEsFmMdNoLrKu '; //   ================================================== procedure TtableDlg.FormCreate(Sender: TObject); //   var s : string; i,j : integer; begin currNo := 0; //    : s := PeriodicTableStr1+ PeriodicTableStr2+PeriodicTableStr3+PeriodicTableStr4; j := 1; for i :=1 to size do begin TableSymbols [i] := s[j]; inc (j); if s [j] in ['a'..'z'] then begin TableSymbols [i] := TableSymbols [i]+ s [j]; inc (j); end; // if s [j] in end; // for i :=1 end; // FormCreate ____________________________________________________ //   :    ========================================= procedure TtableDlg.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); //   var sl : integer; begin sl := GetBValue(Image2.Canvas.Pixels [x,y]); if sl in [1..size] then begin Label1.Caption := intToStr (sl)+ ' '+TableSymbols [sl]; currNo := sl; end else Label1.Caption := 'Select element:'; end; // Image1MouseMove ____________________________________________________ procedure TtableDlg.Image1Click(Sender: TObject); begin if currNo <> 0 then begin selectedElement := TableSymbols [currNo]; Label2.Caption := intToStr (currNo)+ ' '+selectedElement+ ' selected'; Edit1.Text := selectedElement; end; end; // Image1Click ____________________________________________________ //    ================================================== procedure TtableDlg.OKBtnClick(Sender: TObject); begin selectedElement := Edit1.Text; hide; end; // OKBtnClick ____________________________________________________ procedure TtableDlg.CancelBtnClick(Sender: TObject); begin hide; end; // CancelBtnClick ____________________________________________________ end. 


En nuestra versión, tomamos una tabla con un tamaño de 104 elementos ( tamaño constante). Obviamente, este tamaño se puede aumentar. Las designaciones de elementos (símbolos químicos) se escriben en la matriz TableSymbols . Sin embargo, por razones de compacidad del código fuente, parece aconsejable escribir la secuencia de estas anotaciones en forma de constantes de cadena PeriodicTableStr1 , ..., PeriodicTableStr4 , de modo que cuando se crea el formulario, el programa dispersará estas anotaciones por elementos de matriz. Cada designación de un elemento consta de una o dos letras latinas, con la primera letra en mayúscula y la segunda (si hay alguna) en minúscula. Esta simple regla se implementa al cargar una matriz. Por lo tanto, la secuencia de símbolos se puede escribir de manera concisa sin espacios. El desglose de la secuencia en cuatro partes (constantes PeriodicTableStr1 , ..., PeriodicTableStr4 ) se debe a la conveniencia de leer el código fuente, porque una línea demasiado larga puede no encajar completamente en la pantalla.

Durante el evento de mover el cursor del mouse sobre Image1, el controlador Image1MouseMove de este evento determina el valor del componente azul del color de píxel del mapa de control de Image2 para las coordenadas actuales del cursor. Por construcción de Image2, este valor es igual al número del elemento si el cursor está dentro de la celda; cero si está en el borde y 255 en otros casos. Las acciones restantes realizadas por el programa son triviales y no requieren explicación.

Además de los trucos estilísticos de programación mencionados anteriormente, vale la pena señalar el estilo de los comentarios. Estrictamente hablando, el código revisado es tan pequeño y simple que los comentarios no parecen particularmente útiles. Sin embargo, se agregaron, incluso por razones metodológicas: un código corto le permite aclarar algunas conclusiones generales. En el código enviado, se declara una clase ( TtableDlg ). Los métodos de esta clase pueden intercambiarse y esto no afectará el funcionamiento del programa, pero puede afectar su legibilidad. Por ejemplo, imagine una secuencia:

 OKBtnClick, Image1MouseMove, FormCreate, Image1Click, CancelBtnClick. 

Puede que no sea muy notable, pero leer y comprender se volverá un poco más difícil. Si no hay cinco métodos, pero decenas de veces más y en la sección de implementación tienen un orden completamente diferente al de las descripciones de clase, entonces el caos solo aumentará. Por lo tanto, aunque es difícil probarlo estrictamente e incluso puede ser imposible, se espera que la introducción de un pedido adicional mejore la legibilidad del código. Este orden adicional se ve facilitado por la agrupación lógica de varios métodos que realizan tareas similares. Cada grupo debe tener un título, por ejemplo:

 //   :    

Estos encabezados deben copiarse en la parte superior del módulo y formatearse como una tabla de contenido. En algunos casos de módulos suficientemente largos, tales tablas de contenido proporcionan capacidades de navegación adicionales. Del mismo modo, en el cuerpo largo de un método, procedimiento o función, vale la pena, en primer lugar, marcar el final de este cuerpo:

 end; // FormCreate 

y en segundo lugar, en las declaraciones bifurcadas con corchetes programáticos comienzan - finalizan, marque la declaración a la que se refiere el corchete de cierre:

  end; // if s [j] in end; // for i :=1 end; // FormCreate 

Para resaltar los encabezados de los grupos y los extremos de los cuerpos de los métodos, puede agregar líneas que excedan la longitud de la mayoría de los operadores y consisten, por ejemplo, en los caracteres "=" y "_", respectivamente.
Nuevamente necesitamos hacer una reserva: tenemos un ejemplo demasiado simple. Y cuando el código del método no cabe en una pantalla, no es fácil descubrir los seis extremos consecutivos para realizar cambios en el código. En algunos compiladores anteriores, por ejemplo, Pascal 8000 para OS IBM 360/370, se imprimió una columna de servicio del formulario en el listado de la izquierda

 B5 … E5 

Esto significa que el corchete del programa de cierre en la línea E5 corresponde al corchete de apertura en la línea B5.

Por supuesto, el estilo de programación es un tema muy controvertido, por lo tanto, las ideas expresadas aquí no deben tomarse más que información para su consideración. Es muy difícil para dos programadores experimentados que se han desarrollado y se han acostumbrado a diferentes estilos a lo largo de los años para trabajar. Otra cosa es que un estudiante programe a un estudiante que aún no ha tenido tiempo de encontrar su propio estilo. Creo que en este caso, el profesor debería al menos transmitir a sus alumnos una idea tan simple, pero no obvia para ellos, que el éxito del programa depende en gran medida del estilo en el que está escrito su código fuente. Es posible que el alumno no siga el estilo recomendado, pero que al menos piense en la necesidad de acciones "adicionales" para mejorar el diseño del código fuente.

Volviendo a nuestra tarea básica en la Tabla Periódica: un mayor desarrollo puede ir en diferentes direcciones. Una de las instrucciones es para referencia: cuando pasa el cursor sobre la celda de la tabla, aparece una ventana de información que contiene información adicional sobre el elemento especificado. El desarrollo adicional es filtros. Por ejemplo, dependiendo de la instalación, la ventana de información solo tendrá: la información física y química más importante, información sobre el historial de descubrimiento, información sobre la distribución en la naturaleza, una lista de los compuestos más importantes (donde se incluye este elemento), propiedades fisiológicas, nombre en un idioma extranjero, etc. e) Recordando el "pato" de Kaverin, con el que comienza este artículo, podemos decir que con este desarrollo del programa recibiremos un complejo de entrenamiento completo en ciencias naturales: además de ciencias de la computación, física y química: biología, geografía económica, historia de la ciencia e incluso nostrannye idiomas.

Pero la base de datos local no es el límite. El programa se conecta naturalmente a Internet. Cuando se selecciona un elemento, se activa un enlace y se abre un artículo de Wikipedia sobre este elemento en una ventana del navegador web. Wikipedia, como saben, no es una fuente autorizada. Puede establecer enlaces a fuentes autorizadas, por ejemplo, enciclopedia química, TSB, revistas de resúmenes, consultas de pedidos en motores de búsqueda para este elemento, etc. T.O. los estudiantes podrán realizar tareas simples pero informativas sobre los temas de DBMS e Internet.

Además de las consultas para un solo elemento, puede realizar un funcional que, por ejemplo, marcará con diferentes colores las celdas de la tabla que corresponden a ciertos criterios. Por ejemplo, metales y no metales. O células que son drenadas en los estanques por una planta química local.

También puede implementar las funciones de un organizador de cuaderno. Por ejemplo, resalte en la tabla los elementos que se incluyen en el examen. Luego resalte los elementos estudiados / repetidos por el alumno en preparación para el examen.

Y aquí, por ejemplo, una de las tareas típicas de la química escolar:

Dado 10 g de tiza. ¿Cuánto ácido clorhídrico necesito para disolver toda esta tiza?

Para resolver este problema, necesitas escribir un químico. En la reacción y colocando los coeficientes en ella, calcule los pesos moleculares del carbonato de calcio y el cloruro de hidrógeno, luego componga y resuelva la proporción. Una calculadora basada en nuestro programa básico podrá calcular y resolver. Es cierto que aún será necesario tener en cuenta que el ácido debe tomarse con un exceso razonable y en una concentración razonable, pero esto es química, no informática.
Apéndice 1: como funciona una calculadora química
Analicemos el trabajo de la calculadora usando el ejemplo del problema anterior de tiza y batiburrillo. Comencemos con la reacción:

CaCO 3 + 2HCl = CaCl 2 + H 2 O

A partir de aquí, vemos que necesitaremos los pesos atómicos de los siguientes elementos: calcio (Ca), carbono (C), oxígeno (O), hidrógeno (H) y cloro (Cl). En el caso más simple, podemos escribir estos pesos en una matriz unidimensional definida como

 AtomicMass : array [1..size] of real; 


donde el índice de la matriz corresponde al número del elemento. También ponemos dos campos en el espacio libre del formulario tableDlg . En el primer campo se escribe inicialmente: "Se da el primer reactivo", en el segundo - "El segundo reactivo es encontrar x". Denote los campos reactivo1 , reactivo2, respectivamente. Otras adiciones al programa serán claras a partir del siguiente ejemplo de la calculadora.

Escribimos en el teclado de la computadora: 10 g. La inscripción en el campo reactivo1 cambia: "El primer reactivo recibe 10 g". Ahora ingresamos la fórmula de este reactivo, y la calculadora leerá y mostrará su peso molecular a medida que escribe.

Haga clic en LMB en la celda de la tabla con el símbolo Ca. La inscripción en el campo reactivo1 cambia: "El primer reactivo Ca 40.078 recibe 10 g".

Haga clic en LMB en la celda de la tabla con el símbolo C. La inscripción en el campo reactivo1 cambia: "El primer reactivo CaC 52.089 recibe 10 g". Es decir la calculadora agregó los pesos atómicos de calcio y carbono.

Haga clic en LMB en la celda de la tabla con el símbolo O. La inscripción en el campo reactivo1 cambia: "El primer reactivo CaCO 68.088 recibe 10 g". La calculadora agregó el peso atómico del oxígeno a la suma.

Haga clic en LMB en la celda de la tabla con el símbolo O. La inscripción en el campo reactivo1 cambia: "El primer reactivo CaCO2 84.087 recibe 10 g". La calculadora una vez más agregó el peso atómico del oxígeno a la suma.

Haga clic en LMB en la celda de la tabla con el símbolo O. La inscripción en el campo reactivo1 cambia: "El primer reactivo CaCO3 100.086 recibe 10 g". La calculadora volvió a agregar el peso atómico del oxígeno a la suma.

Presione Entrar en el teclado de la computadora. La entrada del primer reactivo se completa y cambia al campo reactivo2 . Tenga en cuenta que en este ejemplo presentamos la versión mínima. Si lo desea, puede organizar fácilmente los multiplicadores de átomos del mismo tipo, de modo que, por ejemplo, no tenga que presionar la celda de oxígeno siete veces seguidas cuando ingrese la fórmula del pico de cromo (K 2 Cr 2 O 7 ).

Haga clic en LMB en la celda de la tabla con la letra H. La inscripción en el campo reactivo2 cambia: “Encuentre el segundo reactivo H 1.008 x”.

Haga clic en LMB en la celda de la tabla con el símbolo Cl. La inscripción en el campo reactivo2 cambia: "Segundo reactivo HCl 36.458 para encontrar x". La calculadora agregó los pesos atómicos de hidrógeno y cloro. En la ecuación de reacción anterior, el cloruro de hidrógeno tiene un coeficiente de 2. Por lo tanto, haga clic en LMB en el campo reactivo2 . El peso molecular se duplica (el doble de prensado se triplica, etc.). La inscripción en el campo reactivo2 cambia: "El segundo reactivo 2HCl 72.916 encuentra x".

Presione Entrar en el teclado de la computadora. La entrada del segundo reactivo se completa y la calculadora encuentra x de la proporción

x/72.916=10/100.086.$


Lo que se requería para encontrar.

Nota 1. El significado de la proporción obtenida: para disolver 100.086 Da de tiza, se necesitan 72.916 Da de ácido, y para disolver 10 g de tiza, se necesita x ácido.

Nota 2. Colecciones de tareas similares:

Khomchenko I.G., Colección de tareas y ejercicios en química 2009 (grado 8-11).
Khomchenko G.P., Khomchenko I.G., Una colección de problemas en química para estudiantes universitarios, 2019.

Nota 3. Para simplificar la tarea, puede simplificar la entrada de la fórmula en la versión inicial y simplemente agregar el símbolo del elemento al final de la línea de la fórmula. Entonces la fórmula del carbonato de calcio se verá así:
Cacoo
Pero es improbable que tal registro complazca a un profesor de química. No es difícil hacer el registro correcto; para esto debe agregar una matriz:
 formula : array [1..size] of integer; 

donde el índice es el número del elemento químico, y el valor en este índice es el número de átomos (inicialmente todos los elementos de la matriz se restablecen a cero). Es necesario tener en cuenta el orden de escritura de los átomos en la fórmula adoptada en química. Por ejemplo, a pocas personas les gustará O3CaC. Le pasamos la responsabilidad al usuario. Hacemos una matriz:
  formulaOrder : array [1..size] of integer; //    

donde escribimos el número del elemento químico de acuerdo con el índice de su aparición en la fórmula. Agregar el átomo currNo a la fórmula:
 if formula [currNo]=0 then //     begin orderIndex := orderIndex+1;//    orderIndex=0 formulaOrder [orderIndex] := currNo; end; formula [currNo]:=formula [currNo]+1; 

Escribir una fórmula en una línea:
 s := ''; //     for i:=1 to orderIndex do //   .   begin s:=s+TableSymbols [ formulaOrder[i]];//  . if formula [formulaOrder[i]]<>1 then // -  s:=s+ intToStr(formula [formulaOrder[i]]); end; 

Nota 4. Tiene sentido proporcionar la capacidad de ingresar alternativamente la fórmula del reactivo desde el teclado. En este caso, deberá implementar un analizador simple.


Vale la pena señalar que:
Hoy en día, hay varios cientos de variaciones de la tabla, mientras que los científicos ofrecen nuevas opciones. ( Wikipedia )

Los alumnos pueden ser inteligentes en esta dirección, al darse cuenta de cualquiera de las opciones ya propuestas o intentar hacer su propio original. Puede parecer que esta es la dirección menos útil para las lecciones de informática. Sin embargo, en la forma de la Tabla Periódica implementada en este artículo, algunos estudiantes pueden no ver las ventajas especiales de las tarjetas de control sobre una solución alternativa que utiliza botones TButton estándar. La forma espiral de la tabla (donde las celdas son de diferentes formas) demostrará más claramente las ventajas de la solución propuesta aquí.

imagen
( Un sistema alternativo de elementos por Theodore Benfei , Fuente )

También agregamos que una serie de programas informáticos actualmente existentes para la tabla periódica se describen en un artículo publicado recientemente en Habré.

Apéndice 2: tareas de muestra para filtros
Usando filtros, puede resolver, por ejemplo, las siguientes tareas:

1) Seleccione en la tabla todos los elementos conocidos en la Edad Media.

2) Seleccione todos los elementos conocidos cuando se descubrió la Ley Periódica.

3) Destacar siete elementos que los alquimistas consideran metales.

4) Seleccione todos los elementos que se encuentren en estado gaseoso en condiciones normales (n.o.).

5) Seleccione todos los elementos que están en estado líquido en nu

6) Seleccione todos los elementos que están en estado sólido en n.o.

7) Seleccione todos los elementos que pueden estar en el aire durante mucho tiempo sin cambios notables en n.o.

8) Seleccione todos los metales que se disuelven en ácido clorhídrico.

9) Seleccione todos los metales que se disuelven en ácido sulfúrico en n.a.

10) Seleccione todos los metales que se disuelven en ácido sulfúrico cuando se calientan.

11) Seleccione todos los metales que se disuelven en ácido nítrico.

12) Seleccione todos los metales que reaccionan violentamente con agua a n.o.

13) Seleccione todos los metales.

14) Resalte elementos que están muy extendidos en la naturaleza.

15) Resalte los elementos que se encuentran en la naturaleza en estado libre.

16) Destacar los elementos que juegan un papel crucial en el cuerpo humano y los animales.

17) Resalte elementos que se usan ampliamente en la vida cotidiana (en forma libre o en compuestos).

18) Identificar los elementos cuyo trabajo es más peligroso y requiere medidas especiales y equipo de protección.

19) Resalte los elementos que en forma libre o en forma de compuestos representan la mayor amenaza para el medio ambiente.

20) Destacar los metales preciosos.

21) Destaque los artículos que son más caros que los metales preciosos.

Notas

1) Tiene sentido garantizar el funcionamiento de varios filtros. Por ejemplo, si activa el filtro para resolver el problema 1 (todos los elementos conocidos en la Edad Media) y 20 (metales preciosos), las celdas (con color, por ejemplo) con metales preciosos conocidos en la Edad Media se resaltarán (por ejemplo, el paladio no se resaltará descubierto en 1803).

2) Tiene sentido garantizar el funcionamiento de varios filtros de manera que cada filtro resalte las celdas con su color, pero no elimine completamente la selección del otro filtro (parte de la celda en un color, parte en otro). Luego, en el caso del ejemplo anterior, los elementos de la intersección de los conjuntos de abierto en la Edad Media y los metales preciosos, así como los elementos que pertenecen solo al primero y solo al segundo conjunto serán visibles. Es decir metales preciosos desconocidos en la Edad Media, y elementos conocidos en la Edad Media, pero no metales preciosos.

3) Tiene sentido después de aplicar el filtro para proporcionar la posibilidad de otro trabajo con los resultados. Por ejemplo, al resaltar elementos conocidos en la Edad Media, el usuario hace clic en el LMB en el elemento seleccionado e ingresa al artículo de Wikipedia sobre este elemento.

4) Tiene sentido permitir que el usuario anule la selección haciendo clic en LMB en la celda de la tabla seleccionada. Por ejemplo, para eliminar elementos ya vistos.

5) Tiene sentido mantener una lista de celdas seleccionadas en un archivo y cargar dicho archivo con la selección automática de celdas. Esto le dará al usuario la oportunidad de tomarse un descanso del trabajo.

Apéndice 3: Prueba química
A diferencia de la tabla de multiplicar, los escolares no están obligados a memorizar la tabla periódica, pero aquellos que están interesados ​​en la química, mientras la estudian, de alguna manera memorizan casi toda la tabla. Esto se garantiza al comprender la esencia de la Ley Periódica: por qué, por ejemplo, los gases inertes ocupan la columna de la derecha y los halógenos ocupan la columna vecina. Conocer el orden correcto en la serie de los mismos halógenos ayuda a conocer sus propiedades químicas. Por lo tanto, si un estudiante recuerda de memoria una gran parte de la Tabla Periódica, esto indica su buen conocimiento de la química. Por lo tanto, tiene sentido competir en forma de cuestionario para evaluar dicho conocimiento opcional pero deseable.

En el espacio libre del formulario tableDlg colocamos el componente "lista de la selección de un elemento". Esta lista contiene todos los nombres de elementos químicos en orden alfabético. En la tabla, borramos todas las celdas. El participante del cuestionario debe seleccionar la celda de la tabla LMB y el elemento en la lista que debe estar en esta celda. Puede viceversa: seleccione un elemento de la lista y luego una celda. Si la elección se realiza correctamente, el programa ingresa el símbolo químico del elemento en la celda especificada y lo elimina de su lista. De lo contrario, el participante recibe un punto de penalización. El contador de puntuación se coloca en la tabla de espacio libreDlg . El programa también está equipado con un temporizador que cuenta el tiempo empleado por el participante para completar toda la tabla. Puede proporcionar una opción ligera: no llene las celdas de lantánidos y actínidos. El ganador está determinado por el tiempo dedicado menos los puntos de penalización. Por ejemplo, el primer finalizador recibe 10 puntos, de los cuales se deducen los puntos de penalización, los segundos 8 puntos, los terceros 5 puntos.

Apéndice 4: Integración de múltiples tareas en un solo programa
Arriba, examinamos una serie de tareas posibles: un directorio de elementos químicos, una calculadora química, un cuestionario químico. ( ). , ( ), .


Utilizamos una tarjeta de control estática predeterminada de antemano, sin embargo, hay muchas tareas importantes en las que se pueden usar tarjetas de control dinámico que cambian durante la operación del programa. Un ejemplo sería un editor de gráficos en el que el usuario, utilizando el mouse, señala la posición de los vértices y dibuja bordes entre ellos. Para eliminar un vértice o borde, el usuario debe señalarlo. Pero si el vértice indicado por el círculo es bastante simple de indicar, entonces el borde dibujado por una línea delgada será más difícil de señalar. Un mapa de control ayudará aquí, donde los vértices y los bordes ocupan un área más amplia que en la figura visible.

Una pregunta secundaria interesante está asociada con el método de aprendizaje integrado que se ha abordado: ¿puede este método ser útil para enseñar IA?

Source: https://habr.com/ru/post/446836/


All Articles