大學(xué)計算機(jī)-計算思維與人工智能(第2版)課件 第3章 算法與Raptor程序設(shè)計_第1頁
大學(xué)計算機(jī)-計算思維與人工智能(第2版)課件 第3章 算法與Raptor程序設(shè)計_第2頁
大學(xué)計算機(jī)-計算思維與人工智能(第2版)課件 第3章 算法與Raptor程序設(shè)計_第3頁
大學(xué)計算機(jī)-計算思維與人工智能(第2版)課件 第3章 算法與Raptor程序設(shè)計_第4頁
大學(xué)計算機(jī)-計算思維與人工智能(第2版)課件 第3章 算法與Raptor程序設(shè)計_第5頁
已閱讀5頁,還剩74頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第3章算法與Raptor程序設(shè)計content重點難點重點:1.算法的概念及特征2.算法表示3.Raptor程序設(shè)計難點:1.Raptor程序設(shè)計Contents目錄3.1程序設(shè)計概述3.2算法3.3Raptor程序設(shè)計3.1程序設(shè)計概述

想一想,你了解什么樣的程序設(shè)計語言?程序設(shè)計概述程序設(shè)計的定義:

?

程序設(shè)計是計算機(jī)科學(xué)與技術(shù)的基礎(chǔ),指通過編程語言,按邏輯結(jié)構(gòu)編寫程序解決問題或?qū)崿F(xiàn)功能的過程。

?

不僅是寫代碼,涵蓋問題理解分析、思路設(shè)計、框架構(gòu)建、調(diào)試優(yōu)化等步驟。

?

需應(yīng)用計算機(jī)科學(xué)基本概念,注重程序可維護(hù)性、可擴(kuò)展性和性能。

程序設(shè)計基礎(chǔ)——定義、目標(biāo)與步驟程序設(shè)計的目標(biāo)提高效率簡化操作解決實際問題目標(biāo)·通過合理的需求分析和系統(tǒng)設(shè)計,程序員可以將問題分解為具體的任務(wù),并通過編寫代碼逐步實現(xiàn)問題的解決?!ねㄟ^設(shè)計合理的算法和數(shù)據(jù)結(jié)構(gòu),程序能夠比人工操作更快、更準(zhǔn)確地完成任務(wù)?!ぷ⒅厍岸私缑娴挠押眯院鸵子眯?,使得用戶能夠在最短的時間內(nèi)掌握操作方法。程序設(shè)計的目標(biāo)健壯性與穩(wěn)定性可維護(hù)性和可擴(kuò)展性目標(biāo)·程序設(shè)計不僅要關(guān)注當(dāng)前需求的實現(xiàn),還要考慮到未來可能的變化?!ひ粋€成功的程序應(yīng)該具備在未來添加新功能、處理更大數(shù)據(jù)量或支持更多用戶的能力?!こ绦驊?yīng)考慮到可能的錯誤,并采取措施進(jìn)行處理?!ねㄟ^合理的異常處理機(jī)制,程序能夠在遇到錯誤時及時報告或進(jìn)行自我修復(fù),避免程序崩潰或造成系統(tǒng)不穩(wěn)定???/p>

