A tabela de Mendeleev sobre informática escolar

(Cartões de controle)
(Dedicado ao Ano Internacional da Tabela Periódica de Elementos Químicos)
(As adições mais recentes foram feitas em 8 de abril de 2019. A lista de adições está logo abaixo do corte)

imagem
( Flor de Mendeleev , Fonte )

Lembro que passamos pelo pato. Foram três lições ao mesmo tempo: geografia, ciências naturais e russo. Em uma lição de ciências naturais, um pato foi estudado como pato, que asas tinha, que pernas, como nada e assim por diante. Em uma lição de geografia, o mesmo pato foi estudado como um morador do mundo: era necessário mostrar no mapa onde ele mora e onde ele não existe. Em russo, Serafima Petrovna nos ensinou a escrever “u-t-k-a” e ler algo sobre patos de Brem. De passagem, ela nos informou que em alemão um pato é mais ou menos e em francês mais ou menos. Parece que foi então chamado de "método complexo". Em geral, tudo saiu de passagem.

Benjamin Caverin , dois capitães

Na citação citada, Veniamin Kaverin mostrou magistralmente as deficiências do método de ensino abrangente, mas em alguns casos (talvez bastante raros) os elementos desse método são justificados. Um desses casos é a Tabela Periódica de D.I. Mendeleev nas aulas de ciências da computação da escola. A tarefa de automatizar o programa de ações típicas com uma tabela periódica é óbvia para crianças em idade escolar que começaram a estudar química e está dividida em muitos problemas químicos típicos. Ao mesmo tempo, no âmbito da ciência da computação, essa tarefa nos permite demonstrar de forma simples o método de cartões de controle, que podem ser atribuídos à programação gráfica, entendida no amplo sentido da palavra como programação usando elementos gráficos.

(13 de abril de 2019 adições feitas:
Apêndice 3: Teste Químico
Apêndice 4: Integrando várias tarefas em um programa
8 de abril de 2019 adições feitas:
Apêndice 1: como funciona uma calculadora química
Apêndice 2: tarefas de exemplo para filtros)

Vamos começar com a tarefa básica. No caso mais simples, a Tabela Periódica deve ser exibida na tela na janela do formulário, onde em cada célula haverá um símbolo químico do elemento: H - hidrogênio, He - hélio, etc. Se o cursor do mouse apontar para uma célula, em um campo especial em nosso formulário, será exibido o símbolo do elemento e seu número. Se o usuário clicar em LMB, a designação e o número desse elemento selecionado serão indicados em outro campo do formulário.

imagem

O problema pode ser resolvido em qualquer PL universal. Vamos usar um Delpi-7 antigo simples, compreensível para quase todos. Mas antes de programar no YP, desenharemos duas imagens, por exemplo, no Photoshop. Primeiro, vamos desenhar a Tabela Periódica como queremos no programa. Salve o resultado no arquivo gráfico table01.bmp .

imagem

Para a segunda imagem, usamos a primeira. Nós preencheremos consistentemente as células da tabela limpas de qualquer gráfico com cores exclusivas no modelo de cores RGB. R e G sempre serão 0 e B = 1 para hidrogênio, 2 para hélio, etc. Esta figura será o nosso cartão de controle, que salvamos em um arquivo sob o nome table2.bmp .

imagem

A primeira etapa da programação gráfica no Photoshop está concluída. Vamos seguir para a programação gráfica da GUI no Delpi-7 IDE. Para isso, abra um novo projeto, no qual, no formulário principal, colocamos o botão de chamada de diálogo ( tableDlg ), no qual a tabela será processada . Em seguida, trabalhamos com o formulário tableDlg .

Colocamos os componentes da classe TImage no formulário. Obtenha a Image1 . Observe que, no caso geral, para projetos grandes, nomes gerados automaticamente do tipo ImageN , onde N pode atingir várias dezenas ou mais, não são o melhor estilo de programação e nomes mais significativos devem ser dados. Mas em nosso pequeno projeto, onde N não excederá 2, você pode deixá-lo como gerado.

