Tabela periódica de informática escolar

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

Tabela periódica de informática escolar
(Flor de Mendeleev, Fonte)

Lembro que passamos pelo pato. Foram três aulas ao mesmo tempo: geografia, ciências naturais e russo. Em uma aula de ciências, um pato foi estudado como pato, quais asas ele tem, quais pernas ele tem, como ele nada e assim por diante. Numa aula de geografia, o mesmo pato foi estudado como habitante do globo: era preciso mostrar no mapa onde ele mora e onde não mora. Em russo, Serafima Petrovna nos ensinou a escrever “u-t-k-a” e a ler algo sobre patos de Brem. De passagem, ela nos informou que em alemão pato é assim, e em francês assim. Acho que naquela época era chamado de “método complexo”. Em geral, tudo saiu “de passagem”.

Veniamin Kaverin, Dois capitães

Na citação acima, Veniamin Kaverin mostrou com maestria as deficiências do complexo método de ensino, porém, em alguns casos (talvez bastante raros), elementos deste método são justificados. Um desses casos é a tabela periódica de DI Mendeleev nas aulas escolares de ciência da computação. A tarefa de automatizar por software ações típicas com a tabela periódica é clara para os alunos que começaram a estudar química e está dividida em muitos problemas químicos típicos. Ao mesmo tempo, no âmbito da informática, esta tarefa permite-nos demonstrar de forma simples o método dos cartões de controlo, que pode ser atribuído à programação gráfica, entendida no sentido lato da palavra como programação através de elementos gráficos.

(Adições feitas em 8 de abril de 2019:
Adendo 1: Como funciona a calculadora química
Apêndice 2: exemplos de tarefas para filtros)

Vamos começar com a tarefa básica. No caso mais simples, a tabela periódica deverá ser exibida na tela em forma de janela, onde em cada célula haverá uma designação química do elemento: H - hidrogênio, He - hélio, etc. Se o cursor do mouse apontar para uma célula, a designação do elemento e seu número serão exibidos em um campo especial em nosso formulário. Se o usuário pressionar LMB, a designação e o número deste elemento selecionado serão indicados em outro campo do formulário.

Tabela periódica de informática escolar

O problema pode ser resolvido usando qualquer linguagem universal. Usaremos o simples e antigo Delpi-7, que é compreensível para quase todos. Mas antes de programar em PL, vamos fazer dois desenhos, por exemplo, no Photoshop. Primeiro, vamos desenhar a Tabela Periódica na forma que queremos ver no programa. Salve o resultado em um arquivo gráfico tabela01.bmp.

Tabela periódica de informática escolar

Para o segundo desenho usamos o primeiro. Preenchemos sequencialmente as células da tabela, limpas de todos os gráficos, com cores exclusivas no modelo de cores RGB. R e G serão sempre 0, e B=1 para hidrogênio, 2 para hélio, etc. Este desenho será nosso cartão de controle, que salvaremos em um arquivo chamado tabela2.bmp.

Tabela periódica de informática escolar

A primeira etapa da programação gráfica no Photoshop está concluída. Vamos passar para a programação GUI gráfica no IDE Delpi-7. Para isso, abra um novo projeto, onde no formulário principal colocamos um botão de diálogo (tabelaDlg), em que ocorrerá o trabalho com a mesa. A seguir trabalhamos com o formulário tabelaDlg.

Coloque um componente de classe no formulário Timage. Nós temos Image1. Observe que, em geral, para projetos grandes, nomes gerados automaticamente no formato ImagemNOnde N pode atingir várias dezenas ou mais - este não é o melhor estilo de programação e nomes mais significativos devem ser fornecidos. Mas em nosso pequeno projeto, onde N não excederá 2, você pode deixá-lo como gerado.

Para propriedade Imagem1.Imagem subir arquivo tabela01.bmp. Nós criamos Image2 e carregue nosso cartão de controle lá tabela2.bmp. Neste caso, tornamos o arquivo pequeno e invisível para o usuário, conforme mostrado no canto inferior esquerdo do formulário. Adicionamos elementos de controle adicionais, cuja finalidade é óbvia. A segunda etapa da programação gráfica da GUI no IDE Delpi-7 está concluída.

