C++入門基礎系列:走進信息學奧賽,什麼是布爾類型?

2021-01-20 向陽花開滿山紅

經常我們會在一些競技類知識型比賽中看到這樣的題型:對下列問題的回答只能說:是或否、對和錯等;在現實生活中,也有很多選擇項是二者選其一,比如:婚否等。

像這種是否、對錯,在計算機程式語言中,對應的就是一種真假判斷。這樣一種表示真假的數據類型,就是布爾(bool)類型。

布爾(bool)類型,只有兩個結果,即真或假。在C++中,「真」就是一種肯定的回答(肯定的、對的、是的、成立的),用單詞true或數字1表示;「假」則是一種否定的回答(否定的、錯的、不是的、不成立的),用單詞false或數字0表示。

布爾類型的結果一般出現在關係運算符、邏輯運算符、以及if條件表達式和while循環條件中。比如:

01關係運算符

C++程式語言中,有一種運算符叫關係運算符,表示兩個操作數或兩個表達式的大小、相等關係。關係運算符有六種判斷關係:大於(>)、大於等於(>=)、小於(<)、小於等於(<=)、等於(==)、不等於(!=)。其表達式最後計算出的結果就是布爾類型。比如:

int a,b; //聲明兩個整型變量,變量名為a和ba=2; //變量a的初始值為2b=3; //變量b的初始值為3cout<<(a==b) //輸出判斷a是否等於b,最後輸出就是bool類型的結果

由於a和b的初始值不相同,所以a等不等於b呢?答案是否定的,所以C++中最後計算出來的結果為0,意思就是假的、不成立 。

再比如:

bool is_bigger;is_bigger=3>5;cout<<is_bigger<<endl;

第二行:「3>5」就是一個關係表達式,計算機計算出的結果賦值給布爾類型is_bigger的變量。因為3>5是否定的,不成立的,所以就是假的結果,is_bigger得到的結果也是為0的。

02邏輯運算符

C++中還有一種邏輯運算符,可以關聯多個表達式,來構成一個更複雜的計算式子。這種運算符有三個符號:邏輯與(&&)、邏輯或(||)和邏輯非(!)。

邏輯與的意思是關聯的條件必須同時滿足(成立),其結果才會滿足(成立)。比如:我要嫁給你的條件是必須有車有房(有車 && 有房),少一樣都不行。

邏輯或的意思是關聯的條件只有一樣滿足(成立),其結果就滿足(成立)。比如:我要嫁給你的條件是或者有車或者有房(有車 ||有房),滿足一樣就行,沒有那麼挑。

邏輯非的意思就是取自反義詞。比如:非男即女(!男:在男的前面加一個驚嘆號,就表示不是男的。不是男的那肯定就是女的。),非女即男。

舉一個經典的案例:判斷閏年的條件。能夠被4整除但不能被100整除,或者能夠被400整除的年份就是閏年。如何用表達式表示出來呢?

int year,result;cin>>year;result=year%4==0 && year%100!=0 || year%400==0;cout<<result<<endl;

第三行代碼,這裡就運用了多種類型的運算符,只要含有邏輯或關係運算符,其結果就是布爾類型,要麼是0,要麼是1;0代表就是假的條件,不是閏年;1代表就是真的結果,是閏年。

03條件結構

在C++的條件結構中,條件表達式最後得出的結果也是一個布爾類型的值。如果為真,則執行if大括號裡面的內容,否則不執行,或執行else裡面的內容。

比如:判斷一個數是否為偶數

int number;cin>>number;if(number%2==0){cout<<number<<」 is even.」<<endl;}else{cout<<number<<」is odd.」<<endl;}

除了上述的三種情況,在循環結構的條件判斷中,其運算的結果也是布爾類型的值。布爾就是表示真或假的一種數據類型。非常簡單。

