Układ okresowy w szkole informatyki

(Karty kontrolne)
(Poświęcony Międzynarodowemu Rokowi Układu Okresowego Pierwiastków Chemicznych)
(Ostatnie uzupełnienia zostały wprowadzone 8 kwietnia 2019 r. Lista dodatków znajduje się bezpośrednio pod wycięciem)

Układ okresowy w szkole informatyki
(Kwiat Mendelejewa, źródło)

Pamiętam, że minęliśmy kaczkę. Były to trzy lekcje jednocześnie: geografia, nauki przyrodnicze i rosyjski. Na lekcji przedmiotów ścisłych badano kaczkę jako kaczkę, jakie ma skrzydła, jakie nogi, jak pływa i tak dalej. Na lekcji geografii badano tę samą kaczkę jako mieszkańca globu: trzeba było pokazać na mapie, gdzie żyje, a gdzie nie. Po rosyjsku Serafima Petrovna nauczyła nas pisać „u-t-k-a” i czytać coś o kaczkach z Bremu. Przy okazji poinformowała nas, że po niemiecku kaczka jest taka, a po francusku tak. Myślę, że wtedy nazywano to „metodą złożoną”. Ogólnie rzecz biorąc, wszystko wyszło „mimochodem”.

Veniamin Kaverin, Dwóch kapitanów

W powyższym cytacie Veniamin Kaverin po mistrzowsku pokazał mankamenty złożonej metody nauczania, jednak w niektórych (być może dość rzadkich) przypadkach elementy tej metody są uzasadnione. Jednym z takich przypadków jest układ okresowy D.I. Mendelejewa na szkolnych lekcjach informatyki. Zadanie automatyzacji oprogramowania typowych działań za pomocą układu okresowego jest jasne dla uczniów, którzy rozpoczęli naukę chemii i jest podzielone na wiele typowych zadań chemicznych. Jednocześnie w ramach informatyki zadanie to pozwala w prostej formie zademonstrować metodę kart sterujących, którą można przypisać programowaniu graficznemu, rozumianemu w szerokim tego słowa znaczeniu jako programowanie z wykorzystaniem elementów graficznych.

(8 kwietnia 2019 r. dodano:
Dodatek 1: Jak działa kalkulator chemiczny
Załącznik 2: przykłady zadań dla filtrów)

Zacznijmy od podstawowego zadania. W najprostszym przypadku układ okresowy powinien zostać wyświetlony na ekranie w formie okna, gdzie w każdej komórce będzie znajdować się chemiczne oznaczenie pierwiastka: H - wodór, He - hel itp. Jeżeli kursor myszy wskazuje komórkę, to oznaczenie elementu i jego numer wyświetlają się w specjalnym polu naszego formularza. Jeżeli użytkownik naciśnie LMB, oznaczenie i numer wybranego elementu zostaną wskazane w kolejnym polu formularza.

Układ okresowy w szkole informatyki

Problem można rozwiązać za pomocą dowolnego uniwersalnego języka. Weźmiemy prosty stary Delpi-7, który jest zrozumiały dla prawie każdego. Ale zanim zaczniemy programować w PL, narysujmy na przykład dwa obrazki w Photoshopie. Najpierw narysujmy układ okresowy w takiej formie, w jakiej chcemy go widzieć w programie. Zapisz wynik w pliku graficznym tabela01.bmp.

Układ okresowy w szkole informatyki

Do drugiego rysunku używamy pierwszego. Wyczyszczone ze wszelkiej grafiki komórki tabeli będziemy sekwencyjnie wypełniać unikalnymi kolorami w modelu kolorów RGB. R i G zawsze będą wynosić 0, a B=1 dla wodoru, 2 dla helu itd. Ten rysunek będzie naszą kartą kontrolną, którą zapiszemy w pliku o nazwie tabela2.bmp.

Układ okresowy w szkole informatyki

Zakończono pierwszy etap programowania grafiki w Photoshopie. Przejdźmy do programowania graficznego GUI w środowisku Delpi-7 IDE. W tym celu otwieramy nowy projekt, gdzie na formularzu głównym umieszczamy przycisk dialogowy (stółDlg), w którym będzie odbywać się praca ze stołem. Następnie pracujemy z formularzem stółDlg.