Tabela periódica de informática escolar

Vamos para a terceira etapa - escrever código no IDE Delpi-7. O módulo consiste em apenas cinco manipuladores de eventos: criação de formulário (Criar Formulário), movimento do cursor Image1 (Imagem1MouseMove), clicando com LMB em uma célula (Imagem1Click) e saia da caixa de diálogo usando os botões OK (OKBtnClick) ou Cancelar (CancelarBtnClick). Os cabeçalhos desses manipuladores são gerados de forma 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.

Na nossa versão, pegamos uma tabela de 104 elementos (constante tamanho). Obviamente esse tamanho pode ser aumentado. As designações dos elementos (símbolos químicos) são escritas em uma matriz Símbolos de tabela. No entanto, por razões de compacidade do código-fonte, parece aconselhável escrever a sequência destas notações na forma de constantes de string TabelaPeriódicaStr1..., TabelaPeriódicaStr4para que quando o formulário for criado, o próprio programa espalhe essas designações entre os elementos do array. Cada designação de elemento consiste em uma ou duas letras latinas, sendo a primeira letra maiúscula e a segunda (se houver) minúscula. Esta regra simples é implementada ao carregar um array. Assim, a sequência de notações pode ser escrita de forma concisa e sem espaços. Quebrar uma sequência em quatro partes (constantes TabelaPeriódicaStr1..., TabelaPeriódicaStr4) se deve a considerações de facilidade de leitura do código-fonte, pois Uma linha muito longa pode não caber inteiramente na tela.

Quando o cursor do mouse se move sobre o Image1 manipulador Imagem1MouseMove este evento determina o valor do componente de cor azul do pixel do cartão de controle Image2 para as coordenadas atuais do cursor. Por construção Image2 este valor é igual ao número do elemento se o cursor estiver dentro da célula; zero se estiver na fronteira e 255 nos demais casos. As demais ações realizadas pelo programa são triviais e não requerem explicação.

Além das técnicas estilísticas de programação mencionadas acima, vale a pena observar o estilo dos comentários. A rigor, o código discutido é tão pequeno e simples que comentários não parecem particularmente necessários. No entanto, eles foram adicionados também por razões metodológicas - o código curto permite-nos tirar algumas conclusões gerais de forma mais clara. No código apresentado uma classe é declarada (TtableDlg). Os métodos desta classe podem ser trocados e isso não afetará de forma alguma o funcionamento do programa, mas poderá afetar sua legibilidade. Por exemplo, imagine a sequência:

OKBtnClick, Image1MouseMove, FormCreate, Image1Click, CancelBtnClick.

Pode não ser muito perceptível, mas ficará um pouco mais difícil de ler e entender. Se não houver cinco, mas dezenas de vezes mais métodos na seção implementação eles têm uma ordem completamente diferente das descrições das classes, então o caos só aumentará. Portanto, embora seja difícil provar estritamente e possa até ser impossível, pode-se esperar que a introdução de ordem adicional melhore a legibilidade do código. Esta ordem adicional é facilitada pelo agrupamento lógico de vários métodos que executam tarefas relacionadas. Cada grupo deve receber um título, por exemplo:

// работа с таблицей: указание и выбор

Esses títulos devem ser copiados para o início do módulo e formatados como um índice analítico. Em alguns casos de módulos bastante longos, esses índices fornecem opções de navegação adicionais. Da mesma forma, no corpo longo de um método, procedimento ou função, vale, primeiramente, marcar o final deste corpo:

end; // FormCreate

e, em segundo lugar, em declarações ramificadas com colchetes de programa início - fim, 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 cabeçalhos dos grupos e os finais dos corpos dos métodos, você pode adicionar linhas que sejam mais longas que a maioria das instruções e consistam, por exemplo, nos caracteres “=” e “_”, respectivamente.
Novamente, precisamos fazer uma ressalva: nosso exemplo é muito simples. E quando o código de um método não cabe em uma tela, pode ser difícil entender seis finais consecutivos para fazer alterações no código. Em alguns compiladores antigos, por exemplo, Pascal 8000 para OS IBM 360/370, uma coluna de serviço como esta era impressa à esquerda na listagem

