Tabel periodik ilmu komputer sekolah

(Kartu kendali)
(Didedikasikan untuk Tahun Internasional Tabel Periodik Unsur Kimia)
(Penambahan terakhir dilakukan pada tanggal 8 April 2019. Daftar penambahan tepat di bawah potongan)

Tabel periodik ilmu komputer sekolah
(Bunga Mendeleev, Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ)

Saya ingat kami melewati bebek itu. Ini adalah tiga pelajaran sekaligus: geografi, ilmu pengetahuan alam, dan bahasa Rusia. Dalam pembelajaran IPA, dipelajari bebek seperti apa sayapnya, apa kakinya, bagaimana cara berenangnya, dan lain sebagainya. Dalam pelajaran geografi, bebek yang sama dipelajari sebagai penghuni dunia: perlu untuk menunjukkan di peta tempat ia tinggal dan di mana tidak. Dalam bahasa Rusia, Serafima Petrovna mengajari kami menulis β€œu-t-k-a” dan membaca sesuatu tentang bebek dari Brem. Sambil lalu, dia memberi tahu kami bahwa dalam bahasa Jerman bebek itu seperti ini, dan dalam bahasa Prancis seperti ini. Saya pikir itu disebut β€œmetode kompleks” saat itu. Secara umum, semuanya berjalan β€œselesai”.

Veniamin Kaverin, Dua kapten

Dalam kutipan di atas, Veniamin Kaverin dengan ahlinya menunjukkan kekurangan dari metode pengajaran yang kompleks, namun, dalam beberapa kasus (mungkin sangat jarang), elemen dari metode ini dapat dibenarkan. Salah satu kasusnya adalah tabel periodik D.I.Mendeleev dalam pelajaran ilmu komputer sekolah. Tugas otomatisasi perangkat lunak dari tindakan umum dengan tabel periodik jelas bagi anak sekolah yang sudah mulai belajar kimia, dan dibagi menjadi banyak tugas kimia umum. Pada saat yang sama, dalam kerangka ilmu komputer, tugas ini memungkinkan kita untuk mendemonstrasikan dalam bentuk sederhana metode kartu kendali, yang dapat dikaitkan dengan pemrograman grafis, yang dipahami dalam arti luas sebagai pemrograman menggunakan elemen grafis.

(Pada tanggal 8 April 2019 dilakukan penambahan:
Tambahan 1: Cara Kerja Kalkulator Kimia
Lampiran 2: contoh tugas untuk filter)

Mari kita mulai dengan tugas dasar. Dalam kasus paling sederhana, tabel periodik harus ditampilkan di layar dalam bentuk jendela, di mana di setiap sel akan ada sebutan kimia unsur: H - hidrogen, He - helium, dll. Jika kursor mouse menunjuk ke sel, maka penunjukan elemen dan nomornya ditampilkan di bidang khusus pada formulir kita. Jika pengguna menekan LMB, maka penunjukan dan nomor elemen yang dipilih ini akan ditunjukkan di kolom lain pada formulir.

Tabel periodik ilmu komputer sekolah

Masalahnya dapat diselesaikan dengan menggunakan bahasa universal apa pun. Kami akan mengambil Delpi-7 lama yang sederhana, yang dapat dimengerti oleh hampir semua orang. Namun sebelum memprogram di PL, mari kita menggambar dua gambar, misalnya di Photoshop. Pertama, mari kita menggambar Tabel Periodik dalam bentuk yang ingin kita lihat di program. Simpan hasilnya dalam file grafik tabel01.bmp.

Tabel periodik ilmu komputer sekolah

Untuk gambar kedua kita menggunakan gambar pertama. Kami akan mengisi sel tabel secara berurutan, dibersihkan dari semua grafik, dengan warna unik dalam model warna RGB. R dan G akan selalu 0, dan B=1 untuk hidrogen, 2 untuk helium, dan seterusnya. Gambar ini akan menjadi kartu kendali kita, yang akan kita simpan dalam file bernama tabel2.bmp.

