第四課簡單的分支結構程式設計

2021-07-14 16:02:39 字數 4607 閱讀 7543

在現實生活中,我們每天都要進行根據實際情況進行選擇。例如,原打算明天去公園,但如果明天天氣不好,將留在家裡看電視,也就是說人會根據條件進行行為的選擇;計算機也會根據不同情況作出各種邏輯判斷,進行一定的選擇。在這課與下一課中,我們將會發現,我們是通過選擇(分支)結構語句來實現程式的邏輯判斷功能。

一、pascal中的布林(邏輯)型別

在前面,我們學習了整型(integer)與實型(real),其中integer型資料取值範圍為-32768到32767之間所有整數。而real型資料取值範圍為其絕對值在10-38 到1038 之間的所有實數,它們都是數值型的(即值都為數);布林型(boolean)是一種資料的型別,這種型別只有兩種值,即「真」與「假」。

1、 布林常量:在pascal語言中「真」用ture表示,「假」用false表示,所以布林型別只有true與false兩個常量;

2、 布林變數(boolean):如果我們將某些變數說明成布林型,那麼這些變數就是布林變數,它們只能用於存放布林值(ture或false),例如,var a,b:boolean;

3、 布林型別是順序型別:由於這種型別只有兩個常量,pascal語言中規定ture的序號為1,false的序號為0。若某種型別的常量是有限的,那麼這種型別的常量通常都有乙個序號,我們稱這種型別為順序型別;如前面我們學過的整型(integer),以及後面要學到的字元型(char)都是順序型別;

4、 布林型別的輸入與輸出

a)、輸出

var a,b:boolean;

begin

a:=true;b:=false;

writeln(a,b);

end.

結果:truefalse

b)布林型別變數不能直接用讀語句輸入:布林型別變數不能通過讀語句給它們提供值;事實上,我們可以通過間接方式對布林變數進行值的輸入,最常用的就是通過賦值語句

例如,以下程式是錯誤的

var a,b,c:boolean;

begin

readln(a,b,c);

writeln(a,b,c);

end.

又如:var a:boolean;

begin

a:=3>7;

writeln(a);

end.

二、關係表示式與布林表示式

1、什麼是關係表示式:用小括號、>、<、>=、<=、=、<>將兩個算術表示式連線起來的式子就稱為關係表示式(比較式),如:3+7>8,x+y<10,2*7<=13等都是關係表示式

2、關係表示式的值

很顯然,上面幾個關係表示式中第乙個是真的,第三個是假的,而第二個表示式可能是真的,也可能是假的;所以我們很容易發現,這些表示式的值是"對"的或"不對"的(或者說,是"真"的或"假"的),即關係表達

式的值為布林值。表示該比較式兩端式子的大小關係是否成立;如3+2>6是假的,故它的值為false;同樣,45>=32是對的,故該表示式的值為true

說明:①對於》=、<=來說,只要有一部分成立,則表示式的值就為true,如:3<=4和5>=5都是真的,即值為true

②關係表示式可用於表示乙個命題。如:「m為偶數」可表示為:m mod 2=0。「n為正數」可表示為:n>0

3、布林運算及布林表示式(也稱邏輯運算及邏輯表示式):為了表示更複雜的命題,pascal還引入三種邏輯運算子:not、and、or,它們分別相當於數學上的「非」、「且」和「或」的意義這三個運算子的運算物件為布林量,其中not為單目運算,只有乙個運算物件,and與or為雙目運算,有兩個運算物件,它們的運算真值表如下:

a b not a a and b a or b a xor b

false false true false false false

false true true false ture true

true false false false true true

true true false true true false

於是,乙個或多個關係表示式用布林運算子連線起來的式子就稱為布林表示式;布林表示式的值也為布林值;根據上表我們可以總結各運算子的運算規則:

not:非運算,取反(原來為真,非後為假;原來為假,非後為真)

and:與運算,同為真則為真,其餘均為假(參加運算的兩個物件同為真結果才為真,否則為假)

or:或運算,只要有乙個為真,結果就為真

xor:同或運算,相同則為真,不同則為假(參加運算的兩個物件相同就為真,不同則為假)

請算出後面表示式的值:'a'<'a' not ('a'<'a') (3*4>6) and ('b'>'a') (3*4>6) or ('b'<'a')

注:①布林運算子與運算物件之間可以沒有空格,如:not('a'<'a')和(3*4>6)and('b'>'a')都是正確的表示式;

②用括號改變各種運算子的先後順序是非常重要的,如:not 'a'<'a'和3*4>6 and ('b'>'a')都是不正確的表示式,因為布林運算比關係運算的優先順序高,導制上面的表示式有語法錯誤,為什麼錯請想一想

③布林運算子的運算級別為:not>and>or 如:false or not true and true的值為 false,它等價於:

false or ((not true) and true)