Na propriedade Image1.Picture, carregue o arquivo table01.bmp . Crie a Image2 e carregue nosso cartão de controle table2.bmp lá . Nesse caso, tornamos o componente pequeno e invisível para o usuário, conforme mostrado no canto inferior esquerdo do formulário. Adicione controles adicionais, cujo objetivo é óbvio. A segunda etapa da programação gráfica da GUI no Delpi-7 IDE está concluída.

imagem

Passamos para o terceiro estágio - escrevendo código no IDE Delpi-7. O módulo consiste em apenas cinco manipuladores de eventos: criar um formulário ( FormCreate ), mover o cursor ao longo de Image1 ( Image1MouseMove ), clicar com LMB na célula ( Image1Click ) e sair da caixa de diálogo usando os botões OK ( OKBtnClick ) ou Cancelar ( CancelBtnClick ). Os cabeçalhos desses manipuladores são gerados de maneira padrão usando o IDE.

Código fonte do 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. 


Em nossa versão, pegamos uma tabela com um tamanho de 104 elementos ( tamanho constante). Obviamente, esse tamanho pode ser aumentado. As designações de elementos (símbolos químicos) são gravadas na matriz TableSymbols . No entanto, por motivos de compactação do código-fonte, parece aconselhável anotar a sequência dessas notações na forma de constantes de cadeia de caracteres PeriodicTableStr1 , ..., PeriodicTableStr4 , para que, quando o formulário for criado, o programa espalhe essas notações pelos elementos da matriz. Cada designação de um elemento consiste em uma ou duas letras latinas, com a primeira letra maiúscula e a segunda (se houver) minúscula. Esta regra simples é implementada ao carregar uma matriz. Assim, a sequência de símbolos pode ser escrita de maneira concisa, sem espaços. A divisão da sequência em quatro partes (constantes PeriodicTableStr1 , ..., PeriodicTableStr4 ) deve-se à consideração da conveniência de ler o código-fonte, porque uma linha muito longa pode não caber totalmente na tela.

Quando o cursor do mouse se move sobre Image1, o manipulador Image1MouseMove para esse evento determina o valor do componente azul da cor do pixel do mapa de controle da Image2 para as coordenadas atuais do cursor. Por construção da Image2, esse valor é igual ao número do elemento se o cursor estiver dentro da célula; zero se na borda e 255 em outros casos. As demais ações executadas pelo programa são triviais e não precisam de explicação.

Além dos truques estilísticos da programação mencionados acima, vale a pena notar o estilo dos comentários. A rigor, o código revisado é tão pequeno e simples que os comentários não parecem particularmente úteis. No entanto, eles foram adicionados, inclusive por razões metodológicas - um código curto permite deixar mais claras algumas conclusões gerais. No código enviado, uma classe é declarada ( TtableDlg ). Os métodos desta classe podem ser trocados e isso não afetará o funcionamento do programa, mas poderá afetar sua legibilidade. Por exemplo, imagine uma sequência:

 OKBtnClick, Image1MouseMove, FormCreate, Image1Click, CancelBtnClick. 

Pode não ser muito perceptível, mas a leitura e a compreensão se tornarão um pouco mais difíceis. Se não houver cinco métodos, mas dezenas de vezes mais e na seção de implementação eles tiverem uma ordem completamente diferente da das descrições de classe, o caos somente aumentará. Portanto, embora seja difícil provar estritamente e possa até ser impossível, espera-se que a introdução de um pedido adicional melhore a legibilidade do código. Essa ordem adicional é facilitada pelo agrupamento lógico de vários métodos que executam tarefas semelhantes. Cada grupo deve receber um cabeçalho, por exemplo:

 //   :    

Esses cabeçalhos devem ser copiados para a parte superior do módulo e formatados como um sumário. Em alguns casos de módulos suficientemente longos, esses índices fornecem recursos de navegação adicionais. Da mesma forma, no corpo longo de um método, procedimento ou função, vale a pena, em primeiro lugar, marcar o fim desse corpo:

 end; // FormCreate 

e segundo, nas instruções bifurcadas com colchetes programáticos, inicie e termine, marque a declaração à qual o colchete de fechamento se refere:

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

