Periodiska systemet om skoldatavetenskap

(Kontrollkort)
(Tillägnad det internationella året för det periodiska systemet för kemiska grundämnen)
(De senaste tilläggen gjordes den 8 april 2019. Listan över tillägg finns omedelbart under snittet)

Periodiska systemet om skoldatavetenskap
(Mendeleevs blomma, Källa)

Jag minns att vi passerade ankan. Det var tre lektioner på en gång: geografi, naturkunskap och ryska. På en vetenskapslektion studerades en anka som en anka, vilka vingar den har, vilka ben den har, hur den simmar osv. I en geografilektion studerades samma anka som en invånare på jordklotet: det var nödvändigt att visa på en karta var den bor och var den inte gör det. På ryska lärde Serafima Petrovna oss att skriva "u-t-k-a" och läsa något om ankor från Brem. I förbigående informerade hon oss om att på tyska är anka så här, och på franska så här. Jag tror att det kallades den "komplexa metoden" då. I allmänhet kom allt ut "i förbigående".

Veniamin Kaverin, Två kaptener

I ovanstående citat visade Veniamin Kaverin mästerligt bristerna i den komplexa undervisningsmetoden, men i vissa (kanske ganska sällsynta) fall är delar av denna metod motiverade. Ett sådant fall är D.I. Mendeleevs periodiska system i skolans datavetenskapslektioner. Uppgiften med mjukvaruautomatisering av typiska åtgärder med det periodiska systemet är tydlig för skolbarn som har börjat studera kemi och är uppdelad i många typiska kemiska problem. Samtidigt, inom ramen för datavetenskap, tillåter denna uppgift oss att i en enkel form demonstrera metoden för styrkort, som kan hänföras till grafisk programmering, uppfattad i ordets breda mening som programmering med hjälp av grafiska element.

(tillägg den 8 april 2019:
Tillägg 1: Så fungerar kemiläknaren
Bilaga 2: exempel på uppgifter för filter)

Låt oss börja med den grundläggande uppgiften. I det enklaste fallet bör det periodiska systemet visas på skärmen i en fönsterform, där det i varje cell kommer att finnas en kemisk beteckning av elementet: H - väte, He - helium, etc. Om muspekaren pekar på en cell, visas elementets beteckning och dess nummer i ett speciellt fält på vårt formulär. Om användaren trycker på LMB, kommer beteckningen och numret för detta valda element att anges i ett annat fält i formuläret.

Periodiska systemet om skoldatavetenskap

Problemet kan lösas med vilket universellt språk som helst. Vi tar den enkla gamla Delpi-7, som är förståelig för nästan alla. Men innan du programmerar i PL, låt oss rita två bilder, till exempel i Photoshop. Låt oss först rita det periodiska systemet i den form vi vill se det i programmet. Spara resultatet i en grafisk fil table01.bmp.

Periodiska systemet om skoldatavetenskap

För den andra ritningen använder vi den första. Vi kommer sekventiellt att fylla tabellcellerna, rensade från all grafik, med unika färger i RGB-färgmodellen. R och G kommer alltid att vara 0, och B=1 för väte, 2 för helium, etc. Denna ritning kommer att vara vårt kontrollkort, som vi sparar i en fil som heter table2.bmp.

Periodiska systemet om skoldatavetenskap

Det första steget av grafisk programmering i Photoshop är klar. Låt oss gå vidare till grafisk GUI-programmering i Delpi-7 IDE. För att göra detta, öppna ett nytt projekt, där vi på huvudformuläret placerar en dialogknapp (tableDlg), där arbetet med bordet kommer att ske. Därefter arbetar vi med formuläret tableDlg.

Placera en klasskomponent på formuläret BILD. Vi får Image1. Observera att i allmänhet, för stora projekt, automatiskt genererade namn på formuläret ImageNvar N kan nå flera dussin eller fler - detta är inte den bästa programmeringsstilen, och mer meningsfulla namn bör ges. Men i vårt lilla projekt, var N inte kommer att överstiga 2, kan du lämna det som genererat.

Till egendom Bild1.Bild ladda upp filen table01.bmp. Vi skapar Image2 och ladda vårt kontrollkort där table2.bmp. I det här fallet gör vi filen liten och osynlig för användaren, som visas i det nedre vänstra hörnet av formuläret. Vi lägger till ytterligare kontrollelement, vars syfte är uppenbart. Det andra steget av grafisk GUI-programmering i Delpi-7 IDE är klar.