Tabel periodik ilmu komputer sekolah

Tahap pertama pemrograman grafis di Photoshop telah selesai. Mari beralih ke pemrograman GUI grafis di Delpi-7 IDE. Untuk melakukan ini, buka proyek baru, di mana pada formulir utama kita menempatkan tombol dialog (mejaDlg), di mana pekerjaan dengan meja akan dilakukan. Selanjutnya kita bekerja dengan formulir mejaDlg.

Tempatkan komponen kelas pada formulir gambar. Kita mendapatkan Image1. Perhatikan bahwa secara umum, untuk proyek besar, nama formulir dibuat secara otomatis GambarNDimana N bisa mencapai beberapa lusin atau lebih - ini bukan gaya pemrograman terbaik, dan nama yang lebih bermakna harus diberikan. Tapi dalam proyek kecil kami, di mana N tidak akan melebihi 2, Anda dapat membiarkannya seperti yang dihasilkan.

Ke properti Gambar1.Gambar unggah filenya tabel01.bmp. Kami menciptakan Image2 dan memuat kartu kendali kita di sana tabel2.bmp. Dalam hal ini, kami membuat file kecil dan tidak terlihat oleh pengguna, seperti yang ditunjukkan di sudut kiri bawah formulir. Kami menambahkan elemen kontrol tambahan, yang tujuannya jelas. Tahap kedua pemrograman GUI grafis di Delpi-7 IDE telah selesai.

Tabel periodik ilmu komputer sekolah

Mari kita beralih ke tahap ketiga - menulis kode di Delpi-7 IDE. Modul ini hanya terdiri dari lima pengendali kejadian: pembuatan formulir (FormulirBuat), pergerakan kursor Image1 (Gambar1MouseMove), mengklik LMB pada sel (Gambar1Klik) dan keluar dari dialog menggunakan tombol OK (OKBtnKlik) atau Batal (BatalkanBtnKlik). Header dari penangan ini dibuat dengan cara standar menggunakan IDE.

Kode sumber modul:

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.

Dalam versi kami, kami mengambil tabel 104 elemen (konstan ukuran). Tentu saja ukuran ini bisa ditingkatkan. Penunjukan elemen (simbol kimia) ditulis ke dalam array TabelSimbol. Namun, karena alasan kekompakan kode sumber, tampaknya disarankan untuk menulis urutan notasi ini dalam bentuk konstanta string Tabel PeriodikStr1..., Tabel PeriodikStr4sehingga ketika formulir dibuat, program itu sendiri menyebarkan sebutan ini di antara elemen-elemen array. Setiap sebutan unsur terdiri dari satu atau dua huruf latin, dengan huruf pertama huruf besar dan huruf kedua (bila ada) huruf kecil. Aturan sederhana ini diterapkan saat memuat array. Dengan demikian, rangkaian notasi dapat ditulis secara ringkas tanpa spasi. Memecah barisan menjadi empat bagian (konstanta Tabel PeriodikStr1..., Tabel PeriodikStr4) karena pertimbangan kemudahan membaca kode sumbernya, karena Garis yang terlalu panjang mungkin tidak muat seluruhnya di layar.

Saat kursor mouse bergerak ke atas Image1 pawang Gambar1MouseMove Peristiwa ini menentukan nilai komponen warna biru pada piksel kartu kendali Image2 untuk koordinat kursor saat ini. Oleh konstruksi Image2 nilai ini sama dengan nomor elemen jika kursor berada di dalam sel; nol jika di perbatasan, dan 255 di kasus lain. Tindakan lain yang dilakukan oleh program ini sepele dan tidak memerlukan penjelasan.

