اسکول کمپیوٹر سائنس پر متواتر جدول

(کنٹرول کارڈز)
(کیمیائی عناصر کے متواتر جدول کے بین الاقوامی سال کے لیے وقف)
(تازہ ترین اضافے 8 اپریل 2019 کو کیے گئے تھے۔ اضافے کی فہرست کٹ کے فوراً نیچے ہے)

اسکول کمپیوٹر سائنس پر متواتر جدول
(مینڈیلیف کا پھول, ماخذ)

مجھے یاد ہے کہ ہم بطخ سے گزرے تھے۔ یہ بیک وقت تین اسباق تھے: جغرافیہ، قدرتی سائنس اور روسی۔ سائنس کے ایک سبق میں، بطخ کا بطخ کے طور پر مطالعہ کیا گیا، اس کے کیا پر ہیں، اس کے کیا ٹانگیں ہیں، یہ کیسے تیرتی ہے، وغیرہ۔ جغرافیہ کے سبق میں، اسی بطخ کا مطالعہ دنیا کے ایک باشندے کے طور پر کیا گیا تھا: اسے نقشے پر دکھانا ضروری تھا کہ وہ کہاں رہتی ہے اور کہاں نہیں رہتی۔ روسی میں، Serafima Petrovna نے ہمیں "u-t-k-a" لکھنا اور Brem کی بطخوں کے بارے میں کچھ پڑھنا سکھایا۔ گزرتے ہوئے، اس نے ہمیں بتایا کہ جرمن بطخ میں اس طرح ہے، اور فرانسیسی میں اس طرح۔ میرے خیال میں اس وقت اسے "پیچیدہ طریقہ" کہا جاتا تھا۔ عام طور پر، سب کچھ "گزرتے ہوئے" سامنے آیا۔

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

مندرجہ بالا اقتباس میں، Veniamin Kaverin نے مہارت کے ساتھ پیچیدہ تدریسی طریقہ کار کی خامیوں کو ظاہر کیا، تاہم، کچھ (شاید بہت کم) معاملات میں، اس طریقہ کار کے عناصر کو جائز قرار دیا گیا ہے۔ ایسا ہی ایک معاملہ D.I. Mendeleev کا سکول کمپیوٹر سائنس کے اسباق میں متواتر جدول ہے۔ متواتر جدول کے ساتھ عام اعمال کی سافٹ ویئر آٹومیشن کا کام ان سکول کے بچوں کے لیے واضح ہے جنہوں نے کیمسٹری پڑھنا شروع کر دی ہے، اور یہ بہت سے عام کیمیائی مسائل میں تقسیم ہے۔ ایک ہی وقت میں، کمپیوٹر سائنس کے فریم ورک کے اندر، یہ کام ہمیں کنٹرول کارڈ کے طریقہ کار کو ایک سادہ شکل میں ظاہر کرنے کی اجازت دیتا ہے، جسے گرافیکل پروگرامنگ سے منسوب کیا جا سکتا ہے، جسے لفظ کے وسیع معنی میں گرافک عناصر کا استعمال کرتے ہوئے پروگرامنگ کے طور پر سمجھا جاتا ہے۔

(8 اپریل 2019 میں کیے گئے اضافے:
ضمیمہ 1: کیمسٹری کیلکولیٹر کیسے کام کرتا ہے۔
ضمیمہ 2: فلٹرز کے کاموں کی مثالیں)

آئیے بنیادی کام سے شروع کرتے ہیں۔ سب سے آسان صورت میں، متواتر جدول کو اسکرین پر ونڈو کی شکل میں دکھایا جانا چاہیے، جہاں ہر سیل میں عنصر کا ایک کیمیائی عہدہ ہوگا: H - ہائیڈروجن، He - ہیلیم وغیرہ۔ اگر ماؤس کرسر کسی سیل کی طرف اشارہ کرتا ہے، تو عنصر کا عہدہ اور اس کا نمبر ہمارے فارم پر ایک خاص فیلڈ میں ظاہر ہوتا ہے۔ اگر صارف LMB دباتا ہے، تو اس منتخب کردہ عنصر کا عہدہ اور نمبر فارم کے دوسرے فیلڈ میں ظاہر کیا جائے گا۔