Periodiska systemet om skoldatavetenskap

Låt oss gå vidare till det tredje steget - att skriva kod i Delpi-7 IDE. Modulen består av endast fem händelsehanterare: skapande av formulär (FormCreate), markörrörelse Image1 (Image1MouseMove), klicka på LMB på en cell (Bild 1 Klicka) och avsluta dialogrutan med OK-knapparna (OKBtnKlicka) eller Avbryt (CancelBtnClick). Rubrikerna för dessa hanterare genereras på ett standard sätt med hjälp av IDE.

Modulkällkod:

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.

I vår version tog vi en tabell med 104 element (konstant Storlek). Uppenbarligen kan denna storlek ökas. Elementbeteckningar (kemiska symboler) skrivs till en array Tabellsymboler. Men på grund av källkodens kompakthet verkar det vara lämpligt att skriva sekvensen av dessa notationer i form av strängkonstanter PeriodicTableStr1..., PeriodicTableStr4så att när formuläret skapas, sprider själva programmet dessa beteckningar bland elementen i arrayen. Varje elementbeteckning består av en eller två latinska bokstäver, där den första bokstaven är stor och den andra (om någon) gemen. Denna enkla regel implementeras när en array laddas. Således kan notationssekvensen skrivas på ett kortfattat sätt utan mellanslag. Dela upp en sekvens i fyra delar (konstanter PeriodicTableStr1..., PeriodicTableStr4) beror på att det är lätt att läsa källkoden, eftersom En linje som är för lång kanske inte passar helt på skärmen.

När muspekaren rör sig över Image1 hanterare Image1MouseMove denna händelse bestämmer värdet på den blå färgkomponenten i kontrollkortpixeln Image2 för de aktuella markörkoordinaterna. Genom konstruktion Image2 detta värde är lika med elementnumret om markören är inuti cellen; noll om på gränsen och 255 i andra fall. De återstående åtgärderna som utförs av programmet är triviala och kräver ingen förklaring.

Förutom de stilistiska programmeringsteknikerna som noteras ovan är det värt att notera kommentarstilen. Strängt taget är koden som diskuteras så liten och enkel att kommentarer inte verkar särskilt nödvändiga. Men de lades till också av metodiska skäl - den korta koden tillåter oss att göra några allmänna slutsatser tydligare. I den presenterade koden deklareras en klass (TtableDlg). Metoder av den här klassen kan bytas och detta kommer inte att påverka programmets funktion på något sätt, men kan påverka dess läsbarhet. Föreställ dig till exempel sekvensen:

OKBtnClick, Image1MouseMove, FormCreate, Image1Click, CancelBtnClick.

Det kanske inte märks så mycket, men det blir lite svårare att läsa och förstå. Om det inte finns fem, utan tiotals gånger fler metoder i avsnittet genomförande de har en helt annan ordning än i klassbeskrivningarna, då kommer kaoset bara att öka. Därför, även om det är svårt att strikt bevisa och kanske till och med är omöjligt, kan man hoppas att införandet av ytterligare ordning kommer att förbättra läsbarheten av koden. Denna ytterligare beställning underlättas av den logiska grupperingen av flera metoder som utför relaterade uppgifter. Varje grupp bör ges en titel, till exempel:

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

Dessa rubriker ska kopieras till början av modulen och formateras som en innehållsförteckning. I vissa fall av ganska långa moduler ger sådana innehållsförteckningar ytterligare navigeringsmöjligheter. På samma sätt, i den långa kroppen av en metod, procedur eller funktion, är det värt att först markera slutet på denna kropp:

end; // FormCreate

och, för det andra, i förgrenade satser med programparenteser start - end, markera satsen som den avslutande parentesen refererar till:

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

För att markera grupprubriker och ändarna på metodkroppar kan du lägga till rader som är längre än de flesta påståenden och som till exempel består av tecknen "=" respektive "_".
Återigen måste vi göra en reservation: vårt exempel är för enkelt. Och när koden för en metod inte får plats på en skärm kan det vara svårt att förstå sex på varandra följande sidor för att göra kodändringar. I vissa gamla kompilatorer, till exempel Pascal 8000 för OS IBM 360/370, trycktes en tjänstespalt som denna till vänster i listan

B5
…
E5

Detta innebar att den avslutande parentesen på linje E5 motsvarade öppningsparentesen på linje B5.