Umieść komponent klasy w formularzu TIMage. dostajemy Image1. Należy pamiętać, że generalnie w przypadku dużych projektów nazwy formularzy są generowane automatycznie ObrazNGdzie N może sięgać kilkudziesięciu lub więcej - nie jest to najlepszy styl programowania i należy podawać bardziej znaczące nazwy. Ale w naszym małym projekcie, gdzie N nie przekroczy 2, możesz pozostawić go jako wygenerowany.

Do majątku Obraz 1. Obraz prześlij plik tabela01.bmp. Tworzymy Image2 i załaduj tam naszą kartę kontrolną tabela2.bmp. W tym przypadku sprawiamy, że plik jest mały i niewidoczny dla użytkownika, co widać w lewym dolnym rogu formularza. Dodajemy dodatkowe elementy sterujące, których przeznaczenie jest oczywiste. Zakończono drugi etap programowania graficznego GUI w środowisku Delpi-7 IDE.

Układ okresowy w szkole informatyki

Przejdźmy do trzeciego etapu – pisania kodu w środowisku Delpi-7 IDE. Moduł składa się tylko z pięciu procedur obsługi zdarzeń: tworzenie formularzy (Utwórz formularz), ruch kursora Image1 (Obraz1MouseMove), klikając LPM komórkę (Obraz 1Kliknij) i wyjdź z okna dialogowego za pomocą przycisków OK (OKBtnKliknij) lub anuluj (AnulujBtnKliknij). Nagłówki tych procedur obsługi są generowane w standardowy sposób przy użyciu IDE.

Kod źródłowy modułu:

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.

W naszej wersji przyjęliśmy tabelę zawierającą 104 elementy (stała rozmiar). Oczywiście rozmiar ten można zwiększyć. Oznaczenia pierwiastków (symbole chemiczne) są zapisywane w tablicy Symbole tabeli. Jednakże ze względu na zwartość kodu źródłowego właściwe wydaje się zapisanie sekwencji tych zapisów jako stałych łańcuchowych Układ OkresowyStr1..., Układ OkresowyStr4tak, że po utworzeniu formularza program sam rozrzuca te oznaczenia pomiędzy elementami tablicy. Każde oznaczenie elementu składa się z jednej lub dwóch liter łacińskich, przy czym pierwsza litera jest wielka, a druga (jeśli występuje) mała. Ta prosta reguła jest implementowana podczas ładowania tablicy. Zatem sekwencję zapisów można zapisać w sposób zwięzły, bez spacji. Rozbicie ciągu na cztery części (stałe Układ OkresowyStr1..., Układ OkresowyStr4) wynika ze względów łatwości odczytania kodu źródłowego, ponieważ Zbyt długa linia może nie zmieścić się w całości na ekranie.

Gdy kursor myszy przesunie się nad Image1 treser Obraz1MouseMove to zdarzenie określa wartość składowej koloru niebieskiego piksela karty sterującej Image2 dla bieżących współrzędnych kursora. Według budowy Image2 wartość ta jest równa numerowi elementu, jeśli kursor znajduje się wewnątrz komórki; zero na granicy i 255 w pozostałych przypadkach. Pozostałe czynności wykonywane przez program są banalne i nie wymagają objaśnień.

Oprócz wspomnianych powyżej stylistycznych technik programowania, warto zwrócić uwagę na styl komentarza. Ściśle rzecz biorąc, omawiany kod jest na tyle mały i prosty, że komentarze nie wydają się szczególnie potrzebne. Dodano je jednak także ze względów metodologicznych – krótki kod pozwala na jaśniejsze sformułowanie pewnych ogólnych wniosków. W prezentowanym kodzie zadeklarowana jest jedna klasa (TabelaDlg). Metody tej klasy można zamieniać miejscami i nie będzie to miało żadnego wpływu na działanie programu, ale może wpłynąć na jego czytelność. Wyobraźmy sobie na przykład sekwencję:

OKBtnClick, Image1MouseMove, FormCreate, Image1Click, CancelBtnClick.

Może nie będzie to bardzo zauważalne, ale czytanie i zrozumienie stanie się nieco trudniejsze. Jeśli w sekcji nie ma pięciu, ale kilkadziesiąt razy więcej metod realizacja mają zupełnie inny porządek niż w opisach zajęć, wtedy chaos będzie się tylko zwiększał. Dlatego choć jest to trudne do ścisłego udowodnienia, a nawet niemożliwe, można mieć nadzieję, że wprowadzenie dodatkowego porządku poprawi czytelność kodu. To dodatkowe uporządkowanie ułatwia logiczne zgrupowanie kilku metod realizujących powiązane ze sobą zadania. Każdej grupie należy nadać tytuł, np.:

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