اسکول کمپیوٹر سائنس پر متواتر جدول

مسئلہ کسی بھی عالمگیر زبان کا استعمال کرتے ہوئے حل کیا جا سکتا ہے۔ ہم سادہ پرانا Delpi-7 لیں گے، جو تقریباً ہر کسی کے لیے سمجھ میں آتا ہے۔ لیکن PL میں پروگرامنگ سے پہلے، آئیے دو تصویریں کھینچتے ہیں، مثال کے طور پر، فوٹوشاپ میں۔ سب سے پہلے، پیریڈک ٹیبل کو اس شکل میں کھینچتے ہیں جسے ہم پروگرام میں دیکھنا چاہتے ہیں۔ نتیجہ کو گرافک فائل میں محفوظ کریں۔ table01.bmp.

اسکول کمپیوٹر سائنس پر متواتر جدول

دوسری ڈرائنگ کے لیے ہم پہلی کا استعمال کرتے ہیں۔ ہم ترتیب وار RGB کلر ماڈل میں منفرد رنگوں کے ساتھ تمام گرافکس سے پاک ٹیبل سیلز کو بھریں گے۔ R اور G ہمیشہ 0 ہوں گے، اور B=1 ہائیڈروجن کے لیے، 2 ہیلیم کے لیے، وغیرہ۔ یہ ڈرائنگ ہمارا کنٹرول کارڈ ہوگا، جسے ہم ایک فائل میں محفوظ کریں گے۔ table2.bmp.

اسکول کمپیوٹر سائنس پر متواتر جدول

فوٹوشاپ میں گرافک پروگرامنگ کا پہلا مرحلہ مکمل ہو گیا ہے۔ آئیے Delpi-7 IDE میں گرافیکل GUI پروگرامنگ کی طرف بڑھتے ہیں۔ ایسا کرنے کے لیے، ایک نیا پروجیکٹ کھولیں، جہاں مین فارم پر ہم ڈائیلاگ بٹن رکھتے ہیں (ٹیبل ڈی ایل جی)، جس میں میز کے ساتھ کام ہوگا۔ اگلا ہم فارم کے ساتھ کام کرتے ہیں۔ ٹیبل ڈی ایل جی.

فارم پر کلاس کا ایک جزو رکھیں تیمج۔. ہم حاصل Image1. نوٹ کریں کہ عام طور پر، بڑے پروجیکٹس کے لیے، فارم کے نام خود بخود تیار ہوتے ہیں۔ امیج اینجہاں N کئی درجن یا اس سے زیادہ تک پہنچ سکتے ہیں - یہ پروگرامنگ کا بہترین انداز نہیں ہے، اور زیادہ معنی خیز نام دینے چاہئیں۔ لیکن ہمارے چھوٹے منصوبے میں، کہاں N 2 سے زیادہ نہیں ہو گا، آپ اسے بنا کر چھوڑ سکتے ہیں۔

جائیداد کو تصویر 1۔ تصویر فائل اپ لوڈ کریں table01.bmp. ہم تخلیق کرتے ہیں۔ Image2 اور ہمارا کنٹرول کارڈ وہاں لوڈ کریں۔ table2.bmp. اس صورت میں، ہم فائل کو چھوٹا اور صارف کے لیے پوشیدہ بناتے ہیں، جیسا کہ فارم کے نیچے بائیں کونے میں دکھایا گیا ہے۔ ہم اضافی کنٹرول عناصر شامل کرتے ہیں، جس کا مقصد واضح ہے۔ Delpi-7 IDE میں گرافیکل GUI پروگرامنگ کا دوسرا مرحلہ مکمل ہو گیا ہے۔