Selain teknik gaya pemrograman yang disebutkan di atas, perlu diperhatikan gaya komentarnya. Sebenarnya, kode yang dibahas sangat kecil dan sederhana sehingga komentar sepertinya tidak terlalu diperlukan. Namun, mereka juga ditambahkan karena alasan metodologis - kode pendek memungkinkan kita membuat beberapa kesimpulan umum dengan lebih jelas. Dalam kode yang disajikan satu kelas dideklarasikan (TabelDlg). Metode kelas ini dapat ditukar dan ini tidak akan mempengaruhi fungsi program dengan cara apapun, namun dapat mempengaruhi keterbacaannya. Misalnya, bayangkan urutannya:

OKBtnClick, Image1MouseMove, FormCreate, Image1Click, CancelBtnClick.

Ini mungkin tidak terlalu terlihat, tetapi akan menjadi sedikit lebih sulit untuk dibaca dan dipahami. Jika tidak ada lima, tetapi puluhan kali lebih banyak metode di bagian tersebut implementasi mereka memiliki urutan yang sangat berbeda dari deskripsi kelas, maka kekacauan hanya akan meningkat. Oleh karena itu, meskipun sulit untuk membuktikan secara pasti dan bahkan mungkin tidak mungkin, kita dapat berharap bahwa memperkenalkan pesanan tambahan akan meningkatkan keterbacaan kode. Urutan tambahan ini difasilitasi oleh pengelompokan logis dari beberapa metode yang melakukan tugas terkait. Setiap kelompok hendaknya diberi judul, misalnya:

// Ρ€Π°Π±ΠΎΡ‚Π° с Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ: ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΠΈ Π²Ρ‹Π±ΠΎΡ€

Judul ini harus disalin ke awal modul dan diformat sebagai daftar isi. Dalam beberapa kasus modul yang cukup panjang, daftar isi tersebut menyediakan opsi navigasi tambahan. Demikian pula, dalam tubuh panjang suatu metode, prosedur atau fungsi, pertama-tama ada baiknya menandai bagian akhir dari tubuh ini:

end; // FormCreate

dan kedua, dalam pernyataan bercabang dengan tanda kurung program mulai - akhir, tandai pernyataan yang dirujuk oleh tanda kurung tutup:

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

Untuk menyorot header grup dan ujung badan metode, Anda dapat menambahkan baris yang lebih panjang dari kebanyakan operator dan terdiri dari, misalnya, karakter β€œ=” dan β€œ_”, masing-masing.
Sekali lagi, kita perlu membuat reservasi: contoh kita terlalu sederhana. Dan ketika kode suatu metode tidak muat pada satu layar, akan sulit untuk memahami enam akhir yang berurutan untuk membuat perubahan kode. Di beberapa kompiler lama, misalnya Pascal 8000 untuk OS IBM 360/370, kolom layanan seperti ini dicetak di sebelah kiri dalam daftar

B5
…
E5

Artinya tanda kurung tutup pada baris E5 sama dengan tanda kurung buka pada baris B5.

Tentu saja, gaya pemrograman adalah isu yang sangat kontroversial, jadi ide-ide yang diungkapkan di sini harus dianggap sebagai bahan pemikiran saja. Akan sangat sulit bagi dua pemrogram berpengalaman yang telah mengembangkan dan terbiasa dengan gaya berbeda selama bertahun-tahun bekerja untuk mencapai kesepakatan. Lain halnya jika seorang siswa belajar pemrograman yang belum sempat menemukan gayanya sendiri. Saya pikir dalam hal ini guru setidaknya harus menyampaikan kepada siswanya gagasan yang sederhana, tetapi tidak jelas bahwa keberhasilan suatu program sangat bergantung pada gaya penulisan kode sumbernya. Siswa mungkin tidak mengikuti gaya yang direkomendasikan, tetapi setidaknya biarkan dia memikirkan perlunya tindakan "ekstra" untuk meningkatkan desain kode sumber.