相關焦點

  • 喜報:太原五中學子在信息學奧賽2020NOIP及CSP-J/S中創佳績!
    甚至為了讓我們聽懂高難度的算法,義務講解數學基礎課程。在陳老師的鼓勵下,我還在線上學習了孟老師和田文杰學長的錄播課。疫情期間,我在算法的路上狂奔,老師們的耐心指導是我成長的基石。在信息這條路上,有良師為伴,感謝師恩!我會在信息這條路上堅持下去,努力走得更遠。
  • 跟我學java編程—Java布爾類型
    這裡面有個字符判斷的過程,判斷的結果影響後面程序的執行,因此程序需要把判斷結果存儲到一個變量中,用於控制程序執行不同的分支語句,這個變量的類型就是布爾類型。布爾類型是表示邏輯狀態的類型。java語言通過關鍵字boolean來定義布爾類型變量,只有true和false兩個值,分別代表布爾邏輯中的「真」和「假」。
  • 長沙好小子晚報童程童美信息學奧賽
    童程童美開設的NOIP信息學奧賽少兒編程課程,適合10-18歲的孩子。關於童程童美童程童美凝聚美國上市公司17年編程教學經驗,專注3-18 歲少兒編程教育及服務,形成了以樂高創意啟蒙課程、人工智慧編程、智慧機器人編程、信息學奧賽編程等課程體系為核心
  • 柳州鐵一中學學生2020信息學奧賽獲獎經驗分享
    這只是信息學奧賽路上的最平凡的事情,而把一切平凡的事做好即不平凡,把一切簡單的事做好即不簡單。我相信我將做得更好!相信柳州鐵一中學信息學奧賽未來更棒!這裡的未來,有你,有我!祝願柳州鐵一中學信息學奧賽今後「乘理想之馬,揮鞭從此啟程!」黃禹歷 城站高一3班在2020年全國青少年信息學奧林匹克聯賽中,我獲得了省一等獎,心情非常激動。
  • 編程入門先學什麼
    1、學什麼好呢?到了19年學Python的時候發現入門十分的容易,因為有了一門靜態語言的基礎,感覺Python入門真的十分簡單還有C#之類的學校要求學的,也是快速入門所以我個人也是覺得如果真的要入門編程,應該先學一門靜態語言掌握編程的一些基礎,之後回過頭來學動態語言也好,掌握其他語言會發現十分容易
  • 編程入門學什麼語言好?
    如果還沒想好要什麼崗位,那麼建議學習順序:java、然後c和c++、javascript、php、然後python原因:目前很多企業的項目都是以java開發的,就業崗位會多些;涉及物聯網、作業系統、硬體交互會需要c語言!
  • 學漫畫入門先學什麼?學畫漫畫入門方法
    學漫畫入門先學什麼?學畫漫畫入門方法!學漫畫要注意這些坑,最詳細的漫畫學習之路剖析!很多小夥伴在學習漫畫的時候,都沒有做好充分的準備,今天微課菌就帶大家好好了解一下在漫畫學習中的一些坑,相信對你學習漫畫手繪有很大的幫助。
  • 學插畫需要有素描基礎嗎?學畫插畫入門方法
    學插畫需要有素描基礎嗎?學畫插畫入門方法!插畫,是一種主要用於配合文字描述的繪畫類型,其目的是幫助文字描繪,增強可讀性,所以插畫是用來講故事的。那麼零基礎在學插畫之前有必要學素描嗎?今天小編就來問大家解答疑惑!
  • Scratch、Python學哪個?兒童編程怎麼學?全面解析編程(下)
    怎麼學編程1.學習的順序問題前面已經講到編程課程主要是Scratch、Python、C++、機器人類編程。建議可以先學Scratch,然後再學習Python,根據具體的學習結果,再決定是否學習信息奧賽或機器人。Scratch入門比較容易,趣味性強,並且可以學習基本的編程思想和方法,為後續的更專業的語言學習打下基礎。如果孩子對編程感興趣,那麼可以考慮系統的學習Python,Python語言語法簡潔。相比其他程式語言也比較容易入門,提供相關課程的培訓機構也比較多,網上也有很多相關的學習資源。
  • 成立兩年捧回信息學聯賽全國一等獎 麗澤書院信奧「最強大腦」未來...
    2018年12月22日,杜瑜皓首次走進麗澤書院,在這裡成立以他名字命名的信息學競賽工作室。作為一名參賽老手,杜瑜皓坦言,成立工作室的目的是想培養一批中學生衝刺信息頂級賽事。「通過學習信息學,我的人生發生了改變,也收穫了很多,我想帶著熱愛信息學的孩子一起去更高的賽場開拓視野,體驗人生更多的可能性。」杜瑜皓說。
  • 廈門一中2020全國信息學聯賽NOIP、CSP-J/S獲獎名單公布
    喜報由中國計算學會舉辦的CCF CSP-J/S 2020第二輪認證和CCF NOIP 2020全國信息學奧林匹克聯賽獲獎名單已於近日公布,廈門一中在這兩項比賽中均獲得優異成績。其中,CSP-J/S 2020提高組23人獲省一等獎,31人獲省二等獎,8人獲省三等獎,獲得一等獎人數全省第一;入門組(初中組)有44人獲省一等獎,24人獲省二等獎,1人獲省三等獎,獲一等獎人數全省第一、全國第三,遙遙領先其他兄弟學校。
  • 「物聯網」Rust系列3:Rust如何避免C和c++的陷阱
    這是關於我們在dwell如何在Rust中重寫物聯網平臺的系列文章的第3部分。  第一部分:「物聯網」Rust系列1:用Rust重寫了物聯網平臺並成功  第二部分:「物聯網」Rust系列(2):以火取光,C和C++的問題  所以現在我已經徹底,也許不公平烤幾個設計缺陷的一種程式語言超過四十歲,經營著世界上大多數嵌入式設備,讓我們來談談如何鏽設計出這些問題,同時仍然保留了C和c++的部分,讓他們強大的和有用的語言。
  • 如何學好美術,繪畫入門基礎先學什麼?
    如何學好美術,繪畫入門基礎先學什麼?美術需要學習的東西有很多,線稿、素描、人體、色彩、人物設計都需要學習,最重要的是素描,素描可以鍛鍊基礎,基礎學的紮實就啥事都好辦了,下面為大家分享一下畫素描的技巧。素描是繪畫的基礎,是繪畫的骨骼,也是最有節制、最需要理性的輔助藝術。首先,初學者要學素描,畫好素描的人,油畫自然畫的好。素描的起源,始於文藝復興時期,其實希臘的瓶繪、雕塑都有很好的素描基礎。素描被認為是繪畫的背景,如壁畫先要有構想的草稿,然後有素描的底稿,同時也要有手、臉部分精密素描圖。壁畫通常不看模特兒寫生的,而是完全依賴預先準備好的習作素描和畫家的記憶。
  • 2021信息學奧賽IOI國家集訓隊集訓在北大舉行:附集訓隊名單
    第33屆國際信息學奧林匹克競賽(IOI2021)將於2021年在新加坡舉行。中國計算機學會NOI科學委員會定於今年12月7日-12日在北京大學進行國家集訓隊的集中培訓和訓練比賽,同期舉行IOI2021精英培訓。
  • 學編程需要什麼基礎?
    學編程需要什麼基礎? 1、數學基礎 從計算機發展和應用的歷史來看計算機的數學模型和體系結構等都是由數學家提出的,最早的計算機也是為數值計算而設計的。因此,要學好計算機就要有一定的數學基礎,初學者有高中水平就差不多了。
  • 編程入門先學什麼?零經驗的人學編程難嗎
    「編程入門先學什麼」這是所有想了解編程行業都擔心的一個問題,「零經驗的人學編程難嗎」這是所有想進入編程行業都需要關注的一個問題。一聽編程兩個字很多人都在退縮了,有很多的同學是非常的想知道,編程入門先學什麼,零經驗的人學編程難不難,小編整理了相關信息,希望會對大家有所幫助!
  • 諸暨初中生首枚信息學國際金牌!
    近日,記者從諸暨市浣江教育集團浣江初中獲悉,該校九年級學生朱羿愷作為中國國家隊選手之一,在2020年國際初中生信息學競賽(ISIJ2020)中獲得金牌,這也是諸暨初中生的首枚信息學國際金牌。各類學科中的「跨界」高手說起這名「天才少年」,浣江初中信奧教練邱松齡說,朱羿愷的成績不僅是在競賽方面的,其他學科也很棒,年級的綜合排名都是名列前茅的。
  • 零基礎學習計算機原理:布爾邏輯和邏輯門
    在這裡,每篇都學一個小知識。微號:超智星球 網站:chaozhixingqiu.com這期呢,還是計算機原理系列,上期最後講到了自動制表機和IBM。本期接著講計算機歷史。## 布爾代數因香農而不凡講了這麼多,大家可能要問,布爾搞出這些無聊的字母遊戲有什麼用?這個問題,不僅你我疑惑,在當時,整個學界也是疑惑的。布爾代數發明後很久都不受重視。數學家們曾輕蔑地說它:沒有數學意義,在哲學上也屬於稀奇古怪的東西。
  • 教你學日語入門基礎教學,新的手機不但可以拍照,還可以看電視
    教你學日語入門基礎教學,新的手機不但可以拍照,還可以看電視 2020-11-26