جدول تناوبی در علوم کامپیوتر مدارس

(کارت های کنترل)
(تقدیم به سال جهانی جدول تناوبی عناصر شیمیایی)
(آخرین موارد اضافه شده در 8 آوریل 2019 انجام شده است. لیست موارد اضافه شده بلافاصله در زیر برش قرار دارد)

جدول تناوبی در علوم کامپیوتر مدارس
(گل مندلیف, منبع)

یادم هست از کنار اردک رد شدیم. این سه درس به طور همزمان بود: جغرافیا، علوم طبیعی و روسی. در درس علوم، اردک را به عنوان اردک مطالعه کردند، چه بال هایی دارد، چه پاهایی دارد، چگونه شنا می کند و .... در یک درس جغرافیا، همان اردک به عنوان یک ساکن کره زمین مورد مطالعه قرار گرفت: لازم بود روی نقشه نشان داده شود که کجا زندگی می کند و کجا زندگی نمی کند. به زبان روسی، سرافیما پترونا به ما یاد داد که "u-t-k-a" بنویسیم و چیزی در مورد اردک های برم بخوانیم. در گذر، او به ما اطلاع داد که در آلمانی اردک اینگونه است و در فرانسه اینگونه است. فکر می‌کنم در آن زمان به آن «روش پیچیده» می‌گفتند. به طور کلی، همه چیز "در گذر" ظاهر شد.

ونیامین کاورین، دو کاپیتان

در نقل قول بالا، ونیامین کاورین با استادی کاستی های روش پیچیده تدریس را نشان داد، با این حال، در برخی موارد (شاید کاملاً نادر) عناصر این روش توجیه می شود. یکی از این موارد جدول تناوبی D.I. مندلیف در درس علوم کامپیوتر مدرسه است. وظیفه اتوماسیون نرم افزاری اعمال معمولی با جدول تناوبی برای دانش آموزان مدرسه ای که شروع به مطالعه شیمی کرده اند روشن است و به بسیاری از وظایف معمولی شیمیایی تقسیم می شود. در عین حال، در چارچوب علوم کامپیوتر، این کار به ما امکان می دهد تا روش کارت های کنترل را به شکلی ساده نشان دهیم، که می توان آن را به برنامه نویسی گرافیکی نسبت داد، که به معنای گسترده کلمه به عنوان برنامه نویسی با استفاده از عناصر گرافیکی درک می شود.

(اضافات 8 آوریل 2019:
ضمیمه 1: ماشین حساب شیمی چگونه کار می کند
پیوست 2: نمونه هایی از وظایف برای فیلترها)

بیایید با کار اصلی شروع کنیم. در ساده ترین حالت، جدول تناوبی باید به صورت پنجره ای روی صفحه نمایش داده شود، جایی که در هر سلول یک نام شیمیایی عنصر وجود دارد: H - هیدروژن، He - هلیوم و غیره. اگر نشانگر ماوس به یک سلول اشاره کند، نام عنصر و شماره آن در یک فیلد خاص در فرم ما نمایش داده می شود. اگر کاربر LMB را فشار دهد، نام و شماره این عنصر انتخاب شده در قسمت دیگری از فرم نشان داده می شود.

جدول تناوبی در علوم کامپیوتر مدارس

مشکل را می توان با استفاده از هر زبان جهانی حل کرد. ما از دلپی-7 ساده قدیمی استفاده می کنیم که تقریبا برای همه قابل درک است. اما قبل از برنامه نویسی در PL، بیایید دو تصویر، به عنوان مثال، در فتوشاپ بکشیم. ابتدا جدول تناوبی را به شکلی که می خواهیم در برنامه ببینیم ترسیم می کنیم. نتیجه را در یک فایل گرافیکی ذخیره کنید table01.bmp.

جدول تناوبی در علوم کامپیوتر مدارس

برای نقاشی دوم از اولین نقاشی استفاده می کنیم. سلول های جدول را که از تمام گرافیک ها پاک شده اند، به ترتیب با رنگ های منحصر به فرد در مدل رنگی RGB پر می کنیم. R و G همیشه 0 و B=1 برای هیدروژن، 2 برای هلیوم و غیره خواهد بود. این نقشه کارت کنترل ما خواهد بود که در فایلی به نام ذخیره می کنیم. table2.bmp.