B5
…
E5

Isto significava que o parêntese de fechamento na linha E5 correspondia ao parêntese de abertura na linha B5.

É claro que o estilo de programação é uma questão muito controversa, portanto as ideias aqui expressas devem ser consideradas nada mais do que alimento para reflexão. Pode ser muito difícil para dois programadores bastante experientes, que desenvolveram e se acostumaram a estilos diferentes ao longo de muitos anos de trabalho, chegarem a um acordo. A questão é diferente para um aluno que está aprendendo a programar e ainda não teve tempo de encontrar seu próprio estilo. Penso que neste caso o professor deveria pelo menos transmitir aos seus alunos uma ideia tão simples, mas não óbvia, de que o sucesso de um programa depende em grande parte do estilo em que o 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 ao nosso problema básico da Tabela Periódica: o desenvolvimento futuro pode seguir em diferentes direções. Uma das instruções é para referência: ao passar o cursor do mouse sobre uma célula da tabela, aparece uma janela de informações contendo informações adicionais sobre o elemento especificado. O desenvolvimento adicional são os filtros. Por exemplo, dependendo da instalação, a janela de informações conterá apenas: as informações físicas e químicas mais importantes, informações sobre a história da descoberta, informações sobre a distribuição na natureza, uma lista dos compostos mais importantes (que inclui este elemento), propriedades fisiológicas, nome em língua estrangeira, etc. e. Lembrando o “pato” de Kaverin com o qual este artigo começa, podemos dizer que com este desenvolvimento do programa obteremos um complexo completo de treinamento em ciências naturais: além de informática ciências, física e química - biologia, geografia económica, história da ciência e até línguas estrangeiras.

Mas um banco de dados local não é o limite. O programa se conecta naturalmente à Internet. Quando você seleciona um elemento, o link é ativado e o artigo da Wikipedia sobre esse elemento é aberto na janela do navegador da web. A Wikipedia, como você sabe, não é uma fonte oficial. Você pode definir links para fontes confiáveis, por exemplo, a enciclopédia química, TSB, periódicos de resumos, solicitar consultas em mecanismos de pesquisa para este elemento, etc. Que. Os alunos serão capazes de realizar tarefas simples, mas significativas, sobre tópicos de SGBD e Internet.

Além de consultas em um elemento individual, você pode criar funcionalidades que irão, por exemplo, marcar células na tabela que atendem a determinados critérios com cores diferentes. Por exemplo, metais e não metais. Ou células que são despejadas em corpos d'água por uma fábrica de produtos químicos local.

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

E aqui, por exemplo, está um dos problemas típicos de química escolar:

Dado 10 g de giz. Quanto ácido clorídrico deve ser tomado para dissolver todo esse giz?

Para resolver este problema, é necessário anotar a química. reação e colocando os coeficientes nela, calcule os pesos moleculares do carbonato de cálcio e do cloreto de hidrogênio, depois componha e resolva a proporção. Uma calculadora baseada em nosso programa básico pode calcular e resolver. É verdade que ainda será necessário levar em conta que o ácido deve ser ingerido em excesso razoável e em concentração razoável, mas isso é química, não ciência da computação.
Adendo 1: Como funciona a calculadora químicaVamos analisar o funcionamento da calculadora usando o exemplo do problema acima de giz e “mistura”. Vamos começar com a reação:

CaCO3 + 2HCl = CaCl2 + H2O

A partir disso 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. Mais sobre o espaço livre do formulário tabelaDlg coloque dois campos. No primeiro campo está escrito inicialmente: “O primeiro reagente é dado”, no segundo - “O segundo reagente é encontrar x”. Vamos denotar os campos reagente1, reagente2 respectivamente. Outras adições ao programa ficarão claras no exemplo de calculadora a seguir.

Digitamos no teclado do computador: 10 G. Inscrição no campo reagente1 alterações: “O primeiro reagente recebe 10 g.” Agora inserimos a fórmula deste reagente, e a calculadora irá calcular e mostrar seu peso molecular conforme você o insere.