Para destacar os títulos dos grupos e as extremidades dos corpos dos métodos, você pode adicionar linhas que excedam o comprimento da maioria dos operadores e consistem, por exemplo, nos caracteres "=" e "_", respectivamente.
Novamente, precisamos fazer uma reserva: temos um exemplo muito simples. E quando o código do método não se encaixa em uma tela, não é fácil descobrir os seis fins consecutivos para fazer alterações no código. Em alguns compiladores mais antigos, por exemplo, Pascal 8000 para OS IBM 360/370, uma coluna de serviço do formulário foi impressa na listagem à esquerda

 B5 … E5 

Isso significa que o suporte do programa de fechamento na linha E5 corresponde ao suporte de abertura na linha B5.

Obviamente, o estilo de programação é uma questão muito controversa; portanto, as idéias expressas aqui devem ser tomadas apenas como informações para consideração. É muito difícil para dois programadores experientes que se desenvolveram e se acostumaram a estilos diferentes ao longo dos anos para trabalhar. Outra coisa é um aluno para programar um aluno que ainda não teve tempo de encontrar seu próprio estilo. Penso que, nesse caso, o professor deveria pelo menos transmitir a seus alunos uma idéia tão simples, mas não óbvia, de que o sucesso do programa depende em grande parte do estilo em que seu código-fonte é escrito. O aluno pode não seguir o estilo recomendado, mas deixe-o pelo menos pensar na necessidade de ações "extras" para melhorar o design do código fonte.

Voltando à nossa tarefa básica na Tabela Periódica: um maior desenvolvimento pode ir em diferentes direções. Uma das instruções é para referência: quando você passa o mouse sobre a célula da tabela, uma janela de informações é exibida, contendo informações adicionais sobre o item especificado. Desenvolvimento adicional é filtros. Por exemplo, dependendo da instalação, a janela de informações terá apenas: as informações físicas e químicas mais importantes, as informações sobre a história da descoberta, as informações sobre a distribuição na natureza, uma lista dos compostos mais importantes (que incluem esse elemento), propriedades fisiológicas, nome em idioma estrangeiro etc. Recordando o “pato” de Kaverin, com o qual este artigo começa, podemos dizer que, com este desenvolvimento do programa, receberemos um complexo completo de treinamento em ciências naturais: além da ciência da computação, física e química - biologia, geografia econômica, história da ciência e até línguas nostrannye.

Mas o banco de dados local não é o limite. O programa se conecta naturalmente à Internet. Quando um elemento é selecionado, um link é acionado e um artigo da Wikipedia sobre esse elemento é aberto em uma janela do navegador da web. A Wikipedia, como você sabe, não é uma fonte autorizada. Você pode definir links para fontes autorizadas, por exemplo, enciclopédia química, TSB, diários de resumo, consultas de pedidos nos mecanismos de pesquisa para esse elemento etc. T.O. os alunos serão capazes de executar tarefas simples, mas informativas, sobre os tópicos do DBMS e da Internet.

Além das consultas para um único elemento, você pode criar um funcional que, por exemplo, marcará com cores diferentes as células da tabela que correspondem a determinados critérios. Por exemplo, metais e não metais. Ou células que são drenadas para as lagoas por uma planta química local.

Você também pode implementar as funções de um organizador de notebook. Por exemplo, destaque na tabela os elementos que estão incluídos no exame. Em seguida, destaque os elementos estudados / repetidos pelo aluno na preparação para o exame.

E aqui, por exemplo, uma das tarefas típicas da química da escola:

Dado 10 g de giz. Quanto ácido clorídrico eu preciso para dissolver todo esse giz?

Para resolver esse problema, você precisa escrever uma química. a reação e colocando os coeficientes nela, calcule os pesos moleculares de carbonato de cálcio e cloreto de hidrogênio, depois componha e resolva a proporção. Uma calculadora baseada em nosso programa básico poderá calcular e resolver. É verdade que ainda será necessário levar em consideração que o ácido deve ser tomado com um excesso razoável e em uma concentração razoável, mas isso é química, não ciência da computação.
Apêndice 1: como funciona uma calculadora química
Vamos analisar o trabalho da calculadora usando o exemplo do problema acima de giz e mistura. Vamos começar com a reação:

CaCO 3 + 2HCl = CaCl 2 + H2O

