الجدول الدوري لعلوم الكمبيوتر المدرسية

(بطاقات التحكم)
(إهداء للسنة الدولية للجدول الدوري للعناصر الكيميائية)
(تم إجراء أحدث الإضافات في 8 أبريل 2019. قائمة الإضافات موجودة أسفل المقطع مباشرة)

الجدول الدوري لعلوم الكمبيوتر المدرسية
(زهرة مندليف, مصدر)

أتذكر أننا مررنا البطة. كانت هذه ثلاثة دروس في وقت واحد: الجغرافيا والعلوم الطبيعية والروسية. في درس العلوم، تمت دراسة البطة على أنها بطة، ما هي أجنحتها، وما هي أرجلها، وكيف تسبح، وما إلى ذلك. في درس الجغرافيا، تمت دراسة نفس البطة باعتبارها أحد سكان الكرة الأرضية: كان من الضروري أن تظهر على الخريطة أين تعيش وأين لا تعيش. باللغة الروسية، علمتنا سيرافيما بتروفنا كتابة "u-t-k-a" وقراءة شيء عن البط من بريم. وأبلغتنا بالمرور أن البطة في الألمانية هكذا وفي الفرنسية هكذا. أعتقد أنها كانت تسمى "الطريقة المعقدة" في ذلك الوقت. بشكل عام، كل شيء خرج "بشكل عابر".

فينيامين كافيريناثنان من النقيب

في الاقتباس أعلاه، أظهر 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.

الجدول الدوري لعلوم الكمبيوتر المدرسية

اكتملت المرحلة الأولى من البرمجة الرسومية في Photoshop. دعنا ننتقل إلى برمجة واجهة المستخدم الرسومية في Delpi-7 IDE. للقيام بذلك، افتح مشروعًا جديدًا، حيث نضع زر الحوار في النموذج الرئيسي (tableDlg)، حيث سيتم العمل مع الجدول. بعد ذلك نعمل مع النموذج tableDlg.

ضع مكون فئة في النموذج TImage. نحن نحصل Image1. لاحظ أنه بشكل عام، بالنسبة للمشاريع الكبيرة، يتم إنشاء أسماء النموذج تلقائيًا إيماجينجحيث N يمكن أن يصل إلى عدة عشرات أو أكثر - وهذا ليس أفضل أسلوب برمجة، ويجب إعطاء أسماء ذات معنى أكبر. ولكن في مشروعنا الصغير، أين N لن يتجاوز 2، يمكنك تركه كما تم إنشاؤه.

إلى الممتلكات الصورة 1. الصورة تحميل الملف table01.bmp. نخلق Image2 وقم بتحميل بطاقة التحكم الخاصة بنا هناك table2.bmp. في هذه الحالة، نجعل الملف صغيرًا وغير مرئي للمستخدم، كما هو موضح في الزاوية اليسرى السفلية من النموذج. نضيف عناصر تحكم إضافية، والغرض منها واضح. اكتملت المرحلة الثانية من برمجة واجهة المستخدم الرسومية في Delpi-7 IDE.

الجدول الدوري لعلوم الكمبيوتر المدرسية

دعنا ننتقل إلى المرحلة الثالثة - كتابة التعليمات البرمجية في Delpi-7 IDE. تتكون الوحدة من خمسة معالجات للأحداث فقط: إنشاء النموذج (إنشاء نموذج)، حركة المؤشر Image1 (Image1MouseMove)، والنقر على LMB في الخلية (الصورة 1 انقر) والخروج من مربع الحوار باستخدام الأزرار "موافق" (OKBTnClick) أو إلغاء (إلغاء BtnClick). يتم إنشاء رؤوس هذه المعالجات بطريقة قياسية باستخدام 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 عناصر (ثابتة الأحجام). ومن الواضح أن هذا الحجم يمكن زيادة. تتم كتابة تسميات العناصر (الرموز الكيميائية) في مصفوفة رموز الجدول. ومع ذلك، ولأسباب تتعلق بضغط الكود المصدري، يبدو من المستحسن كتابة تسلسل هذه الرموز في شكل ثوابت سلسلة جدول دوري Str1، ... ، جدول دوري Str4بحيث أنه عند إنشاء النموذج، يقوم البرنامج نفسه بتوزيع هذه التسميات بين عناصر المصفوفة. يتكون كل تعيين عنصر من حرف أو حرفين لاتينيين، حيث يكون الحرف الأول كبيرًا والثاني (إن وجد) صغيرًا. يتم تطبيق هذه القاعدة البسيطة عند تحميل مصفوفة. وبالتالي، يمكن كتابة تسلسل الرموز بطريقة موجزة دون مسافات. تقسيم التسلسل إلى أربعة أجزاء (الثوابت جدول دوري Str1، ... ، جدول دوري Str4) ويرجع ذلك إلى اعتبارات سهولة قراءة التعليمات البرمجية المصدر، لأن قد لا يتناسب الخط الطويل جدًا مع الشاشة بالكامل.

