倉頡編程基礎及應用

陳波,向濤,何睿

  • 出版商: 清華大學
  • 出版日期: 2025-09-01
  • 售價: $599
  • 語言: 簡體中文
  • ISBN: 7302699348
  • ISBN-13: 9787302699347
  • 相關分類: 程式語言
  • 下單後立即進貨 (約4週~6週)

  • 倉頡編程基礎及應用-preview-1
  • 倉頡編程基礎及應用-preview-2
  • 倉頡編程基礎及應用-preview-3
倉頡編程基礎及應用-preview-1

相關主題

商品描述

"本書以倉頡編程語言為載體,是一本面向零基礎讀者的程序設計教材。通過閱讀本書,讀者可以掌握倉頡的基本語法,了解基礎的算法及計算思維,並通過書中大量的實踐案例,獲得將語法知識及算法理論應用於工程實踐的切身體驗。本書以“知其然,更知其所以然”為理念,從計算機底層模型出發,由淺入深,逐步構建程序思維,在講解語法的同時,始終貫穿對程序運行本質的剖析,幫助讀者建立紮實的計算機科學基礎及程序思維。 本書可作為高等學校公共程序設計課程的教材,也可作為期望使用倉頡開發鴻蒙應用的軟件工程師的參考用書。 " 語言的工程應用: (1). 結合鴻蒙,使用倉頡進行App設計的基本過程和方法; (2). 使用倉頡解決工程實踐問題的示例。 特色:由淺入深,設計一條沒有彎曲但沒有岔路的學習路徑 ; 與工程應用緊密結合; 融合工程能力培養要素; 新形態教材:包括線上擴展內容和視頻授課內容。

作者簡介

陳波,重慶大學計算機學院講師,艾爾曦醫療設備聯合創始人。在工程實踐方面,長期從事醫用電子儀器的研究和開發,擅長應用新的計算機理論及方法解決具體工程問題。在教學實踐方面,長期從事計算機程序設計課程的教學工作,擅長將工程實踐經驗與教學相結合,著有《C++編程基礎及應用》、《Python編程基礎及應用》等高校教材。

目錄大綱

目錄

第1章  學習準備 / 001

1.1 了解計算機 / 002

1.1.1 計算機的組成 / 002

1.1.2 內存模型 / 003

1.2 倉頡語言及編譯器 / 004

1.3 倉頡編譯器的下載及安裝 / 005

1.4 第一個倉頡程序:學習倉頡,

  擁抱未來 / 006

1.5 第一個倉頡項目:

   世界,你好 / 008

第2章  計算及基本數據類型 / 010

2.1 main函數 / 010

2.2 變量 / 011

2.3 整數類型 / 013

2.4 浮點數類型 / 019

2.5 數值計算 / 022

2.5.1 自增、自減、求余、

   求冪 / 022

2.5.2 復合操作符 / 023

2.5.3 操作符優先級 / 024

2.6 字符串 / 025

2.6.1 “單行”字符串 / 026

2.6.2 轉義符號 / 028

2.6.3 多行字符串 / 029

2.7 用戶輸入 / 030

2.8 格式化 / 032

2.9 常量 / 033

2.10 對象命名 / 034

2.11 實踐:雞兔同籠 / 035

2.12 小結 / 036

第3章  程序結構基礎 / 038

3.1 條件分支 / 038

3.1.1 if語句 / 038

3.1.2 if-else語句 / 040

3.1.3 條件表達式 / 041

3.1.4 多分支選擇 / 043

3.2 模式匹配 / 046

3.2.1 不含選擇器的match

   表達式 / 046

3.2.2 包含選擇器的match

   表達式 / 048

3.3 布爾型 / 051

3.4 關系運算 / 052

3.5 使用庫函數 / 055

3.6 自定義函數 / 057

3.7 實踐:斷點調試觀察函數

   調用 / 060