結(jié)復(fù)雜工程未來挑戰(zhàn)程序設(shè)計是集分析、設(shè)計、實現(xiàn)、調(diào)試和優(yōu)化于一體的復(fù)雜工程。不僅是編寫代碼,重要的是通過合理的設(shè)計和實現(xiàn),解決實際問題、提高效率、簡化操作、保證可維護(hù)性與可擴(kuò)展性,并確保程序的健壯性和穩(wěn)定性。未來的程序設(shè)計不僅僅是技術(shù)的挑戰(zhàn),更是對創(chuàng)造力和邏輯思維的全面考驗。程序設(shè)計的基本步驟1.問題分析程序設(shè)計步驟4.編碼實現(xiàn)3.系統(tǒng)設(shè)計與結(jié)構(gòu)設(shè)計2.設(shè)計算法5.測試與調(diào)試6.維護(hù)與優(yōu)化1.問題分析程序設(shè)計步驟4.編碼實現(xiàn)2.設(shè)算法5.測試與調(diào)試程序員需要與用戶或需求方進(jìn)行溝通,明確需求的細(xì)節(jié)、限制條件和期望目標(biāo)。此時的任務(wù)是提煉出問題的核心,確定需要解決的關(guān)鍵點。此階段的成果是問題的定義和需求說明,通常通過文檔記錄下來,確保所有參與開發(fā)的人員對問題有統(tǒng)一的理解。2.設(shè)計算法程序設(shè)計步驟4.編碼實現(xiàn)2.設(shè)算法5.測試與調(diào)試算法是解決問題的步驟和方法,是程序的核心。算法的設(shè)計的原則:?正確性:算法必須能夠正確地解決問題,返回正確的結(jié)果。?高效性:在計算資源有限的情況下,算法的時間和空間復(fù)雜度應(yīng)盡量小,能夠快速處理大量數(shù)據(jù)。?可讀性:算法應(yīng)易于理解和實現(xiàn),避免過于復(fù)雜的設(shè)計。?魯棒性:算法需要考慮到各種異常情況,如輸入數(shù)據(jù)的合法性、系統(tǒng)資源的約束等,能夠應(yīng)對各種可能的錯誤或異常。3.系統(tǒng)設(shè)計與結(jié)構(gòu)設(shè)計程序設(shè)計步驟4.編碼實現(xiàn)2.設(shè)算法5.測試與調(diào)試此階段的目標(biāo)是將問題和算法轉(zhuǎn)化為具體的程序架構(gòu),并規(guī)劃程序的模塊和數(shù)據(jù)流。通常涉及以下內(nèi)容:?模塊劃分:將整個程序分解成多個相對獨立的模塊,每個模塊負(fù)責(zé)完成特定的功能。模塊之間通過接口進(jìn)行數(shù)據(jù)交換和通信。?數(shù)據(jù)結(jié)構(gòu)設(shè)計:根據(jù)問題的需求選擇合適的數(shù)據(jù)結(jié)構(gòu),以便在程序中高效地存儲和操作數(shù)據(jù)。數(shù)據(jù)結(jié)構(gòu)的選擇直接影響程序的執(zhí)行效率。?界面設(shè)計:如果程序需要與用戶進(jìn)行交互,那么用戶界面的設(shè)計是必須考慮的部分。界面設(shè)計要考慮到用戶體驗,使得操作簡單直觀。4.編碼實現(xiàn)程序設(shè)計步驟4.編碼實現(xiàn)2.設(shè)算法5.測試與調(diào)試此階段的目標(biāo)是將設(shè)計轉(zhuǎn)化為機(jī)器能夠執(zhí)行的程序。需要遵循編程規(guī)范:?命名規(guī)范:變量名、函數(shù)名和類名等應(yīng)具備明確的意義,并符合團(tuán)隊的命名約定。?注釋和文檔:代碼應(yīng)包含適當(dāng)?shù)淖⑨?,說明代碼的作用和使用方法。良好的注釋能夠提高代碼的可維護(hù)性,幫助后續(xù)的開發(fā)和調(diào)試。?代碼結(jié)構(gòu):代碼應(yīng)清晰、簡潔、模塊化,避免冗余和重復(fù)的代碼。合適的代碼結(jié)構(gòu)可以提升程序的可讀性和可擴(kuò)展性。5.測試與調(diào)試程序設(shè)計步驟4.編碼實現(xiàn)2.設(shè)算法5.測試與調(diào)試測試和調(diào)試的目的:確保程序的正確性和穩(wěn)定性,并解決在開發(fā)過程中出現(xiàn)的各種錯誤或異常。?單元測試:測試程序的每個模塊或函數(shù)是否按照預(yù)期工作。?集成測試:將多個模塊組合在一起進(jìn)行測試,確保模塊之間的協(xié)作和數(shù)據(jù)傳輸沒有問題。?性能測試:對程序的性能進(jìn)行測試,評估程序在高負(fù)載、高并發(fā)等情況下的表現(xiàn),確保其效率滿足需求。?異常測試:測試程序在遇到異常情況時的表現(xiàn),如輸入數(shù)據(jù)不合法、系統(tǒng)資源不足等,確保程序能夠穩(wěn)定運(yùn)行。6.維護(hù)與優(yōu)化程序設(shè)計步驟4.編碼實現(xiàn)2.設(shè)算法5.測試與調(diào)試維護(hù)通常包括:修復(fù)bug、更新功能、處理用戶反饋等;而優(yōu)化則是提升程序性能和效率,使其能夠更好地應(yīng)對增長的負(fù)載和數(shù)據(jù)量。程序優(yōu)化的內(nèi)容包括代碼優(yōu)化、算法優(yōu)化、數(shù)據(jù)結(jié)構(gòu)優(yōu)化等。3.2算法1.什么是算法算法是按照一定的方法和步驟解決問題的過程。

