第二週 資料計算實現與順序程式設計(一)
看課件的時候,沒有真的很用心去聽,有點急於求成,求量不求質,沒有真正的思考,具體該如何解決的!
沒有指定詳細的計劃,每天的收穫很少,學習能力有待提高
第二章 資料計算實現與順序結構程式設計
2.1 算術運算的C程式實現 + - * / %
2.2 關係運算的C程式實現 >、 >=、 <、 <=
2.3 邏輯運算的C程式實現 && || !
2.4 位運算的C程式實現 & | ^
2.5 幾種很個別的運算 , () []
2.6 混合運算及資料型別轉換
2.7 一個順序結構程式例項
通過這一章學習,我們能夠該知道:
- C程式中都可以實現什麼計算
- 這些計算解決什麼實際問題
- 用C程式實現這些計算的思維方式
- 簡單計算問題的順序結構程式設計
2.1 算術運算的C程式實現
算術運算-整數相除
算術運算-求餘
算術運算-複合運算的作用
算術運算-自增與自減運算
數學算式的C語言表達-算術運算優先順序
2.1算術運算(C程式中的算術表達)
程式設計語言的基本規則包括
- 常量:在程式執行期間,其值會發生變化的
- 變數:在程式執行期間,其值不變的量
- 運算子
- 表示式
函式
計算一元二次方程
討論1:檢視d的值是否>=0?
討論2:如果a,b,c為整型,結果如何?
整數相除結果只取整數,小數部分丟失,造成後續運算結果錯誤(編輯器檢查不出這個錯誤)(出現問題,但又不易查到)
1.0/3:浮點型與整型相除的時候,編譯器會先把整數型轉化為浮點型
討論3:如果x1,x2為實型,結果如何?
關於實型和整形資料的在說明
基於計算機的計算思維的一個重要方面:
1. 計算機的基本儲存原理
2. 儲存資源的合理使用
3. 實說有效位:單精度7位
4. 實數不是精確數,將產生累計誤差
整型
實型
字元型
字串
超出表示範圍的數機器如何處理?
實型數的解析度:
最小正數:10-38 小於該數時處理為0 下溢
最大正數;10-38 大於該數時提示出錯 上溢
- 實型數在計算機內部都按指數形式存放
- 實型數在運算器中都按雙精度計算
- 記憶體的儲存精度取決於對變數的定義
- 數的有效位限制在最後輸出時是按儲存結構和輸出格式確定的
輸出格式造成的計算錯誤
討論:如果scanf()中使用了(“%4.2f“,&a);結果如何?
scanf()不可以指定資料格式 ”%4.2f”指定了將導致語言系統的不理解,造成原始資料錯誤。 注意:編譯器的錯誤引導
有些錯誤編譯器不告訴你,錯了你都不知道你錯啦
算數運算 – 小結
- 運算依賴正確的C語言表示式實現
- 整數相除可能得到實型結果,自動丟棄小數部分
- scanf()不可以指定資料格“%m.nf”(不允許規定精度,可以指定域寬)
求餘運算
求餘運算:a % b a除以b取餘數
作用:能整除嗎?
例如:一組數X中能被3整除的數有哪些?
判斷方法:X%3為0嗎?
main()
{
printf("%d,%d,%d,%d\n",13%2,-13%2,247%-58,-66%-15);
}
說明: 求餘運算子的物件必須是整數 為什麼?
得分
自增、自減運算
變數自身加(減)1(自增自減運算)
i++;++i 等價於 i = i+1
i–;–i 等價於 i = i -1
i=3;printf("%d",i++);
i=3;printf("%d",++i);
輸出原來的值3,之後I的值變為4;
i 的值先變為4,之後再輸出4;
- 求餘多用於判斷整除問題
- 自增自減於用於計數,控制迴圈
- 複合運算只是為了簡化程式程式碼
關係運算的C程式實現
關係比較問題與C語言關係表示式
算數式 關係運算子 算數式
關係運算子 > >= < <= != ==
關係運算子的優先順序高於賦值,低於算術
關係運算子的優先順序低於算數運算
例子: a == x >= 90
比較運算子高於 恆等於運算子
例子: int i =2,j=7,a;
a=i+j%4!=0
a 的值?
算術運算子 的取模運算子的優先順序高於 加法的優先順序 算術運算的優先順序高於關係運算子
a = 18>5>1<1<1/2
a的值?
我的理解是:
算數運算子的優先順序高於關係運算子
1/2 == 0;
同級之間的關係運算子根據其結合方向
18>5嗎? 假的 false 0
0>1 嗎?假的 false 0
0 < 1嗎?真的 ture 1
1 <0 嗎?假的 false 0
a = 0;
a = 18 > 5 +1 <1 < 1/2
算術運算子的優先順序高於比較運算子的
例子 x=10,y=2;表示式x-5<= x+y的值
答案:1真(true)
相關文章
- 第二週 資料計算實現與順序結構程式設計程式(一)程式設計
- 《計算機基礎與程式設計》第二週學習總結計算機程式設計
- 順序程式設計習題程式設計
- python的順序程式設計Python程式設計
- 1.3順序結構程式設計程式設計
- 最簡單的C程式設計--順序程式設計C程式程式設計
- 分散式時序資料庫QTSDB的設計與實現分散式資料庫QT
- 資料結構實驗一:順序表的建立與操作實現、順序表實現約瑟夫環問題資料結構
- Redis 設計與實現 (一)--資料結構Redis資料結構
- php與資料庫連線如何實現資料的順序和倒序PHP資料庫
- PPT實現資料錄入與計算
- 第二週程式設計練習程式設計
- python實現基本資料結構第二篇(順序棧、鏈棧,順序隊、鏈隊)Python資料結構
- 資料庫系統-設計、實現與管理(一)資料庫
- Redis 設計與實現:資料庫Redis資料庫
- PG 中表示式的計算順序
- C/C++多引數函式引數的計算順序與壓棧順序C++函式
- Redis 設計與實現 (二)--資料庫Redis資料庫
- C++結合QT實現帶有優先順序的計算器C++QT
- 第二課第一週和第二週程式設計作業出現的錯誤及修改做法程式設計
- 物件導向程式設計-java語言 第二週程式設計題物件程式設計Java
- Flink使用二次聚合實現TopN計算-亂序資料
- 【資料結構】實現順序表(c++)資料結構C++
- 具體實現程式碼@資料結構探險——順序表資料結構
- 彙編學習小記(二)-順序程式設計程式設計
- 《計算機基礎與程式設計》第七週學習總結計算機程式設計
- 《計算機基礎與程式設計》第八週學習總結計算機程式設計
- [Hook] 跨程式 Binder設計與實現 - 設計篇Hook
- 《redis設計與實現》2-資料庫實現篇Redis資料庫
- 資料結構篇_程式設計思想板塊_第一章順序表和連結串列資料結構程式設計
- 【資料結構】實現順序表(c語言)資料結構C語言
- 【資料結構】順序棧的實現(c++)資料結構C++
- Redis 設計與實現 (五)--多機資料庫的實現Redis資料庫
- 深度解讀MRS IoTDB時序資料庫的整體架構設計與實現資料庫架構
- 程式設計師一週花多少時間程式設計?程式設計師
- 基礎資料結構(一)---(最全)定長順序表的實現資料結構
- 大資料計算生態之資料計算(一)大資料
- RocketMQ(十):資料儲存模型設計與實現MQ模型