3.8 實踐:心靈感應魔法 / 061

3.9 數組容器 / 064

3.10 實踐:鼠牛虎兔 / 066

3.11 構造對象 / 067

3.12 小結 / 068

第4章  循環之道  / 069

4.1 for循環 / 069

4.2 實踐:斷點調試觀察程序

   循環 / 072

4.3 區間 / 073

4.4 實踐:滾雪球的復利 / 074

4.5 容器的遍歷 / 076

4.6 實踐:發現圓周率 / 077

4.7 實踐:質數判定 / 079

4.8 while循環 / 080

4.9 break—跳出循環 / 082

4.10 實踐:九層之臺,

   起於累土 / 084

4.11 算法:折半查找 / 086

4.12 do‐while循環 / 089

4.13 continue—跳過當次循環/ 092

4.14 算法:選擇排序與雙重

   循環 / 094

4.15 小結 / 098

第5章  自定義類型(上) / 099

5.1 定義新類型 / 099

5.2 對象構造 / 101

5.3 主構造函數 / 104

5.4 成員函數 / 105

5.5 終結器 / 109

5.6 靜態成員 / 110

5.7 小結 / 113

第6章  高級數據類型及運算 / 115

6.1 字符 / 115

6.2 字符串進階 / 118

6.2.1 比較 / 118

6.2.2 運算 / 119

6.2.3 成員函數 / 119

6.3 位運算 / 122

6.4 元組 / 123

6.5 枚舉 / 125

6.5.1 定義 / 125

6.5.2 枚舉對象匹配 / 126

6.5.3 成員函數 / 128

6.6 Option<T> / 130

6.7 實踐:市值排名 / 136

6.8 Unit類型 / 138

6.9 值與引用類型 / 139

6.10 引用與函數 / 143

6.11 小結 / 145

第7章  函數進階 / 146

7.1 函數的默認值 / 146

7.2 函數重載 / 148

7.3 變長參數 / 150

7.4 實踐:啃不完的麻辣兔頭 / 151

7.5 對象作用域 / 154

7.6 遞歸 / 156

7.7 實踐:漢諾塔 / 158

7.8 算法:分而治之的奧秘* / 163

7.9 函數是一等公民  / 167

7.9.1 類型 / 167

7.9.2 作為變量值 / 168

7.9.3 作為實參 / 169

7.9.4 作為函數返回值 / 170

7.10 匿名函數/lambda表達式 / 173

7.11 嵌套函數 / 175

7.12 閉包* / 177

7.13 操作符重載* / 183

7.13.1 加法(+)操作符 / 183

7.13.2 取反(–)操作符 / 187

7.13.3 索引([  ])操作符 / 187

7.14 流表達式* / 194

7.15 小結 / 196

第8章  自定義類型(下) / 198

8.1 結構體 / 198

8.2 屬性 / 202

8.3 訪問控制  / 205

8.4 繼承 / 207

8.5 多態 / 212

8.6 抽象類 / 215

8.7 類型模式匹配 / 220

8.8 接口 / 222

8.9 擴展 / 225

8.9.1 直接擴展 / 225

8.9.2 接口擴展 / 226

8.10 小結 / 227

第9章  容器 / 228

9.1 數組進階 / 229

9.1.1 切片 / 229

9.1.2 成員函數 / 230

9.2 ArrayList<T> / 232

9.2.1 創建 / 232

9.2.2 增刪元素 / 233

9.2.3 成員函數 / 235

9.3 HashSet<T> / 237

9.4 HashMap<K,V> / 239

9.4.1 創建映射容器 / 240

9.4.2 鍵到值的映射 / 241

9.4.3 增刪鍵值對 / 244

9.4.4 遍歷 / 245

9.4.5 實踐:基尼系數與

   貧富差距 / 246

9.5 小結 / 249

第10章  泛型 / 250

10.1 泛型函數 / 250

10.2 泛型類 / 253

