2024-2025-1 20241305 《計算機基礎與程式設計》第十一週學習總結

南极熊2發表於2024-12-06

作業資訊

這個作業屬於哪個課程 2024-2025-1-計算機基礎與程式設計(https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP))
這個作業要求在哪裡 2024-2025-1計算機基礎與程式設計第十一週作業
這個作業的目標 1、計算機網路2、網路拓撲3、雲端計算4、網路安全5、Web6、HTML,CSS,Javascript7、XML
作業正文 本部落格連結

教材學習內容總結

《電腦科學概論》第十五章和第十六章:
《電腦科學概論》中的“網路與全球資訊網”兩章涵蓋了電腦科學中網路通訊和網際網路技術的基礎概念。以下是對這些內容的總結:

  1. 計算機網路

    • 定義:計算機網路是由多個計算機裝置組成的系統,它們透過通訊線路相互連線,以實現資源共享和資訊傳遞。
    • 功能:包括資料傳輸、資源共享、分散式處理等。
    • 協議:網路通訊遵循特定的協議,如TCP/IP協議族,確保不同裝置間有效通訊。
  2. 網路拓撲

    • 定義:網路拓撲描述了網路中裝置如何物理或邏輯上連線。
    • 型別:常見的網路拓撲包括星型、環型、匯流排型、樹型和網狀型等。
    • 影響:網路拓撲影響網路的效能、可靠性和擴充套件性。
  3. 雲端計算

    • 定義:雲端計算是一種透過網際網路提供計算資源(如伺服器、儲存、資料庫、網路、軟體等)的服務模式。
    • 特點:具有彈性、可擴充套件性、按需自服務、廣泛的網路訪問等。
    • 服務模型:包括IaaS(基礎設施即服務)、PaaS(平臺即服務)和SaaS(軟體即服務)。
  4. 網路安全

    • 重要性:保護網路和資料不受未授權訪問、破壞、洩露等威脅。
    • 技術:包括防火牆、加密、入侵檢測系統、安全協議等。
    • 法規和政策:涉及資料保護法規和網路安全政策。
  5. Web(全球資訊網)

    • 定義:全球資訊網是一個透過網際網路訪問的資訊系統,使用者可以透過瀏覽器訪問網頁。
    • 組成:由網頁、網站和Web應用程式組成。
    • 訪問方式:透過統一資源定位器(URL)訪問。
  6. HTML, CSS, Javascript

    • HTML(超文字標記語言):用於建立網頁內容和結構的標記語言。
    • CSS(層疊樣式表):用於設定網頁的視覺和版式樣式。
    • Javascript:一種指令碼程式語言,用於實現網頁的互動性。
  7. XML

    • 定義:可擴充套件標記語言(XML)是一種標記語言,用於儲存和傳輸資料。
    • 用途:常用於配置檔案、資料交換和文件儲存。
    • 特點:具有自我描述性,易於人類閱讀和機器解析。

這些內容構成了計算機網路和全球資訊網的基礎知識框架,對於理解現代計算機通訊和網際網路技術至關重要。學習這些概念有助於掌握如何在網路環境中開發、部署和維護應用程式。

