關於部落格
  • 18263

    累積人氣

  • 0

    今日人氣

    0

    追蹤人氣

2000.09.25 管四

2000.09.25 管四 【上卷A面】 ☆二、語言分類☆ …來講語言執行,然後再講PASCALL,PASCALL,來,我先講解一下,這個語言分成6類啊,第一個叫機器語言啊,好,等一下,機器語言是第一代,要注意,第一代啊,他是由0跟1啊,∴他可立即執行啊,要注意聽哦,不需要翻譯,可立即執行,∴他速度最快啊,這是考古題,那我們直接用0跟1來寫啊,這寫出來的程式會比較短,好,寫出來的程式會比較短,∴他比較,佔記憶體空間比較小,∴這個是節省空間,∴他有這兩個優點,但是缺點啊,0跟1不容易看,我們要看不容易看,還要查表,∴也不容易維護,不容易看、不容易維護、不容易除錯、不容易撰寫,好,這4個要注意。 那組合語言,他是第二代語言,∴這裡第二代啊,電腦分好幾代,語言也分好幾代啊,第二代語言,這個是由助記憶字,像這個東西,組成的,需經組譯器,要注意,組譯器,這個記憶字啊,像,舉個例子講啊,像這樣,像這個東西,這叫組合語言,注意,這一段就組合語言,那這一段組合語言啊,他的功能,注意,這考古題,這一段組合語言的功能啊,就是R1與R2交換,R1跟R2交換,這是考古題,這就是組合語言,這要做交換啊,在我們BASIC啊,很好寫,是不是?BASIC是不是這樣寫就可以?BASIC是不是這樣寫?swap什麼?這兩個什麼?交換啊。Swap。但是在組合語言,你們要寫一段,像這個就是啦,這個是交換啊,來,為什麼他要交換啊?來,我們來寫這個啊,假設我一開始啊,等一下哦,等一下哦,等一下,我做給你看,等一下啊,我寫給你看,假設一開始他是這樣啊,我假設,假設這個值啊,這個值是假設啊,假設是這樣啊,好,這個值是這樣,好,等一下,不要抄,等一下,這個啊,這個要注意,現在這兩個要,要做運算,怎麼做運算?這個值要做運算,他跟他做exclusive or,什麼叫exclusive or?叫同性相斥。做完放在哪裡?這兩個做完是不是放在前面?∴這兩個做完就放在前面,∴你看這裡啊,這兩個做exclusive or,不要抄啊,那這個是0101,這不要抄,這是管四的考古題啊,不要抄,等一下啊,這兩個做exclusive or,01跟1是1、0跟1是1、1跟0是1、0跟1是1,這看懂嗎?不同為1、不同為1、不同為1,不同為1,好,我剛才講,這兩個做完之後,放在R1,好,∴這兩個做完之後是放在R1,這個不動,好,再來做這一個,這兩個做完之後,放在哪裡?R2。∴你看,做完了,這個做完之後,exclusive or,這個不動,這個不動,不同為1、同性相斥、不同為1、同性相斥,好,再做這,這個啊,這兩個做運算,做完之後,放在這裡,好,∴這做完放在這裡,這邊要不動,好,這邊我們來做這個,同性相斥、不同為1、同性相斥、不同為1,這應該看得懂吧?這看懂嗎?好,那你注意看這個,結果是什麼?這個值,放到這裡,這個值,放到這裡,這是不是做交換?喂!這是什麼語言?組合語言。這是組合語言,這應該聽得懂吧,好,這叫組合語言,但是,你要電腦執行,電腦沒辦法執行,電腦一定要變成這個才能執行,一定要變成這個,∴這邊啊,要注意,一定要經過什麼?組譯器。這也是考古題,你要看到這黑板哦,這黑板很多哦,考古題,這個,這種東西叫做助記憶字,這種叫助記憶字,像這個判斷exclusive or,這個判斷exclusive or,對不對?這個叫什麼?叵。這叫什麼?減。這叫什麼?搬動。對不對?mov就是搬動,這種寫的語言一定要經過組譯器啊,Assembler,好,翻譯 成機器語言,注意,翻譯成機器語言才能執行啊,一定要經過這一個,翻譯成機器語言,機器語言就是0跟什麼?0跟1的東西。好,我們再看這裡哦,機器語言跟組合語言,稱為呢?低階語言。人類看不懂的,人類不喜歡看這語言,人類更這個語言,∴我們稱為低階語言,∴這裡有低階語言,這兩個叫低階語言,注意,這兩個叫低階語言,是跟機器有關,什麼叫機器有關?注意聽哦,機器不同,機器不同,語言就不同,語言就不同,∴市面上有兩種電腦,應該知道,一種叫什麼?IBM PC。對不對?另外一種電腦叫什麼?麥金塔電腦。對不對?麥金塔。這兩個電腦的組合語言完全不一樣,好,這兩個組合語言完全不一樣啊,∴機器不同,語言也是不同啊,這叫做機器有關,這叫機器有關,好,高階語言,一開始就是考古題,高階語言這是第幾代呢?第三代。「第三代」也是考古題,是與機器無關的,什麼叫與機器無關呢?注意聽哦,機器不同,機器不同啊,語言差異性不大,語言的差異性不大啊,∴假設啊,在任何地方玩C語言,差不多,好,你在大電腦玩C,跟小電腦玩C,差不多,頂多會不一樣就是輸出跟輸入,好,∴機器不同,語言差異性不大,這叫機器無關,像這邊寫了,例如BASIC,還有PASCAL,還有FORTRAN,都是啊,好,這個你先抄,你先抄,我等你啊。這邊有把他註解啊,還有機器語言、組合語言、高階語言、中階語言、第四代語言,還有一個語言啊,那個黑板只有寫到這裡,還有一個,最後一個語言叫做自然語言,我們現在用的,人類講的話就是自然語言,但是電腦達不到啊,電腦達不到啊,然後,要注意哦,這裡,前面,前面這4個,他屬於程序式語言,我待會會解釋,什麼叫程序式語言?這個語言是屬於非程序式語言,這種是屬於非程式序語言,那這個,我們寫得很清楚,這個是第一代啊,這是第二代啊,然後,這兩個是第三代啊,那這裡兩個是第四代語言,我們待會會介紹第四代語言,什麼叫第四代語言? 這個黑板啊,考古題很多哦,這個禮拜天才會拿到第二本講義,像,我跟你講啊,像說,下列何者不是高階語言相較尽低階語言的優點?A呢,執行速度快,可攜性高,可讀性高,容易使用,好,容易使用,我再唸一次哦,A,執行速度快,B可讀性高,C,可攜性高,D,容易使用,∴不是高階,不是高階語言的特性,就是速度怎樣?快。速度快是誰?低階。速度快是這個,好,這個,到時候拿到你的講義,自己好好做。這邊很多啊,像第,這邊有第7題啊,程式語言的發展歷史中,程序过向的高階語言屬於第幾代?我剛才講,高階語言是第幾代?我剛才不是幫你畫了嗎?第幾代?第三代。這都考古題,黑板給你寫了,還有,我寫了這個”考”的字,這都要特別注意,這邊還有講到一個,第四個啊,第四個語言叫中階語言,假設你不細分的話,不細分,這裡也是屬於高階語言,不細分的是屬於高階,但是有人把他稱為呢?中階。具有低階語言的執行效率,∴這個,執行效率就是速度快啊,速度快,與高階語言的可攜性,好,什麼叫可攜性?你在這個電腦上面跑,跑完之後,這個程式,再到另外一個電腦,重新打進去,還是可以跑,不是把磁碟片拿到另外一個電腦上面去,不是這樣講啊,IBM電腦 跟麥金塔電腦,這兩個磁碟片不相容哦,∴你在這邊打一打之後,跑一跑,可以跑,程式可以RUN,那到那個motora那邊RUN,也可以RUN,這叫可攜性, ∴這邊有一個很重要的特性哦,我這邊寫一個註解,這邊寫一個註解哦,第一個註解啊,在C語言,他是用來撰寫系統程式,系統程式,這個講都講的很好聽啊,衵本上是寫他是寫系統程式啊,其實他是寫這個東西,他是寫這個東西,即這個東西,UNIX用什麼語言寫的?C語言寫的。好,UNIX是用C語言寫的,∴這整個考題寫系統程式,其實他寫的是作業系統,UNIX啊,還有,第二個特性你一定要知道啊,好,C語言可攜性最高,這一定要知道啊,C語言可攜性最高,但是最結構化啊,這個最結構化,要注意,最結構化是PASCAL,好,最結構化怎麼是PASCAL?這要特別注意哦,好,在你的第五個啊,叫four GL,注意,four,Four Generation Language,這叫four GL,這叫第4代語言哦,注意聽哦,這叫第4代語言,這種又稱為極高階語言,或者叫問題導向語言,這種東西一定具備有這個東西,一定要具備有資料庫,data base,好,資料庫,這是資料庫的意思,是一種比高階語言更容易撰寫的語言,要注意哦,比高階語言更容易撰寫的語言,為什麼?他有這種東西。他有這種東西,∴他屬於什麼?非程序式語言。為什麼?為什麼他會屬於非程序式語言?我們去抓資料啊,我們抓資料,不見得要寫程式,不見得要寫程式,就是要用這個東西,利用這個來做,這應該都看過吧,資,資舌很重要就是在這個哦,資料庫,你一定要很熟,好,利用select、project、join取得Data Base,DB啊,就是Data Base啊,的資料,Data Base內 的資料,∴利用這三個運算子,利用這三個運算子,只要下一個命令,注意,下一個命令就可以把資料,掀出來,好,不像我們剛才寫程式,是不是exclusive or、exclusive or、exclusive or,對不對?要逐步告訴他,這個不用,只要這三個運算子,剛才講的例子,∴屬於非程序式語言,提供使用者更方便撰寫程式的軟體發展方式,好,這個要注意哦,什麼叫「更容易撰寫」啊?方便撰寫,就是這一個,只需透過表格鍵入資料即可完成,這個表格啊,假設你要把他弄進database,你這個應該玩過吧?有沒有?Access。你要先告訴電腦,Access這個軟體說我總共,有幾個欄位,有沒有?對不對?每個欄位是什麼?對不對?好,∴鍵入資料即可完成,那有這種資料庫的,有資料庫的語言,像Focus、Informix,這些都是,好,這些都是。其實你想一想啊,這兩個語言你沒有碰過的話,你想一想,我們可以用哪一種?VB加什麼?Access。有沒有?聽懂嗎?這個叫什麼?高等VB嘛。一般的VB都寫基本程式嘛,VB可以加什麼?Access。好,∴這邊有告訴你,什麼叫程序式語言?這叫Procedure Language。逐步,「逐步」就是我剛才寫的exclusive or、exclusive or、exclusive or,有沒有?每一個步驟都要寫得很詳細,逐步告訴電腦如何執行,∴這要告訴電腦如何執行,是這個如何執行,這是所謂的什麼?How to do,How to do,要告訴電腦如何執行啊,∴告訴告訴電腦如何執行的語言像機器語言、組合語言、高階語言都是,好,我們會,未來會看到很多高階語言,好,這程式,大部份都是這一個,那非程序式語言,叫non-Procedure Language,這個很重要啊,repeat很重要哦,這裡畫三顆星哦,非程序式語言,什麼叫非程序式語言?不必告訴電腦如何執行,好,不必,不必告訴電腦how to do,要注意哦,然後,僅須告訴電腦什麼?do what。好,What to do,好,What to do就好了,要做什麼,我們要做什麼,這個你先抄,我要擦掉,我要寫一個,有一個東西,我要寫一個,這個東西,之後你才知道,這個什麼叫non-Procedure Language,好,非程序式語言,還有,這邊你再自己註明一下,非程序式語言,除了這兩個以外,妆有一個LISP,人工智慧語言叫LISP,另外有一個叫什麼?PROLOG。又叫PROLOG,都可以,人工智慧語言是PROLOG,這邊先抄啊,LISP的右邊,我要擦掉了,…,看這個東西,剛講人工智慧語言,你聽不太懂啊,講這個東西,資料庫的模式,資料庫模式啊,有三種,第一種叫網狀,網狀式以後會講細講,網狀是這樣啊,這裡,這一個跟這個有關係,跟這個有關係,然後跟這個有關係,跟這個有關係,假設,這邊有一個什麼東西呢?他這樣啊,這個A對D,這麼多,∴這個一對多,然後,下面,就可以對上來,像這個就對上來了,好,這邊也可以對上來,然後,這邊也可以對上來,∴這裡啊,對三個啊,像這個,這個號碼可以對到這邊來,這一個可以對很多個,那下面這一點啊,一點點,假設這一點放在這裡,可以對很多,∴這邊又是一對多,∴這種結構就是所謂的多對多,這種就是多對多,我大概講一下喔,到時候在資料庫再重新講,∴這種就是屬於多對多的結構,另外一種叫階層式,階層式喔,你最常見到的就是一個連長,這個連長,底下會有三個排長,那這個排長裡會,底下會有三個班長,這三個班長,底下有,假設有三個班兵,這叫排長,這個是班長,底下這個是班長,∴假設你要去找啊,像說,某一個排長,某一個排長啊,他底下有多少兵?從連長這邊找,找下去,他底下有多少兵,找下來,這邊找下來,找下來,∴這種結構屬於一對多,∴階層式是一層一層的,那這一點叫樹狀,這個大概知道架構就好了,∵這個我們在資料庫會詳細講,∴這叫樹狀,是一對多的,那關聯式,我們主要講關聯式,用表格方式來儲存資料,這要注意哦,表格,好,∴這個很重要,表格,這個考古題,關聯式是最重要的,微電腦都是用這一種,微電腦你聽過的大部份都是喔,微電腦有什麼?像說我剛才講的access,access,好,還有呢?應該有玩過FoxPro,好,FoxPro,還有呢?FoxBase,好,FoxBase,還有RBase,甚至還有一個,叫ORACLE,ORACLE應該聽過吧,甲骨文,聽過吧,有沒有?甲骨文,ORACLE。 好,那這個要注意哦,底下我們,我們舉一個例子,叫成績關聯,score relation,”關聯”就是表格,這”關聯”的意思就是表格,∴你一開始要定義一些東西喔,定義像說,好,一開始,這邊,欄位叫什麼?姓名la,這個學號la,國文la,數學la,平均,你要先定義你有5個欄位,這五個欄位呢,像這個欄位的屬性是什麼,∴一般你會定義這個屬性叫做,這個屬性是character,7個,好,字元有7個,屬性,那這邊學號啊,character,假設2個,這個國文呢,是integer,這個數學呢,也是integer,那這一個呢,就是float,好,這float,假設這樣定義啊,我這樣寫就是說這邊有7個字元,這裡有7個,這邊整數,這邊整數,這邊是實數,你要告訴電腦說,這個怎麼來?是這一個跟這個加起來除以2,你要告訴電腦是怎麼計算,好,都已經講完了,都在哪裡宣告?剛剛講都在哪裡宣告?都在這個地方宣告。好,或者在什麼?在那個,剛剛講了,Access,Access那邊宣告。宣告完之後,你可以開始打了,他會告訴你建立一個表格,假設你沒有玩過資料庫,他會幫你抓一個表格,那這個表格開始寫了,你這邊寫喔,像說,你這邊打一個,他會有一個蝌蚪跑出來,你就打一個”王一”,按enter,他會跳過來,學號,S1,按enter之後,跳過來,國文假設你給他90分,enter之後跳過來,80分,enter是不是跳過來?幫你去算。我剛才講,這2個要加起來,什麼?除以2,變成多少?85分。好。然後 下來的時候,你再打,這時候會有一個蝌蚪在這邊,然後你再打,王一,”李二”,好,enter,enter之後做完了,enter之後做完了,這邊假設70,這邊是,這邊是75,這兩個啊,這邊72.5,好,那假設說這裡有一個張三,好,張三,打一個”張三”enter過來,好,這邊假設是50,好,這邊是60,好,這邊是55,全部都打進去了,注意聽,全部乽打進去之後,這是一個資料庫,這一個資料庫,像我今天,我是導師哦,我是導師,我要抓這個,那怎麼抓,我就下一個命令,有沒有,我就下一個命侈,叫select,select哪一個表格?這個表格。這叫score,∵在電腦裡面 很多表格,這個資料庫裡面很多表格,∴我抓這個score,選擇這個score,然後where,where是條件,注意,where是條件,average,好,average,這個條件叫average,average小於什麼?小於60。小於60,等於,小於這樣啊,我把那個平均不及格的啊,平均不及格,好,我這個寫中文,這個寫中文,這個欄位小於60的,全部掀出來,好,我下這個命令,那電腦就去找,咦~,這個大於60的la,這個大於60,是不是這個小於60?∴他會把這個東西抓出來,這整條把他抓出來,∴答案是在這裡,是張三啊,3號啊,他分數這一個啊,這一個啊,55.,甚至這邊可以,可以顯示反白,有沒有?迠邊閃閃閃,就是他,有沒有?就是他。要注意哦,我沒有告訴他怎麼做,我只是下一個命令叫他做什麼?我有叫他去抓一個東西出來,抓什麼東西出來?抓這個平均值,不及格,∴電腦會去search,這種,或是告訴他做什麼,沒有告訴他怎麼做,∴這種叫做非程序式語言,這應該聽得懂吧,非程序式語言,假設你不是用資料庫,那你累了,你不是用資料庫,你一開始要做什麼?open file,第一個步驟。第二個步驟,你要去read file,第三步驟,if average小於60,小於60,然後then,然後print,print,印印印,對不對?對不對?好,然後,注意哦,這個還沒有完哦,這還是一個迴圈ne,while,然後這end of while,然後do,do,然後這邊呢?wend。這是一個迴圈嘛,對不對?然後最後產生一個迴圈,你要,你要,你要注意哦,假設你用高階語言,我沒有寫高階語言,我只寫一段而已,假設你用高階語言,第一個步驟,你要open file,打開一個檔案,第二個,你要做迴圈,第三個,是要讀檔,第四個,判斷,第五個,回去迴圈,再做,回去迴圈再做,做到最後的情形是這樣,這箽寫法是高階的寫法,這種叫什麼?程序式語言。這應該聽得懂嘛,告訴他先打開好,哪一種呎寸,這樣做,有打開一定要做什麼事?關檔,關檔。然後最後才是什麼?end。你要逐步告訴他,開檔、迴圈、讀檔、判斷、迴圈回去、讀檔、判斷、迴圈回去,你再告訴他最後是關檔結束,這種就是procedure,好,這就procedure,這不用抄,這知道就好,這沒有語法,這沒有語法,我寫演算法,這不是語法啊,∴我剛才講過了,那個資料庫,資料庫,他這個語言叫什麼?non-procedure,非程序式語言。那這個select,要注意,這個select,就是取橫向子集,取橫向子集喔,他是取橫向子集,∴我們掀出來是抓一個,抓一個橫向。 …這黑板寫到這裡喔,就差不多了,這一個是第二個主題,結束了,我們待會講第三個主題,這剛才講到那個select喔,∴這邊有一個比較重要的東西,我先講喔,像說第四個喔,我現在,第4個註解,先等一下,這邊有一個叫SQL,這是現在很重要啊,現在滿重要的,這邊有一個叫Structure Query Language,這是SQL,S-Q-L,什麼叫Structure?就是結構化。Query就是查詢,好,Language,語言,他是屬於非程序式的,剛才看過了喔,他是屬於非程序式的,利用這3個運算子,select、project、join,select是不是叫選擇?利用這三個去抓資料庫裡面的資料,∴select是不是選擇?取橫向子雙,什麼叫橫向?像我今天要看的,剛才講的,我要看的,假設喔,看個及格的,注意聽,看及格的,是不是這一個?及格的資枓,這樣抓,就屬於橫向,那要抓出來是靠誰抓?select。我抓這個及格的人的資料。 那我現在假設我不是導師,∵我是導師,我要看這個到底誰及格、誰不及格,我現在不是導師,我是教國文的,注意聽,我教國文的,∴我要看的只要看這一部份資料,像是我要知道王一的國文幾分,李二他幾分,張三幾分,我只要抓部份的,注意聽,抓這個部份的,∴這個叫做縱向子集,那靠誰來抓?縱向子集叫project,投影。叫project,投影。∴這邊要注意,project是投影,取縱向子集,我只要看某一部份的成績。 那第三個叫join,join叫合併,將這兩個表格合併成一個表格,這什麼意思?就像說我們這邊有一個成績,成績,好,成績表格,這成績關聯啊,另外一個是操行表格,要注意哦,這兩個,一個是屬於教務處,一個是屬於什麼?訓導處。我把這兩個表格,把他合成一個表格,那這個表格就是所謂的什麼?成績單。∵你拿到的成績單不只是成績而已,甚至還有什麼?曠課la、事假、病假有沒有?好,這個資料,∴這變成成績單la。好,底下有個考古題,先等一下,底下有個考古題,先等一下,等一下。 【考】 有一個關聯式資料庫,內有學生基本資料表格,表格的綱要,注意哦,他有個很多欄位,鋼要,就是他倒底有多少個欄位,第一個叫學號,就像我們那裡,學號,第二個就叫姓名,像哪裡的,第三個地址,有電話號碼,要注意,4個欄位,假設我們要去抓,抓什麼?學生的姓名跟電話。請用什麼指令抓?我剛才講過哦,現在幾個欄位?4個欄位。假設4個欄位,我只要抓一部份,∴用什麼抓?在這裡。對不對?project。∴用什麼?投影。這三個我們剛才講了,這個還沒講,這個以後資料庫再講,union,union,是什麼?聯集。以後再講聯集。 第6個,要注意,自然語言,什麼叫自然語言?是人,人們使用的語言。那機器啊,∴電腦,電腦這個東西喔,他沒辦法辨識這個自然語言,辨識得不是很好,∴這是那個電腦的障礙啊,好,電腦的障礙,就是他沒辦法把自然語言辨識得很好。這邊可以擦嗎?第二個主題我介紹完了,我們講第三個主題,我先把那個比較會考的主題先講,∴第三個主題講不完。 ☆ 三、波蘭字串☆ 運算式的表示有三種,第一種叫前序式,運算子在前面,…cut…像這個就是運算子在前面,子在前面,那後面這兩個是元元,子在前面,好,這叫做前序式,什麼語言是這一種的?我們剛才看郅的組合語言就是這樣,記不記得剛剛講的一個組合語言?我剛剛故意講的,這個東西,這就是什麼?運算子。這就是運算子,運算子在前面是組合語言,第二個中序式叫Infix,這個子在中間,好,這個子在中間,∴中序式是一般的,一般的語言,像我們講,乾脆這樣講,高階語言就是這個,你看到的語言,高階語言就是這一個,後序式,運算子是在後面,子在這邊,∴叫Postfix,當然就是Pre、In、Post,有時候考試喔,不可以這樣混啊,自己要拼,那後序式,有個語言叫後序式,叫FORTH,這叫符式語言,符式語言,好,這個,這個就是加分的,∴一般語言是這一種的,要注意,一般語言是這一種的,∴你要翻譯,∴我們剛剛講的,要翻譯,翻譯成什麼?機器語言。像這個要經過compile,compile要產生這一種,或者是這一種,compile要變成這一種,或者是這一種,好,∴這要注意,這是我們一般寫的,一定要經過翻譯成這一個language,或是翻譯成這一個,然後再來翻譯成什麼?機器語言。∴一般把,一般把這個高階語言翻譯成這個語言,或這個語言,然後翻成機器語言再執行,∴這種語言,速度是最快的,這種語言速度是最慢的,一定要翻成這個、翻成這個,他才執行,∴這個速度快,他把他翻回來,速度慢,∴我們,我們來解釋這個怎麼翻過去,或怎麼翻下來,我們待會馬上講。 第二個算術運算,算術子的,算術運算子,要注意,運算子的優先權,這個算術運算子很多哦,像這些都是,這些都是,我剛才舉的例子是這一個,每一種語言有不同的運算子,像C語言,我們在C語言再講。 最高是括號,左括,左括號優先權最高,等一下哦,這個叫次方,但是注意聽哦,在BASIC的次方,你找不到這個鍵,BASIC的次方,你找到是看到這種,對不對?是這一種。好,這是我寫出來的這一個,那次方在BASIC是這一個,好,這個是次方。這是次方哦,在FORTRAN,FORTRAN是乘乘,FORTRAN是兩個乘號,BASIC是這個東西,FORTRAN是乘乘,FORTRAN是乘乘。 好,再來,第三個,乘、除,第四個昃倒斜線,除法,好,倒斜線除法是整數除法,這要取商數,∴我舉個例子啊,像說這兩個,我舉個例子,好,舉個例子,像說6除以這個,還有6,好,6除以這個,6是MOD這個,那會等於多少?這個除這個,你要求是,這邊哦,1,∴這商數是1,∴這是1,那餘數是2,∴這邊是2,這是2,∴一個是求商數,一個是求餘數,這都是除法,求商數跟求餘數,好,那最差最差是這個加、減,好,加減是最差,∴優先權相同的時候,優先權相同的時候是由左至右,像這個就是啊,這兩個是一樣,這兩個一樣,∴由左至右,∴我們解出來應該是這樣,這個先進來,再減這個,要要注意哦,但是這個例外哦,次方是例外,這個是怎麼做,這是2、2、3,∴怎麼做?2的什麼?上面這個先做,∴等於什麼?2佰5拾6。∴這個先做,再做這個,∴我剛才講是由左至右,這個例外,∴在電腦裡面,這裡有一個,專有名詞,這叫什麼?左結合。這個先做左結合,那這個先做叫什麼?右結合。這個先做是右結合,一般來講,都是左結合啊,但是C語言比較多說法,什麼叫左結合?我剛才講了,左邊先做。那右結合,右邊先做,好,右結合,好,你先抄,我們再來講這個例子。好,等一下,不要抄哦,真的不要抄哦,這個聽不懂就麻煩了,不要抄,等一下,先聽我講,…,這個跟這個比,誰高?要注意哦,要由,從左邊一直看過去哦,這個跟這個比,誰高?這個高。∴這個跟這個比,這個高。這邊又跟他比時,還是這個高,好,決定了,我比你高,我又比他高,那麼我最高,是不是最高?喂!你不要看到後面去啊,電腦沒辦法看到後面去la,∴我比你高啊,我又比你高啊,∴是我最高。這個就是比誰高?除跟加比,誰高?除高嘛。∴這個高。好,再看這個哦,這個跟這個比,誰高?乘高嘛。是不是乘高?乘跟減,又是乘高,∴是第三個,加跟減怎樣?一樣。加跟減一樣高,由左至右,∴這第4個,那你開始懷疑了,等一下不看這個,這個不是比他高嗎?不對。電腦沒辦法看那麼後面,∴電腦從這邊掃,掃到我們可以決定,你比較高,就你先做,你先做,再來,這個跟這個比,誰高?乘高。∴這邊是5,∴這邊這個是6,∴假設你有補過那個4技二專的,拜託,一定要改,∵那個4技二專他並不是跟你這樣講,他是亂教的哦,一定要照這個方式來做,∴這邊要注意哦,這裡,這個最高是這一個,∴怎麼辦?C,A,這個要採用的是什麼式?後序式。CA次方。C,A,次方。好,再來呢?D,D跟這一串,這變成一串哦,這一串跟D怎樣?相除。D,跟這一串做什麼?相。喂!什麼叫什麼後序式?就是把運算子放在後面,叫做後序式。B跟C,相乘。B跟C,相乘,這一段做好了。再來,這一大串跟這一小串做什麼?相加。這一大串跟這一小串相加。好,再來,這兩個做什麼?相乘。好,左邊這一串跟右邊這一串做什麼?相減。左邊這一串跟右邊這一串做什麼?相減。這樣解釋好了,這聽得懂嗎?這聽得懂嗎?開始霧煞煞哦,來,你先抄,我再講一次,你先抄,我再講一次,這一定要聽懂。 這個先做,這個先做,那怎麼做?C、A,這個放在後面,次方。這應該沒問題吧?好,再來要注意,這一個跟這個比,這個高,第二個比,那這個要怎麼做?他跟他做什麼?除。∴他,他跟他做什麼?除。這應該沒問題吧?好,這個,這個做完之後,把他擦掉,我們用這個來寫好了,T1,這個就是T1喔,再來,這個跟這個比,這個高,這個跟這個比,這個高,∴這個就做第三個喔,第三個,B跟C怎樣?相乘。這應該沒問題吧?好,這個跟這個怎樣?一樣高。這個呢?T4。∴這一段叫什麼?T1。跟這個做什麼?相加。這應該沒問題吧?好,這邊我擦掉了。這邊會有一個題目,就這一串嘛,就這一串嘛,再跟這個比啊,這個高,∴排第五個,∴這邊變什麼?變T5。相乘,好,最後做什麼?減。這一串跟這一小串相什麼?相減。看得懂嗎?可不可以?可以哦。好,這個沒問題,注意聽哦,我剛才講了,為什麼要轉成這個式子?為什麼要轉成這個式子?∵要開始做什麼?執行。電腦執是執行這一種,我們現在講這個執行是執誰?這叫做什麼?直譯器。電腦,要注意哦,直譯器,直譯器就先把這種東西翻譯成這個東西,然後,馬上再做什麼?執行。∴直譯器是什麼呢?他是邊翻譯邊執行。…change B…。 【上卷B面】 好,這要注意聽,來,等一下,不要抄,來,從左邊找起,若遇到運算子,遇到運算子,則取前面兩個運算元做運算。聽好哦,從這邊開始掃,掃…掃,這個叫子,掀起來開始做運算,∴這邊得到一個什麼結果呢?在這邊得到一個這樣的結果,這變成T,T1,這個變成T1,好,除以BC乘,加DE乘減。好,那這邊,這邊告訴我們說怎麼做?這個東西的做法,誰跟誰做?C做什麼?次方。∴C,這個T1是什麼?CA次方。C的什麼?A次方。C的A次方喔。好,再來看第 二個,∴前面不動,T2,這邊T3,這邊加DE乘減,什麼叫T3?T3就是BC怎樣?相乘,B乘C啦。B乘C,好。 再來這邊,掃…掃,掃到這邊,好,這裡怎麼做?這叫T4,DE乘治,∴這邊T4,T4是什麼?T2,T3相加。T2加T3,T2加T3,∴這變成T4,好,掃…掃,掃到這邊,碰到這邊,停,∴T4,T5減,什麼叫T5?T5呢?T5就是DE相乘 啊。相乘,D乘E嘛,D乘E。好,最後,T6,什麼叫T6?就是什麼?T4,T5乘、加,你看這裡,次方、除、乘、加,你看,再來這邊,乘、減,沒錯吧?再來這邊是減,沒錯吧?好,你抄一抄…下課。 【下卷A面】 次方高,對不對?是不是次方高?∴這邊做什麼?CA,次方。CA次方,CA次方啊。然後,注意哦,再來這個跟這個比,誰高?除高。對不對?∴除。∴這邊D,D跟這個做什麼?除。然後,再來,注意,這個加跟乘?乘高;乘跟減?乘高。∴注意第三個,B跟C怎樣?相乘。B跟C啊,相乘。好,這邊加跟減呢?一樣高。由左至右,∴說第4個,這一串跟這一串做什麼?相加。對不對?∴這一串跟這一串做什麼?相加。好,然後,再來,這個跟這一個呢?這個高。∴這邊第五個,D跟E?D跟E?相乘。好,最後一個,最後一個是前面這一串,跟後面這一串做什麼?相減。∴前面這一串,一大串,跟後面這一串做什麼?相減。∴有沒有問題?有沒有問題?沒有ho?沒有ho?今天不考試la,下禮拜不考試la,有這個週考哦。 這是check哦,我們再看這怎麼執行啊,要注意哦,前序式執行,這怎麼執行?遇到2個運算元,則取前面運算子作運算,注意哦,遇到2個運算元,∴找…找,這是一個,不夠,找…找,咦~,這連續兩個,注意,連續兩個,連續兩個,∴抓這個出來做運算,∴這邊是減、加、除、D、T1、乘BC、乘DE,好,這邊T1啊,就是這個喔,C、A次方。∴等於他,我們再做,再做下一個,從這邊掃…掃,第一個,不夠,第2個抓進來,前面有運算子,減,加,這邊呢?T2。乘BC、乘DE,∴這邊要注意哦,這T2就D除以T1,T2就是D除以T1,∴是除DT1,D除以T1,好,然後,再來,掃…掃,掃到這邊,連續兩個,∴抓到這個,∴這邊減、加、T2、T3、乘DE,∴這邊T3,乘BC,B乘以C,做完給T3,好,再來,連續兩個,抓這一個,∴這邊是減T4,乘DE,∴這邊是T4,就是加T2、T3,好,再來這邊,掃…掃,掃過兩個,抓前面那一個,∴這邊減T4,這邊T5,∴T5是,這邊是乘DE,D乘以E,好,D乘以E,最後,變成什麼?T6。T6就誰?T6就是減T4T5。好,那這邊做什麼?次方、除、乘、加、乘、減。你看這裡,次方、除、乘、加、乘、減,沒錯吧?好。等一下,等一下,等一下,等一下,等一下再抄,等一下再抄,我們講這個主題的目的,要解這些題目,現在要注意聽,要解這些目,∴考古題第一題,注意聽哦。 這是管4考的,但是注意看哦,這個題目對錯?出對?出錯?這種題目也出出來,這個運算子放在前面就不是前序式,∴這題目出錯,當時送分,有夠誇張la,這前序式,題目出錯,那不管,我們不管對錯,要解,要怎麼解?把這個題目拿來,這要解怎麼解?這題目太簡單了,從前面掃…掃,抓到這裡來了,抓到前面這一個,對不對?∴得到什麼?除、乘。3加5,成了什麼?8。好,再來,掃…掃,碰到兩個,抓前面這一個,∴這除,8乘6,48,∴最後,這邊呢?多少?48除以12,多少?4。這聽懂嗎?∴答案多少?答案這一個。等一下,暫停,暫停,稍等一下,註解,我們剛才講這是把中序式轉成序、後序,對不對?請問,這個前序轉成,前序,請問轉成中序,怎轉?注意聽,前序轉成中序,怎麼轉?怎麼轉?一樣。把他當這裡啊,怎麼做?誰先做?從,從這邊,誰先做?3加5先做,對不對?照寫啊。3加5,我們再來做什麼?3加5不是8嗎?對啊。8乘6,但是這一定要怎樣?括號起來。這聽得懂嗎?括號起來。然後,乘6之後變成什麼?48。48再除什麼?除12嘛。是不是這樣?聽得懂嗎?等一下再講。好,你先抄,你先抄,我等你。 …cut…就是要介紹這個,你看這種題目書本上從來沒有講這樣,後序式要變什麼?前序式。平常都是講中序轉成前序、中序轉成後序,現在是後序要轉成什麼?現在要轉成前序。那要看怎麼轉?這個抄完,我再解喔,你如果下課有問題,你真的要留下來,不要…cut…,轉成什麼?前置式。我們看後置式,你要轉的時候,我記得剛才這樣講,這裡,這第一個,對不對?∴這怎麼做?T1,這邊C乘D,∴這邊啊,T1是什麼?你這樣寫,T1是等於A加B,好,那這邊寫A加B的時候,注意,我們這邊順便寫,這個什麼?A加B。AB加,這看懂嗎?AB加。然後再來,這個再掃…掃,碰到這個,這變第2個,第2個,∴這邊得到什麼?T2,T1乘以C,∴這邊是T2。然後DE,∴T1乘以C,∴跟這個怎樣?T1就在這裡,跟這個怎樣?相乘。跟這個相乘。然後再來,掃…掃,掃到這裡,∴這是第3個,這第3個啊,∴這邊呢,D減E,DE相減,好,∴這邊T2、T3,然後,再來,這邊是T4,T4誰?這一組的。∴這邊T2除以T3,變成什麼?T4。∴T4、F、加,∴T2跟T3,T2在哪裡?T2是這一段。那T3在哪裡?這一段。∴這兩個做什麼?相…相除。好,最後,T5,T5,這個是第5個,T5是什麼?T5是T4加F。∴這是T4加F,∴這一串叫T4,跟F怎樣?相加。好,答案出來了,你看答案選誰?加、乘、除、加、abc、減def,答案選誰?選C。∴這題答案選C。你先抄,我再講…考3,還有考3,這個考那個腦筋急轉彎啊,這可以擦嗎?能不能擦?這邊擦掉啊,好。…cut…,答案誰?A、B、C、D?A不對啊。B啦。為什麼B?你看這題目出得多好玩,這個出得太善良了,你只要看這個順序就好了,ABCDE,然後啊,我剛才不是講了嗎,你看再怎麼做?不管怎麼做,這一定,次序都會這樣啊,你看英文字是不是都會這樣?會不會調?不會調la。∴你看這要腦筋急轉彎,那我們真的來做好la,真的來做…,聽得懂我在說什麼嘛,這個不用做la,我們看這個圖做,來,這個圖,這個,乘碰到括號,括號先做,加碰到除,除先做,除碰到括號,括號先做,D、E,這要後序式,對不對?相除。這個比這個高,C,除以這個東西,C跟這個東西怎樣?相除。這個比這個高,有個括號嘛,∴這個,B跟後面這一段怎樣?B跟後面一段相加。然後這個是,A跟後面這一段怎樣?你看,你看對不對?ABCDE。後面不用看了,一定對,有沒有?你先抄,我再講這一佪…二技滿難考的,這一塊要好讀讀哦,這一科你要考資管研究所,這一科必考,那個資管研究所考三科,一科叫做統計,統計你要多下一點功夫,第二科叫mis,第三科叫計概,∴這一科你一定讀通啊,好,那這個要怎麼做?來,這一個,這一個跟你講的很詳細,你要把這個式子轉什麼?後序式。然後最後用堆疊來完成,月堆疊來完成,∴這裡有一個機器叫什麼?stack machine。好,stack machine,堆疊機器,堆疊機器的第一個步驟,你要把中序式轉後序式,中序式轉後序式,∴剛才已經講了,這個碰到括號,括號先做,這個碰到這個,這個先做這個碰到括號,括號先做,第一個,∴這邊,這邊先註明,先減,兩個東西先減,再什麼?加。然後再乘以?然後最後一個是什麼?最後乘。好,最後乘,A跟這一串怎樣?相乘。這剛才講過,第二個要注意聽,第二個轉組合語言,第二個步驟轉成組合語言,好,這個轉成組合語言怎麼轉呢?碰到這個東西,注意,碰到這個東西,就寫push,push A,碰到這個運算,運算元,寫push B,然後,push C,然後,push D,然後,push E,然後碰到這個減,寫subtract,碰到這個除,寫divide,碰到這個加,寫add,碰到這個乘,寫multiply,∴後面我們會講到一個規則,這些東西,∵有一個,…這個叫運算元,好,這是指令,∴叫一個位址,他有這種東西,叫一位址,一個位址,這些,到這裡,到這裡,要注意,這種叫零位址,∵他除運算子以外,有沒有位址?有沒有ABCD?沒有。∴這種叫零位址,這種叫零位址,零位址,好,你先抄,我等你,我符會要講這個怎麼執行,…cut…你看你們是不是用hp的,我知道好像有兩個學校用hp的,不過一般現在學校都不用大電腦,全部都用微電腦,便宜啊,現在比較便宜,微電腦比較便宜,…cut…若遇到零位址的指令,則從stack取出2個運算元,做完運算,再壓入stack,等一下,等一下,注意聽,∴第一個,第一個指令叫push,這不是零位址,∴把他壓進去,這本來是空的,聽好哦,本來是空的,∴我現在把他壓進去,A壓進去,這有一個指標指過來,指到這個位址,A壓進去,push B,本來有個東西,再壓個B進去,這個指過來,我把東西丟進來,∴再緊接著是那三條C、E、D,我不要分解動作,省一點時間,∴我這三個,我畫一個圖,本來是有A有B,指標本來指在這裡,你push C,指上來,指上來,壓C;push D,指上來,壓D;push E,指上來,壓、壓E進來,∴這3個動作你push、push、push,push、push、push,好,這做完了,好,看第,第六動作,第六動作做什麼?做subtract。∴我寫在這裡,subtract,subtract怎麼做?裡面有A、B、C、D、E,對不對?A、B、C,你這邊彈,彈兩個,彈出來,彈兩個,E先彈,彈出來在右邊,先彈,在右邊;後彈,在左邊。這兩個要做什麼?減法。減法減完之後變成什麼?T1。∴剛剛講了,遇到零位址指令,這就是零位址指令,則從stack取出兩個運算元,pop、pop,pop出來,先放在右邊,後pop,放在左邊,然後,這邊呢?作完運算再壓入stack。作完運算,壓入stack,∴這邊T1,這看得懂嗎?好,你先抄,沒有黑板,你先抄,我要把上面擦掉啊,…cut…再講,這要注意聽哦,divide寫在這裡,那注意哦,divide怎麼做?先彈兩個,彈、彈,∴先彈在右邊,後彈在左邊,好,這個做什麼?除法。∴變成什麼?T2。做完再把他壓進去,∴A、B,然後這個把他壓進去,壓進去變成什麼?T2。好,又碰到加,碰到加,再彈、彈,彈出來、彈出來,∴T2彈出來,這邊B彈出來,兩個做什麼?做加。∴這個做完變成什麼?T3。∴這邊有一個叫A,然後這邊呢?有一個T3。這邊是T3,好,這個碰乘,一樣,再彈,彈、彈,∴T3,這邊是A,這兩個做相乘,乘好之後變成什麼?T4。∴空的,這個堆疊空的,∴現在討論指標指在哪裡,然後這邊是什麼?T4。好,這邊結束了,這有沒有問題,先等一下,他最多幾層?同學,最多幾層?這個,這個例子,對不對?這個我去移動…一層,這個兩層,這個呢?這個5層。那邊呢?這邊呢?4層。4層,這邊呢?3層。2層、1層。∴最多幾層?5層。5層,答案寫誰?A、B、C、D?C喔。好,外面書寫錯哦,外面寫那個D的,出錯了,…cut…,我教你做一個特殊方法,剛才寫了一堆啊,等一下,同學,等一下啊,看這個特殊方法la,不要抄la,特解ne,特解ne,不要抄la,不要抄,剛才那個是做學問的啊,不適合考試啊,要是你考研究所,拜託,考研究所,要一步一步寫,”叭”一聲,打叉,沒有分數,研究所考問答題,當然有選擇、是非la,但是這選擇、是非都不太好選la,除非比較差的學校啊,像什麼銘傳la,那都很好選,但一般都很難選,我們看這要怎麼做?這注意聽哦,這個,乘碰到括號,括號先做,∴注意,A做不下去,A做不下去,忍耐,就我不能做,我不能做,我就讓你先做,好,那注意,括號,B+C對不對?但是加,注意哦,加,加一定要等到乘做完,對不對?∴這兩個又不能做,忍耐,忍耐。好,我們直接寫好了,好,這個A,A碰到B不能做,然後,這邊又忍耐,C,這個加C,又不能,∵這個比這個高啊,忍耐,好,再來,碰到除,除又碰到括號,是不是括號高?對。A、B、C,但是,碰到D的時候,D能不能做?不能做。一定要碰到運算子才能做嘛,這D放進去,好, 然後再來,∴這 要壓進去,是不是全部壓進去了?好,那現在誰可以做?這一個喔?好,∴我教你看,忍耐、忍耐、忍耐,這個先做,前面合部都壓進去才能做,∴碰到什麼?碰到減,減怎麼做?減怎麼做?彈、彈。是不是彈、彈?彈、彈。∴減喔,就是這個接。碰到減,就是彈、彈,D,減這個E,T1,是不是壓進去?壓進去就A、B、C、T1。好,再來碰到誰?這個。是不是這個第二個?∴碰到這個,這個除,這個除,∴碰到除,他除,除怎麼辦?彈、彈。T1、C、除。∴這邊變什麼?T2。A、B、T2。然後,再來,再來是這個做,∴要變成什麼?要變成加。∴這兩個又是什麼?注意,這兩個又是什麼?相加。T2、B,相加,做完之後變成什麼?T3。A、T3。好,最後一個叫什麼?乘。乘,好,直接寫了,這邊T幾?T4。 ∴最多幾層?答案是5層。這看懂嗎?這看懂嗎?其實你功力更高,你根本都不用做,這都不用做,壓、壓、壓、壓、壓、吐、吐、吐、吐,對不對?壓到哪裡?這個跟人不是一樣,一直吃、一直吃、一直吃嘛,吃到飽,就吐嘛,∴壓、壓、壓、壓、壓,壓到很撐嘛,就吐、吐、吐、吐,對不對?∴就是幾層?5層。∴功力高就不用做嘛。 但是,不是每個都能夠看出來哦,請問最多幾層?你不要亂看哦,你不要壓、壓、壓、壓、吐、吐、吐、吐,你自己吐就好了,最後最多幾層?3層。壓、壓、壓,這要怎樣?吐、吐嘛。這邊不是吐了嗎?有沒有?A,你這樣看嘛,A加B乘以C, 這個比這個高嘛,∴這兩個一定要做嘛,壓3個,然後彈幾個?2個。∴要幾個?一個。對不對?乘下2個,叭乘2個,對不對?∵你壓、壓、壓,做完之後,這邊又怎樣?吐、吐。但是又要壓一個進去嘛,∴現在幾個?2個。然後,再碰到這個的時候,決定這個啊,吐、吐,再壓進去,剩下幾個?一個。再壓這個,對不對?對不對?剛剛不是有說壓這個嘛,壓這佪,然後再怎樣?再吐。∴最多幾個?3個。對不對?看得懂嗎?同學看得懂嗎?這都…較不好做ne,A;A、B;這個是什 麼?A、B、C。再來什麼?乘。再來什麼?A、T1。再來呢?再來是減,對不對?這個A再來減,對不對?減的時候,加先做,∴變什麼?T2。這個變什麼?T2、D。再做什麼?減。變成什麼?T3。對不對?看懂嗎?∴最多幾層?3層。 ☆四、語言的執行流程☆ …cut…要注意哦,機器語言,0或1喔,等一下,我先講一下la,我先講一下la,∵我這要擦掉la,我要寫下一個,0或1就叫機器語言,要注意,經過執行,這裡要注意哦,這個剛剛講過了,這個電腦認識,電腦認識0跟1嘛,∴不需要翻譯,不需要翻譯,可立即執行,∴我們講過囉,這個速度怎樣?要注意哦,這個速度最快,這速度最快,不需要翻譯,可立即執行,∴產生執行結果。 好,第2個叫Interpreter,Interpreter是直譯器,直譯器啊,Interpreter方式高階語言的執行流程,∴Interpreter的呢,這直譯器,他輸入的語言叫高階語言,High Level Language,這叫高階語言,高階語言,像BASIC,BASIC、LISP、PROLOG,注意,這三個語言,這一定要懂,這個是考古,這個考古題,LISP、BASIC、PROLOG,要注意哦,這組是邊譯邊執行,不產生目的碼,這是重點,他不會產生目的碼,什麼叫做目的碼?目的碼就是AAA.OBJ這種檔案,OBJ這叫什麼檔案?可能會產生中間碼,可能哦,可能哦,像有些東西,他也不會產生中間碼,就直接執行,他不產生中間碼,∴我這邊寫”可能產生中間碼”,就是那個後序式,或者什麼?前序式。就是AB+,或者加什麼?AB。∴為什麼我剛才先講那一個,再講這一個,這叫中間碼,不會有目的程式,但是會有中間碼,好,這個是邊譯邊執行,∴最後得到執行結果,這也是考古題,記得啊,考古題,好,你先抄,我再來講這流程圖,左邊能擦嗎?左邊能不能擦?你要註解,趕快註解,否則要擦掉了,…cut…,先等一下,我先講啊,同學,先等一下,先等一下,…這邊要注意哦,這邊就是你打開電腦,注意,打開電腦之後啊,第一個步驟,就是控制流程,第一個步驟之後,編輯,∴什麼叫編輯啊,這一個人,我們就想到一個人,人在那邊敲敲打打,在那邊寫一個好了,再寫一個那個註解,敲敲打打,要注意,這個什麼叫編輯?接受使用者命令,接受使用者編修命令。什麼叫編修命令?編輯,有錯回來,修改。∴什麼叫編輯?接受使用者編修命令。產生一個來源程式。∴人在這邊打一打、打一打、打一打,key in竟然能產生一個程式,這是一個檔案,這是一個檔案,這是一個檔案,∴這個流程圖符號,這一個長方型叫處理符號,這叫處理符號,這一個呢?叫線上磁碟符號。線上磁碟,∴人在這邊敲敲打打,產生這個檔案,產生這個檔案,然後注意哦,這個步驟做完之後,再進入這個步驟,叫執行,∴敲完這個程式之後,經過這個來RUN,∴你看這個步驟就完成了,RUN,RUN出來產生這個檔案,但是,RUN之前一定要把資料先建好,∴這裡有一個叫Input Data File,建好之後再RUN,RUN產生AAA點out,AAA點out叫output data file,輸出資料檔案,這個檔案不曉得對不對,假設對的話,馬上就怎樣?關機離開。萬一不對,糟糕,馬上又回頭,再修改,什麼錯?可能為一種錯,叫SYNTAX,叫語法錯誤。另外一種叫邏輯錯誤,可能是語法錯,可能是邏輯錯,∴回到這裡,再修改,修改完之後產生這個檔案,再RUN,產生這個檔案,有錯,再修改,∴在這邊來來回回做了好幾次,注意哦,這什麼符號,這是連接符號,∴這個很像電動玩具,超級瑪琍,有沒有?從這邊,有錯,跑到這個,水管,然後,從這個水管跑出來,有沒有?這樣,來朲回回做了好幾次,好,最後,沒錯離開。注意哦,這什麼符號?這叫做起始跟停止,∴叫起始跟停止,橢圓的符號,叫起始停止,叫起止,∴起始跟停止叫起止,處理,處理,好,這裡能做什麼?這叫什麼符號?判斷,決策,分支。我寫一個就好,注意聽,判斷,決策,分支,判斷,決策,分支。這叫,這叫連接符號,這個箭頭叫什麼?流向符號。流向符號。∴這邊呢,要兩個步驟,一個編輯,一固RUN,兩步驟,兩個步驟,要幾個檔案呢?會產生AAA.BAS,還有哦,AAA.IN,要有那個檔案,然後要有這個檔案,∴注意我哦,兩個步驟,三個檔案,他需要三個檔案,∴這有三個檔案,那這個 頭,叫控制流,這個虛線,叫資料流,這叫流動,好,你要補什麼,趕快補,我待會解左邊這邊註解。 …cut…,那這邊告訴我們錯誤有兩種,錯誤有兩種,一種叫做語法錯,∴叫syntax error,不合語法,不合語法的錯誤,如關鍵字拼錯,像這個,什麼叫錯誤診斷書?假如說你打這個啊,你打這個,你打這個,10 LAT A等於3,按Return,然後RUN,按Return,電腦罵人了,注意看,電腦罵人了,電腦罵人了,電腦馬上講一句話,叫syntax error in第10行,他告訴你這個,很多人都看不懂啊,in 10就是這個錯,語法錯一定是這種錯,知道嗎?∵你這邊沒錯嘛,∴這個叫什麼錯?這就是關鍵字拼錯,這就關鍵字拼錯,應該是什麼?英文太差了吧,LET啊,對不對?LET拼錯。這個最嚴重是在那個COBOL啊,COBOL是不是很多英文字?好,最嚴重了,尤其英文不行,更麻煩,好,∴這裡啊,這裡是關鍵字拼錯了,那注意哦,這個叫錯誤診斷書,錯誤診斷書,第2個叫邏輯錯誤,logic error,要注意,執行結果跟預期結果不符合,不同的時候,好,叫做邏輯錯誤,利用debug,debug程式,應該玩過那個visual basic嘛,他的debug程式,run visual c++,也有debug程式嘛,好,這就debug程式,那什麼叫做邏輯錯誤?邏輯錯誤,程式可以RUN,但是RUN起來很奇怪,像這一個,我舉個例子講,我剛做這個,注意聽,我剛做這個啊,這是註解,這註解,1加2,加到10,好,這個註解,好,這要注意,這C語言的註解,聽好哦,這C語言的註解,但是你寫程式怎麼寫?程式這樣寫,這個sum,等於0,for I = 1,I小於10,I加加,然後這邊寫一個sum,加等於I,這樣看得懂嗎?這看懂嗎?C語言啊,C愈記猧齪為出名啊,好,什麼叫猧齪?這叫sum等於sum加I,對不對?他偏偏寫成sum加等於I,有沒有?這個東西,∴讓大家都看不太懂,然後寫的人就勵害了,其實啊,這個很簡單啊,那在這邊哦,我這邊註解是說從1加,加到什麼?加到10耶。但是注意,你看這程式可以跑,對不對?這程式加到多少?沒有到10耶。I小於10,只能做到什麼?9啊。看懂沒有?sum等於0,加1,回來,加加,變2,加加,3,加加,4,有沒有?一直加、一直加、一直加,加到什麼?9嘛。不要緊張,C語言我會教,不要緊張,∴他不會,不會加到10,∴出來只有什麼?1加2,加到9,∴等於什麼?45。∴哪裡錯了?這個地方錯了。∴這佪地方錯,就少做,少做兩次啊,∴這種叫邏輯錯,可以RUN啊,可以RUN,你們注意聽,可以RUN,但是RUN出來的答案怎樣?不一樣。∴這邊應該加個什麼號?等號。要加個等號,這看懂嗎?C語言看懂嗎?沒關係,看不懂沒有關係,會講,有一章專門講C語言,好,先不要急,我先讓你看到,什麼叫邏輯錯誤?利用debug來更正。好,你要補,趕快補,我要…cut…,這邊喔,要很遙遠喔,系統流程圖,什麼叫系統流程圖啊?扼要描述整個系統工作情形,∴我先畫一個出來,像說你可能會有一個程式,現在一般人不會畫這種圖的la,一般人都不會畫這種圖la,像說這邊有一個update,你不是做一個很大的程式嗎?你做一個很大的程式,到底怎麼做出來?∴每一個、每一個步驟都要寫出來,像這個是寫更新啊,你在做這個薪資系統裡面,薪資啊,算薪費的,薪資系統裡面最重要的一個部份就是更新嘛,好,最近又要調薪了嘛,物價又要波動,食物漲價,全部都要漲嘛,對不對?連這個電費、水費,連車票都要漲了嘛,有夠無聯…我們看這個哦,這個,這個是舊主檔,這邊就異動檔,這是人事資料檔,你要調薪啊,公家機關是每個人都調la,∴這邊檔案會很大,那私人機關是只能調幾個,只能調幾個,∴這裡異動檔,那調好,這邊要注意,經過一個程式,這程式就是要更新,∴你這邊來一個這個,那這是什麼?新的主檔。這是系統的一部份啊,不是一個系統哦,是系統的一部份,你的系統一定很大啊,薪資處理系統,薪資處理系統包括什麼?其實做資料處理最好做la,∴資管要做程式不好做,不要怕說不會寫程式啊,你把別人程式拿來而已,你做什麼?建檔。對不對?建檔,然後呢?加入。建檔嘛,然後加入,景氣要加入員工,不景氣要什麼?減少員工。不要說開除員工啊,需要做什麼?刪除。再做什麼?更新。有沒有?這些動作而已啊,然後還有最後一個動作就是什麼?壓縮。∵你常常翻成資料,要做什麼?壓縮動作。好,∴注意哦,這系統流程圖,扼要描述整個系統,工作情形。 第2個叫資料流程圖,這個你現在看不到,在我們這一章沒講到,系統分析的工具,我們到時候會講,軟體系統發展步驟之一,發展步驟之一,假講到這裡啊,就差不多這一章快結束了,∵你要接一個大系統,這個告訴你中間要去,他們要寫一個大程式,有沒有?假設我今天,我公司要自動化,你幫我寫,你要怎麼做?第一個步驟,要調查規畫,第二個步驟,要系統分析,第三個步驟,要系統設計,第四個步驟,程式畫分,第五個步驟,系統測試,最後一個步驟,系統建設,我們到時候會講la,到時候會講,∴系統分析的工具,是這一個,我們到時候會講,我這很多啊,這以後都會講完,這一章的最後,這個會考。 程式流程圖,描述整個程式的邏輯結構,這個步驟做完,打這一個,這個步驟做完,看有沒有錯,有錯就上來,沒錯就離開,∴這個是整個程式的什麼?邏輯結構。其實這種也是我們剛才講的,就是類似什麼?薪水的系統啊。一步步完成,那不止啊,喂,同學,流程圖只有這幾個嗎?流程圖這幾個就好考la,流程圖一堆,對不對?是不是一堆?以後再講啊,我今天不要講了。…cut…第三個,剛才第三個啊,要注意,第三個註解,是編輯程式,接受使用者編修命令,要注意,編修,”編”就是編輯,”修”就是修改,接受使用者編修命令,產生一個來源程式,好,來源程式就是我剛才講,就是source program,就是aaa.bas那個東西,那不止哦,source program不一定aaa.bas,現在比較不教,aaa點什麼?pas。aaa點什麼?c。好,compiler方式高階語言的執行流程,compiler叫編譯器,編譯 器,∴這邊也是一樣,高階語言,High Level Language,像Pascal、C、Visual Basic,注意聽哦,Visual Basic是屬於什麼?Compiler不是屬於Interpreter,要注意,Visual Basic,你懷疑,你回去看相關…看他會產生.obj,Visual Basic這種東西其實就是Quit BASIC,比較早的時候會有一個QBASIC,QBASIC,Quit,快速BASIC,再加什麼?Visual Basic是不是有?旁邊有物件指標,有沒有?旁邊有很多物件嘛,他是指標,∴他是Quit BASIC加物件嘛,∴他接受這種語言,High Level Language,經過compiler之後產生什麼?Object Code。這叫目的碼,目的碼,叿者有人叫目的程式啊,這個目的程式裡面就是0跟1的東西,好了,我們今天講到這裡了,然後禮拜天,禮拜天記得一點半上課。
相簿設定
標籤設定
相簿狀態