جدول تناوبی در علوم کامپیوتر مدارس

مرحله اول برنامه نویسی گرافیکی در فتوشاپ به پایان رسید. بیایید به برنامه نویسی گرافیکی رابط کاربری گرافیکی در Delpi-7 IDE برویم. برای انجام این کار، یک پروژه جدید باز کنید، جایی که در فرم اصلی یک دکمه گفتگو قرار می دهیم (tableDlg) که در آن کار با جدول انجام خواهد شد. بعد با فرم کار می کنیم tableDlg.

یک جزء کلاس را روی فرم قرار دهید تصویر... ما گرفتیم Image1. توجه داشته باشید که به طور کلی، برای پروژه های بزرگ، نام فرم به طور خودکار تولید می شود ImageNجایی که N می تواند به چندین ده یا بیشتر برسد - این بهترین سبک برنامه نویسی نیست و باید نام های معنی دار تری ذکر شود. اما در پروژه کوچک ما، جایی که N از 2 تجاوز نخواهد کرد، می توانید آن را به عنوان تولید شده رها کنید.

به ملک تصویر1.تصویر فایل را آپلود کنید table01.bmp. ما ایجاد می کنیم Image2 و کارت کنترل ما را در آنجا بارگذاری کنید table2.bmp. در این حالت فایل را مانند گوشه سمت چپ پایین فرم کوچک و برای کاربر نامرئی می کنیم. ما عناصر کنترلی اضافی را اضافه می کنیم که هدف آنها واضح است. مرحله دوم برنامه نویسی گرافیکی رابط کاربری گرافیکی در Delpi-7 IDE به پایان رسید.

جدول تناوبی در علوم کامپیوتر مدارس