اسکول کمپیوٹر سائنس پر متواتر جدول

آئیے تیسرے مرحلے پر چلتے ہیں - Delpi-7 IDE میں کوڈ لکھنا۔ ماڈیول صرف پانچ ایونٹ ہینڈلرز پر مشتمل ہے: فارم تخلیق (FormCreate)، کرسر کی حرکت Image1 (امیج 1 ماؤس موو)، سیل پر LMB پر کلک کرنا (تصویر 1 کلک کریں۔) اور OK بٹنوں کا استعمال کرتے ہوئے ڈائیلاگ سے باہر نکلیں (OKBtn کلک کریں۔) یا منسوخ کریں (CancelBtnClick)۔ ان ہینڈلرز کے ہیڈرز 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 ہینڈلر امیج 1 ماؤس موو یہ واقعہ کنٹرول کارڈ پکسل کے نیلے رنگ کے جزو کی قدر کا تعین کرتا ہے۔ Image2 موجودہ کرسر کوآرڈینیٹ کے لیے۔ تعمیر سے Image2 یہ قدر عنصر نمبر کے برابر ہے اگر کرسر سیل کے اندر ہے۔ اگر سرحد پر ہو تو صفر، اور دیگر معاملات میں 255۔ پروگرام کے ذریعہ انجام دیے گئے بقیہ اعمال معمولی ہیں اور ان کی وضاحت کی ضرورت نہیں ہے۔

اوپر بیان کردہ اسٹائلسٹک پروگرامنگ تکنیکوں کے علاوہ، یہ کمنٹری کے انداز کو بھی نوٹ کرنے کے قابل ہے۔ سخت الفاظ میں، زیر بحث کوڈ اتنا چھوٹا اور سادہ ہے کہ تبصرے خاص طور پر ضروری نہیں لگتے۔ تاہم، وہ طریقہ کار کی وجوہات کی بنا پر بھی شامل کیے گئے تھے - مختصر کوڈ ہمیں کچھ عمومی نتائج کو زیادہ واضح طور پر نکالنے کی اجازت دیتا ہے۔ پیش کردہ کوڈ میں ایک کلاس کا اعلان کیا گیا ہے (ٹیبل ڈی ایل جی)۔ اس کلاس کے طریقوں کو تبدیل کیا جا سکتا ہے اور یہ پروگرام کے کام کو کسی بھی طرح سے متاثر نہیں کرے گا، لیکن اس کی پڑھنے کی اہلیت کو متاثر کر سکتا ہے۔ مثال کے طور پر، ترتیب کا تصور کریں:

OKBtnClick, Image1MouseMove, FormCreate, Image1Click, CancelBtnClick.

ہو سکتا ہے کہ یہ زیادہ قابل توجہ نہ ہو، لیکن اسے پڑھنا اور سمجھنا تھوڑا مشکل ہو جائے گا۔ اگر سیکشن میں پانچ نہیں بلکہ دسیوں گنا زیادہ طریقے ہیں۔ نفاذ کلاس کی وضاحتوں سے ان کی ترتیب بالکل مختلف ہے، تب افراتفری میں اضافہ ہوگا۔ اس لیے، اگرچہ سختی سے ثابت کرنا مشکل ہے اور ناممکن بھی ہو سکتا ہے، کوئی امید کر سکتا ہے کہ اضافی آرڈر متعارف کروانے سے کوڈ کی پڑھنے کی اہلیت میں بہتری آئے گی۔ اس اضافی آرڈر کو متعدد طریقوں کی منطقی گروپ بندی کے ذریعہ سہولت فراہم کی گئی ہے جو متعلقہ کام انجام دیتے ہیں۔ ہر گروپ کو ایک عنوان دیا جانا چاہئے، مثال کے طور پر:

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