Kembali ke masalah dasar kita pada Tabel Periodik: perkembangan lebih lanjut dapat mengarah ke arah yang berbeda. Salah satu petunjuknya adalah untuk referensi: ketika Anda mengarahkan kursor mouse ke sel tabel, jendela informasi muncul berisi informasi tambahan tentang elemen yang ditentukan. Perkembangan selanjutnya adalah filter. Misalnya, bergantung pada instalasinya, jendela informasi hanya akan berisi: informasi fisika dan kimia terpenting, informasi sejarah penemuan, informasi sebaran di alam, daftar senyawa terpenting (termasuk unsur ini), sifat fisiologis, nama dalam bahasa asing, dll e. Mengingat β€œbebek” Kaverin yang menjadi awal artikel ini, kita dapat mengatakan bahwa dengan pengembangan program ini kita akan mendapatkan kompleks pelatihan lengkap dalam ilmu alam: selain komputer sains, fisika dan kimia - biologi, geografi ekonomi, sejarah sains dan bahkan bahasa asing.

Namun database lokal bukanlah batasnya. Program ini secara alami terhubung ke Internet. Saat Anda memilih suatu elemen, tautannya diaktifkan, dan artikel Wikipedia tentang elemen ini dibuka di jendela browser web. Wikipedia, seperti yang Anda tahu, bukanlah sumber resmi. Anda dapat mengatur tautan ke sumber resmi, misalnya ensiklopedia kimia, TSB, jurnal abstrak, memesan kueri di mesin pencari untuk elemen ini, dll. Itu. Siswa akan dapat menyelesaikan tugas sederhana namun bermakna tentang topik DBMS dan Internet.

Selain kueri pada elemen individual, Anda bisa membuat fungsionalitas yang akan, misalnya, menandai sel dalam tabel yang memenuhi kriteria tertentu dengan warna berbeda. Misalnya logam dan nonlogam. Atau sel yang dibuang ke badan air oleh pabrik kimia lokal.

Anda juga dapat menerapkan fungsi pengatur buku catatan. Misalnya, sorot dalam tabel unsur-unsur yang termasuk dalam ujian. Kemudian soroti unsur-unsur yang dipelajari/diulangi oleh siswa dalam persiapan ujian.

Dan inilah, misalnya, salah satu soal kimia sekolah yang umum:

Diberikan 10 gr kapur tulis. Berapa banyak asam klorida yang harus diambil untuk melarutkan semua kapur ini?

Untuk mengatasi masalah ini, perlu dilakukan pencatatan kimia. reaksi dan menempatkan koefisien di dalamnya, menghitung berat molekul kalsium karbonat dan hidrogen klorida, kemudian menyusun dan menyelesaikan proporsinya. Kalkulator berdasarkan program dasar kami dapat menghitung dan menyelesaikannya. Benar, Anda tetap perlu memperhitungkan bahwa asam harus dikonsumsi dalam jumlah yang wajar dan dalam konsentrasi yang wajar, tetapi ini adalah kimia, bukan ilmu komputer.
Tambahan 1: Cara Kerja Kalkulator KimiaMari kita menganalisis pengoperasian kalkulator menggunakan contoh soal kapur dan gado-gado di atas. Mari kita mulai dengan reaksinya:

CaCO3 + 2HCl = CaCl2 + H2O

Dari sini kita melihat bahwa kita memerlukan berat atom dari unsur-unsur berikut: kalsium (Ca), karbon (C), oksigen (O), hidrogen (H) dan klor (Cl). Dalam kasus paling sederhana, kita dapat menulis bobot ini ke dalam array satu dimensi yang didefinisikan sebagai

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

di mana indeks array sesuai dengan nomor elemen. Lebih lanjut tentang ruang kosong formulir mejaDlg letakkan dua bidang. Di kolom pertama awalnya tertulis: "Reagen pertama diberikan", di kolom kedua - "Reagen kedua adalah mencari x". Mari kita tunjukkan bidangnya reagen1, reagen2 masing-masing. Penambahan lain pada program ini akan terlihat jelas dari contoh kalkulator berikut.

