Parasti jautÄjums "kÄpÄc mums ir vajadzÄ«ga matemÄtika?" ViÅi atbild uz kaut ko lÄ«dzÄ«gu āvingroÅ”ana prÄtamā. ManuprÄt, ar Å”o skaidrojumu nepietiek. Kad cilvÄks veic fiziskus vingrinÄjumus, viÅÅ” zina precÄ«zu to muskuļu grupu nosaukumu, kuras attÄ«stÄs. Bet sarunas par matemÄtiku paliek pÄrÄk abstraktas. KÄdus konkrÄtus āgarÄ«gos muskuļusā trenÄ skolas algebra? Tas nepavisam nav lÄ«dzÄ«gs Ä«stajai matemÄtikai, kurÄ tiek veikti lieli atklÄjumi. Ko dod spÄja meklÄt dažu sarežģītu funkciju atvasinÄjumu?
ProgrammÄÅ”anas mÄcÄ«Å”ana vÄjiem skolÄniem lika man precÄ«zÄk atbildÄt uz jautÄjumu "kÄpÄc?" Å ajÄ rakstÄ es mÄÄ£inÄÅ”u jums to nodot.
SkolÄ diezgan daudz laika tiek veltÄ«ts izteicienu pÄrveidoÅ”anai un vienkÄrÅ”oÅ”anai. PiemÄram: 81Ć2+126xy+49y2 ir jÄpÄrvÄrÅ” kÄ (9x+7y)2.
Å ajÄ piemÄrÄ studentam ir jÄatceras summas kvadrÄta formula
SarežģītÄkos gadÄ«jumos iegÅ«to izteiksmi var izmantot citÄm transformÄcijÄm. PiemÄram:
vispirms tiek pÄrveidots par
un tad ar precizÄjumu (a + 2b) != 0 sanÄk Å”Ädi
Lai sasniegtu Å”o rezultÄtu, studentam ir jÄatpazÄ«st sÄkotnÄjÄ izteiksmÄ un pÄc tam jÄpiemÄro trÄ«s formulas:
- Summas kvadrÄts
- KvadrÄtu atŔķirÄ«ba
- ParastÄs daļas faktoru samazinÄÅ”ana
Algebras skolÄ gandrÄ«z visu laiku mÄs pavadÄ«jÄm, pÄrveidojot Å”Ädas izteiksmes. AugstÄkajÄ matemÄtikÄ augstskolÄ nekas bÅ«tiski nav mainÄ«jies. Mums teica, kÄ Åemt atvasinÄjumus (integrÄļus utt.), un tika dota daudz problÄmu. Vai tas bija noderÄ«gi? ManuprÄt - jÄ. Å o vingrinÄjumu izpildes rezultÄtÄ:
- Izteicienu transformÄÅ”anas prasme ir noslÄ«pÄta.
- Ir attÄ«stÄ«jusies uzmanÄ«ba detaļÄm.
- VeidojÄs ideÄls ā lakoniska izteiksme, uz kuru var tiekties.
ManuprÄt, Å”Äda Ätika, kvalitÄte un prasme ir ļoti noderÄ«ga izstrÄdÄtÄja ikdienas darbÄ. Galu galÄ izteiciena vienkÄrÅ”oÅ”ana bÅ«tÄ«bÄ nozÄ«mÄ mainÄ«t tÄ struktÅ«ru, lai atvieglotu izpratni, neietekmÄjot nozÄ«mi. Vai tas jums kaut ko atgÄdina?
Å Ä« ir praktiski refaktoringa definÄ«cija no MÄrtina Faulera tÄda paÅ”a nosaukuma grÄmatas.
SavÄ darbÄ autors tos formulÄ Å”Ädi:
Refaktorings (n): programmatÅ«ras iekÅ”ÄjÄs struktÅ«ras izmaiÅas, kas paredzÄtas, lai atvieglotu tÄs izpratni un modificÄÅ”anu, neietekmÄjot novÄrojamo uzvedÄ«bu.
Refaktors (darbÄ«bas vÄrds): mainiet programmatÅ«ras struktÅ«ru, piemÄrojot virkni pÄrveidojumu, neietekmÄjot tÄs uzvedÄ«bu.
GrÄmatÄ ir sniegtas āformulasā, kas jÄatpazÄ«st avota kodÄ, un to konvertÄÅ”anas noteikumi.
KÄ vienkÄrÅ”u piemÄru es sniegÅ”u āskaidrojoÅ”Ä mainÄ«gÄ ievaduā no grÄmatas:
if ( (platform.toUpperCase().indexOf(āMACā) > -1 ) &&
(browser.toUpperCase().indexOf(āIEā) > -1 )&&
wasInitialized() && resize > 0 ) {
// do something
}
Izteiksmes daļas jÄieraksta mainÄ«gajÄ, kura nosaukums izskaidro tÄ mÄrÄ·i.
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
}
IedomÄjieties cilvÄku, kurÅ” nevar vienkÄrÅ”ot algebriskÄs izteiksmes, izmantojot kvadrÄtu summas un kvadrÄtu starpÄ«bas formulu.
Vai jÅ«s domÄjat, ka Ŕī persona var pÄrveidot kodu?
Vai viÅÅ” vispÄr spÄs uzrakstÄ«t citiem cilvÄkiem saprotamu kodu, ja viÅÅ” nav izveidojis ideÄlu tieÅ”i Å”im Ä«sumam? ManuprÄt, nÄ.
TomÄr visi iet skolÄ, un mazÄkums kļūst par programmÄtÄjiem. Vai izteiksmes pÄrveidoÅ”anas prasme ir noderÄ«ga parastiem cilvÄkiem? Es domÄju, ka jÄ. Tikai prasme tiek pielietota abstraktÄkÄ formÄ: jÄnovÄrtÄ situÄcija un jÄizvÄlas tÄlÄkÄ darbÄ«ba, lai tuvotos mÄrÄ·im. PedagoÄ£ijÄ Å”o fenomenu sauc
SpilgtÄkie piemÄri rodas mÄjsaimniecÄ«bas remonta laikÄ, izmantojot improvizÄtus lÄ«dzekļus, ākolhozaā metodi. RezultÄtÄ parÄdÄs tie paÅ”i ātrikiā un dzÄ«ves hacks, no kuriem viens ir attÄlots KPDV. Idejas autoram bija koka gabals, stieple un Äetras skrÅ«ves. Atceroties lampas ligzdas veidni, viÅÅ” no tiem salika paÅ”taisÄ«tu lampas ligzdu.
Pat vadot transportlÄ«dzekli, vadÄ«tÄjs nepÄrtraukti nodarbojas ar apkÄrtÄjÄs pasaules modeļu atpazÄ«Å”anu un atbilstoÅ”os manevrus, lai nokļūtu galamÄrÄ·Ä«.
Kad tu nomirsti, tu par to nezini, citiem vienkÄrÅ”i ir grÅ«ti. Tas pats ir, ja neesi apguvis matemÄtiku...
Kas notiek, ja cilvÄks nespÄj apgÅ«t izteicienu transformÄciju? Ik pa laikam pasniedzu individuÄlÄs stundas skolÄniem, kuriem skolÄ slikti padevÄs matemÄtika. KÄ likums, viÅi pilnÄ«bÄ iestrÄgst ciklu tÄmÄ. Tik daudz, ka ar tiem jÄtaisa āalgebraā, bet programmÄÅ”anas valodÄ.
Tas notiek tÄpÄc, ka, rakstot cilpas, galvenais paÅÄmiens ir pÄrveidot identisku izteiksmju grupu.
PieÅemsim, ka programmas rezultÄtam vajadzÄtu izskatÄ«ties Å”Ädi:
Ievads
1 nodaļa
2 nodaļa
3 nodaļa
4 nodaļa
5 nodaļa
6 nodaļa
7 nodaļa
SecinÄjums
TriviÄla programma Ŕī rezultÄta sasniegÅ”anai izskatÄs Å”Ädi:
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("ŠŠ°ŠŗŠ»ŃŃŠµŠ½ŠøŠµ");
}
Bet Å”is risinÄjums ir tÄlu no lakoniska ideÄla. Vispirms tajÄ jÄatrod atkÄrtota darbÄ«bu grupa un pÄc tam tÄ jÄpÄrvÄrÅ”. IegÅ«tais risinÄjums izskatÄ«sies Å”Ädi:
static void Main(string[] args)
{
Console.WriteLine("ŠŠ²ŠµŠ“ŠµŠ½ŠøŠµ");
for (int i = 1; i <= 7; i++)
{
Console.WriteLine("ŠŠ»Š°Š²Š° " + i);
}
Console.WriteLine("ŠŠ°ŠŗŠ»ŃŃŠµŠ½ŠøŠµ");
}
Ja cilvÄks vienÄ reizÄ nav apguvis matemÄtiku, tad viÅÅ” nevarÄs veikt Å”Ädas pÄrvÄrtÄ«bas. ViÅam vienkÄrÅ”i nebÅ«s atbilstoÅ”u iemaÅu. TÄpÄc cilpu tÄma ir pirmais ŔķÄrslis izstrÄdÄtÄja apmÄcÄ«bÄ.
LÄ«dzÄ«gas problÄmas rodas arÄ« citÄs jomÄs. Ja cilvÄks neprot lietot pa rokai esoÅ”os instrumentus, tad viÅÅ” nevarÄs parÄdÄ«t ikdienas izdomu. Ä»aunÄs mÄles teiks, ka rokas aug no nepareizÄs vietas. Uz ceļa tas izpaužas nespÄjÄ pareizi novÄrtÄt situÄciju un izvÄlÄties manevru. Kas dažkÄrt var izraisÄ«t traÄ£iskas sekas.
SecinÄjumi:
- Mums ir vajadzÄ«ga skolu un augstskolu matemÄtika, lai mÄs varÄtu padarÄ«t pasauli labÄku ar mÅ«su rÄ«cÄ«bÄ esoÅ”ajiem lÄ«dzekļiem.
- Ja esat students un jums ir problÄmas ar mÄcÄ«Å”anÄs cikliem, mÄÄ£iniet atgriezties pie pamatiem ā skolas algebras. PaÅemiet uzdevumu grÄmatu 9. klasei un atrisiniet no tÄs piemÄrus.
Avots: www.habr.com