如果乙個表示式裡出現兩個或兩個以上的運算子,則必須規定它們的運算次序,pascal規定:

①表示式中相同優先順序的運算子,按從左到右順序計算;

②表示式中不同優先順序的運算子,按從高到低順序計算;

③括號優先順序最高,從內到外逐層降低;

對於乙個複雜的表示式可能同時包含算術運算、關係運算和邏輯運算以及函式運算,運算的優先順序為:括號>函式>not>*、/、div、mod、and>+、-、or、xor>關係運算(>、=、

、<、<=、>=、<>)

對於複雜的命題,我們可以用布林表示式來表示。例如,命題:「m,n都是偶數或都是奇數」可表示為(m mod 2=0)and(n mod 2=0) or (m mod 2=1)and(n mod 2=1)。

三、簡單的if語句

1、格式

ⅰ、if <布林表示式>then 語句;

ⅱ、if <布林表示式>then 語句1 else 語句2;

注意:ⅱ型if語句中語句1後無「;」號

2、功能

ⅰ、執行if語句時,先計算<布林表示式>的值,若為true則執行語句,否則不執行任何操作;

ⅱ、執行if語句時,先計算<布林表示式>的值,若為true則執行語句1,否則執行語句2;

3、示例

1)例4.2:輸入乙個整數a,判斷是否為偶數(是輸出yes,否則輸出no)

program ex4_2;

var a:integer;

beginwrite('a=');readln(aif (a mod 2 =0)then writeln('yeselse writeln('noreadln;

end.

2=華榕超市裡賣電池,每個電池8角錢,若數量超過10個,則可打75折

program ex4_3;

var num:integer;price,total:real;

begin

write('num=');readln(numprice=0.8;

if num>10 then price:=price*0.75;

total:=num*price;

writeln('total=',total:0:2readln;

end.

3=編寫一與電腦猜"紅"或"黑"的遊戲分析:用1代表紅,0代表黑。先由計算機先出答案,然後再由人猜,猜對輸出"you win"否則輸出"you lost";為了模擬猜"紅"或"黑"的隨意性,程式中需要用到隨機函式random(n)

函式是什麼呢,例如大家都知道|-2|=2,|58|=58,那麼|x|=?

如果我們用y表示|x|,那麼,這裡y=|x|就是乙個函式,也就是說函式是乙個關於乙個或多個自變數(未知量,如上例中的x)的運算結果在pascal語言中,系統提供了許多內部函式,其中包括|x|函式,當然它用abs(x)表示;我們如果要求x2-y的絕對值,可以呼叫內部函式abs(x*x-y)即可求得;random(n)也是乙個內部函式,呼叫它能得到0~n-1之間的整數(但它不確定的,或說是隨機的);同時由於函式是乙個運算結果,所以函式的呼叫只能出現在表示式中

program ex4_3;

uses crt;

var computer,people:integer;

begin

randomize;

computer:=random(2);

write('you guess(0-red 1-black):');readln(people);

if people=computer then writeln('you win')

else writeln('you lost');

readln;

end.

練習四:

1.某車站行李託運收費標準是:10公斤或10公斤以下,收費2.5元,超過10公斤的行李,按每超過1公斤增加1.5元進行

收費。 試編一程式,輸入行李的重量,算出托運費。

2.利用本課的知識,將第三課練習的第2題作進一步完善,即:程式要能判斷輸入的三個邊能不能構成三角形(有數小於等於零、兩邊之和不能大於第三邊都不能構成三角形),若不能則提示輸入的資料有誤且不做任何計算;若能構成三角形就計算並輸出其面積。

第四課 信任

教學目標 一 知識與智慧型 1 學會本課的詞語並掌握重點詞語的用法。能夠運用重點詞語造句,組成片語。2 要求學生熟讀並掌握課文,培養學生的聽 說 讀 寫能力。3 掌握重點句型並能運用它們進行語言交際 二 過程與方法 引導學生運用合作法 查字法 掌握課文中的新詞,用問答法 討論法 分析法 合作法掌握課...

第四課圖層的應用

教學內容 圖層的基礎知識及填充圖層及填充圖層圖層的應用 教學目標 掌握圖層的基本操作 教學重 難點 ps的圖層基礎理論知識的學習 填充圖層和調整圖層的應用。調整圖層是一種比較特殊的圖層,主要用來控制色調和色彩的調整。建立調整圖層的操作如下 1 選擇 圖層 新調整圖層 命令開啟乙個子選單,在其中選擇乙...

第四課圖表製作

一 教學目標 知識方面 1 使學生掌握在excel中插入統計圖表的操作方法。2 使學生初步掌握調整統計圖表座標系的操作方法。技能方面 1 培養學生用統計圖表分析資料的能力。2 培養學生管理資料的能力。情感方面 培養學生認真 細緻的學習態度。二 教學重點 1 插入統計圖表。2 調整統計圖表的座標系。三...