Kami mengetik di keyboard komputer: 10 g Prasasti di lapangan reagen1 perubahan: β€œReagen pertama diberikan 10 g.” Sekarang kita memasukkan rumus reagen ini, dan kalkulator akan menghitung serta menunjukkan berat molekulnya saat Anda memasukkannya.

Klik LMB pada sel tabel yang bersimbol Ca. Prasasti di lapangan reagen1 perubahan: β€œReagen pertama Ca 40.078 diberi 10 g.”

Klik LMB pada sel tabel dengan simbol C. Prasasti di lapangan reagen1 perubahan: β€œReagen pertama CaC 52.089 diberi 10 g.” Itu. Kalkulator menjumlahkan berat atom kalsium dan karbon.

Klik LMB pada sel tabel dengan simbol O. Prasasti di lapangan reagen1 perubahan : β€œPereaksi pertama CaCO 68.088 diberi 10 g.” Kalkulator menambahkan berat atom oksigen ke dalam jumlah tersebut.

Klik LMB pada sel tabel dengan simbol O. Prasasti di lapangan reagen1 perubahan : β€œReagen pertama CaCO2 84.087 diberi 10 g.” Kalkulator sekali lagi menambahkan berat atom oksigen ke dalam jumlah tersebut.

Klik LMB pada sel tabel dengan simbol O. Prasasti di lapangan reagen1 perubahan : β€œReagen pertama CaCO3 100.086 diberi 10 g.” Kalkulator kembali menambahkan berat atom oksigen ke dalam jumlah tersebut.

Tekan Enter pada keyboard komputer Anda. Pengenalan reagen pertama selesai dan beralih ke lapangan reagen2. Perhatikan bahwa dalam contoh ini kami menyediakan versi minimal. Jika diinginkan, Anda dapat dengan mudah mengatur pengganda atom dengan jenis yang sama, sehingga, misalnya, Anda tidak perlu mengklik sel oksigen tujuh kali berturut-turut saat memasukkan rumus kromium (K2Cr2O7).

Klik LMB pada sel tabel dengan simbol H. Prasasti di lapangan reagen2 perubahan: β€œReagen kedua H 1.008 temukan x.”

Klik LMB pada sel tabel dengan simbol Cl. Prasasti di lapangan reagen2 perubahan: β€œReagen kedua HCl 36.458 temukan x.” Kalkulator menjumlahkan berat atom hidrogen dan klor. Pada persamaan reaksi di atas, hidrogen klorida didahului dengan koefisien 2. Oleh karena itu, klik LMB pada lapangan reagen2. Berat molekul menjadi dua kali lipat (tiga kali lipat jika ditekan dua kali, dll.). Prasasti di lapangan reagen2 perubahan: β€œReagen kedua 2HCl 72.916 temukan x.”

Tekan Enter pada keyboard komputer Anda. Pemasukan reagen kedua selesai, dan kalkulator menemukan x dari proporsinya

Tabel periodik ilmu komputer sekolah

Itulah yang perlu kami temukan.

Catatan 1 Arti dari perbandingan yang dihasilkan : untuk pembubaran 100.086 Da kapur membutuhkan asam 72.916 Da, dan untuk melarutkan 10 g kapur diperlukan asam x.

Catatan 2 Kumpulan masalah serupa:

Khomchenko I.G., Kumpulan soal dan latihan kimia 2009 (kelas 8-11).
Khomchenko G.P., Khomchenko I.G., Kumpulan soal kimia untuk pelamar ke universitas, 2019.

Catatan 3 Untuk menyederhanakan tugas, Anda dapat menyederhanakan entri rumus di versi awal dan cukup menambahkan simbol elemen di akhir baris rumus. Maka rumus kalsium karbonat menjadi:
CaCOOO
Tetapi seorang guru kimia kemungkinan besar tidak akan menyukai rekaman seperti itu. Membuat entri yang benar tidaklah sulit - untuk melakukan ini, Anda perlu menambahkan array:

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