算法是一系列解決問題的清晰指令,能夠?qū)σ欢ㄒ?guī)范的輸入,在有限時間內(nèi)獲得所要求的輸出。廣義地說,算法就是做某一件事的步驟或程序。菜譜是做菜肴的算法,洗衣機(jī)的使用說明書是操作洗衣機(jī)的算法。通俗理解:算法就是解決一個問題的方法。據(jù)此而論,編寫程序解決的任何一個問題都可以叫做算法。

2.算法舉例3.算法在計算機(jī)科學(xué)中的應(yīng)用(1)計算機(jī)算法的引入算法(Algorithm)理論處于計算機(jī)科學(xué)的核心地位。想要使用計算機(jī)解決問題,就要設(shè)計該問題的算法,要給出解決該問題所需的一系列解題步驟。算法有什么用?提高計算機(jī)i運(yùn)行的效率,節(jié)約內(nèi)存空間沒有好算法,計算機(jī)完成一件工作可能需要1年;有好算法,計算機(jī)完成同樣的工作可能只要幾秒。(1)計算機(jī)算法的引入計算機(jī)軟件的重要內(nèi)容之一是程序,程序是計算機(jī)指令的序列,計算機(jī)一步一步地執(zhí)行這個指令序列,就完成了希望它所做的事情。程序設(shè)計就是按照一定的要求編排一個合理的指令序列。程序設(shè)計主要包含兩個方面:行為特性設(shè)計和結(jié)構(gòu)特性設(shè)計。結(jié)構(gòu)特性設(shè)計是指確定合適的數(shù)據(jù)結(jié)構(gòu),將程序處理的數(shù)據(jù)在計算機(jī)內(nèi)部表示和存放。行為特性設(shè)計是確定要解決的實際問題的具體步驟,把全部解題過程完整地描述出來,這一過程就是算法設(shè)計。這就引出來一個很重要的公式:

著名計算機(jī)科學(xué)家沃思提出一個公式:數(shù)據(jù)結(jié)構(gòu)+算法=程序(Algorithm+DataStructures=Programs)對數(shù)據(jù)的描述:數(shù)據(jù)結(jié)構(gòu)(datastructure)對操作的描述:算法(algorithm)一個程序應(yīng)包括兩個方面的內(nèi)容:憑借一句話獲得圖靈獎的Pascal之父.這個公式對計算機(jī)科學(xué)的影響程度足以類似物理學(xué)中愛因斯坦的“E=MC2”——一個公式展示出了程序的本質(zhì)。以上的公式表明:1、算法與數(shù)據(jù)結(jié)構(gòu)是密切相關(guān)的,算法的設(shè)計要與數(shù)據(jù)結(jié)構(gòu)相適應(yīng)。2、算法不等于程序,它不需考慮具體的機(jī)器,算法也不等于計算方法,它比計算方法更具體。算法與數(shù)據(jù)結(jié)構(gòu):程序員想拔高一個層次,數(shù)據(jù)結(jié)構(gòu)和算法只是很小一部分,但卻是很重要的一部分。判斷一段程序的好壞,基于什么呢?其實很多方面,比如說可讀性,可擴(kuò)展性等,但還有一個可以量化的標(biāo)準(zhǔn),就是空間和時間復(fù)雜度的分析。這是算法的內(nèi)容。(2)算法的特征著名計算機(jī)科學(xué)家Knuth把算法的特征歸納以下5點:1974年度圖靈獎。(2)算法的特征:著名計算機(jī)科學(xué)家Knuth把算法的特征歸納以下5點:一、有窮性(finiteness)

