جدول منديليف حول المعلوماتية المدرسية

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

صورة
( زهرة منديليف ، المصدر )

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

بنيامين كافرين ، قبطانان

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

(تمت إضافة 13 أبريل 2019:
الملحق 3: مسابقة الكيميائية
الملحق 4: دمج المهام المتعددة في برنامج واحد
8 أبريل 2019 الإضافات المقدمة:
الملحق 1: كيف تعمل الآلة الحاسبة الكيميائية
الملحق 2: عينة من المهام للمرشحات)

لنبدأ بالمهمة الأساسية. في أبسط الحالات ، يجب عرض الجدول الدوري على الشاشة في نافذة النموذج ، حيث سيكون في كل خلية رمزًا كيميائيًا للعنصر: H - hydrogen ، He - helium ، إلخ. إذا كان مؤشر الماوس يشير إلى خلية ، فسيعرض في العنصر الخاص في نموذجنا رمز العنصر ورقمه. إذا نقر المستخدم على LMB ، فسيتم تحديد اسم ورقم هذا العنصر المحدد في حقل آخر من النموذج.

صورة

يمكن حل المشكلة على أي PL العالمي. سوف نأخذ Delpi-7 القديم البسيط ، وهو مفهوم للجميع تقريباً. ولكن قبل البرمجة في YP ، سنرسم صورتين ، على سبيل المثال ، في Photoshop. أولاً ، دعنا نرسم الجدول الدوري كما نريد أن يكون في البرنامج. احفظ النتيجة في ملف الرسم table01.bmp .

صورة

للصورة الثانية نستخدم الأول. سوف نملأ باستمرار خلايا الجدول التي تم مسحها من أي رسومات بألوان فريدة في نموذج ألوان RGB. سيكون R و G دائمًا 0 ، و B = 1 للهيدروجين ، 2 للهليوم ، إلخ. سيكون هذا الرقم هو بطاقة التحكم الخاصة بنا ، والتي نقوم بحفظها في ملف تحت اسم table2.bmp .

صورة

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

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

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

صورة

نمر إلى المرحلة الثالثة - كتابة التعليمات البرمجية في IDE Delpi-7. تتكون الوحدة النمطية من خمسة معالجات أحداث فقط: إنشاء نموذج ( FormCreate ) ، وتحريك المؤشر على طول Image1 ( Image1MouseMove ) ، والنقر على LMB على الخلية ( Image1Click ) وإنهاء مربع الحوار باستخدام أزرار OK ( OKBtnClick ) أو Cancel ( 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 عناصر ( حجم ثابت). من الواضح ، يمكن زيادة هذا الحجم. تتم كتابة تسميات العنصر (الرموز الكيميائية) إلى مجموعة TableSymbols . ومع ذلك ، لأسباب ضغط الشفرة المصدرية ، يبدو أنه من المستحسن تدوين تسلسل هذه الترميزات في شكل ثوابت السلسلة 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 لنظام التشغيل IBM 360/370 ، تم طباعة عمود خدمة من النموذج في القائمة على اليسار

 B5 … E5 

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

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

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

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

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

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

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

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

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

CaCO 3 + 2HCl = CaCl 2 + H 2 O

من هنا نرى أننا سنحتاج إلى الأوزان الذرية للعناصر التالية: الكالسيوم (الكالسيوم) والكربون (C) والأكسجين (O) والهيدروجين (H) والكلور (الكلور). في أبسط الحالات ، يمكننا كتابة هذه الأوزان في صفيف أحادي البعد يعرف باسم

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


حيث يتوافق فهرس الصفيف مع رقم العنصر. نضع أيضًا حقلين في المساحة الخالية من النموذج tableDlg . في الحقل الأول ، يتم كتابته مبدئيًا: "الكاشف الأول معطى" ، في الثاني - "الكاشف الثاني هو إيجاد x". تشير إلى الحقول reagent1 ، reagent2 ، على التوالي. ستكون الإضافات الأخرى للبرنامج واضحة من المثال التالي للحاسبة.

نكتب على لوحة مفاتيح الكمبيوتر: 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 . لاحظ أننا في هذا المثال نقدم الحد الأدنى من الإصدار. إذا كنت ترغب في ذلك ، يمكنك بسهولة تنظيم مضاعفات الذرات من نفس النوع ، بحيث لا تضطر ، على سبيل المثال ، إلى الضغط على خلية الأكسجين سبع مرات متتالية عند إدخال صيغة chrompeak (K 2 Cr 2 O 7 ).

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

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

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

x / 72.916 = 10 / 100.086. $


الذي كان مطلوبا للعثور عليه.

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

ملاحظة 2. مجموعات من المهام المماثلة:

Khomchenko على سبيل المثال ، مجموعة من المهام والتمارين في الكيمياء 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) حدد جميع العناصر التي هي في حالة غازية في ظل الظروف العادية (رقم).