dimana indeks adalah jumlah unsur kimia, dan nilai pada indeks ini adalah jumlah atom (awalnya semua elemen susunan diatur ulang ke nol). Urutan penulisan atom dalam suatu rumus, seperti yang diterapkan dalam kimia, harus diperhitungkan. Misalnya, hanya sedikit orang yang menyukai O3CaC. Mari kita alihkan tanggung jawab kepada pengguna. Membuat array:

 formulaOrder : array [1..size] of integer; // ΠΌΠΎΠΆΠ½ΠΎ Π²Π·ΡΡ‚ΡŒ ΠΏΠΎΠΊΠΎΡ€ΠΎΡ‡Π΅

dimana kita menuliskan banyaknya unsur kimia menurut indeks kemunculannya pada rumus. Menambahkan atom saat iniTidak ke dalam rumus:

if formula [currNo]=0 then //этот Π°Ρ‚ΠΎΠΌ встрСтился ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π°Π·
 begin
 orderIndex := orderIndex+1;//Π² Π½Π°Ρ‡Π°Π»Π΅ Π²Π²ΠΎΠ΄Π° Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹ orderIndex=0
 formulaOrder [orderIndex] :=  currNo;
 end;
formula [currNo]:=formula [currNo]+1;

Menulis rumus menjadi satu baris:

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;

Catatan 4 Masuk akal untuk memberikan kemampuan alternatif untuk memasukkan rumus reagen dari keyboard. Dalam hal ini, Anda perlu menerapkan parser sederhana.

Perlu dicatat bahwa:

Saat ini, terdapat beberapa ratus versi tabel tersebut, dan para ilmuwan terus menawarkan opsi baru. (Wikipedia)

Siswa dapat menunjukkan kecerdikan mereka ke arah ini dengan menerapkan salah satu opsi yang telah diusulkan atau mencoba membuat opsi orisinal mereka sendiri. Tampaknya ini adalah arahan yang paling tidak berguna untuk pelajaran ilmu komputer. Namun, dalam bentuk Tabel Periodik yang diterapkan dalam artikel ini, beberapa siswa mungkin tidak melihat keuntungan khusus dari kartu kendali dibandingkan solusi alternatif yang menggunakan tombol standar. Tbutton. Bentuk tabel yang spiral (dimana sel-selnya mempunyai bentuk yang berbeda-beda) akan lebih jelas menunjukkan keuntungan dari solusi yang diusulkan di sini.

Tabel periodik ilmu komputer sekolah
(Sistem unsur alternatif oleh Theodore Benfey, Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ)

Mari kita tambahkan juga bahwa sejumlah program komputer yang ada saat ini untuk Tabel Periodik dijelaskan dalam artikel yang baru-baru ini diterbitkan di HabrΓ© Artikel.

Lampiran 2: contoh tugas untuk filterDengan menggunakan filter, Anda dapat menyelesaikan, misalnya, tugas-tugas berikut:

1) Pilih dalam tabel semua elemen yang dikenal pada Abad Pertengahan.

2) Identifikasi semua unsur yang diketahui pada saat ditemukannya Hukum Periodik.

3) Identifikasi tujuh unsur yang dianggap logam oleh para alkemis.

4) Pilih semua unsur yang berwujud gas pada kondisi normal (n.s.).

5) Pilih semua unsur yang berada dalam keadaan cair di no.

6) Pilih semua elemen yang berada dalam keadaan padat di no.

7) Pilih semua elemen yang dapat terkena udara dalam waktu lama tanpa perubahan nyata pada kondisi normal.

8) Pilih semua logam yang larut dalam asam klorida.

9) Pilih semua logam yang larut dalam asam sulfat pada no.

10) Pilih semua logam yang larut dalam asam sulfat bila dipanaskan.

11) Pilih semua logam yang larut dalam asam nitrat.

12) Isolasi semua logam yang bereaksi keras dengan air pada kondisi sekitar.