一個算法必須在有限個步驟之后結(jié)束。換句話說,一個算法必須在有限時間內(nèi)完成,否則,該算法就失去了實際價值。因此,在算法中不能出現(xiàn)無限循環(huán)。數(shù)學(xué)中的無窮級數(shù)在計算時只能取有限項。二、確定性(definiteness)

算法中的每一個步驟都必須有明確的定義,不允許存在多義性和摸棱兩可的解釋。如“將X,Y兩個數(shù)進(jìn)行加減運(yùn)算”,是做加法運(yùn)算還是做減法運(yùn)算,沒有說清;再如“給變量X增加一個值”,增加一個值,具體是多少,沒有說清。在算法中,這樣含糊不清的步驟不允許出現(xiàn)。(2)算法的特征:三、能行性(effectiveness)

算法中的每一個步驟都是可以實現(xiàn)的,或可以分解為可執(zhí)行的基本操作。例如

在算法中不能出現(xiàn)零做除數(shù)、在實數(shù)范圍內(nèi)對一個負(fù)數(shù)求平方根等情況。四、輸入(input)

算法允許有零個或多個輸入量。五、輸出(output)

算法必須有一個或多個輸出。根據(jù)以上討論,我們對算法有了進(jìn)一步的認(rèn)識:算法是精確定義的一系列規(guī)則,這些規(guī)則指定了一系列的操作,經(jīng)過有限步驟產(chǎn)生所求問題的解。(3)算法解決問題的類型計算機(jī)科學(xué)領(lǐng)域的問題大致可分為以下三種類型:一、判定性問題:這類問題給出的是與否的判別。例如

連通性問題(在計算機(jī)網(wǎng)絡(luò)中判斷兩臺主機(jī)是否連通、在社交網(wǎng)絡(luò)中判斷兩個用戶是否存在間接社交關(guān)系等,都可以抽象成連通性問題。)回路問題(網(wǎng)絡(luò)回路、運(yùn)輸回路),查找與排序問題,字符匹配問題等。二、最優(yōu)化問題:這類問題是在所有可能的解中求出最優(yōu)解。例如求函數(shù)的極值,最短路徑問題,最小生成數(shù)問題等。三、函數(shù)計算問題:這類問題是在一定約束條件下求數(shù)值解。例如方程求根,矩陣運(yùn)算,函數(shù)求值等。(4)一些重要的算法:A*搜尋算法BeamSearch二分取中查找算法Branchandbound數(shù)據(jù)壓縮

Diffie–Hellman密鑰協(xié)商Dijkstra’s算法動態(tài)規(guī)劃歐幾里得算法

最大期望(EM)算法快速傅里葉變換(FFT)哈希函數(shù)

堆排序歸并排序RANSAC算法RSA加密演算法并查集Union-findViterbialgorithm4.程序設(shè)計語言ProgrammingLanguage程序設(shè)計語言的產(chǎn)生與發(fā)展思考:什么是計算機(jī)語言?計算機(jī)語言通常是一個能完整、準(zhǔn)確和規(guī)則地表達(dá)人們的意圖,并用以指揮或控制計算機(jī)工作的“符號系統(tǒng)”。計算機(jī)語言包括:機(jī)器語言、匯編語言、高級語言三類高級語言有:BASIC、C、C++、PASCAL、FORTRAN、智能化語言(LISP、Prolog、CLIPS、OpenCyc、Fazzy)、動態(tài)語言(Python、PHP、Ruby、Lua)等。程序設(shè)計語言的產(chǎn)生與發(fā)展隨著計算機(jī)的發(fā)展,程序設(shè)計語言經(jīng)歷了從機(jī)器語言到高級語言的發(fā)展歷程。高級語言的發(fā)展歷程1、機(jī)器語言