Nagłówki te należy skopiować na początek modułu i sformatować jako spis treści. W niektórych przypadkach dość długich modułów takie spisy treści zapewniają dodatkowe możliwości nawigacji. Podobnie w długim ciele jednej metody, procedury lub funkcji warto najpierw zaznaczyć koniec tego ciała:

end; // FormCreate

i po drugie, w instrukcjach rozgałęzionych z nawiasami programowymi początek - koniec zaznacz instrukcję, do której odnosi się nawias zamykający:

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

Aby wyróżnić nagłówki grup i końce ciał metod, możesz dodać linie dłuższe niż większość instrukcji i składające się na przykład ze znaków odpowiednio „=” i „_”.
Ponownie musimy dokonać rezerwacji: nasz przykład jest zbyt prosty. A kiedy kod metody nie mieści się na jednym ekranie, zrozumienie sześciu kolejnych końcówek w celu wprowadzenia zmian w kodzie może być trudne. W niektórych starych kompilatorach, na przykład Pascal 8000 dla systemu operacyjnego IBM 360/370, taka kolumna usług była drukowana po lewej stronie listy

B5
…
E5

Oznaczało to, że nawias zamykający w linii E5 odpowiadał nawiasowi otwierającemu w linii B5.

Oczywiście styl programowania jest kwestią bardzo kontrowersyjną, dlatego wyrażone tutaj pomysły należy traktować jedynie jako materiał do przemyśleń. Dwóm dość doświadczonym programistom, którzy przez wiele lat pracy wypracowali i przyzwyczaili się do różnych stylów, może być bardzo trudno dojść do porozumienia. Inaczej wygląda sytuacja w przypadku ucznia uczącego się programowania, który nie miał jeszcze czasu na odnalezienie własnego stylu. Myślę, że w tym przypadku nauczyciel powinien przynajmniej przekazać swoim uczniom tak prostą, ale nie oczywistą dla nich koncepcję, że powodzenie programu w dużej mierze zależy od stylu, w jakim napisany jest jego kod źródłowy. Uczeń może nie stosować się do zalecanego stylu, ale niech chociaż pomyśli o konieczności podjęcia „dodatkowych” działań w celu ulepszenia projektu kodu źródłowego.

Wracając do naszego podstawowego problemu układu okresowego: dalszy rozwój może przebiegać w różnych kierunkach. Jedna ze wskazówek ma charakter informacyjny: po najechaniu kursorem myszy na komórkę tabeli pojawia się okno informacyjne zawierające dodatkowe informacje na temat określonego elementu. Dalszy rozwój to filtry. Przykładowo, w zależności od instalacji, okno informacyjne będzie zawierało jedynie: najważniejsze informacje fizykochemiczne, informacje o historii odkrycia, informacje o rozmieszczeniu w przyrodzie, listę najważniejszych związków (w skład których wchodzi ten pierwiastek), właściwości fizjologiczne, nazwa w języku obcym itp. e. Pamiętając „kaczkę” Kaverina, od której rozpoczyna się ten artykuł, możemy powiedzieć, że dzięki rozwojowi programu otrzymamy kompletny kompleks szkoleniowy z nauk przyrodniczych: oprócz komputera nauki ścisłe, fizyka i chemia - biologia, geografia ekonomiczna, historia nauki, a nawet języki obce.

Ale lokalna baza danych nie jest ograniczeniem. Program w naturalny sposób łączy się z Internetem. Po wybraniu elementu odnośnik zostaje aktywowany, a w oknie przeglądarki internetowej otwiera się artykuł z Wikipedii dotyczący tego elementu. Wikipedia, jak wiadomo, nie jest wiarygodnym źródłem. Możesz ustawić linki do wiarygodnych źródeł, na przykład encyklopedii chemicznej, TSB, czasopism abstrakcyjnych, zamówić zapytania w wyszukiwarkach dla tego pierwiastka itp. To. Studenci będą potrafili wykonywać proste, ale znaczące zadania dotyczące DBMS i Internetu.