Naturligtvis är programmeringsstil en mycket kontroversiell fråga, så de idéer som uttrycks här bör inte tas som något annat än en tankeställare. Det kan vara mycket svårt för två ganska erfarna programmerare, som har utvecklat och vant sig vid olika stilar under många års arbete, att komma överens. Det är en annan sak för en student som lär sig programmera som ännu inte hunnit hitta sin egen stil. Jag tycker att läraren i det här fallet åtminstone borde förmedla till sina elever en så enkel, men inte självklar idé för dem att ett programs framgång till stor del beror på stilen i vilken källkoden är skriven. Eleven kanske inte följer den rekommenderade stilen, men låt honom åtminstone tänka på behovet av "extra" åtgärder för att förbättra utformningen av källkoden.

För att återgå till vårt grundläggande problem om det periodiska systemet: vidare utveckling kan gå i olika riktningar. En av anvisningarna är för referens: när du för muspekaren över en tabellcell, visas ett informationsfönster som innehåller ytterligare information om det angivna elementet. Vidareutveckling är filter. Till exempel, beroende på installationen, kommer informationsfönstret endast att innehålla: den viktigaste fysikaliska och kemiska informationen, information om upptäcktens historia, information om distribution i naturen, en lista över de viktigaste föreningarna (som inkluderar detta element), fysiologiska egenskaper, namn på ett främmande språk, etc. e. Med tanke på Kaverins "anka" som den här artikeln börjar med kan vi säga att med denna utveckling av programmet kommer vi att få ett komplett utbildningskomplex inom naturvetenskap: förutom dator vetenskap, fysik och kemi - biologi, ekonomisk geografi, vetenskapshistoria och till och med främmande språk.

Men en lokal databas är inte gränsen. Programmet ansluter naturligt till Internet. När du väljer ett element aktiveras länken och Wikipedia-artikeln om detta element öppnas i webbläsarfönstret. Wikipedia är som du vet inte en auktoritativ källa. Du kan sätta länkar till auktoritativa källor, till exempel kemisk uppslagsverk, TSB, abstrakta tidskrifter, beställa frågor i sökmotorer för detta element, etc. Den där. Eleverna kommer att kunna utföra enkla men meningsfulla uppgifter om DBMS och internetämnen.

Förutom frågor om ett enskilt element kan du skapa funktionalitet som till exempel kommer att markera celler i tabellen som uppfyller vissa kriterier med olika färger. Till exempel metaller och icke-metaller. Eller celler som dumpas i vattendrag av en lokal kemisk fabrik.

Du kan också implementera funktionerna i en anteckningsbokarrangör. Markera till exempel i tabellen de moment som ingår i tentamen. Markera sedan de moment som studerats/upprepas av studenten som förberedelse för tentamen.

Och här är till exempel ett av de typiska skolkemiproblemen:

Givet 10 g krita. Hur mycket saltsyra måste man ta för att lösa upp all denna krita?

För att lösa detta problem är det nödvändigt att skriva ner kemikalien. reaktion och placera koefficienterna i den, beräkna molekylvikterna för kalciumkarbonat och väteklorid, komponera och lös sedan proportionen. En miniräknare baserad på vårt grundprogram kan beräkna och lösa. Det är sant att du fortfarande måste ta hänsyn till att syran måste tas i rimligt överskott och i en rimlig koncentration, men detta är kemi, inte datavetenskap.
Tillägg 1: Så fungerar kemiläknarenLåt oss analysera hur räknaren fungerar med exemplet på ovanstående problem med krita och "hodgepodge". Låt oss börja med reaktionen:

CaCO3 + 2HCl = CaCl2 + H2O

Av detta ser vi att vi kommer att behöva atomvikterna för följande grundämnen: kalcium (Ca), kol (C), syre (O), väte (H) och klor (Cl). I det enklaste fallet kan vi skriva dessa vikter i en endimensionell array definierad som

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

där arrayindexet motsvarar elementnumret. Mer om formulärets lediga utrymme tableDlg sätta två fält. I det första fältet står det initialt: "Det första reagenset ges", i det andra - "Det andra reagenset ska hitta x". Låt oss beteckna fälten reagens1, reagens2 respektive. Andra tillägg till programmet kommer att framgå av följande exempel på räknaren.

Vi skriver på datorns tangentbord: 10 g. Inskription i fältet reagens1 ändringar: "Det första reagenset ges 10 g." Nu anger vi formeln för detta reagens, och räknaren kommer att beräkna och visa dess molekylvikt när du anger den.