《C語言程式設計》第十章:
《C語言程式設計》第十章關於字串的內容可以總結如下:

  1. 字串字面量

    • 字串字面量是由一對雙引號包圍的字元序列,例如 "Hello, World!"
    • 在C語言中,字串字面量實際上是字元陣列的常量,儲存在程式的只讀資料段。
    • 字串字面量在末尾隱含一個空字元('\0'),表示字串的結束。
    char str[] = "Hello, World!"; // str是一個字元陣列,包含字串和空字元
    
  2. 字串的儲存

    • 字串在C語言中以字元陣列的形式儲存。
    • 字串的每個字元佔用一個陣列元素,最後一個元素是空字元('\0')。
    • 字串陣列的大小比字串長度多1,以儲存空字元。
    char str[] = "Hello"; // 實際分配了6個字元的空間加上1個空字元
    
  3. 字元指標

    • 指向字元的指標可以用於指向字串。
    • 字串的地址實際上是指向其第一個字元的指標。
    • 可以透過字元指標來訪問和操作字串。
    char *ptr = "Hello"; // ptr指向字串"Hello"的第一個字元
    
  4. 字串的訪問和輸入/輸出

    • 透過陣列下標訪問字串中的字元。
    • 使用 printfscanf 函式進行字串的輸入和輸出。
    • printf 使用 %s 格式化字串來輸出字串。
    • scanf 使用 %s 格式化字串來輸入字串,但不包括空格。
    printf("%s\n", str); // 輸出字串
    scanf("%s", str);   // 輸入字串
    
  5. 字串處理函式

    • C標準庫提供了許多處理字串的函式,如 strcpystrcatstrlenstrcmp 等。
    • 這些函式操作字串,但不改變字串字面量的值,因為它們是儲存在只讀記憶體中的。
    char src[] = "Source";
    char dest[10];
    strcpy(dest, src); // 將src複製到dest
    
  6. 向函式傳遞字串

    • 可以透過值傳遞(陣列)或引用傳遞(指標)將字串傳遞給函式。
    • 傳遞字元陣列時,實際上是傳遞陣列的副本。
    • 傳遞字元指標時,傳遞的是地址,因此函式內對字串的修改會影響原字串。
    void printStr(char str[]) {
        printf("%s\n", str);
    }
    
  7. 從函式返回字串指標

    • 函式可以返回指向字元的指標。
    • 返回的指標可以指向靜態分配的記憶體、動態分配的記憶體或字串字面量。
    • 返回區域性變數的地址是危險的,因為區域性變數在函式返回後會被銷燬。
    char* createStr() {
        static char str[] = "Dynamic String";
        return str;
    }
    

以上是《C語言程式設計》第十章關於字串的主要內容總結,涵蓋了字串的基本操作和處理。透過理解和掌握這些概念,可以有效地在C語言中處理字串資料。

教材學習中的問題和解決過程(先問 AI)

問題一:網路不同型別的各自作用
解答:網路可以根據不同的標準進行分類,每種型別的網路都有其特定的作用和應用場景。以下是一些常見的網路型別及其作用:

  1. 區域網(Local Area Network, LAN)

    • 作用:連線相對較小的地理區域內(如辦公室、學校、家庭)的計算機和其他裝置,實現資源共享和通訊。
    • 特點:通常由組織內部管理,速度較快,延遲低。
  2. 廣域網(Wide Area Network, WAN)

    • 作用:連線覆蓋廣泛地理區域的網路,如城市、國家或全球範圍。
    • 特點:跨越更大的地理範圍,速度可能較慢,延遲較高,通常由電信公司運營。
  3. 都會網路(Metropolitan Area Network, MAN)

    • 作用:連線城市或大都市區域內的網路。
    • 特點:覆蓋範圍介於LAN和WAN之間,可以連線多個LAN。
  4. 個人區域網(Personal Area Network, PAN)

    • 作用:連線個人工作空間內的裝置,如智慧手機、膝上型電腦和可穿戴裝置。
    • 特點:非常短距離的無線連線,通常用於個人裝置間的通訊。
  5. 網際網路(Internet)

    • 作用:全球最大的網路,連線世界各地的計算機網路,提供資訊檢索、電子郵件、線上聊天等多種服務。
    • 特點:由無數個網路組成,使用TCP/IP協議族。
  6. 企業網(Enterprise Network)

    • 作用:服務於企業內部的網路,連線企業內部的各個部門和分支機構。
    • 特點:通常需要高度的安全性和可靠性,以支援企業運營。
  7. 校園網(Campus Network)

    • 作用:服務於學校或大學校園內的網路,連線教室、圖書館、宿舍等。
    • 特點:支援教育和研究活動,提供資源訪問和遠端教育。
  8. 無線網路(Wireless Network)

    • 作用:透過無線電波連線裝置,提供無線上網服務。
    • 特點:靈活性高,使用者可以在網路覆蓋範圍內自由移動。
  9. 有線網路(Wired Network)

    • 作用:透過物理介質(如乙太網電纜)連線裝置。
    • 特點:通常提供更穩定和更快的連線速度。
  10. 虛擬私人網路(Virtual Private Network, VPN)

    • 作用:在公共網路上建立一個安全的、加密的連線,模擬私人網路。
    • 特點:用於遠端訪問企業網路或保護個人資料不被截獲。