Oprócz zapytań o pojedynczy element, możesz stworzyć funkcjonalność, która będzie np. oznaczać różnymi kolorami komórki w tabeli spełniające określone kryteria. Na przykład metale i niemetale. Lub komórki wrzucane do zbiorników wodnych przez lokalne zakłady chemiczne.

Możesz także zaimplementować funkcje organizera do notatników. Na przykład zaznacz w tabeli elementy, które wchodzą w skład egzaminu. Następnie zaznacz elementy przestudiowane/powtarzane przez studenta w ramach przygotowań do egzaminu.

A oto na przykład jeden z typowych zadań z chemii w szkole:

Biorąc pod uwagę 10 g kredy. Ile kwasu solnego należy pobrać, aby rozpuścić całą tę kredę?

Aby rozwiązać ten problem, konieczne jest zapisanie chemii. reakcji i umieszczając w niej współczynniki, obliczamy masy cząsteczkowe węglanu wapnia i chlorowodoru, następnie komponujemy i rozwiązujemy proporcję. Kalkulator oparty na naszym podstawowym programie potrafi liczyć i rozwiązywać. To prawda, nadal trzeba będzie wziąć pod uwagę, że kwas należy przyjmować w rozsądnym nadmiarze i w rozsądnym stężeniu, ale to jest chemia, a nie informatyka.
Dodatek 1: Jak działa kalkulator chemicznyPrzeanalizujmy działanie kalkulatora na przykładzie powyższego problemu kredy i „mieszanki”. Zacznijmy od reakcji:

CaCO3 + 2HCl = CaCl2 + H2O

Widzimy z tego, że będziemy potrzebować mas atomowych następujących pierwiastków: wapnia (Ca), węgla (C), tlenu (O), wodoru (H) i chloru (Cl). W najprostszym przypadku możemy zapisać te wagi w jednowymiarowej tablicy zdefiniowanej jako

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

gdzie indeks tablicy odpowiada numerowi elementu. Więcej o wolnej przestrzeni formularza stółDlg umieść dwa pola. W pierwszym polu początkowo jest napisane: „Podano pierwszy odczynnik”, w drugim „Drugim odczynnikiem jest znalezienie x”. Oznaczmy pola odczynnik 1, odczynnik 2 odpowiednio. Inne dodatki do programu będą jasne z poniższego przykładu kalkulatora.

Wpisujemy na klawiaturze komputera: 10 g. Napis w polu odczynnik 1 zmiany: „Pierwszy odczynnik otrzymuje 10 g.” Teraz wpisujemy wzór tego odczynnika, a kalkulator obliczy i pokaże jego masę cząsteczkową po jej wpisaniu.

Kliknij LPM komórkę tabeli z symbolem Ca. Napis w polu odczynnik 1 zmiany: „Pierwszy odczynnik Ca 40.078 podano 10 g.”

Kliknij LPM na komórkę tabeli z symbolem C. Wpis w polu odczynnik 1 zmiany: „Pierwszy odczynnik CaC 52.089 podano 10 g.” Te. Kalkulator dodał masy atomowe wapnia i węgla.

Kliknij LPM na komórkę tabeli z symbolem O. Wpisz w polu odczynnik 1 zmiany: „Pierwszy odczynnik CaCO 68.088 podano 10 g.” Kalkulator dodał do sumy masę atomową tlenu.

Kliknij LPM na komórkę tabeli z symbolem O. Wpisz w polu odczynnik 1 zmiany: „Pierwszy odczynnik CaCO2 84.087 otrzymał 10 g.” Kalkulator jeszcze raz dodał do sumy masę atomową tlenu.

Kliknij LPM na komórkę tabeli z symbolem O. Wpisz w polu odczynnik 1 zmiany: „Pierwszy odczynnik CaCO3 100.086 otrzymał 10 g.” Kalkulator ponownie dodał do sumy masę atomową tlenu.

Naciśnij Enter na klawiaturze komputera. Wprowadzenie pierwszego odczynnika zostaje zakończone i następuje przejście do pola odczynnik 2. Należy pamiętać, że w tym przykładzie udostępniamy wersję minimalną. W razie potrzeby można łatwo zorganizować mnożniki atomów tego samego typu, dzięki czemu np. nie trzeba będzie klikać siedem razy z rzędu na ogniwo tlenowe przy wprowadzaniu wzoru chromu (K2Cr2O7).

Kliknij LPM na komórkę tabeli z symbolem H. Wpisz w polu odczynnik 2 zmiany: „Drugi odczynnik H 1.008 znajdź x.”