بیایید به مرحله سوم برویم - نوشتن کد در Delpi-7 IDE. ماژول فقط از پنج کنترل کننده رویداد تشکیل شده است: ایجاد فرم (FormCreate)، حرکت مکان نما Image1 (Image1MouseMove، با کلیک بر روی LMB روی یک سلول (Image1 کلیک کنید) و با استفاده از دکمه های OK از گفتگو خارج شوید (OKBtnکلیک کنید) یا لغو (CancelBtnکلیک کنید). هدرهای این هندلرها به روش استاندارد با استفاده از IDE تولید می شوند.

کد منبع ماژول:

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.

در نسخه خود، جدولی از 104 عنصر (ثابت اندازه). بدیهی است که این اندازه قابل افزایش است. نامگذاری عناصر (نمادهای شیمیایی) در یک آرایه نوشته می شود نمادهای جدول. با این حال، به دلیل فشرده بودن کد منبع، نوشتن دنباله این نمادها به شکل ثابت های رشته ای توصیه می شود. PeriodicTableStr1...، PeriodicTableStr4به طوری که هنگام ایجاد فرم، برنامه خود این نامگذاری ها را در بین عناصر آرایه پراکنده می کند. تعیین هر عنصر از یک یا دو حرف لاتین تشکیل شده است که حرف اول آن بزرگ و دومی (در صورت وجود) کوچک است. این قانون ساده هنگام بارگذاری یک آرایه اجرا می شود. بنابراین، توالی نمادها را می توان به صورت مختصر و بدون فاصله نوشت. شکستن یک دنباله به چهار قسمت (ثابت PeriodicTableStr1...، PeriodicTableStr4) به دلیل ملاحظات سهولت خواندن کد منبع است، زیرا خطی که خیلی طولانی است ممکن است به طور کامل روی صفحه نمایش قرار نگیرد.

هنگامی که نشانگر ماوس بر روی Image1 کنترل کننده Image1MouseMove این رویداد مقدار جزء رنگ آبی پیکسل کارت کنترل را تعیین می کند Image2 برای مختصات مکان نما فعلی توسط ساخت و ساز Image2 اگر مکان نما در داخل سلول باشد، این مقدار برابر با شماره عنصر است. صفر اگر در مرز باشد و 255 در موارد دیگر. سایر اقدامات انجام شده توسط برنامه بی اهمیت هستند و نیازی به توضیح ندارند.

علاوه بر تکنیک های برنامه نویسی سبکی که در بالا ذکر شد، باید به سبک تفسیر نیز توجه کرد. به بیان دقیق، کد مورد بحث به قدری کوچک و ساده است که به نظر نمی‌رسد که نظرات ضروری باشد. با این حال، آنها همچنین به دلایل روش شناختی اضافه شدند - کد کوتاه به ما اجازه می دهد تا برخی نتیجه گیری های کلی را واضح تر انجام دهیم. در کد ارائه شده یک کلاس اعلام شده است (TtableDlg). روش های این کلاس قابل تعویض هستند و این به هیچ وجه بر عملکرد برنامه تأثیر نمی گذارد، اما ممکن است بر خوانایی آن تأثیر بگذارد. به عنوان مثال دنباله را تصور کنید:

OKBtnClick, Image1MouseMove, FormCreate, Image1Click, CancelBtnClick.

ممکن است زیاد قابل توجه نباشد، اما خواندن و درک آن کمی دشوارتر می شود. اگر پنج روش نیست، بلکه ده ها برابر بیشتر در بخش وجود دارد پیاده سازی آنها نظمی کاملاً متفاوت با توضیحات کلاس دارند، در این صورت هرج و مرج فقط افزایش می یابد. بنابراین، اگرچه اثبات دقیق آن دشوار است و حتی ممکن است غیرممکن باشد، اما می توان امیدوار بود که معرفی نظم اضافی خوانایی کد را بهبود بخشد. این ترتیب اضافی با گروه بندی منطقی چندین روش که وظایف مرتبط را انجام می دهند تسهیل می شود. به هر گروه باید عنوانی داده شود، به عنوان مثال:

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

این عناوین باید در ابتدای ماژول کپی شده و به صورت فهرست مطالب قالب بندی شوند. در برخی موارد از ماژول های نسبتا طولانی، چنین فهرست مطالب گزینه های ناوبری اضافی را ارائه می دهد. به طور مشابه، در بدنه طولانی یک روش، روش یا عملکرد، ابتدا ارزش آن را دارد که انتهای این بدنه را علامت گذاری کنیم:

end; // FormCreate

و ثانیاً در عبارات شاخه دار با براکت های برنامه شروع - پایان، عبارتی را که براکت پایانی به آن اشاره دارد علامت بزنید:

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

برای برجسته کردن سرصفحه‌های گروه و انتهای بدنه‌های متد، می‌توانید خطوطی اضافه کنید که طولانی‌تر از بسیاری از عبارات هستند و به‌عنوان مثال از کاراکترهای «=» و «_» تشکیل شده‌اند.
باز هم باید رزرو کنیم: مثال ما خیلی ساده است. و هنگامی که کد یک روش در یک صفحه قرار نمی گیرد، درک شش انتهای متوالی برای ایجاد تغییرات کد می تواند دشوار باشد. در برخی از کامپایلرهای قدیمی، به عنوان مثال، Pascal 8000 برای OS IBM 360/370، یک ستون خدماتی مانند این در سمت چپ لیست چاپ شده است.

B5
…
E5

این بدان معناست که پرانتز بسته شدن در خط E5 با پرانتز باز در خط B5 مطابقت دارد.

البته، سبک برنامه نویسی موضوع بسیار بحث برانگیزی است، بنابراین ایده هایی که در اینجا بیان می شود را نباید چیزی جز خوراکی برای فکر تلقی کرد. برای دو برنامه نویس نسبتاً باتجربه که در طول سال ها کار به سبک های مختلف عادت کرده اند، می تواند بسیار دشوار باشد که به توافق برسند. برای دانش آموزی که برنامه نویسی می آموزد و هنوز زمان پیدا نکرده است که سبک خودش را پیدا کند، موضوع متفاوتی است. من فکر می کنم که در این مورد معلم حداقل باید چنین ایده ساده، اما نه بدیهی را به دانش آموزان خود منتقل کند که موفقیت یک برنامه تا حد زیادی به سبکی بستگی دارد که کد منبع آن در آن نوشته شده است. شاگرد ممکن است از سبک توصیه شده پیروی نکند، اما اجازه دهید حداقل در مورد نیاز به اقدامات "اضافی" برای بهبود طراحی کد منبع فکر کند.

بازگشت به مشکل اساسی خود در جدول تناوبی: توسعه بیشتر می تواند در جهت های مختلف باشد. یکی از مسیرها برای مرجع است: هنگامی که نشانگر ماوس را روی یک سلول جدول می‌کشید، یک پنجره اطلاعاتی ظاهر می‌شود که حاوی اطلاعات اضافی در مورد عنصر مشخص شده است. توسعه بیشتر فیلترها است. به عنوان مثال، بسته به نصب، پنجره اطلاعات فقط شامل: مهم ترین اطلاعات فیزیکی و شیمیایی، اطلاعات مربوط به تاریخچه کشف، اطلاعات مربوط به توزیع در طبیعت، لیستی از مهم ترین ترکیبات (که شامل این عنصر می شود)، خواص فیزیولوژیکی، نام به زبان خارجی و غیره. ه) با یادآوری "اردک" کاورین که این مقاله با آن شروع می شود، می توان گفت که با این توسعه برنامه یک مجموعه آموزشی کامل در علوم طبیعی به دست خواهیم آورد: علاوه بر کامپیوتر. علم، فیزیک و شیمی - زیست شناسی، جغرافیای اقتصادی، تاریخ علم و حتی زبان های خارجی.