5) حدد جميع العناصر التي هي في حالة سائلة في نو

6) حدد جميع العناصر التي في حالة صلبة في عدد

7) حدد جميع العناصر التي يمكن أن تكون في الهواء لفترة طويلة دون تغييرات ملحوظة في عدد

8) حدد جميع المعادن التي تذوب في حمض الهيدروكلوريك.

9) حدد جميع المعادن التي تذوب في حامض الكبريتيك في غ.

10) حدد جميع المعادن التي تذوب في حامض الكبريتيك عند تسخينها.

11) حدد جميع المعادن التي تذوب في حامض النيتريك.

12) حدد جميع المعادن التي تتفاعل بعنف مع الماء في عدد

13) حدد جميع المعادن.

14) تسليط الضوء على العناصر التي تنتشر في الطبيعة.

15) تسليط الضوء على العناصر الموجودة في الطبيعة في حالة حرة.

16) لتسليط الضوء على العناصر التي تلعب دورا حاسما في جسم الإنسان والحيوانات.

17) تسليط الضوء على العناصر التي تستخدم على نطاق واسع في الحياة اليومية (في شكل حر أو في المركبات).

18) تحديد العناصر التي يكون عملها أكثر خطورة وتتطلب تدابير خاصة ومعدات واقية.

19) تسليط الضوء على العناصر التي في شكل حر أو في شكل مركبات تشكل أكبر تهديد للبيئة.

20) تسليط الضوء على المعادن الثمينة.

21) تسليط الضوء على العناصر التي هي أكثر تكلفة من المعادن الثمينة.

الملاحظات

1) فمن المنطقي لضمان تشغيل العديد من المرشحات. على سبيل المثال ، إذا قمت بتشغيل المرشح لحل المشكلة 1 (جميع العناصر المعروفة في العصور الوسطى) و 20 (المعادن الثمينة) ، فسيتم تمييز الخلايا (مع اللون ، على سبيل المثال) مع المعادن الثمينة المعروفة في العصور الوسطى (على سبيل المثال ، لن يتم تسليط الضوء على البلاديوم اكتشف في 1803).

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

3) من المنطقي بعد تطبيق المرشح لتوفير إمكانية العمل الآخر مع النتائج. على سبيل المثال ، من خلال تمييز العناصر المعروفة في العصور الوسطى ، ينقر المستخدم على LMB على العنصر المحدد ويدخل مقالة Wikipedia حول هذا العنصر.

4) من المنطقي تمكين المستخدم من إلغاء التحديد بالنقر فوق LMB في خلية الجدول المحددة. على سبيل المثال ، لإزالة العناصر التي تم عرضها بالفعل.

5) من المنطقي الاحتفاظ بقائمة من الخلايا المحددة في ملف وتحميل مثل هذا الملف مع التحديد التلقائي للخلايا. هذا سيتيح للمستخدم الفرصة لأخذ قسط من الراحة من العمل.

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

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

الملحق 4: دمج المهام المتعددة في برنامج واحد
أعلاه ، درسنا عددًا من المهام المحتملة: دليل للعناصر الكيميائية ، وآلة حاسبة كيميائية ، واختبار كيميائي. ( ). , ( ), .


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

يرتبط سؤال جانبي مثير للاهتمام بطريقة التعلم المتكامل التي تمت معالجتها: هل يمكن أن تكون هذه الطريقة مفيدة في تدريس الذكاء الاصطناعى؟

Source: https://habr.com/ru/post/ar446836/


All Articles