每種網路型別都有其特定的用途和優勢,選擇合適的網路型別取決於使用者的具體需求和應用場景。

問題二:搜尋引擎的工作原理
解答:搜尋引擎的工作原理可以大致分為以下幾個步驟:

  1. 爬行(Crawling)

    • 搜尋引擎使用稱為“爬蟲”(crawlers)或“蜘蛛”(spiders)的自動程式來發現網際網路上的網頁。
    • 爬蟲從已知的URL列表開始,訪問這些網頁,並提取網頁上的連結,然後繼續訪問這些連結指向的網頁,如此迴圈。
  2. 索引(Indexing)

    • 爬蟲抓取的網頁內容被儲存在搜尋引擎的資料庫中,這個過程稱為索引。
    • 搜尋引擎分析網頁內容,提取關鍵詞、後設資料、URL、頁面結構等資訊,並建立索引,以便快速檢索。
  3. 處理(Processing)

    • 搜尋引擎會對索引的資料進行處理,包括消除重複內容、識別網頁質量、評估網頁的權威性等。
    • 這個過程可能涉及到複雜的演算法,如PageRank(谷歌早期使用的一種演算法)等,以確定網頁的重要性和相關性。
  4. 排名(Ranking)

    • 當使用者輸入查詢時,搜尋引擎會根據查詢的關鍵詞,從索引中找到所有相關的網頁。
    • 然後,搜尋引擎使用排名演算法對這些網頁進行排序,以確定哪些結果最相關,應該顯示在搜尋結果的頂部。
  5. 檢索(Retrieval)

    • 使用者看到的結果就是搜尋引擎根據排名演算法檢索並展示的網頁列表。
    • 使用者可以點選這些連結訪問網頁。
  6. 使用者介面(User Interface)

    • 搜尋引擎還提供了使用者介面,允許使用者輸入查詢並顯示搜尋結果。
    • 使用者介面還包括對搜尋結果的過濾、排序和呈現方式的控制。
  7. 反饋和學習(Feedback and Learning)

    • 使用者與搜尋引擎的互動(如點選搜尋結果)為搜尋引擎提供了反饋,幫助其改進演算法。
    • 搜尋引擎會持續學習,透過分析使用者行為來最佳化搜尋結果的相關性和準確性。
  8. 快取(Caching)

    • 為了提高效率,搜尋引擎會快取熱門網頁的副本,這樣當使用者請求時可以直接提供,而不需要重新從原始伺服器獲取。

搜尋引擎的工作原理是一個複雜的技術過程,涉及到大量的資料儲存、處理和演算法最佳化。隨著技術的發展,搜尋引擎也在不斷進化,以提供更準確、更個性化的搜尋結果。

基於AI的學習




程式碼除錯中的問題和解決過程

一:本週進行C語言考試,有道程式設計題返回陣列時出現錯誤
解決:自己忘記定義的陣列score[],返回副函式的時候()裡不需要加[],自己對細節沒有處理好
二:oj裡的題自己編的程式會顯示Runtime Error
解決:程式過於複雜,導致很長時間系統不報錯,也不能執行

學習進度條

程式碼行數(新增/累積) 部落格量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
第十一週 700/3000 2/15 10/195

計劃學習時間:20h
實際學習時間:18h

相關文章