ان عنوانات کو ماڈیول کے شروع میں کاپی کیا جانا چاہئے اور مندرجات کے جدول کے طور پر فارمیٹ کیا جانا چاہئے۔ کافی لمبے ماڈیولز کے کچھ معاملات میں، اس طرح کے مندرجات کی میزیں نیویگیشن کے اضافی اختیارات فراہم کرتی ہیں۔ اسی طرح، ایک طریقہ، طریقہ کار یا فنکشن کے لمبے حصے میں، یہ قابل قدر ہے، سب سے پہلے، اس جسم کے اختتام کو نشان زد کرنا:

end; // FormCreate

اور، دوم، پروگرام بریکٹ کے ساتھ شاخوں والے بیانات میں شروع - اختتام، اس بیان کو نشان زد کریں جس سے اختتامی بریکٹ مراد ہے:

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

گروپ ہیڈرز اور طریقہ کار کے سروں کو نمایاں کرنے کے لیے، آپ ایسی لائنیں شامل کر سکتے ہیں جو زیادہ تر آپریٹرز سے لمبی ہوں اور مثال کے طور پر بالترتیب "=" اور "_" حروف پر مشتمل ہوں۔
ایک بار پھر، ہمیں ریزرویشن کرنے کی ضرورت ہے: ہماری مثال بہت آسان ہے۔ اور جب کسی طریقہ کا کوڈ ایک اسکرین پر فٹ نہیں ہوتا ہے، تو کوڈ میں تبدیلی کرنے کے لیے لگاتار چھ سرے کو سمجھنا مشکل ہو سکتا ہے۔ کچھ پرانے کمپائلرز میں، مثال کے طور پر، OS IBM 8000/360 کے لیے Pascal 370، فہرست میں بائیں جانب اس طرح کا ایک سروس کالم پرنٹ کیا گیا تھا۔

B5
…
E5

اس کا مطلب یہ تھا کہ لائن E5 پر بند ہونے والا قوسین لائن B5 پر شروع ہونے والے قوسین سے مماثل ہے۔

بلاشبہ، پروگرامنگ کا انداز ایک بہت ہی متنازعہ مسئلہ ہے، اس لیے یہاں بیان کیے گئے خیالات کو سوچ کے لیے خوراک کے علاوہ کچھ نہیں لینا چاہیے۔ دو کافی تجربہ کار پروگرامرز کے لیے، جنہوں نے کئی سالوں کے کام کے دوران مختلف طرزیں تیار کی ہیں اور ان کے عادی ہو چکے ہیں، کے لیے ایک معاہدے پر آنا بہت مشکل ہو سکتا ہے۔ پروگرام سیکھنے والے طالب علم کے لیے یہ الگ بات ہے کہ جس کے پاس ابھی تک اپنا انداز تلاش کرنے کا وقت نہیں ہے۔ میں سمجھتا ہوں کہ اس معاملے میں استاد کو کم از کم اپنے طالب علموں کو اتنا آسان، لیکن واضح خیال نہیں بتانا چاہیے کہ کسی پروگرام کی کامیابی کا انحصار اس انداز پر ہوتا ہے جس میں اس کا سورس کوڈ لکھا گیا ہے۔ طالب علم تجویز کردہ انداز کی پیروی نہیں کرسکتا ہے، لیکن اسے کم از کم سورس کوڈ کے ڈیزائن کو بہتر بنانے کے لیے "اضافی" اقدامات کی ضرورت کے بارے میں سوچنے دیں۔