機(jī)器語言:由一串“0”和“1”構(gòu)成二進(jìn)制代碼,能夠被計算機(jī)直接接受和執(zhí)行的語言。優(yōu)點:能夠直接在計算機(jī)上執(zhí)行。缺點:程序難以理解,程序設(shè)計任務(wù)繁重,效率低下,而且要求程序員必須經(jīng)過專門的訓(xùn)練。00001101十進(jìn)制的13 程序設(shè)計語言的產(chǎn)生與發(fā)展

2、匯編語言匯編語言:是一種類似英語縮略詞且?guī)в兄浶苑柕恼Z言,每條匯編指令都和一條機(jī)器指令相對應(yīng),只是指令碼和操作數(shù)都采用符號形式。這種語言與特定的機(jī)器和特定的微處理器有關(guān),不能被機(jī)器直接接受,必須用一種語言翻譯器將程序中的每條語句翻譯成機(jī)器語言才能執(zhí)行。

優(yōu)點:程序更易理解。缺點:程序不能被機(jī)器直接接受,要經(jīng)過翻譯器翻譯成機(jī)器語言。程序設(shè)計語言的產(chǎn)生與發(fā)展3、高級語言高級語言:不能被電腦直接識別,用高級語言編寫的程序必須經(jīng)過翻譯器將其翻譯成機(jī)器語言,才能在計算機(jī)上執(zhí)行。第一個高級語言是Fortran。

優(yōu)點:易于理解,移植性好。缺點:高級語言編寫的程序要經(jīng)過翻譯器翻譯成機(jī)器語言,才能在計算機(jī)上執(zhí)行。程序設(shè)計語言的發(fā)展歷史機(jī)器語言匯編語言高級語言面向過程面向?qū)ο驝PU指令系統(tǒng),由0、1序列構(gòu)成的指令碼組成如:10000000加

10010000減用助記符號描述的指令系統(tǒng)如ADDA,B程序設(shè)計是數(shù)據(jù)被加工的過程客觀世界可以分類,對象是類的實例對象是數(shù)據(jù)和方法的封裝對象間通過發(fā)送和接受消息發(fā)生聯(lián)系程序設(shè)計關(guān)鍵是定義類,并由類派生對象馮.諾依曼結(jié)構(gòu):計算機(jī)運(yùn)算器控制器存儲器主機(jī):I/O設(shè)備:鍵盤、顯示器等中央處理器CPU面向機(jī)器的語言5.程序流程圖FlowChart程序流程圖的畫法1為什么使用流程圖2流程圖的組成和畫法3流程圖的改進(jìn):N-S盒圖(1)為什么使用流程圖自然語言就是日常使用的語言,漢語或英語或其它語言。自然語言表示通俗易懂,但文字冗長,容易出現(xiàn)“歧義性”自然語言表示的含義不嚴(yán)格,要根據(jù)上下文才能判斷其正確含義。描述包含分支和循環(huán)的算法時也不很方便。因此,除了那些很簡單的問題外,程序設(shè)計一般不用自然語言描述算法。(1)為什么使用流程圖例1:有兩個存儲單元a和b,要求將它們的值互換。

分析:按存儲器的性質(zhì),如果將單元a的值直接送到單元b中,那么就會覆蓋掉b原來的內(nèi)容,因此,需要借助一個臨時單元c來交換。

具體算法用自然語言表述如下:步驟1:將單元a的值送給單元c;步驟2:將單元b的值送給單元a;步驟3:將單元c的值送給單元b。(1)為什么使用流程圖流程圖通常采用一些幾何圖形來代表各種類型的操作,在圖形內(nèi)標(biāo)明文字或符號來表示操作的內(nèi)容,并用箭頭來表示操作的順序。用流程圖表示算法,直觀形象,易于理解.(2)流程圖的組成和畫法起止框輸入/輸出框判斷框處理框流程線連接點(2)流程圖的組成和畫法算法三種基本結(jié)構(gòu)的流程圖畫法(2)流程圖的組成和畫法(2)流程圖的組成和畫法(2)流程圖的組成和畫法例:求1+2+3+4+…+10用流程圖進(jìn)行描述。n+1=>n1=>ns+n=>s0=>sn≤10輸出s是否針對流程圖存在的缺點,I.Nassi和B.Shneiderman提出了結(jié)構(gòu)化程序設(shè)計的流程圖,稱為N-S圖,更能體現(xiàn)結(jié)構(gòu)化程序設(shè)計的思想。推薦使用N-S圖。