اما پایگاه داده محلی محدودیت نیست. این برنامه به طور طبیعی به اینترنت متصل می شود. هنگامی که یک عنصر را انتخاب می کنید، پیوند فعال می شود و مقاله ویکی پدیا در مورد این عنصر در پنجره مرورگر وب باز می شود. همانطور که می دانید ویکی پدیا منبع معتبری نیست. می توانید پیوندهایی را به منابع معتبر تنظیم کنید، به عنوان مثال، دایره المعارف شیمیایی، TSB، مجلات انتزاعی، درخواست های سفارش در موتورهای جستجو برای این عنصر و غیره. که دانش‌آموزان می‌توانند تکالیف ساده اما معنادار را در مورد موضوعات DBMS و اینترنت انجام دهند.

علاوه بر پرس‌و‌جوها در یک عنصر، می‌توانید عملکردی ایجاد کنید که برای مثال سلول‌هایی را در جدول که معیارهای خاصی را برآورده می‌کنند با رنگ‌های مختلف علامت‌گذاری کند. مثلاً فلزات و غیرفلزات. یا سلول هایی که توسط یک کارخانه شیمیایی محلی به بدنه های آبی ریخته می شوند.

شما همچنین می توانید عملکردهای یک سازمان دهنده نوت بوک را پیاده سازی کنید. به عنوان مثال، عناصر موجود در آزمون را در جدول برجسته کنید. سپس عناصر مورد مطالعه/تکرار شده توسط دانش آموز در آمادگی برای امتحان را برجسته کنید.

و در اینجا، برای مثال، یکی از مشکلات معمول شیمی مدرسه است:

با توجه به 10 گرم گچ. چه مقدار اسید کلریدریک باید مصرف کرد تا این همه گچ حل شود؟

برای حل این مشکل باید شیمی را یادداشت کرد. واکنش و قرار دادن ضرایب در آن، وزن مولکولی کربنات کلسیم و کلرید هیدروژن را محاسبه کرده، سپس نسبت را ترکیب و حل کنید. یک ماشین حساب بر اساس برنامه اصلی ما می تواند محاسبه و حل کند. درست است، شما هنوز هم باید در نظر بگیرید که اسید باید در حد معقول و در غلظت معقول مصرف شود، اما این شیمی است، نه علم کامپیوتر.
ضمیمه 1: ماشین حساب شیمی چگونه کار می کنداجازه دهید عملکرد ماشین حساب را با استفاده از مثال مشکل بالا از گچ و "Hodgepodge" تجزیه و تحلیل کنیم. بیایید با واکنش شروع کنیم:

CaCO3 + 2HCl = CaCl2 + H2O

از اینجا می بینیم که به وزن اتمی عناصر زیر نیاز خواهیم داشت: کلسیم (Ca)، کربن (C)، اکسیژن (O)، هیدروژن (H) و کلر (Cl). در ساده ترین حالت، می توانیم این وزن ها را در یک آرایه تک بعدی که به صورت تعریف شده است بنویسیم

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