متواتر جدول پر اپنے بنیادی مسئلے کی طرف لوٹنا: مزید ترقی مختلف سمتوں میں جا سکتی ہے۔ ہدایات میں سے ایک حوالہ کے لیے ہے: جب آپ ماؤس کرسر کو ٹیبل سیل پر گھماتے ہیں، تو ایک معلوماتی ونڈو ظاہر ہوتی ہے جس میں مخصوص عنصر پر اضافی معلومات ہوتی ہیں۔ مزید ترقی فلٹرز ہے۔ مثال کے طور پر، انسٹالیشن پر منحصر ہے، معلوماتی ونڈو صرف اس پر مشتمل ہوگی: انتہائی اہم جسمانی اور کیمیائی معلومات، دریافت کی تاریخ سے متعلق معلومات، فطرت میں تقسیم کے بارے میں معلومات، اہم ترین مرکبات کی فہرست (جس میں یہ عنصر شامل ہے)، جسمانی خصوصیات، غیر ملکی زبان میں نام، وغیرہ۔ کاویرین کی "بطخ" کو یاد کرتے ہوئے جس سے یہ مضمون شروع ہوتا ہے، ہم کہہ سکتے ہیں کہ اس پروگرام کی ترقی سے ہمیں قدرتی علوم میں ایک مکمل تربیتی کمپلیکس ملے گا: کمپیوٹر کے علاوہ۔ سائنس، طبیعیات اور کیمسٹری - حیاتیات، اقتصادی جغرافیہ، سائنس کی تاریخ اور یہاں تک کہ غیر ملکی زبانیں.

لیکن مقامی ڈیٹا بیس کی حد نہیں ہے۔ پروگرام قدرتی طور پر انٹرنیٹ سے جڑتا ہے۔ جب آپ کسی عنصر کو منتخب کرتے ہیں، تو لنک ایکٹیویٹ ہوجاتا ہے، اور اس عنصر کے بارے میں ویکیپیڈیا کا مضمون ویب براؤزر ونڈو میں کھل جاتا ہے۔ ویکیپیڈیا، جیسا کہ آپ جانتے ہیں، ایک مستند ذریعہ نہیں ہے۔ آپ مستند ذرائع کے لنکس ترتیب دے سکتے ہیں، مثال کے طور پر، کیمیکل انسائیکلوپیڈیا، TSB، تجریدی جرائد، اس عنصر کے لیے سرچ انجنوں میں سوالات کا آرڈر دینا وغیرہ۔ وہ. طلباء DBMS اور انٹرنیٹ کے موضوعات پر سادہ لیکن بامعنی اسائنمنٹس مکمل کر سکیں گے۔

انفرادی عنصر پر سوالات کے علاوہ، آپ ایسی فعالیت بنا سکتے ہیں جو، مثال کے طور پر، ٹیبل میں ان خلیوں کو نشان زد کرے گی جو مختلف رنگوں کے ساتھ مخصوص معیار پر پورا اترتے ہیں۔ مثال کے طور پر، دھاتیں اور غیر دھاتیں. یا خلیات جو مقامی کیمیکل پلانٹ کے ذریعہ آبی ذخائر میں پھینکے جاتے ہیں۔

آپ نوٹ بک آرگنائزر کے افعال کو بھی نافذ کر سکتے ہیں۔ مثال کے طور پر، ٹیبل میں ان عناصر کو نمایاں کریں جو امتحان میں شامل ہیں۔ پھر امتحان کی تیاری میں طالب علم کے ذریعہ مطالعہ کیے گئے عناصر کو نمایاں کریں۔

اور یہاں، مثال کے طور پر، اسکول کی کیمسٹری کے عام مسائل میں سے ایک ہے:

چاک کے 10 جی دیا. اس سارے چاک کو تحلیل کرنے کے لیے کتنا ہائیڈروکلورک ایسڈ لینا چاہیے؟

اس مسئلے کو حل کرنے کے لیے کیم لکھنا ضروری ہے۔ رد عمل اور اس میں گتانک رکھ کر، کیلشیم کاربونیٹ اور ہائیڈروجن کلورائیڈ کے مالیکیولر وزن کا حساب لگائیں، پھر تناسب بنائیں اور حل کریں۔ ہمارے بنیادی پروگرام پر مبنی کیلکولیٹر حساب لگا سکتا ہے اور حل کر سکتا ہے۔ سچ ہے، آپ کو اب بھی اس بات کا خیال رکھنا ہوگا کہ تیزاب کو مناسب حد سے زیادہ اور مناسب ارتکاز میں لیا جانا چاہیے، لیکن یہ کیمسٹری ہے، کمپیوٹر سائنس نہیں۔
ضمیمہ 1: کیمسٹری کیلکولیٹر کیسے کام کرتا ہے۔آئیے ہم اوپر دیے گئے چاک اور "ہوج پاج" کی مثال کا استعمال کرتے ہوئے کیلکولیٹر کے آپریشن کا تجزیہ کرتے ہیں۔ آئیے ردعمل کے ساتھ شروع کریں:

CaCO3 + 2HCl = CaCl2 + H2O

اس سے ہم دیکھتے ہیں کہ ہمیں درج ذیل عناصر کے جوہری وزن کی ضرورت ہوگی: کیلشیم (Ca)، کاربن (C)، آکسیجن (O)، ہائیڈروجن (H) اور کلورین (Cl)۔ آسان ترین صورت میں، ہم ان وزنوں کو ایک جہتی صف میں لکھ سکتے ہیں جس کی وضاحت کی گئی ہے۔

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

جہاں سرنی انڈیکس عنصر نمبر سے مطابقت رکھتا ہے۔ فارم کی خالی جگہ پر مزید ٹیبل ڈی ایل جی دو فیلڈ ڈالیں. پہلی فیلڈ میں یہ ابتدائی طور پر لکھا گیا ہے: "پہلا ریجنٹ دیا گیا ہے"، دوسرے میں - "دوسرا ریجنٹ ایکس کو تلاش کرنا ہے"۔ آئیے فیلڈز کی نشاندہی کرتے ہیں۔ ریجنٹ 1, ریجنٹ 2 بالترتیب پروگرام میں دیگر اضافے کیلکولیٹر کی درج ذیل مثال سے واضح ہوں گے۔

ہم کمپیوٹر کی بورڈ پر ٹائپ کرتے ہیں: 10 جی۔ فیلڈ میں نوشتہ ریجنٹ 1 تبدیلیاں: "پہلا ریجنٹ 10 جی دیا جاتا ہے۔" اب ہم اس ریجنٹ کا فارمولہ درج کرتے ہیں، اور کیلکولیٹر اس کے مالیکیولر وزن کا حساب لگا کر دکھائے گا جیسے ہی آپ اسے داخل کریں گے۔

Ca علامت کے ساتھ ٹیبل سیل پر LMB پر کلک کریں۔ میدان میں نوشتہ ریجنٹ 1 تبدیلیاں: "پہلا ریجنٹ Ca 40.078 دیا گیا 10 جی۔"

ٹیبل سیل پر LMB پر C کی علامت کے ساتھ کلک کریں۔ فیلڈ میں انکرپشن ریجنٹ 1 تبدیلیاں: "پہلا ریجنٹ CaC 52.089 دیا گیا 10 جی۔" وہ. کیلکولیٹر نے کیلشیم اور کاربن کے جوہری وزن میں اضافہ کیا۔

ٹیبل سیل پر LMB پر کلک کریں O کی علامت کے ساتھ۔ فیلڈ میں لکھا ہوا ہے۔ ریجنٹ 1 تبدیلیاں: "پہلا ریجنٹ CaCO 68.088 دیا گیا 10 جی۔" کیلکولیٹر نے رقم میں آکسیجن کے جوہری وزن کو شامل کیا۔

ٹیبل سیل پر LMB پر کلک کریں O کی علامت کے ساتھ۔ فیلڈ میں لکھا ہوا ہے۔ ریجنٹ 1 تبدیلیاں: "پہلا ریجنٹ CaCO2 84.087 دیا گیا 10 جی۔" کیلکولیٹر نے ایک بار پھر آکسیجن کے جوہری وزن کو رقم میں شامل کیا۔