10.3 泛型接口 / 255

10.3.1 Iterable<E> / 255

10.3.2 Equatable<T>、

    Comparable<T> / 258

10.4 高階泛型函數* / 259

10.4.1 forEach<T> / 259

10.4.2 filter<T> / 261

10.4.3 map<T,R> / 263

10.4.4 reduce<T> / 264

10.5 類型別名 / 267

10.6 小結 / 268

第11章  異常處理* / 269

11.1 異常的發生 / 270

11.2 用Option<T>處理失效 / 271

11.3 異常的捕獲及處理 / 272

11.4 自定義異常類型 / 274

11.5 try‐catch的嵌套 / 280

11.6 自動資源釋放 / 281

11.7 小結 / 284

第12章  文件及I/O操作 / 285

12.1 文件及文件系統 / 285

12.2 讀寫普通文本文件 / 288

12.3 讀寫逗號分隔值文件* / 294

12.4 二進制文件的讀寫 / 297

12.5 文件的隨機讀寫* / 302

12.6 讀寫復雜二進制文件* / 304

12.7 實踐:細胞計數 / 310

12.7.1 從文件讀入二值化

    矩陣 / 311

12.7.2 圖的寬度優先遍歷 / 312

12.7.3 循環遍歷與搜索 / 315

12.8 小結 / 317

第13章  程序的並發執行 / 318

13.1 線程及分時系統 / 318

13.2 主線程 / 320

13.3 線程的創建與使用 / 322

13.4 分而治之 / 325

13.5 訪問線程 / 327

13.6 終止線程 / 329

13.7 線程同步* / 331

13.7.1 同步計數器 / 331

13.7.2 數據競爭 / 334

13.7.3 原子操作 / 336

13.7.4 可重入互斥鎖 / 338

13.7.5 屏障 / 341

13.7.6 信號量 / 343

13.7.7 定時器 / 345

13.8  小結 / 349

第14章   初探—倉頡開發鴻蒙

       應用 / 350

14.1 搭建開發環境 / 350

14.2 世界你好 / 351

14.2.1 創建項目 / 351

14.2.2 打開虛擬手機 / 352

14.2.3 部署並運行項目 / 354

14.2.4 修改主頁面 / 355

14.3 消息循環 / 356

14.4 宏及領域專用語言 / 358

14.5 主頁面代碼解析 / 362

14.6 添加新頁面 / 366

14.7 Ability / 369

14.8 Stage框架 / 371

14.9 修改應用名稱及圖標 / 372

14.10 小結 / 373

第15章   再造輪子—DeepSeek

       聊天機器人 / 375

15.1 界面及功能 / 375

15.2 數據結構 / 378

15.2.1 對話及輸入輸出

   狀態 / 378

15.2.2 State宏裝飾的其他

   成員 / 380

15.2.3 消息列表 / 380

15.3 頁面結構 / 384

15.3.1 主體布局 / 384

15.3.2 標題欄 / 386

15.3.3 歡迎信息 / 387

15.3.4 輸入框 / 388

15.3.5 控制欄 / 389

15.3.6 自定義Switch組件 / 391

15.3.7 對話信息顯示框 / 392

15.4 功能函數 / 395

15.4.1 更新輸入輸出狀態 / 395

15.4.2 附加AI消息至消息

   列表 / 395

15.4.3 停止對話 / 395

15.4.4 重置對話 / 396

15.4.5 執行發送/停止功能 / 396

15.5 與DeepSeek大語言模型的

   交互 / 399

15.5.1 robot對象及上下文 / 399

15.5.2 LLM構造及成員變量 / 400

15.5.3 流式對話chat函數 / 401

15.5.4 請求發送send函數 / 404

15.5.5 應答片段解析parse

   函數 / 405

15.5.6 上下文記錄record

   函數 / 405

15.5.7 其他成員函數 / 406

15.6 小結 / 406