Biasanya pertanyaan "mengapa kita perlu matematika?" jawab sesuatu seperti "senam untuk pikiran." Menurut saya, penjelasan ini tidak cukup. Ketika seseorang melakukan latihan fisik, dia tahu persis nama kelompok otot yang sedang berkembang. Tetapi berbicara tentang matematika tetap terlalu abstrak. Apa "otot pikiran" spesifik yang dilatih dalam aljabar sekolah? Bagaimanapun, ini sama sekali tidak terlihat seperti matematika sungguhan, di mana penemuan-penemuan hebat dibuat. Apa yang memberi kemampuan untuk mencari turunan dari beberapa fungsi yang membingungkan?
Pengajaran pemrograman untuk siswa yang lemah membuat saya ke jawaban yang lebih akurat untuk pertanyaan "mengapa?". Dalam artikel itu saya akan mencoba menyampaikannya kepada Anda.
Di sekolah, cukup banyak waktu yang dihabiskan untuk transformasi dan penyederhanaan ekspresi. Misalnya: 81x
2 + 126xy + 49y
2 perlu dikonversi menjadi (9x + 7y)
2 .
Dalam contoh ini, siswa diharapkan untuk mengingat rumus kuadrat

Dalam kasus yang lebih kompleks, ekspresi yang dihasilkan dapat digunakan untuk transformasi lain. Sebagai contoh:

dikonversi terlebih dahulu ke

dan kemudian, dengan penyempurnaan (a + 2b)! = 0, hasilnya seperti ini

Untuk mencapai hasil ini, siswa perlu mengenali dalam ekspresi asli dan kemudian menerapkan tiga rumus:
- Jumlah kuadrat
- Perbedaan nyata
- Kurangi Faktor Pengganda
Di sekolah biasa dalam aljabar, hampir sepanjang waktu kami terlibat dalam transformasi ekspresi seperti itu. Di universitas dalam matematika yang lebih tinggi, tidak ada yang berubah secara signifikan. Kami diberitahu bagaimana mengambil turunan (integral, dll.) Dan diberi banyak tugas. Apakah ini bermanfaat? Menurut saya, ya. Sebagai hasil dari latihan tersebut:
- Keterampilan mengubah ekspresi telah disempurnakan.
- Perhatian terhadap detail telah berkembang.
- Suatu cita-cita terbentuk - sebuah ekspresi ringkas yang dapat diperjuangkan seseorang.
Menurut pendapat saya, kehadiran cita-cita, kualitas, dan keterampilan seperti itu sangat berguna dalam pekerjaan sehari-hari pengembang. Memang, untuk menyederhanakan ekspresi, pada dasarnya, berarti mengubah strukturnya untuk memfasilitasi pemahaman, tanpa mempengaruhi artinya. Apakah ini mengingatkan Anda pada sesuatu?
Ini praktis definisi refactoring dari buku dengan nama yang sama oleh Martin Fowler.
Dalam karyanya, penulis merumuskannya sebagai berikut:
Refactoring (n): Perubahan struktur internal perangkat lunak dengan tujuan memfasilitasi pemahaman operasi dan menyederhanakan modifikasi tanpa mempengaruhi perilaku yang diamati.
Lakukan Refactor (kata kerja): ubah struktur perangkat lunak dengan menerapkan serangkaian refactoring tanpa memengaruhi perilakunya.
Buku ini memberikan "formula" yang perlu dikenali dalam kode sumber dan aturan konversi mereka.
Sebagai contoh sederhana, saya akan mengutip "pengantar variabel penjelas" dari buku:
if ( (platform.toUpperCase().indexOf(“MAC”) > -1 ) &&
(browser.toUpperCase().indexOf(“IE”) > -1 )&&
wasInitialized() && resize > 0 ) {
// do something
}
, .
final boolean isMacOS = platform.toUpperCase().indexOf(“MAC”) > -1;
final boolean isIEBrowser = browser.toUpperCase().indexOf(“IE”) > -1;
final boolean isResized = resize > 0;
if(isMacOS && isIEBrowser && wasInitialized() && isResized) {
// do something
}
, .
, ?
, ? — .
, . ? . : , .
().
, «» . «» , . , . , .
, , .
, , . , …
, ? , . , . , «», .
, , .
:
1
2
3
4
5
6
7
:
static void Main(string[] args)
{
Console.WriteLine("");
Console.WriteLine(" 1");
Console.WriteLine(" 2");
Console.WriteLine(" 3");
Console.WriteLine(" 4");
Console.WriteLine(" 5");
Console.WriteLine(" 6");
Console.WriteLine(" 7");
Console.WriteLine("");
}
. . :
static void Main(string[] args)
{
Console.WriteLine("");
for (int i = 1; i <= 7; i++)
{
Console.WriteLine(" " + i);
}
Console.WriteLine("");
}
, . . — .
. , . , . . .
:
- , , .
- , — . 9 .