Kliknij LPM komórkę tabeli z symbolem Cl. Napis w polu odczynnik 2 zmiany: „Drugi odczynnik HCl 36.458 znajdź x.” Kalkulator dodał masy atomowe wodoru i chloru. W powyższym równaniu reakcji chlorowodór jest poprzedzony współczynnikiem 2. Dlatego należy kliknąć LPM na polu odczynnik 2. Masa cząsteczkowa podwaja się (potraja po dwukrotnym naciśnięciu itp.). Napis w polu odczynnik 2 zmiany: „Drugi odczynnik 2HCl 72.916 znajdź x.”

Naciśnij Enter na klawiaturze komputera. Wprowadzanie drugiego odczynnika jest zakończone, a kalkulator oblicza x z proporcji

Układ okresowy w szkole informatyki

To właśnie musieliśmy znaleźć.

Uwaga 1. Znaczenie otrzymanej proporcji: do rozwiązania 100.086 Da kreda wymaga 72.916 Da kwasu, a do rozpuszczenia 10 g kredy potrzeba x kwasu.

Uwaga 2. Zbiory podobnych problemów:

Khomchenko I. G., Zbiór problemów i ćwiczeń z chemii 2009 (klasy 8-11).
Khomchenko G. P., Khomchenko I. G., Zbiór problemów z chemii dla kandydatów na uniwersytety, 2019.

Uwaga 3. Aby uprościć zadanie, możesz uprościć wprowadzanie wzoru w wersji początkowej i po prostu dodać symbol elementu na końcu wiersza formuły. Wtedy wzór węglanu wapnia będzie następujący:
CaCOOO
Ale nauczycielowi chemii raczej nie spodoba się takie nagranie. Dokonanie prawidłowego wpisu nie jest trudne - w tym celu należy dodać tablicę:

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

gdzie indeks jest numerem pierwiastka chemicznego, a wartość przy tym indeksie jest liczbą atomów (początkowo wszystkie elementy tablicy są zerowane). Należy wziąć pod uwagę kolejność zapisu atomów we wzorze, przyjętą w chemii. Na przykład niewiele osób polubi O3CaC. Przerzućmy odpowiedzialność na użytkownika. Tworzenie tablicy:

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

gdzie zapisujemy numer pierwiastka chemicznego według indeksu jego występowania we wzorze. Dodanie atomu bieżącyNie do wzoru:

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

Zapisanie formuły w linii:

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;

Uwaga 4. Sensowne jest zapewnienie możliwości alternatywnego wpisania receptury odczynnika z klawiatury. W takim przypadku będziesz musiał zaimplementować prosty parser.

Warto zauważyć, że:

Obecnie istnieje kilkaset wersji stołu, a naukowcy stale oferują nowe opcje. (Wikipedia)

Uczniowie mogą wykazać się pomysłowością w tym kierunku, wdrażając jedną z już zaproponowanych opcji lub próbując stworzyć własną, oryginalną. Mogłoby się wydawać, że jest to najmniej przydatny kierunek na lekcjach informatyki. Jednakże w formie układu okresowego zaimplementowanego w tym artykule niektórzy uczniowie mogą nie dostrzegać szczególnych zalet kart kontrolnych w porównaniu z alternatywnym rozwiązaniem wykorzystującym standardowe przyciski Przycisk T. Spiralny kształt stołu (w którym komórki mają różne kształty) lepiej pokaże zalety proponowanego tutaj rozwiązania.

Układ okresowy w szkole informatyki
(Alternatywny układ elementów autorstwa Theodore'a Benfeya, źródło)

Dodajmy też, że w opublikowanym niedawno na Habré artykule opisano szereg obecnie istniejących programów komputerowych do układu okresowego Artykuł.

Załącznik 2: przykłady zadań dla filtrówZa pomocą filtrów możesz rozwiązać na przykład następujące zadania:

1) Wybierz w tabeli wszystkie elementy znane w średniowieczu.

2) Zidentyfikuj wszystkie elementy znane w momencie odkrycia prawa okresowości.

3) Wskaż siedem pierwiastków, które alchemicy uważali za metale.

4) Wybierz wszystkie pierwiastki, które w normalnych warunkach (n.s.) są w stanie gazowym.

5) Zaznacz wszystkie pierwiastki będące w stanie ciekłym pod nr.