13) Pilih semua logam.

14) Identifikasi unsur-unsur yang tersebar luas di alam.

15) Identifikasi unsur-unsur yang terdapat di alam dalam keadaan bebas.

16) Mengidentifikasi unsur-unsur yang paling berperan penting dalam tubuh manusia dan hewan.

17) Pilih unsur-unsur yang banyak digunakan dalam kehidupan sehari-hari (dalam bentuk bebas atau kombinasi).

18) Identifikasi elemen yang paling berbahaya untuk dikerjakan dan memerlukan tindakan khusus dan peralatan pelindung.

19) Identifikasi unsur-unsur yang, baik dalam bentuk bebas maupun dalam bentuk senyawa, menimbulkan ancaman terbesar terhadap lingkungan.

20) Pilih logam mulia.

21) Identifikasi unsur-unsur yang lebih mahal dari logam mulia.

Catatan

1) Masuk akal untuk menyediakan banyak filter. Misalnya, jika Anda mengaktifkan filter untuk menyelesaikan soal 1 (semua elemen yang dikenal pada Abad Pertengahan) dan 20 (logam mulia), maka sel dengan logam mulia yang dikenal pada Abad Pertengahan akan disorot (misalnya, berdasarkan warna) ( misalnya, paladium tidak akan disorot, ditemukan pada tahun 1803).

2) Masuk akal untuk memastikan bahwa beberapa filter beroperasi sedemikian rupa sehingga setiap filter memilih sel dengan warnanya sendiri, tetapi tidak sepenuhnya menghapus pilihan filter lain (bagian sel dalam satu warna, sebagian lagi). Kemudian, dalam kasus contoh sebelumnya, unsur-unsur perpotongan himpunan yang ditemukan pada Abad Pertengahan dan logam mulia, serta unsur-unsur yang hanya dimiliki himpunan pertama dan hanya himpunan kedua, akan terlihat. Itu. logam mulia yang tidak dikenal pada Abad Pertengahan, dan unsur-unsur yang dikenal pada Abad Pertengahan tetapi bukan logam mulia.

3) Masuk akal setelah menerapkan filter untuk memastikan kemungkinan pekerjaan lain dengan hasil yang diperoleh. Misalnya, setelah memilih elemen yang dikenal pada Abad Pertengahan, pengguna mengklik LMB pada elemen yang dipilih dan dibawa ke artikel Wikipedia tentang elemen ini.

4) Masuk akal untuk memberi pengguna kemampuan untuk membatalkan pilihan dengan mengklik LMB pada sel tabel yang dipilih. Misalnya, untuk menghapus item yang sudah dilihat.

5) Masuk akal untuk memastikan bahwa daftar sel yang dipilih disimpan dalam file dan file tersebut dimuat dengan pemilihan sel otomatis. Ini akan memberi pengguna kesempatan untuk beristirahat dari pekerjaan.

Kami menggunakan peta kontrol statis yang telah ditentukan sebelumnya, tetapi ada banyak tugas penting yang dapat menggunakan peta kontrol dinamis yang berubah seiring berjalannya program. Contohnya adalah editor grafik, di mana pengguna menggunakan mouse untuk menunjukkan posisi simpul di jendela dan menggambar tepi di antara simpul tersebut. Untuk menghapus suatu titik atau tepi, pengguna harus menunjuk ke titik tersebut. Tetapi jika menunjuk ke titik sudut yang ditandai dengan lingkaran cukup mudah, maka akan lebih sulit untuk menunjuk ke tepi yang digambar dengan garis tipis. Peta kontrol akan membantu di sini, di mana simpul dan tepi menempati lingkungan yang lebih luas dibandingkan pada gambar yang terlihat.

Pertanyaan tambahan yang menarik terkait metode pelatihan kompleks ini adalah: apakah metode ini berguna dalam melatih AI?

Sumber: www.habr.com

Tambah komentar