Clique com LMB na célula da tabela com o símbolo Ca. Inscrição no campo reagente1 alterações: “Primeiro reagente Ca 40.078 administrado 10 g.”

Clique com LMB na célula da tabela com o símbolo C. Inscrição no campo reagente1 alterações: “Primeiro reagente CaC 52.089 administrado 10 g.” Aqueles. A calculadora somou os pesos atômicos do cálcio e do carbono.

Clique com LMB na célula da tabela com o símbolo O. Inscrição no campo reagente1 alterações: “Primeiro reagente CaCO 68.088 administrado 10 g.” A calculadora adicionou o peso atômico do oxigênio à soma.

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

Clique com LMB na célula da tabela com o símbolo O. Inscrição no campo reagente1 alterações: “Primeiro reagente CaCO3 100.086 administrado 10 g.” A calculadora adicionou novamente o peso atômico do oxigênio à soma.

Pressione Enter no teclado do computador. A introdução do primeiro reagente é concluída e passa para o campo reagente2. Observe que neste exemplo estamos fornecendo uma versão mínima. Se desejar, você pode organizar facilmente multiplicadores de átomos do mesmo tipo, para que, por exemplo, não precise clicar sete vezes seguidas na célula de oxigênio ao inserir a fórmula do cromo (K2Cr2O7).

Clique com LMB na célula da tabela com o símbolo H. Inscrição no campo reagente2 alterações: “Segundo reagente H 1.008 encontre x.”

Clique com LMB na célula da tabela com o símbolo Cl. Inscrição no campo reagente2 alterações: “Segundo reagente HCl 36.458 encontre x.” A calculadora somou os pesos atômicos do hidrogênio e do cloro. Na equação de reação acima, o cloreto de hidrogênio é precedido por um coeficiente de 2. Portanto, clique com LMB no campo reagente2. O peso molecular duplica (triplica quando pressionado duas vezes, etc.). Inscrição no campo reagente2 alterações: “Segundo reagente 2HCl 72.916 encontre x.”

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

Tabela periódica de informática escolar

Isso é o que precisávamos encontrar.

Nota 1. O significado da proporção resultante: para dissolução 100.086 Da o giz requer 72.916 Da de ácido, e para dissolver 10 g de giz você precisa de x ácido.

Nota 2. Coleções de problemas semelhantes:

Khomchenko I. G., Coleção de problemas e exercícios de química 2009 (8ª a 11ª séries).
Khomchenko G. P., Khomchenko I. G., Coleção de problemas em química para candidatos a universidades, 2019.

Nota 3. Para simplificar a tarefa, você pode simplificar a entrada da fórmula na versão inicial e simplesmente adicionar o símbolo do elemento ao final da linha da fórmula. Então a fórmula do carbonato de cálcio será:
CaCOOO
Mas é improvável que um professor de química goste de tal gravação. Não é difícil fazer a entrada correta - para fazer isso você precisa adicionar um array:

formula : array [1..size] of integer;

onde o índice é o número do elemento químico, e o valor neste índice é o número de átomos (inicialmente todos os elementos da matriz são zerados). A ordem em que os átomos são escritos em uma fórmula, conforme adotada em química, deve ser levada em consideração. Por exemplo, poucas pessoas também gostarão do O3CaC. Vamos transferir a responsabilidade para o usuário. Fazendo uma matriz:

 formulaOrder : array [1..size] of integer; // можно взять покороче

onde anotamos o número do elemento químico de acordo com o índice de seu aparecimento na fórmula. Adicionando um átomo atualNão na fórmula:

if formula [currNo]=0 then //этот атом встретился первый раз
 begin
 orderIndex := orderIndex+1;//в начале ввода формулы orderIndex=0
 formulaOrder [orderIndex] :=  currNo;
 end;
formula [currNo]:=formula [currNo]+1;

Escrevendo a 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 no teclado. Neste caso, você precisará implementar um analisador simples.

É importante notar que:

Hoje, existem centenas de versões da tabela e os cientistas oferecem constantemente novas opções. (Wikipedia)