Klicka på LMB i tabellcellen med Ca-symbolen. Inskription i fältet reagens1 ändringar: "Första reagens Ca 40.078 givet 10 g."

Klicka på LMB på tabellcellen med symbolen C. Inskription i fältet reagens1 ändringar: "Första reagens CaC 52.089 givet 10 g." De där. Kalkylatorn räknade ihop atomvikterna för kalcium och kol.

Klicka på LMB på tabellcellen med symbolen O. Inskription i fältet reagens1 ändringar: "Första reagens CaCO 68.088 givet 10 g." Kalkylatorn adderade atomvikten av syre till summan.

Klicka på LMB på tabellcellen med symbolen O. Inskription i fältet reagens1 ändringar: "Första reagens CaCO2 84.087 givet 10 g." Kalkylatorn adderade återigen atomvikten av syre till summan.

Klicka på LMB på tabellcellen med symbolen O. Inskription i fältet reagens1 ändringar: "Första reagens CaCO3 100.086 givet 10 g." Kalkylatorn adderade återigen atomvikten av syre till summan.

Tryck på Enter på datorns tangentbord. Införandet av det första reagenset är slutfört och växlar till fältet reagens2. Observera att i det här exemplet tillhandahåller vi en minimal version. Om så önskas kan du enkelt organisera multiplikatorer av atomer av samma typ, så att du till exempel inte behöver klicka sju gånger i rad på syrecellen när du anger kromformeln (K2Cr2O7).

Klicka på LMB på tabellcellen med symbolen H. Inskription i fältet reagens2 ändringar: "Andra reagens H 1.008 hitta x."

Klicka på LMB i tabellcellen med Cl-symbolen. Inskription i fältet reagens2 ändringar: "Andra reagens HCl 36.458 hitta x." Kalkylatorn räknade ihop atomvikterna för väte och klor. I reaktionsekvationen ovan föregås klorväte av en koefficient på 2. Klicka därför på LMB på fältet reagens2. Molekylvikten fördubblas (tredubblas när den trycks två gånger, etc.). Inskription i fältet reagens2 ändringar: "Andra reagens 2HCl 72.916 hitta x."

Tryck på Enter på datorns tangentbord. Inmatningen av det andra reagenset är slutfört, och räknaren hittar x från proportionen

Periodiska systemet om skoldatavetenskap

Det var vad vi behövde hitta.

Not 1 Betydelsen av den resulterande andelen: för upplösning 100.086 Da krita kräver 72.916 Da syra, och för att lösa upp 10 g krita behöver du x syra.

Not 2 Samlingar av liknande problem:

Khomchenko I. G., Samling av problem och övningar i kemi 2009 (betyg 8-11).
Khomchenko G. P., Khomchenko I. G., Samling av problem i kemi för sökande till universitet, 2019.

Not 3 För att förenkla uppgiften kan du förenkla inmatningen av formeln i den ursprungliga versionen och helt enkelt lägga till elementsymbolen i slutet av formelraden. Då blir formeln för kalciumkarbonat:
CaCOOO
Men en kemilärare kommer sannolikt inte att gilla en sådan inspelning. Det är inte svårt att göra rätt inmatning - för att göra detta måste du lägga till en array:

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

där index är numret på det kemiska elementet, och värdet vid detta index är antalet atomer (initialt återställs alla element i arrayen till noll). Den ordning i vilken atomer skrivs i en formel, som antagits i kemi, bör beaktas. Till exempel kommer få människor att gilla O3CaC heller. Låt oss flytta ansvaret till användaren. Låt oss skapa en array:

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

där vi skriver ner numret på det kemiska elementet enligt indexet för dess utseende i formeln. Lägga till en atom currNo in i formeln:

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

Att skriva formeln till en rad:

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;

Not 4 Det är vettigt att tillhandahålla möjligheten att alternativt ange reagensformeln från tangentbordet. I det här fallet måste du implementera en enkel parser.

Det är värt att notera:

Idag finns det flera hundra versioner av tabellen, och forskare erbjuder ständigt nya alternativ. (Wikipedia)

Elever kan visa sin uppfinningsrikedom i denna riktning genom att implementera ett av de redan föreslagna alternativen eller försöka göra sitt eget original. Det kan tyckas att detta är den minst användbara riktningen för lektioner i datavetenskap. Men i form av det periodiska systemet som implementeras i den här artikeln kanske vissa elever inte ser de särskilda fördelarna med kontrollkort jämfört med den alternativa lösningen med standardknappar TButton. Bordets spiralform (där cellerna har olika former) kommer tydligare att visa fördelarna med den här föreslagna lösningen.