N-S圖完全去掉了流程線,算法的所有處理步驟都寫在一個大矩形框內(nèi)(表示簡單、符合結(jié)構(gòu)化思想)(象堆積木)(3)流程圖的改進(jìn):N-S盒圖由于流程圖允許使用箭頭隨意跳轉(zhuǎn),對表示算法的層次結(jié)構(gòu)非常不利,且流程圖占的篇幅較大,作圖工作量也很大。

(3)流程圖的改進(jìn):N-S盒圖順序結(jié)構(gòu):從前向后順序執(zhí)行程序選擇結(jié)構(gòu):根據(jù)判斷條件的結(jié)果選擇執(zhí)行程序。循環(huán)結(jié)構(gòu):根據(jù)條件反復(fù)的執(zhí)行某一段程序若干次。0

s1nn≤10n+ssn+1n

輸出s(3)流程圖的改進(jìn):N-S盒圖n+1=>n1=>ns+n=>s0=>sn≤10輸出s是否例:求1+2+3+4+…+10用流程圖進(jìn)行描述。流程圖例:求10個任意整數(shù)中的最大數(shù)用N-S圖進(jìn)行描述輸入max

1

n

n<10

輸入x

T

x>max?F

xmaxn+1n輸出max(3)流程圖的改進(jìn):N-S盒圖3.3Raptor程序設(shè)計為什么要學(xué)習(xí)程序設(shè)計?由于計算思維的核心之一是算法思維,同時算法思維也是計算機(jī)科學(xué)的精髓。而算法思維的實現(xiàn)離不開程序設(shè)計,所以對于計算思維的學(xué)習(xí)和認(rèn)識,必須從程序設(shè)計開始。為什么要使用RAPTOR?RAPTOR(theRapidAlgorithmicPrototypingToolforOrderedReasoning--用于有序推理的快速算法原型工具),是一種基于流程圖的可視化程序設(shè)計環(huán)境,為程序和算法設(shè)計的基礎(chǔ)課程教學(xué)提供實驗環(huán)境。使用RAPTOR設(shè)計的程序和算法可以直接轉(zhuǎn)換成為C++、C#、Java等高級程序語言,這就為程序和算法的初學(xué)者鋪就了一條平緩、自然的學(xué)習(xí)階梯。使用RAPTOR的理由可以在最大限度地減少語法要求的情形下,幫助用戶編寫正確的程序指令程序就是流程圖,可以逐個執(zhí)行圖形符號,以便幫助用戶跟蹤指令流執(zhí)行過程容易掌握用RAPTOR可以進(jìn)行算法設(shè)計和驗證,從而使初學(xué)者有可能理解和真正掌握“計算思維”Raptor的特點(1)Raptor語言簡潔靈活。(2)Raptor具有基本的數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)類型和運(yùn)算功能。(3)Raptor具有結(jié)構(gòu)化控制語句。(4)Raptor語法限制較寬松。(5)Raptor可以實現(xiàn)計算過程的圖形表達(dá)及圖形輸出。(6)Raptor對常量、變量及函數(shù)名中所涉及的英文字母不區(qū)分大小寫,但只支持英文字符。(7)Raptor設(shè)計的程序可移植性較好。Raptor的使用——工作環(huán)境簡介F5:運(yùn)行流程圖F10:單步執(zhí)行顯示執(zhí)行結(jié)果。Raptor的使用——六種基本符號5518:16Raptor的使用——流程圖編程Raptor程序是一個有向圖(DirectedGraph)必須要有「Start」和「End」。程序會由「Start」開始,運(yùn)行至「End」才完成。在「Start」和「End」之間插入其他部件,便可制作一個較有意義的程序。輸入