Os alunos podem mostrar a sua engenhosidade neste sentido implementando uma das opções já propostas ou tentando fazer a sua própria e original. Pode parecer que esta é a direção menos útil para 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 específicas dos cartões de controlo sobre a solução alternativa utilizando botões padrão. Tbutton. O formato espiral da mesa (onde as células têm formatos diferentes) demonstrará mais claramente as vantagens da solução aqui proposta.

Tabela periódica de informática escolar
(Sistema alternativo de elementos de Theodore Benfey, Fonte)

Acrescentemos também que vários programas de computador actualmente existentes para a Tabela Periódica são descritos no recentemente publicado em Habré статье.

Apêndice 2: exemplos de tarefas para filtrosUsando filtros você pode resolver, por exemplo, as seguintes tarefas:

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

2) Identifique todos os elementos conhecidos na época da descoberta da Lei Periódica.

3) Identifique sete elementos que os alquimistas consideravam metais.

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

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

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

7) Selecione todos os elementos que possam ficar expostos ao ar por um longo período sem alterações perceptíveis em condições normais.

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

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

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) Isole todos os metais que reagem violentamente com a água em condições ambientais.

13) Selecione todos os metais.

14) Identificar elementos difundidos na natureza.

15) Identifique os elementos que se encontram na natureza em estado livre.

16) Identificar os elementos que desempenham o papel mais importante no corpo humano e animal.

17) Selecione elementos muito utilizados no dia a dia (de forma livre ou em combinações).

18) Identificar os elementos mais perigosos de trabalhar e que requerem medidas especiais e equipamentos de proteção.

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

20) Selecione metais preciosos.

21) Identifique elementos que são mais caros que metais preciosos.

Notas

1) Faz sentido fornecer vários filtros. Por exemplo, se você ativar um filtro para resolver os problemas 1 (todos os elementos conhecidos na Idade Média) e 20 (metais preciosos), as células com metais preciosos conhecidos na Idade Média serão destacadas (por exemplo, por cor) ( por exemplo, não será destacado o paládio, inaugurado em 1803).

2) Faz sentido garantir que vários filtros funcionem de forma que cada filtro selecione células com sua própria cor, mas não remova completamente a seleção de outro filtro (parte da célula em uma cor, parte em outra). Então, no caso do exemplo anterior, serão visíveis elementos da intersecção de conjuntos descobertos na Idade Média e metais preciosos, bem como elementos pertencentes apenas ao primeiro e apenas ao segundo conjuntos. Aqueles. metais preciosos desconhecidos na Idade Média e elementos conhecidos na Idade Média, mas não metais preciosos.

3) Faz sentido após a aplicação do filtro garantir a possibilidade de outros trabalhos com os resultados obtidos. Por exemplo, tendo selecionado elementos conhecidos na Idade Média, o usuário clica com LMB no elemento selecionado e é levado ao artigo da Wikipédia sobre esse elemento.

4) Faz sentido fornecer ao usuário a capacidade de desmarcar clicando com o LMB na célula da tabela selecionada. Por exemplo, para remover itens já visualizados.

5) Faz sentido garantir que a lista de células selecionadas seja salva em um arquivo e que tal arquivo seja carregado com seleção automática de células. Isso dará ao usuário a oportunidade de fazer uma pausa no trabalho.

Usamos um mapa de controle estático e predeterminado, mas há muitas tarefas importantes nas quais mapas de controle dinâmicos que mudam à medida que o programa é executado podem ser usados. Um exemplo seria um editor de gráficos, no qual o usuário utiliza o mouse para indicar as posições dos vértices em uma janela e desenhar arestas entre eles. Para excluir um vértice ou aresta, o usuário deve apontar para ele. Mas se for muito fácil apontar para um vértice marcado com um círculo, será mais difícil apontar para uma aresta desenhada com uma linha fina. Um mapa de controle ajudará aqui, onde vértices e arestas ocupam vizinhanças mais amplas do que na figura visível.

Uma questão paralela interessante relacionada a este método de treinamento complexo é: esse método pode ser útil no treinamento de IA?

Fonte: habr.com

Adicionar um comentário