作業資訊
這個作業屬於哪個課程 | <班級的連結>(如2024-2025-1-計算機基礎與程式設計) |
---|---|
這個作業要求在哪裡 | 2024-2025-1計算機基礎與程式設計第六週作業 |
這個作業的目標 | 1、Polya如何解決問題 2、簡單型別與組合型別 3、複合資料結構 4、查詢與排序演算法 5、演算法複雜度 6、遞迴 7、程式碼安全 |
作業正文 | 本部落格連結 |
教材學習內容總結
《電腦科學概論》第七章
一、Polya解決問題:
1、提出問題:如何時、為什麼、在哪裡,應該問的典型問題。
2、尋找熟悉的情況
3、分治法
4、演算法:在有限時間內用有限的資料解決問題或子問題的明確指令集合。
5、計算機問題求解過程:分析和說明階段、演算法開發階段、實現階段和維護階段。
6、方法總結:分析問題、列出主要任務、編寫其餘的模組、根據需要進行重組和改寫。
7、測試演算法
二、有簡單變數的演算法
1、帶有選擇的演算法 if語句
2、帶有迴圈的演算法 :計數控制迴圈 :迴圈控制變數 while迴圈稱為前測試迴圈
事件控制迴圈: 巢狀結構:控制結構嵌入另一個控制結構的結構
平方根
三、複雜變數
1、陣列
2、記錄
四、搜尋演算法
1、順序搜尋
2、有序陣列中的順序搜尋
3、二分檢索:在有序列表中查詢專案的操作,透過比較操作排除大部分檢索範圍。
五、排序
1、選擇排序
2、氣泡排序
3、插入排序
六、遞迴演算法
遞迴:演算法呼叫它本身的能力
1、子程式語句
2、遞迴階乘
3、遞迴二分檢索
4、快速排序
七、幾個重要思想
1、資訊隱蔽
2、抽象:複雜系統中的一種模型,只包括對觀察者來說必要的細節。
3、事物命名
4、測試
《C語言程式設計》第五章總結
一、關係運算子和關係表示式
在C語言中,關係運算子用於比較兩個值的大小,並根據比較結果返回布林值(1表示真,0表示假)。以下是C語言中常用的關係運算子:
1. 等於 ( == ):檢查兩個值是否相等。
2. 不等於 ( != ):檢查兩個值是否不相等。
3. 大於 ( > ):檢查左邊的值是否大於右邊的值。
4. 小於 ( < ):檢查左邊的值是否小於右邊的值。
5. 大於等於 ( >= ):檢查左邊的值是否大於或等於右邊的值。
6. 小於等於 ( <= ):檢查左邊的值是否小於或等於右邊的值。
關係表示式則是由關係運算子連線的表示式,用於在程式中進行條件判斷。
關係表示式的結果是布林值,可以用於控制程式的流程,如在 if 、 while 、 for 等控制結構中。
二、用於單分支控制的條件語句
在C語言中,單分支控制的條件語句主要是指 if 語句。 if 語句用於在滿足特定條件時執行一段程式碼。下面是 if 語句的基本用法:
基本 if 語句
if (condition) {
// 條件為真時執行的程式碼
}
這裡的 condition 是一個布林表示式,如果它的值為真(非0),則大括號內的程式碼會被執行。
注意事項
if 語句中的條件表示式必須返回一個可以轉換為布林值的表示式。
在 if 語句中,如果條件為真,只有大括號內的程式碼會被執行;如果條件為假,則大括號內的程式碼會被跳過。
if 語句可以巢狀使用,即在一個 if 語句內部可以包含另一個 if 語句。
if 語句是C語言中實現條件控制流的基本工具,允許程式根據條件選擇性地執行程式碼。
三、用於雙分支控制的條件語句
在C語言中,用於雙分支控制的條件語句是 if-else 語句。這種結構允許程式根據條件的真假執行兩個不同的程式碼塊。下面是 if-else 語句的基本用法:
基本 if-else 語句
if (condition) {
// 條件為真時執行的程式碼塊
} else {
// 條件為假時執行的程式碼塊
}
這裡的 condition 是一個布林表示式,如果它的值為真(非0),則執行第一個大括號內的程式碼塊;如果為假(0),則執行第二個大括號內的程式碼塊。
巢狀 if-else 語句
if-else 語句可以巢狀使用,以實現更復雜的條件邏輯。
注意事項
if-else 語句中的條件表示式必須返回一個可以轉換為布林值的表示式。
在 if-else 語句中,如果條件為真,只有第一個大括號內的程式碼塊會被執行;如果條件為假,則只有第二個大括號內的程式碼塊會被執行。
if-else 語句可以巢狀使用,即在一個 if-else 結構內部可以包含另一個 if-else 結構。
每個 if 或 else if 後面都可以有自己的程式碼塊,這些程式碼塊在對應的條件為真時執行。
if-else 語句是C語言中實現條件控制流的重要工具,允許程式根據條件選擇兩個不同的執行路徑之一。
四、用於多分支控制的條件語句
在C語言中,用於多分支控制的條件語句是 switch 語句。 switch 語句允許程式根據一個變數或表示式的值,選擇多個可能的執行路徑之一。下面是 switch 語句的基本用法:
基本 switch 語句
switch (expression) {
case value1:
// 當expression的值等於value1時執行的程式碼
break;
case value2:
// 當expression的值等於value2時執行的程式碼
break;
// ...
default:
// 如果expression的值不匹配任何case時執行的程式碼
break;
}
expression 是一個整數型別的表示式,它的值會被與 case 後的值進行比較。
value1 , value2 , ... 是與 expression 的值進行比較的常量表示式。
break 語句用於終止當前 case 塊的執行,並退出 switch 語句。如果沒有 break ,程式會繼續執行下一個 case 塊的程式碼,這稱為“穿透”
default 是可選的,它是一個預設情況,當 expression 的值不匹配任何 case 時執行。
注意事項
switch 語句中的 expression 必須是整數型別的表示式,例如 int 、 char 、 enum 等。
每個 case 後面必須跟一個常量表示式。
如果沒有 break 語句,程式會繼續執行下一個 case 塊的程式碼,直到遇到 break 或 switch 語句結束。
default 塊是可選的,如果沒有匹配的 case ,並且沒有 default ,則 switch 語句會直接結束。
switch 語句可以巢狀使用,即在一個 switch 語句內部可以包含另一個 switch 語句。
switch 語句是C語言中實現多分支控制流的重要工具,允許程式根據一個變數或表示式的值選擇多個不同的執行路徑之一。
教材學習中的問題及解決方案
問題一:用無字元整型輸出900000000時顯示錯誤。
解決:透過詢問同學,知道printf("")中需要加上ll表示長資料。
問題二:計算圓的面積時輸出的面積值總顯示0.
解決:函式定義錯誤,輸入資料型別錯誤,應定義double r;我誤定義成普通整型。
基於AI的學習
程式碼除錯中的問題
問題:判斷輸入的一個字元時不知道用什麼檢驗?
答案:使用isalpha函式檢查字元是否為字母
使用isdigit函式檢查字元是否為數字
計劃學習時間:25h
實際學習時間:25h