把數(shù)據(jù)及指令

輸入計算機(jī)處理

計算機(jī)對輸入的

數(shù)據(jù)進(jìn)行運(yùn)算輸出

計算機(jī)顯示處理

數(shù)據(jù)的結(jié)果用一用Raptor!畫一個左圖所示的流程圖:從工具窗口選擇賦值控件,在主窗口的流程圖中單擊,添加控件;雙擊賦值控件,在彈出的“Enterstatement”窗口中的set處輸入變量名wh,在to處輸入值“Hello,world!”,按回車;用同樣的方法畫一個輸出控件;流程圖畫好后保存文件命名為myfirst.rap;然后單擊(按F5)運(yùn)行流程圖。觀察運(yùn)行過程及結(jié)果。Raptor編程基礎(chǔ)——什么是變量?在主存儲器的一個存貯位置。內(nèi)存存儲單元一個符號名。通過引用符號名來訪問其所對應(yīng)的存儲單元。存儲單元大小視定義類型而定。程序運(yùn)行時,變量的值是可改變的。主存儲器名稱:x類型:數(shù)字名稱:myname類型:文字59

Raptor編程基礎(chǔ)——變量變量的值的來源通常來自用戶輸入計算機(jī)加載(賦值存入內(nèi)存單元)一般來說,變量在程序運(yùn)行前,其數(shù)值是未定的。第一個被賦予的值為初始值(initializingavariable)。如使用未定初始值的變量,或會引發(fā)運(yùn)行時錯誤。在程序運(yùn)行的過程中,變量的數(shù)值會有所變化。能夠處理不同的輸入,才是一個較具意義的程序。何謂賦值?

Raptor編程基礎(chǔ)——變量使用變量時須注意的地方命名限制:起首字符必須為英文字母。其后的字符可以是英文字母、數(shù)字或下劃線,但不可以是其他符號或空格鍵。對:Hello,send2you,it_a_nice_day錯:2myfriend,iamveryangry!名字不可與一些內(nèi)定的預(yù)留字(Reservedword)相同。編程的良好習(xí)慣有意義的命名(e.g.exam_mark)

Raptor編程基礎(chǔ)——數(shù)據(jù)類型Raptor的數(shù)據(jù)類型數(shù)值型(Number):如456、-9、3.14159、0.000156字符串型(String):如“Iamaboy”、“Helloworld”字符型(Character):如‘B’、‘#’使用變量時常見的錯誤1.變量無值,也就是沒有給變量賦值就直接使用。2.變量名拼寫錯誤。18:16這個程序x的最終值是什么?在x←x*2下方加上x←x/3,x的最終值是什么?動手做!演示Raptor-控制結(jié)構(gòu)ControlStructure64控制結(jié)構(gòu)ControlStructure順序結(jié)構(gòu)“and-then”按指令排列先后順序執(zhí)行。從前向后執(zhí)行,必須按先后順序執(zhí)行。順序結(jié)構(gòu)左圖是一個計算由華氏溫度轉(zhuǎn)化為攝氏溫度的溫度轉(zhuǎn)換程序。思考:把題1的程序改為一個計算由攝氏溫度轉(zhuǎn)化為華氏溫度的程序。F=

(提示:你需要哪些變量?已知哪些變量?求哪些變量?)字符串:用雙引號括起來字符:用單引號括起來左圖是一個計算圓面積程序的一小部分,試參考它的算法,把它改寫成一個計算圓形周長的程序。(提示:你需要哪些變量?已知哪些變量?求哪些變量?)動手做!分支結(jié)構(gòu)“if-then”按條件判斷,分流執(zhí)行由條件句判別True或False條件條件不符合(False)條件符合(True)分支結(jié)構(gòu)——例子條件條件不符合(False)條件符合(True)成績評定69分支結(jié)構(gòu)算式結(jié)果密碼正確

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論