A partir daqui, vemos que precisaremos dos pesos atômicos dos seguintes elementos: cálcio (Ca), carbono (C), oxigênio (O), hidrogênio (H) e cloro (Cl). No caso mais simples, podemos escrever esses pesos em uma matriz unidimensional definida como

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


onde o índice da matriz corresponde ao número do elemento. Também colocamos dois campos no espaço livre do formulário tableDlg . No primeiro campo está escrito inicialmente: “O primeiro reagente é dado”, no segundo - “O segundo reagente é encontrar x”. Indique os campos reagente1 , reagente2, respectivamente. Outras adições ao programa ficarão claras no exemplo a seguir da calculadora.

Digitamos no teclado do computador: 10 g. A inscrição no campo reagente1 muda: "O primeiro reagente recebe 10 g". Agora, entramos na fórmula deste reagente e a calculadora lerá e exibirá seu peso molecular à medida que você digita.

Clique em LMB na célula da tabela com o símbolo Ca. A inscrição no campo reagente1 muda: "O primeiro reagente Ca 40.078 recebe 10 g".

Clique em LMB na célula da tabela com o símbolo C. A inscrição no campo reagente1 muda: “O primeiro reagente CaC 52.089 recebe 10 g”. I.e. a calculadora adicionou os pesos atômicos de cálcio e carbono.

Clique em LMB na célula da tabela com o símbolo O. A inscrição no campo reagente1 muda: “O primeiro reagente CaCO 68.088 recebe 10 g”. A calculadora adicionou o peso atômico do oxigênio à soma.

Clique em LMB na célula da tabela com o símbolo O. A inscrição no campo reagente1 muda: “O primeiro reagente CaCO2 84.087 recebe 10 g”. A calculadora mais uma vez adicionou o peso atômico do oxigênio à soma.

Clique em LMB na célula da tabela com o símbolo O. A inscrição no campo reagente1 muda: “O primeiro reagente CaCO3 100.086 recebe 10 g”. A calculadora adicionou novamente o peso atômico do oxigênio à soma.

Pressione Enter no teclado do computador. A entrada do primeiro reagente é concluída e alterna para o campo reagente2 . Observe que neste exemplo apresentamos a versão mínima. Se desejar, você pode organizar facilmente os multiplicadores de átomos do mesmo tipo, para que, por exemplo, não seja necessário pressionar a célula de oxigênio sete vezes seguidas ao inserir a fórmula de chrompeak (K 2 Cr 2 O 7 ).

Clique em LMB na célula da tabela com a letra H. A inscrição no campo reagente2 muda: “Encontre o segundo reagente H 1,008 x”.

Clique em LMB na célula da tabela com o símbolo Cl. A inscrição no campo reagente2 muda: “Segundo reagente HCl 36.458 para encontrar x”. A calculadora adicionou os pesos atômicos de hidrogênio e cloro. Na equação da reação acima, o cloreto de hidrogênio tem um coeficiente de 2. Portanto, clique em LMB no campo reaggent2 . O peso molecular dobra (triplos pressionando duas vezes, etc.). A inscrição no campo reagente2 muda: “O segundo reagente 2HCl 72.916 encontra x”.

Pressione Enter no teclado do computador. A entrada do segundo reagente está concluída e a calculadora encontra x a partir da proporção

x/72.916=10/100.086.


O que era necessário para encontrar.

Nota 1. O significado da proporção obtida: para dissolver 100.086 Da de giz, são necessários 72.916 Da de ácido e para dissolver 10 g de giz, é necessário x ácido.

Nota 2. Coleções de tarefas semelhantes:

Khomchenko I.G., Coleção de tarefas e exercícios de química 2009 (nota 8-11).
Khomchenko G.P., Khomchenko I.G., Uma coleção de problemas em química para ingressantes em universidades, 2019.

Nota 3. Para simplificar a tarefa, você pode simplificar a entrada da fórmula na versão inicial e simplesmente anexar o símbolo do elemento ao final da linha da fórmula. Então a fórmula do carbonato de cálcio será semelhante a:
Cacoo
Mas é improvável que tal registro agrade um professor de química. Não é difícil fazer o registro correto - para isso, você precisa adicionar uma matriz:
 formula : array [1..size] of integer; 