Periodiska systemet om skoldatavetenskap
(Alternativt system av element av Theodore Benfey, Källa)

Låt oss också tillägga att ett antal för närvarande existerande datorprogram för det periodiska systemet beskrivs i den nyligen publicerade på Habré artikeln.

Bilaga 2: exempel på uppgifter för filterMed hjälp av filter kan du till exempel lösa följande uppgifter:

1) Välj i tabellen alla element som var kända under medeltiden.

2) Identifiera alla element som var kända vid tiden för upptäckten av den periodiska lagen.

3) Identifiera sju grundämnen som alkemisterna betraktade som metaller.

4) Välj alla element som är i gasformigt tillstånd under normala förhållanden (n.s.).

5) Välj alla element som är i flytande tillstånd vid nr.

6) Välj alla element som är i fast tillstånd vid nr.

7) Välj alla element som kan utsättas för luft under lång tid utan märkbara förändringar under normala förhållanden.

8) Välj alla metaller som löser sig i saltsyra.

9) Välj alla metaller som löser sig i svavelsyra vid nr.

10) Välj alla metaller som löser sig i svavelsyra vid upphettning.

11) Välj alla metaller som löser sig i salpetersyra.

12) Isolera alla metaller som reagerar häftigt med vatten vid omgivande förhållanden.

13) Välj alla metaller.

14) Identifiera element som är utbredda i naturen.

15) Identifiera element som finns i naturen i ett fritt tillstånd.

16) Identifiera de element som spelar den viktigaste rollen i människo- och djurkroppen.

17) Välj element som används ofta i vardagen (i fri form eller i kombinationer).

18) Identifiera element som är farligast att arbeta med och kräver speciella åtgärder och skyddsutrustning.

19) Identifiera de grundämnen som, i fri form eller i form av föreningar, utgör det största hotet mot miljön.

20) Välj ädelmetaller.

21) Identifiera element som är dyrare än ädla metaller.

Anteckningar

1) Det är vettigt att tillhandahålla flera filter. Till exempel, om du slår på ett filter för att lösa problem 1 (alla grundämnen kända under medeltiden) och 20 (ädelmetaller), kommer celler med ädla metaller kända under medeltiden att markeras (till exempel efter färg) ( till exempel kommer palladium inte att markeras , öppnade 1803).

2) Det är vettigt att se till att flera filter fungerar i ett sådant läge att varje filter väljer celler med sin egen färg, men inte helt tar bort valet av ett annat filter (del av cellen i en färg, del i en annan). Då, i fallet med det föregående exemplet, kommer element från skärningspunkten mellan uppsättningar upptäckta under medeltiden och ädla metaller, såväl som element som bara tillhör den första och endast de andra uppsättningarna, att vara synliga. De där. ädla metaller okända under medeltiden, och grundämnen kända under medeltiden men inte ädla metaller.

3) Det är vettigt efter applicering av filtret för att säkerställa möjligheten till annat arbete med de erhållna resultaten. Till exempel, efter att ha valda element kända under medeltiden, klickar användaren LMB på det valda elementet och tas till Wikipedia-artikeln om detta element.

4) Det är vettigt att ge användaren möjligheten att avmarkera genom att klicka på LMB på den valda tabellcellen. Till exempel för att ta bort redan visade objekt.

5) Det är vettigt att se till att listan över valda celler sparas i en fil och att en sådan fil laddas med automatiskt urval av celler. Detta kommer att ge användaren möjlighet att ta en paus från arbetet.

Vi använde en statisk, förutbestämd kontrollkarta, men det finns många viktiga uppgifter där dynamiska kontrollkartor som ändras när programmet körs kan användas. Ett exempel skulle vara en grafredigerare, där användaren använder musen för att indikera positionerna för hörn i ett fönster och rita kanter mellan dem. För att radera en vertex eller kant måste användaren peka på den. Men om det är ganska lätt att peka på en vertex markerad med en cirkel, så blir det svårare att peka på en kant som ritas med en tunn linje. En kontrollkarta hjälper här, där hörn och kanter upptar bredare kvarter än i den synliga figuren.

En intressant sidofråga relaterad till denna metod för komplex träning är: kan denna metod vara användbar vid träning av AI?

Källa: will.com

Lägg en kommentar