ٹیبل سیل پر LMB پر کلک کریں O کی علامت کے ساتھ۔ فیلڈ میں لکھا ہوا ہے۔ ریجنٹ 1 تبدیلیاں: "پہلا ریجنٹ CaCO3 100.086 دیا گیا 10 جی۔" کیلکولیٹر نے دوبارہ آکسیجن کے جوہری وزن کو رقم میں شامل کیا۔

اپنے کمپیوٹر کی بورڈ پر انٹر دبائیں۔ پہلے ریجنٹ کا تعارف مکمل ہو گیا ہے اور فیلڈ میں تبدیل ہو گیا ہے۔ ریجنٹ 2. نوٹ کریں کہ اس مثال میں ہم ایک کم سے کم ورژن فراہم کر رہے ہیں۔ اگر آپ چاہیں تو، آپ آسانی سے ایک ہی قسم کے ایٹموں کے ملٹی پلیئرز کو ترتیب دے سکتے ہیں، تاکہ، مثال کے طور پر، آپ کو کرومیم فارمولہ (K2Cr2O7) میں داخل ہوتے وقت آکسیجن سیل پر لگاتار سات بار کلک کرنے کی ضرورت نہیں ہے۔

ٹیبل سیل پر LMB پر کلک کریں H کی علامت کے ساتھ ریجنٹ 2 تبدیلیاں: "سیکنڈ ریجنٹ H 1.008 تلاش ایکس۔"

Cl علامت کے ساتھ ٹیبل سیل پر LMB پر کلک کریں۔ میدان میں نوشتہ ریجنٹ 2 تبدیلیاں: "سیکنڈ ریجنٹ HCl 36.458 تلاش ایکس۔" کیلکولیٹر نے ہائیڈروجن اور کلورین کے جوہری وزن میں اضافہ کیا۔ مندرجہ بالا رد عمل کی مساوات میں، ہائیڈروجن کلورائد 2 کے گتانک سے پہلے ہوتا ہے۔ لہذا، فیلڈ پر LMB پر کلک کریں۔ ریجنٹ 2. مالیکیولر وزن دوگنا ہو جاتا ہے (دو بار دبانے پر تین گنا، وغیرہ)۔ میدان میں نوشتہ ریجنٹ 2 تبدیلیاں: "سیکنڈ ریجنٹ 2HCl 72.916 ایکس تلاش کریں۔"

اپنے کمپیوٹر کی بورڈ پر انٹر دبائیں۔ دوسرے ریجنٹ کا اندراج مکمل ہو گیا ہے، اور کیلکولیٹر تناسب سے x تلاش کرتا ہے۔

اسکول کمپیوٹر سائنس پر متواتر جدول

یہ وہی ہے جو ہمیں تلاش کرنے کی ضرورت تھی.

نوٹ 1۔ نتیجے کے تناسب کا مطلب: تحلیل 100.086 کے لیے Da چاک کے لیے 72.916 ڈا ایسڈ کی ضرورت ہوتی ہے، اور 10 گرام چاک کو تحلیل کرنے کے لیے آپ کو ایکس ایسڈ کی ضرورت ہوتی ہے۔

نوٹ 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; // можно взять покороче

جہاں ہم فارمولے میں اس کی ظاہری شکل کے اشاریہ کے مطابق کیمیائی عنصر کی تعداد لکھتے ہیں۔ ایٹم شامل کرنا currNo فارمولے میں:

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۔ کی بورڈ سے متبادل طور پر ری ایجنٹ فارمولہ داخل کرنے کی صلاحیت فراہم کرنا سمجھ میں آتا ہے۔ اس صورت میں، آپ کو ایک سادہ پارسر کو لاگو کرنے کی ضرورت ہوگی۔

یہ بات قابل غور ہے کہ:

آج، میز کے کئی سو ورژن ہیں، اور سائنسدان مسلسل نئے اختیارات پیش کر رہے ہیں. (وکیپیڈیا)