onde o índice é o número do elemento químico e o valor nesse índice é o número de átomos (inicialmente todos os elementos da matriz são redefinidos para zero). É necessário levar em consideração a ordem de escrita dos átomos na fórmula adotada na química. Por exemplo, poucas pessoas vão gostar do O3CaC. Nós transferimos a responsabilidade para o usuário. Nós fazemos uma matriz:
  formulaOrder : array [1..size] of integer; //    

onde escrevemos o número do elemento químico de acordo com o índice de sua aparência na fórmula. Adicionando o átomo currNo à fórmula:
 if formula [currNo]=0 then //     begin orderIndex := orderIndex+1;//    orderIndex=0 formulaOrder [orderIndex] := currNo; end; formula [currNo]:=formula [currNo]+1; 

Escrevendo uma fórmula em uma linha:
 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. Faz sentido fornecer a capacidade de inserir alternativamente a fórmula do reagente a partir do teclado. Nesse caso, você precisará implementar um analisador simples.


Vale ressaltar que:
Hoje, existem várias centenas de variações da tabela, enquanto os cientistas estão oferecendo novas opções. ( Wikipedia )

Os alunos podem ser inteligentes nessa direção, realizando qualquer uma das opções já propostas ou tentar criar seu próprio original. Pode parecer que essa é a direção menos útil para as aulas de ciência da computação. No entanto, na forma da Tabela Periódica implementada neste artigo, alguns alunos podem não ver as vantagens especiais dos cartões de controle sobre uma solução alternativa usando os botões TButton padrão. A forma espiral da tabela (onde as células são de formas diferentes) demonstrará mais claramente as vantagens da solução proposta aqui.

imagem
( Um sistema alternativo de elementos de Theodore Benfei , Source )

Também acrescentamos que vários programas de computador atualmente existentes para a tabela periódica são descritos em um artigo publicado recentemente no Habré.

Apêndice 2: Tarefas de Amostra para Filtros
Usando filtros, você pode resolver, por exemplo, as seguintes tarefas:

1) Selecione na tabela todos os elementos conhecidos na Idade Média.

2) Selecione todos os elementos conhecidos no momento em que a Lei Periódica foi descoberta.

3) Destaque sete elementos que os alquimistas consideravam metais.

4) Selecione todos os elementos que estão em estado gasoso em condições normais (nº).

5) Selecione todos os elementos que estão no estado líquido em nu

6) Selecione todos os elementos que estão em estado sólido em no.

7) Selecione todos os elementos que possam permanecer no ar por um longo período de tempo sem alterações visíveis em no.

8) Selecione todos os metais que se dissolvem em ácido clorídrico.

9) Selecione todos os metais que se dissolvem em ácido sulfúrico em n.a.

10) Selecione todos os metais que se dissolvem em ácido sulfúrico quando aquecidos.

11) Selecione todos os metais que se dissolvem em ácido nítrico.

12) Selecione todos os metais que reagem violentamente com a água em no.

13) Selecione todos os metais.

14) Destaque elementos de natureza difundida.

15) Destaque os elementos encontrados na natureza em um estado livre.

16) Destacar os elementos que desempenham um papel crucial no corpo humano e nos animais.

17) Destaque elementos que são amplamente utilizados na vida cotidiana (de forma livre ou em compostos).

18) Identificar os elementos cujo trabalho é mais perigoso e requer medidas especiais e equipamentos de proteção.

19) Destaque elementos que, na forma livre ou na forma de compostos, representam a maior ameaça ao meio ambiente.

20) Destaque metais preciosos.

21) Destaque itens que são mais caros que metais preciosos.

Anotações

1) Faz sentido garantir a operação de vários filtros. Por exemplo, se você habilitar o filtro para resolver o problema 1 (todos os elementos conhecidos na Idade Média) e 20 (metais preciosos), as células (com cores, por exemplo) com metais preciosos conhecidos na Idade Média serão destacadas (por exemplo, o paládio não será destacado descoberto em 1803).