جایی که شاخص آرایه با شماره عنصر مطابقت دارد. بیشتر در مورد فضای آزاد فرم tableDlg دو فیلد قرار دهید در فیلد اول ابتدا نوشته شده است: "اولین معرف داده شده است" ، در قسمت دوم - "معرف دوم یافتن x است". بیایید فیلدها را مشخص کنیم معرف 1, معرف 2 به ترتیب. سایر موارد اضافه شده به برنامه در مثال زیر از ماشین حساب مشخص خواهد شد.

روی صفحه کلید کامپیوتر تایپ می کنیم: 10 گرم کتیبه در میدان معرف 1 تغییرات: "اولین معرف 10 گرم داده می شود." حال وارد فرمول این معرف می شویم و ماشین حساب با وارد کردن آن وزن مولکولی آن را محاسبه کرده و نشان می دهد.

LMB را در سلول جدول با نماد Ca کلیک کنید. کتیبه در میدان معرف 1 تغییرات: "اولین معرف Ca 40.078 که 10 گرم داده شد."

روی LMB در سلول جدول با نماد C. Inscription در فیلد کلیک کنید معرف 1 تغییرات: "اولین معرف CaC 52.089 که 10 گرم داده شد." آن ها ماشین حساب وزن اتمی کلسیم و کربن را جمع کرد.

روی LMB در سلول جدول با نماد O. Inscription در فیلد کلیک کنید معرف 1 تغییرات: "اولین معرف CaCO 68.088 که 10 گرم داده شد." ماشین حساب وزن اتمی اکسیژن را به مجموع اضافه کرد.

روی LMB در سلول جدول با نماد O. Inscription در فیلد کلیک کنید معرف 1 تغییرات: "اولین معرف CaCO2 84.087 که 10 گرم داده شد." ماشین حساب یک بار دیگر وزن اتمی اکسیژن را به مجموع اضافه کرد.

روی LMB در سلول جدول با نماد O. Inscription در فیلد کلیک کنید معرف 1 تغییرات: "اولین معرف CaCO3 100.086 که 10 گرم داده شد." ماشین حساب دوباره وزن اتمی اکسیژن را به مجموع اضافه کرد.

روی صفحه کلید کامپیوتر خود Enter را فشار دهید. معرفی اولین معرف کامل شده و به میدان تغییر می کند معرف 2. توجه داشته باشید که در این مثال ما یک نسخه مینیمال ارائه می دهیم. در صورت تمایل، می‌توانید به راحتی ضرب‌کننده‌های اتم‌های هم‌نوع را سازمان‌دهی کنید، به‌طوری که مثلاً هنگام وارد کردن فرمول کروم (K2Cr2O7) مجبور نباشید هفت بار پشت سر هم روی سلول اکسیژن کلیک کنید.

روی LMB در سلول جدول با نماد H. Inscription در فیلد کلیک کنید معرف 2 تغییرات: "معرف دوم H 1.008 x را پیدا کنید."

LMB را در سلول جدول با نماد Cl کلیک کنید. کتیبه در میدان معرف 2 تغییرات: "معرف دوم HCl 36.458 x را پیدا کنید." ماشین حساب وزن اتمی هیدروژن و کلر را جمع کرد. در معادله واکنش بالا، ضریب هیدروژن کلرید قبل از آن 2 است. بنابراین، روی LMB در قسمت کلیک کنید. معرف 2. وزن مولکولی دو برابر می شود (در صورت دو بار فشار دادن سه برابر و غیره). کتیبه در میدان معرف 2 تغییرات: "معرف دوم 2HCl 72.916 x را پیدا کنید."

روی صفحه کلید کامپیوتر خود Enter را فشار دهید. ورود معرف دوم تکمیل می شود و ماشین حساب x را از نسبت پیدا می کند

جدول تناوبی در علوم کامپیوتر مدارس

این چیزی است که ما باید پیدا می کردیم.

یادداشت 1. معنی نسبت حاصل: برای انحلال 100.086 Da گچ به اسید 72.916 دا نیاز دارد و برای حل کردن 10 گرم گچ به x اسید نیاز دارید.

یادداشت 2. مجموعه مشکلات مشابه:

Khomchenko I. G.، مجموعه ای از مسائل و تمرینات در شیمی 2009 (کلاس 8-11).
Khomchenko G. P. Khomchenko I. G. مجموعه مسائل شیمی برای متقاضیان ورود به دانشگاه ها، 2019.