عندما يتحرك مؤشر الفأرة فوق 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 لنظام التشغيل IBM 360/370، تمت طباعة عمود خدمة مثل هذا على اليسار في القائمة

B5
…
E5

وهذا يعني أن قوس الإغلاق على السطر E5 يتوافق مع قوس الفتح على السطر B5.

بالطبع، يعد أسلوب البرمجة موضوعًا مثيرًا للجدل للغاية، لذا يجب اعتبار الأفكار الواردة هنا مجرد غذاء للفكر. قد يكون من الصعب جدًا على اثنين من المبرمجين ذوي الخبرة إلى حد ما، والذين تطوروا واعتادوا على أساليب مختلفة على مدى سنوات عديدة من العمل، التوصل إلى اتفاق. الأمر مختلف بالنسبة للطالب الذي يتعلم البرمجة ولم يتح له الوقت بعد للعثور على أسلوبه الخاص. أعتقد أنه في هذه الحالة يجب على المعلم على الأقل أن ينقل لطلابه فكرة بسيطة ولكنها ليست واضحة لهم وهي أن نجاح البرنامج يعتمد إلى حد كبير على الأسلوب الذي تتم به كتابة كود المصدر الخاص به. قد لا يتبع الطالب الأسلوب الموصى به، ولكن دعه على الأقل يفكر في الحاجة إلى إجراءات "إضافية" لتحسين تصميم الكود المصدري.

وبالعودة إلى مشكلتنا الأساسية في الجدول الدوري: يمكن لمزيد من التطوير أن يسير في اتجاهات مختلفة. أحد الاتجاهات هو كمرجع: عند تحريك مؤشر الماوس فوق خلية جدول، تظهر نافذة معلومات تحتوي على معلومات إضافية حول العنصر المحدد. مزيد من التطوير هو المرشحات. على سبيل المثال، اعتمادًا على التثبيت، ستحتوي نافذة المعلومات فقط على: أهم المعلومات الفيزيائية والكيميائية، معلومات عن تاريخ الاكتشاف، معلومات عن التوزيع في الطبيعة، قائمة بأهم المركبات (التي تشمل هذا العنصر)، الخصائص الفسيولوجية، الاسم بلغة أجنبية، وما إلى ذلك. هـ. تذكر "بطة" كافيرين التي تبدأ بها هذه المقالة، يمكننا القول أنه مع هذا التطوير للبرنامج سنحصل على مجمع تدريبي كامل في العلوم الطبيعية: بالإضافة إلى الكمبيوتر العلوم والفيزياء والكيمياء - علم الأحياء والجغرافيا الاقتصادية وتاريخ العلوم وحتى اللغات الأجنبية.

لكن قاعدة البيانات المحلية ليست هي الحد الأقصى. يتصل البرنامج بشكل طبيعي بالإنترنت. عند تحديد عنصر ما، يتم تنشيط الرابط، ويتم فتح مقالة ويكيبيديا حول هذا العنصر في نافذة متصفح الويب. ويكيبيديا، كما تعلمون، ليست مصدرا موثوقا. يمكنك تعيين روابط لمصادر موثوقة، على سبيل المثال، الموسوعة الكيميائية، TSB، المجلات المجردة، استعلامات الطلب في محركات البحث لهذا العنصر، إلخ. الذي - التي. سيكون الطلاب قادرين على إكمال مهام بسيطة ولكنها مفيدة حول موضوعات إدارة قواعد البيانات (DBMS) والإنترنت.

بالإضافة إلى الاستعلامات المتعلقة بعنصر فردي، يمكنك إنشاء وظيفة من شأنها، على سبيل المثال، وضع علامة على الخلايا في الجدول التي تستوفي معايير معينة بألوان مختلفة. على سبيل المثال، المعادن وغير المعادن. أو الخلايا التي يتم إلقاؤها في المسطحات المائية بواسطة مصنع كيميائي محلي.

يمكنك أيضًا تنفيذ وظائف منظم دفتر الملاحظات. على سبيل المثال، تسليط الضوء في الجدول على العناصر التي تم تضمينها في الامتحان. ثم إبراز العناصر التي درسها/كررها الطالب استعداداً للامتحان.

وهنا، على سبيل المثال، إحدى مشاكل الكيمياء المدرسية النموذجية:

إعطاء 10 غرام من الطباشير. ما هي كمية حمض الهيدروكلوريك التي يجب تناولها لإذابة كل هذه الطباشير؟