6) Wybierz wszystkie elementy, które są w stanie stałym pod nr.

7) Wybierz wszystkie elementy, które w normalnych warunkach mogą przez długi czas być wystawione na działanie powietrza bez zauważalnych zmian.

8) Wybierz wszystkie metale rozpuszczające się w kwasie solnym.

9) Wybierz wszystkie metale, które rozpuszczają się w kwasie siarkowym pod nr.

10) Wybierz wszystkie metale, które po podgrzaniu rozpuszczają się w kwasie siarkowym.

11) Wybierz wszystkie metale, które rozpuszczają się w kwasie azotowym.

12) Odizolować wszystkie metale, które w warunkach otoczenia gwałtownie reagują z wodą.

13) Wybierz wszystkie metale.

14) Wskaż elementy szeroko rozpowszechnione w przyrodzie.

15) Wskaż pierwiastki występujące w przyrodzie w stanie wolnym.

16) Wskaż elementy, które pełnią najważniejszą rolę w organizmie człowieka i zwierzęcia.

17) Wybierz elementy powszechnie stosowane w życiu codziennym (w dowolnej formie lub w kombinacjach).

18) Identyfikować elementy, z którymi praca jest najbardziej niebezpieczna i które wymagają specjalnych środków i wyposażenia ochronnego.

19) Wskaż pierwiastki, które w postaci wolnej lub w postaci związków stanowią największe zagrożenie dla środowiska.

20) Wybierz metale szlachetne.

21) Wskaż pierwiastki droższe od metali szlachetnych.

Uwagi

1) Sensowne jest zapewnienie wielu filtrów. Przykładowo, jeśli włączysz filtr, aby rozwiązać problem 1 (wszystkie pierwiastki znane w średniowieczu) i 20 (metale szlachetne), wówczas komórki zawierające metale szlachetne znane w średniowieczu zostaną podświetlone (na przykład kolorem) ( na przykład pallad nie będzie podświetlony, otwarty w 1803 r.).

2) Sensowne jest zapewnienie, aby kilka filtrów działało w taki sposób, aby każdy filtr selekcjonował komórki własnym kolorem, ale nie usuwał całkowicie zaznaczenia innego filtra (część komórki w jednym kolorze, część w innym). Wtedy, w przypadku poprzedniego przykładu, widoczne będą elementy przecięcia zbiorów odkrytych w średniowieczu i metali szlachetnych, a także elementy należące tylko do pierwszego i tylko do drugiego zbioru. Te. metale szlachetne nieznane w średniowieczu oraz pierwiastki znane w średniowieczu, ale nie metale szlachetne.

3) Sensowne jest po zastosowaniu filtra zapewnienie możliwości dalszej pracy z uzyskanymi wynikami. Przykładowo, mając wybrane elementy znane w średniowieczu, użytkownik klika LPM na wybranym elemencie i zostaje przeniesiony do artykułu w Wikipedii na temat tego elementu.

4) Sensowne jest udostępnienie użytkownikowi możliwości odznaczenia poprzez kliknięcie LPM na wybraną komórkę tabeli. Na przykład, aby usunąć już przeglądane elementy.

5) Warto zadbać o to, aby lista wybranych komórek została zapisana w pliku i do takiego pliku wczytano automatyczny wybór komórek. Dzięki temu użytkownik będzie mógł odpocząć od pracy.

Użyliśmy statycznej, z góry określonej mapy sterowania, ale istnieje wiele ważnych zadań, w których można zastosować dynamiczne mapy sterowania, które zmieniają się w miarę działania programu. Przykładem może być edytor wykresów, w którym użytkownik za pomocą myszki wskazuje położenie wierzchołków w oknie i rysuje krawędzie pomiędzy nimi. Aby usunąć wierzchołek lub krawędź, użytkownik musi na niego wskazać. Ale jeśli dość łatwo jest wskazać wierzchołek zaznaczony kółkiem, to trudniej będzie wskazać krawędź narysowaną cienką linią. Pomocna będzie tu mapa kontrolna, gdzie wierzchołki i krawędzie zajmują szersze sąsiedztwa niż na widocznym rysunku.

Ciekawym pytaniem pobocznym związanym z tą metodą kompleksowego szkolenia jest: czy ta metoda może być przydatna w szkoleniu AI?

Źródło: www.habr.com

Dodaj komentarz