<h1>我最近編制了一個(gè)電子表格《高考志愿排序表》,其中含有自動(dòng)排序功能,這主要是考慮到有些考生和家長(zhǎng)在填報(bào)高考志愿時(shí),搖擺不定,最多需要3-4版的志愿表,才能最終確定。這個(gè)排序表可根據(jù)需要,快速地對(duì)所填大學(xué)志愿進(jìn)行排序。</h1><h1><br></h1><h1>其實(shí),編制這個(gè)表格,大約是一個(gè)月前就開(kāi)始啟動(dòng),后來(lái)陸陸續(xù)續(xù)完成了程序框架及VBA代碼輸入,經(jīng)過(guò)多次運(yùn)行調(diào)試才最終定型。在這個(gè)過(guò)程中,發(fā)現(xiàn)只要邏輯正確,代碼正確,結(jié)果就會(huì)符合我的預(yù)期。</h1><h1><br></h1><h1>那種一步一步按照預(yù)先設(shè)計(jì)并最終實(shí)現(xiàn)各種功能,其嚴(yán)謹(jǐn)?shù)囊蚬P(guān)系、流暢和令人舒適的過(guò)程,讓我突然想用“美”這個(gè)詞來(lái)描述它。</h1><h1><br></h1><h1>不過(guò),文章寫(xiě)到這里,發(fā)現(xiàn)自己對(duì)這篇文章缺乏一個(gè)完整的邏輯框架(或事先規(guī)劃),導(dǎo)致寫(xiě)完一段后,下一段該寫(xiě)什么就沒(méi)有思路了。</h1><h1><br></h1><h1>于是,我聯(lián)想到更早時(shí)期,剛開(kāi)始自學(xué)編程,當(dāng)編制某些較大程序時(shí),因事先沒(méi)有采取科學(xué)的做事方法,導(dǎo)致我編程的工作效率不高,有時(shí)候甚至?xí)磺埃蚧ㄙM(fèi)很多時(shí)間也進(jìn)展不大。再類推一下,不僅僅是編程序,在很多事情上,都可能有這樣的問(wèn)題。</h1><h1><br></h1><h1>現(xiàn)在想來(lái),這實(shí)際上有兩個(gè)原因,一是前面提到的事先規(guī)劃問(wèn)題,二是自己的技能水平問(wèn)題。</h1><h1><br></h1><h1>后一個(gè)問(wèn)題可以通過(guò)不斷學(xué)習(xí)和提高技能來(lái)解決,而前一個(gè)屬于方法和策略范疇,是做事習(xí)慣是否科學(xué)的問(wèn)題。如果通過(guò)專業(yè)訓(xùn)練(如大學(xué)軟件專業(yè)或類似專門培訓(xùn)),或個(gè)人刻意追求,最終也能形成良好習(xí)慣。</h1><h1><br></h1><h1>如果一個(gè)人只是習(xí)慣于埋頭苦干,不抬頭看路,或根本就沒(méi)有事先規(guī)劃路線,可想而知,這個(gè)人做事的效率一定不會(huì)很高。</h1><h1><br></h1><h1>好了,拉回正題,今天主要說(shuō)說(shuō)“<span style="color:rgb(237, 35, 8);">邏輯之美</span>”。文章的題目,就是我想表達(dá)的一個(gè)觀點(diǎn),同時(shí)也想讓大家來(lái)感受一下邏輯的美。</h1><h1><br></h1><h1>但真正開(kāi)始寫(xiě)文章后,我的思路卻漂浮不定,腦海里冒出各種名詞,該如何組織語(yǔ)言來(lái)正確表達(dá)自己的思想,并且能讓別人讀得下去,我就越發(fā)感受到一個(gè)詞的重要,這個(gè)詞就是“邏輯性”。</h1><h1><br></h1><h1>如果我們做事前,能先有一個(gè)完美規(guī)劃,包括各種預(yù)案和措施,當(dāng)事情開(kāi)展起來(lái)后,就會(huì)顯得很有條理(邏輯性)。反之,就會(huì)中途茫然或者不知所措,在時(shí)間流逝的過(guò)程中,想要做的事情沒(méi)有進(jìn)展或進(jìn)展緩慢。</h1><h1><br></h1><h1>在與人打交道時(shí),我們有時(shí)會(huì)遇到思路清晰、說(shuō)話有條理、語(yǔ)言或文字表達(dá)邏輯性很強(qiáng)的人。反之,有時(shí)也會(huì)遇到說(shuō)話沒(méi)有條理、前言不搭后語(yǔ)的人。前者,自然會(huì)得到大家的欣賞和認(rèn)可;后者,一般都不會(huì)受人喜歡。</h1><h1><br></h1><h1>聽(tīng)邏輯性強(qiáng)的人講話,我們會(huì)感覺(jué)非常享受,體會(huì)到一種自然的美感。</h1><h1><br></h1><h1>在編制程序軟件時(shí),看到運(yùn)行結(jié)果就是自己所預(yù)期的,同樣是一種享受,可歸結(jié)為一種邏輯的美感。</h1><h1><br></h1><h1>當(dāng)運(yùn)行結(jié)果沒(méi)能實(shí)現(xiàn)預(yù)期,我會(huì)發(fā)現(xiàn),計(jì)算機(jī)實(shí)際上非常嚴(yán)格地執(zhí)行了我所編制的代碼指令,但因?yàn)檫@些代碼是我想當(dāng)然以為的一種邏輯關(guān)系(或稱因果關(guān)系),但實(shí)際運(yùn)行起來(lái)卻證明了我的想法是錯(cuò)誤的。這時(shí)就需要調(diào)整思路,重新編制代碼,直到運(yùn)行結(jié)果達(dá)到我的預(yù)期。這個(gè)過(guò)程,讓我感受到程序指令與輸出結(jié)果之間一種嚴(yán)格的因果關(guān)系,這也是一種邏輯的美感。</h1><h1><br></h1><h1>我們來(lái)看一段具體的內(nèi)容(關(guān)于高考志愿排序表的視頻)。</h1> <h1>在那段視頻中,我們看到,表格成功實(shí)現(xiàn)了自動(dòng)排序功能,但實(shí)際編程時(shí),我面臨以下幾個(gè)問(wèn)題需要解決:</h1><h1><br></h1><h1>1) 當(dāng)左邊表1沒(méi)有內(nèi)容時(shí),右邊表2按序碼排序就非常簡(jiǎn)單,直接按L列所填數(shù)字的大小排序,同時(shí)將表2的部分內(nèi)容復(fù)制到表1中;</h1> <h1>2) 但是,當(dāng)左邊表1的橙色區(qū)域已經(jīng)填有內(nèi)容時(shí),如果直接沿用上面(第1)節(jié))的程序功能,則會(huì)導(dǎo)致已經(jīng)填好的專業(yè)代碼、專業(yè)名稱、招生計(jì)劃數(shù)等內(nèi)容與院校名稱發(fā)生錯(cuò)配,那前期的填表工作量將會(huì)報(bào)廢,反而起不到用本表格節(jié)省時(shí)間的設(shè)計(jì)初衷。</h1><p class="ql-block"><br></p><h1>因此,在程序中設(shè)計(jì)了“數(shù)據(jù)搬家”功能,先判斷是否已經(jīng)填了數(shù)據(jù),然后把已有數(shù)據(jù)復(fù)制出來(lái)放到指定地方,再想辦法找到這些數(shù)據(jù),回填到相應(yīng)正確位置。</h1> <h1>3) 此外,為了演示程序功能,我設(shè)置了一個(gè)“清屏”按鈕,這樣可直接清除掉屏幕上已經(jīng)填好的內(nèi)容,但也可以點(diǎn)擊一下“序碼”那個(gè)位置,在一秒內(nèi)就再?gòu)?fù)制出來(lái)。若表1已經(jīng)填寫(xiě)了專業(yè)代碼等內(nèi)容,清屏后就無(wú)法再?gòu)?fù)制,于是清屏前就要判斷是否已經(jīng)填了專業(yè)內(nèi)容。如此簡(jiǎn)單的一個(gè)清屏功能,也要考慮到好幾種情況,視情況不同而執(zhí)行不同的語(yǔ)句。</h1><h1><br></h1><h1>所以,編制程序時(shí),最常用的就是邏輯判斷語(yǔ)句,要根據(jù)已有條件來(lái)決定下一步要執(zhí)行的動(dòng)作。</h1> <h1>關(guān)于清屏的功能,請(qǐng)看以下視頻。</h1> <h1>好吧,通過(guò)以上演示視頻和文字內(nèi)容,我說(shuō)自己感受到了一種邏輯的美。但是,我還是覺(jué)得沒(méi)能真正地把那種“邏輯之美”的韻味,充分表達(dá)出來(lái)。</h1><h1><br></h1><h1><span style="color:inherit;">也許,這種感覺(jué)確實(shí)很難表達(dá),就是那種“只可意會(huì),不可言傳”的味道。</span></h1><h1><br></h1><h1>這讓我想起十幾年前的2006年,在四川阿壩州5A風(fēng)景區(qū)九寨溝旅游,我突然發(fā)現(xiàn)一個(gè)很特別的現(xiàn)象,以前在雜志上看到一些不太著名的一些風(fēng)景區(qū)的彩色照片(比如國(guó)家地理雜志),照片上那豐富的色彩、起伏的山巒、神秘的光線,美輪美奐,讓人無(wú)比向往。而每當(dāng)真正走到那些風(fēng)景區(qū)時(shí),卻發(fā)現(xiàn)真正的實(shí)景,遠(yuǎn)沒(méi)有照片那么漂亮。</h1><h1>但是,到了九寨溝,這個(gè)定律卻被打破了,我發(fā)現(xiàn),我所面對(duì)的九寨溝的實(shí)地風(fēng)景,比我見(jiàn)過(guò)的任何照片都要漂亮,甚至我也親自試過(guò),無(wú)論用什么方式,也拍不出比實(shí)景更漂亮的照片。九寨溝的美,就是一種無(wú)法用照片帶走的美,是一種難以用語(yǔ)言準(zhǔn)確表達(dá)的美。這只能怪我自己表達(dá)能力有限。</h1><h1><br></h1><h1>文章寫(xiě)到這里,意猶未盡。于是再插入一個(gè)視頻,這個(gè)視頻表現(xiàn)的是,以前某公司的一個(gè)管理部門中有個(gè)十來(lái)人的小組,他們每天忙碌的其中一件事就是編制表格,然后打印成冊(cè),一個(gè)項(xiàng)目的表格平均需要大約20個(gè)小時(shí)才能完成,而一年中要做300多個(gè)這樣的項(xiàng)目。由于項(xiàng)目太多,他們幾乎每天都要加班,才能完成這些工作。</h1><p class="ql-block"><br></p><p class="ql-block"><span style="font-size:20px; color:inherit;">當(dāng)我知道后,就編制了一個(gè)小程序送給他們,他們用起來(lái)后,簡(jiǎn)直對(duì)我膜拜有加,直呼太神奇了?。。∫?yàn)橐郧?0個(gè)小時(shí)工作量,現(xiàn)在用這個(gè)小程序,只需要一秒鐘就可以完成,你沒(méi)看錯(cuò),就是一秒鐘,提高了工作效率七萬(wàn)多倍。</span></p> <h1>現(xiàn)在,大家是否真能體會(huì)到我說(shuō)的“邏輯之美”?</h1><div><br></div><div><br></div>(徐行遠(yuǎn) 2022.5.11 四川德陽(yáng))<br>