یادداشت 3. برای ساده کردن کار، می توانید ورود فرمول را در نسخه اولیه ساده کنید و به سادگی نماد عنصر را به انتهای خط فرمول اضافه کنید. سپس فرمول کربنات کلسیم به صورت زیر خواهد بود:
CaCOOO
اما بعید است که یک معلم شیمی از چنین ضبطی خوشش بیاید. ایجاد ورودی صحیح دشوار نیست - برای انجام این کار باید یک آرایه اضافه کنید:

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

که در آن شاخص تعداد عنصر شیمیایی است و مقدار در این شاخص تعداد اتم ها است (در ابتدا همه عناصر آرایه به صفر تنظیم می شوند). ترتیبی که اتم ها در یک فرمول نوشته می شوند، همانطور که در شیمی پذیرفته شده است، باید در نظر گرفته شود. برای مثال، تعداد کمی از مردم O3CaC را دوست دارند. بیایید مسئولیت را به عهده کاربر بگذاریم. ساخت آرایه:

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

جایی که تعداد عنصر شیمیایی را با توجه به شاخص ظاهر آن در فرمول یادداشت می کنیم. افزودن یک اتم شماره فعلی به فرمول:

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

نوشتن فرمول در یک خط:

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;

یادداشت 4. منطقی است که توانایی وارد کردن فرمول معرف را به صورت متناوب از صفحه کلید فراهم کنید. در این مورد، شما نیاز به پیاده سازی یک تجزیه کننده ساده دارید.

شایان ذکر است که:

امروزه چندین صد نسخه از جدول وجود دارد و دانشمندان دائماً گزینه های جدیدی را ارائه می دهند. (ویکیپدیا)

دانش آموزان می توانند نبوغ خود را در این مسیر با اجرای یکی از گزینه های پیشنهادی از قبل نشان دهند یا سعی کنند گزینه اصلی خود را بسازند. ممکن است به نظر برسد که این کمترین کاربرد برای درس علوم کامپیوتر است. با این حال، در قالب جدول تناوبی اجرا شده در این مقاله، برخی از دانش آموزان ممکن است مزایای خاص کارت های کنترل را نسبت به راه حل جایگزین با استفاده از دکمه های استاندارد مشاهده نکنند. TButton. شکل مارپیچی جدول (جایی که سلول ها دارای اشکال مختلف هستند) مزایای راه حل ارائه شده در اینجا را به وضوح نشان می دهد.

جدول تناوبی در علوم کامپیوتر مدارس
(سیستم جایگزین عناصر اثر تئودور بنفی, منبع)

اجازه دهید همچنین اضافه کنیم که تعدادی از برنامه های رایانه ای موجود برای جدول تناوبی در مقاله اخیراً منتشر شده در Habré شرح داده شده است. مقاله.

پیوست 2: نمونه هایی از وظایف برای فیلترهابا استفاده از فیلترها می توانید به عنوان مثال وظایف زیر را حل کنید:

1) در جدول تمام عناصر شناخته شده در قرون وسطی را انتخاب کنید.

2) تمام عناصر شناخته شده در زمان کشف قانون تناوبی را شناسایی کنید.

3) هفت عنصری را که کیمیاگران آنها را فلز می دانستند شناسایی کنید.

4) تمام عناصری که در شرایط عادی در حالت گاز هستند (n.s.) را انتخاب کنید.

5) تمام عناصری که در حالت مایع هستند را انتخاب کنید.

6) تمام عناصری که در حالت جامد در شماره هستند را انتخاب کنید.

7) تمام عناصری را انتخاب کنید که می توانند برای مدت طولانی بدون تغییرات محسوس در شرایط عادی در معرض هوا قرار گیرند.

8) تمام فلزاتی که در اسید کلریدریک حل می شوند را انتخاب کنید.

9) تمام فلزاتی را که در اسید سولفوریک در شماره حل می شوند انتخاب کنید.

10) تمام فلزاتی را که هنگام گرم شدن در اسید سولفوریک حل می شوند انتخاب کنید.

11) تمام فلزاتی که در اسید نیتریک حل می شوند را انتخاب کنید.

12) تمام فلزاتی را که در شرایط محیطی به شدت با آب واکنش می دهند جدا کنید.

13) تمام فلزات را انتخاب کنید.