لحل هذه المشكلة، فمن الضروري كتابة الكيمياء. التفاعل ووضع المعاملات فيه، وحساب الأوزان الجزيئية لكربونات الكالسيوم وكلوريد الهيدروجين، ثم تركيب النسبة وحلها. يمكن للآلة الحاسبة المعتمدة على برنامجنا الأساسي الحساب والحل. صحيح، ستظل بحاجة إلى مراعاة أنه يجب تناول الحمض بكميات زائدة معقولة وتركيز معقول، ولكن هذه كيمياء وليست علوم كمبيوتر.
الإضافة 1: كيف تعمل حاسبة الكيمياءدعونا نحلل تشغيل الآلة الحاسبة باستخدام مثال مشكلة الطباشير و"الخليط" المذكورة أعلاه. لنبدأ بالرد:

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. النقش في الحقل كاشف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 جم." أضافت الآلة الحاسبة مرة أخرى الوزن الذري للأكسجين إلى المجموع.

اضغط على Enter على لوحة مفاتيح الكمبيوتر. اكتمل إدخال الكاشف الأول وانتقل إلى الميدان كاشف2. لاحظ أننا في هذا المثال نقدم إصدارًا مصغرًا. إذا رغبت في ذلك، يمكنك بسهولة تنظيم مضاعفات الذرات من نفس النوع، بحيث لا تضطر، على سبيل المثال، إلى النقر سبع مرات متتالية على خلية الأكسجين عند إدخال صيغة الكروم (K2Cr2O7).

انقر فوق LMB في خلية الجدول التي تحمل الرمز H. النقش في الحقل كاشف2 التغييرات: "الكاشف الثاني H 1.008 ابحث عن x."

انقر فوق LMB في خلية الجدول التي تحتوي على الرمز Cl. النقش في الميدان كاشف2 التغييرات: "الكاشف الثاني حمض الهيدروكلوريك 36.458 ابحث عن x." قامت الآلة الحاسبة بإضافة الأوزان الذرية للهيدروجين والكلور. في معادلة التفاعل أعلاه، يسبق كلوريد الهيدروجين معامل 2. لذلك، انقر فوق LMB في الحقل كاشف2. يتضاعف الوزن الجزيئي (ثلاثة أضعاف عند الضغط عليه مرتين، وما إلى ذلك). النقش في الميدان كاشف2 التغييرات: "الكاشف الثاني 2HCl 72.916 ابحث عن x."

اضغط على Enter على لوحة مفاتيح الكمبيوتر. اكتمل إدخال الكاشف الثاني، وتجد الآلة الحاسبة x من النسبة

الجدول الدوري لعلوم الكمبيوتر المدرسية

هذا ما كنا بحاجة للعثور عليه.

ملاحظة 1 معنى النسبة الناتجة : للحل 100.086 Da يتطلب الطباشير 72.916 حمض دا، ولإذابة 10 جرام من الطباشير تحتاج إلى حمض x.

ملاحظة 2 مجموعات من المشاكل المماثلة:

خومشينكو آي جي، مجموعة من المشاكل والتمارين في الكيمياء 2009 (الصفوف 8-11).
Khomchenko G. P.، Khomchenko I. G.، مجموعة من المشاكل في الكيمياء للمتقدمين للجامعات، 2019.

ملاحظة 3 لتبسيط المهمة، يمكنك تبسيط إدخال الصيغة في الإصدار الأولي وإضافة رمز العنصر ببساطة إلى نهاية سطر الصيغة. إذن صيغة كربونات الكالسيوم ستكون:
كاكوو
لكن من غير المرجح أن يحب مدرس الكيمياء مثل هذا التسجيل. ليس من الصعب إجراء الإدخال الصحيح - للقيام بذلك تحتاج إلى إضافة مصفوفة:

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 من المنطقي توفير القدرة على إدخال صيغة الكاشف من لوحة المفاتيح بدلاً من ذلك. في هذه الحالة، سوف تحتاج إلى تنفيذ محلل بسيط.

وتجدر الإشارة إلى أن:

اليوم، هناك عدة مئات من إصدارات الجدول، ويقدم العلماء باستمرار خيارات جديدة. (ويكيبيديا)

يمكن للطلاب إظهار براعتهم في هذا الاتجاه من خلال تنفيذ أحد الخيارات المقترحة بالفعل أو محاولة إنشاء خيار أصلي خاص بهم. قد يبدو أن هذا هو الاتجاه الأقل فائدة لدروس علوم الكمبيوتر. ومع ذلك، في شكل الجدول الدوري المطبق في هذه المقالة، قد لا يرى بعض الطلاب أي ميزة خاصة لبطاقات التحكم مقارنة بالحل البديل باستخدام الأزرار القياسية زر. سيوضح الشكل الحلزوني للجدول (حيث تكون الخلايا ذات أشكال مختلفة) مزايا الحل المقترح هنا بشكل أكثر وضوحًا.

الجدول الدوري لعلوم الكمبيوتر المدرسية
(النظام البديل للعناصر لثيودور بنفي, مصدر)

دعونا نضيف أيضًا أن عددًا من برامج الكمبيوتر الموجودة حاليًا للجدول الدوري موصوفة في المنشور المنشور مؤخرًا على حبري مقالة.

الملحق 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

إضافة تعليق