2) Faz sentido garantir a operação de vários filtros de forma que cada filtro destaque as células com sua cor, mas não remova completamente a seleção do outro filtro (parte da célula em uma cor, parte em outra). Então, no caso do exemplo anterior, os elementos da interseção dos conjuntos de aberto na Idade Média e metais preciosos, bem como os elementos pertencentes apenas ao primeiro e somente o segundo conjunto serão visíveis. I.e. metais preciosos desconhecidos na Idade Média e elementos conhecidos na Idade Média, mas não metais preciosos.

3) Depois de aplicar o filtro, faz sentido fornecer a possibilidade de outros trabalhos com os resultados. Por exemplo, destacando os elementos conhecidos na Idade Média, o usuário clica no LMB no elemento selecionado e entra no artigo da Wikipedia sobre esse elemento.

4) Faz sentido permitir que o usuário desmarque clicando em LMB na célula da tabela selecionada. Por exemplo, para remover itens já visualizados.

5) Faz sentido manter uma lista de células selecionadas em um arquivo e carregá-lo com a seleção automática de células. Isso dará ao usuário a oportunidade de fazer uma pausa no trabalho.

Apêndice 3: Teste Químico
Diferentemente da tabela de multiplicação, os alunos não são obrigados a memorizar a tabela periódica, mas aqueles que estão interessados ​​em química, enquanto a estudam, de alguma forma se lembram de quase toda a tabela por si mesmos. Isso é garantido pela compreensão da essência da Lei Periódica: por que, por exemplo, gases inertes ocupam a coluna da extrema direita e halogênios ocupam a coluna vizinha. Conhecer a ordem correta na série dos mesmos halogênios ajuda a conhecer suas propriedades químicas. Assim, se um aluno se lembra de cor grande parte da Tabela Periódica, isso indica seu bom conhecimento de química. Portanto, faz sentido competir na forma de um questionário para testar esse conhecimento opcional, mas desejável.

No espaço livre do formulário tableDlg, colocamos o componente "lista da seleção de um elemento". Esta lista contém todos os nomes de elementos químicos em ordem alfabética. Na tabela, limpamos todas as células. O participante do questionário deve selecionar a célula da tabela LMB e o elemento na lista que deve estar nessa célula. Você pode vice-versa: selecione um item da lista e, em seguida, uma célula. Se a escolha for feita corretamente, o programa inserirá o símbolo químico do elemento na célula especificada e o removerá da lista. Caso contrário, o participante recebe um ponto de penalidade. O contador de pontuação é colocado na tabela de espaço livreDlg . O programa também é equipado com um cronômetro que conta o tempo gasto pelo participante para preencher a tabela inteira. Você pode fornecer uma opção leve: não encha as células de lantanídeos e actinídeos. O vencedor é determinado pelo tempo gasto menos pontos de penalidade. Por exemplo, o primeiro finalizador recebe 10 pontos, dos quais pontos de penalidade são deduzidos, os segundos 8 pontos, os terceiros 5 pontos.

Apêndice 4: Integrando várias tarefas em um programa
Acima, examinamos várias tarefas possíveis: um diretório de elementos químicos, uma calculadora química, um teste químico.Cada uma dessas tarefas pode ser resolvida por diferentes grupos de alunos (uma ou mais pessoas). Depois que todos lidam com suas tarefas, faz sentido definir a tarefa de combinar todas as soluções em um programa (evitando a duplicação de código), onde a ferramenta deve ser selecionada no menu principal do formulário.


Usamos um cartão de controle estático predeterminado com antecedência, no entanto, existem muitas tarefas importantes nas quais os cartões de controle dinâmico que mudam durante a operação do programa podem ser usados. Um exemplo seria um editor de gráficos no qual o usuário, usando o mouse, aponta para a posição dos vértices e desenha arestas entre eles. Para remover um vértice ou aresta, o usuário deve apontar para ele. Mas se o vértice indicado pelo círculo for bastante simples de indicar, será mais difícil apontar a aresta desenhada por uma linha fina. Um mapa de controle ajudará aqui, onde os vértices e as bordas ocupam uma área mais ampla do que na figura visível.

Uma questão secundária interessante está associada ao método de aprendizado integrado que foi abordado: esse método pode ser útil no ensino da IA?

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


All Articles