14) عناصری که در طبیعت گسترده هستند را شناسایی کنید.

15) عناصری که در طبیعت در حالت آزاد یافت می شوند را شناسایی کنید.

16) عناصری که بیشترین نقش را در بدن انسان و حیوان دارند را شناسایی کنید.

17) عناصری را انتخاب کنید که به طور گسترده در زندگی روزمره مورد استفاده قرار می گیرند (به صورت آزاد یا ترکیبی).

18) عناصری را که برای کار با آنها خطرناک ترین هستند و به تدابیر و تجهیزات حفاظتی خاصی نیاز دارند، شناسایی کنید.

19) عناصری را که به صورت آزاد یا به صورت ترکیبات بیشترین تهدید را برای محیط زیست ایجاد می کنند، شناسایی کنید.

20) فلزات گرانبها را انتخاب کنید.

21) عناصری را که گرانتر از فلزات گرانبها هستند شناسایی کنید.

یادداشت ها

1) ارائه چندین فیلتر منطقی است. به عنوان مثال، اگر فیلتری را برای حل مسئله 1 (همه عناصر شناخته شده در قرون وسطی) و 20 (فلزات گرانبها) روشن کنید، سلول های دارای فلزات گرانبها شناخته شده در قرون وسطی برجسته می شوند (به عنوان مثال، با رنگ) ( به عنوان مثال، پالادیوم برجسته نخواهد شد، که در سال 1803 افتتاح شد.

2) منطقی است که اطمینان حاصل شود که چندین فیلتر به گونه ای عمل می کنند که هر فیلتر سلول هایی را با رنگ خاص خود انتخاب کند، اما انتخاب فیلتر دیگری را به طور کامل حذف نکند (بخشی از سلول در یک رنگ، بخشی در رنگ دیگر). سپس در مورد مثال قبل، عناصری از تلاقی مجموعه های کشف شده در قرون وسطی و فلزات گرانبها و نیز عناصری که فقط متعلق به مجموعه اول و تنها به مجموعه دوم هستند، قابل مشاهده خواهند بود. آن ها فلزات گرانبها ناشناخته در قرون وسطی و عناصر شناخته شده در قرون وسطی اما فلزات گرانبها نیستند.

3) منطقی است پس از اعمال فیلتر از امکان کار دیگر با نتایج به دست آمده اطمینان حاصل شود. به عنوان مثال، کاربر با داشتن عناصر انتخابی شناخته شده در قرون وسطی، بر روی عنصر انتخابی LMB کلیک می کند و به مقاله ویکی پدیا در مورد این عنصر منتقل می شود.

4) منطقی است که با کلیک کردن بر روی LMB در سلول جدول انتخابی، امکان لغو انتخاب را در اختیار کاربر قرار دهیم. به عنوان مثال، برای حذف موارد مشاهده شده از قبل.

5) اطمینان از اینکه لیست سلول های انتخاب شده در یک فایل ذخیره می شود و چنین فایلی با انتخاب خودکار سلول ها بارگذاری می شود منطقی است. این به کاربر این فرصت را می دهد که از کار خود استراحت کند.

ما از یک نقشه کنترل ایستا و از پیش تعیین شده استفاده کردیم، اما کارهای مهم زیادی وجود دارد که می توان از نقشه های کنترل پویا که با اجرای برنامه تغییر می کنند استفاده کرد. یک مثال می تواند یک ویرایشگر گراف باشد که در آن کاربر از ماوس برای نشان دادن موقعیت رئوس در یک پنجره و کشیدن لبه ها بین آنها استفاده می کند. برای حذف یک راس یا لبه، کاربر باید به آن اشاره کند. اما اگر نشان دادن به یک راس مشخص شده با یک دایره بسیار آسان باشد، آنگاه نشان دادن به لبه ای که با یک خط نازک کشیده شده است دشوارتر خواهد بود. یک نقشه کنترلی در اینجا کمک خواهد کرد، جایی که رئوس و لبه ها محله های وسیع تری را نسبت به شکل قابل مشاهده اشغال می کنند.

یک سوال جانبی جالب در رابطه با این روش آموزش پیچیده این است: آیا این روش می تواند در آموزش هوش مصنوعی مفید باشد؟

منبع: www.habr.com

اضافه کردن نظر