طلباء پہلے سے تجویز کردہ آپشنز میں سے کسی ایک پر عمل کر کے اس سمت میں اپنی ذہانت کا مظاہرہ کر سکتے ہیں یا اپنا اصل بنانے کی کوشش کر سکتے ہیں۔ ایسا لگتا ہے کہ کمپیوٹر سائنس کے اسباق کے لیے یہ سب سے کم مفید سمت ہے۔ تاہم، اس مضمون میں نافذ کردہ متواتر جدول کی شکل میں، کچھ طلباء کو معیاری بٹنوں کا استعمال کرتے ہوئے متبادل حل پر کنٹرول کارڈ کا کوئی خاص فائدہ نظر نہیں آتا ہے۔ ٹی بٹن. میز کی سرپل شکل (جہاں خلیے مختلف شکلوں کے ہوتے ہیں) یہاں تجویز کردہ حل کے فوائد کو زیادہ واضح طور پر ظاہر کرے گا۔

اسکول کمپیوٹر سائنس پر متواتر جدول
(تھیوڈور بینفے کے ذریعہ عناصر کا متبادل نظام, ماخذ)

ہم یہ بھی شامل کرتے ہیں کہ متواتر جدول کے لیے موجودہ کمپیوٹر پروگراموں کی ایک بڑی تعداد حال ہی میں شائع شدہ Habré میں بیان کی گئی ہے۔ آرٹیکل.

ضمیمہ 2: فلٹرز کے لیے کاموں کی مثالیں۔فلٹرز کا استعمال کرتے ہوئے آپ حل کر سکتے ہیں، مثال کے طور پر، درج ذیل کام:

1) جدول میں ان تمام عناصر کو منتخب کریں جو قرون وسطیٰ میں مشہور ہیں۔

2) متواتر قانون کی دریافت کے وقت معلوم ہونے والے تمام عناصر کی نشاندہی کریں۔

3) سات عناصر کی شناخت کریں جنہیں کیمیا ماہرین دھات سمجھتے تھے۔

4) تمام عناصر کو منتخب کریں جو عام حالات میں گیسی حالت میں ہوں (این ایس)۔

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) اس بات کو یقینی بنانا سمجھ میں آتا ہے کہ منتخب سیلز کی فہرست فائل میں محفوظ ہے اور ایسی فائل سیلز کے خودکار انتخاب سے بھری ہوئی ہے۔ اس سے صارف کو کام سے وقفہ لینے کا موقع ملے گا۔

ہم نے ایک مستحکم، پہلے سے طے شدہ کنٹرول کا نقشہ استعمال کیا، لیکن بہت سے اہم کام ایسے ہیں جہاں متحرک کنٹرول کے نقشے جو پروگرام کے چلنے کے ساتھ تبدیل ہوتے ہیں استعمال کیے جا سکتے ہیں۔ ایک مثال گراف ایڈیٹر ہوگی، جس میں صارف ونڈو میں عمودی جگہوں کی نشاندہی کرنے اور ان کے درمیان کناروں کو کھینچنے کے لیے ماؤس کا استعمال کرتا ہے۔ کسی چوٹی یا کنارے کو حذف کرنے کے لیے، صارف کو اس کی طرف اشارہ کرنا چاہیے۔ لیکن اگر دائرے کے ساتھ نشان زد کسی چوٹی کی طرف اشارہ کرنا کافی آسان ہے تو پھر پتلی لکیر کے ساتھ کھینچے ہوئے کنارے کی طرف اشارہ کرنا زیادہ مشکل ہوگا۔ ایک کنٹرول نقشہ یہاں مدد کرے گا، جہاں عمودی اور کناروں نے دکھائی دینے والی شکل سے زیادہ وسیع محلوں پر قبضہ کیا ہے۔

پیچیدہ تربیت کے اس طریقہ سے متعلق ایک دلچسپ ضمنی سوال یہ ہے: کیا یہ طریقہ AI کی تربیت میں کارآمد ہو سکتا ہے؟

ماخذ: www.habr.com

نیا تبصرہ شامل کریں