国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

淺談編程方法與思路

2009-12-02 10:20吉宏蘭
關(guān)鍵詞:上機(jī)字符數(shù)值

吉宏蘭

很多學(xué)習(xí)計(jì)算機(jī)的同學(xué),對(duì)編程比較頭疼,更有甚者學(xué)習(xí)一學(xué)期甚至一年都不能入門(mén),編程時(shí)無(wú)從下手,本人就一實(shí)例來(lái)談?wù)勅绾芜M(jìn)行編程。希望能給廣大學(xué)習(xí)編程的同學(xué)開(kāi)啟智慧之門(mén),早日跨入奇妙的程序世界。(以下程序在QBASIC環(huán)境下運(yùn)行通過(guò))

題目:輸入一個(gè)不超過(guò)五位的十六進(jìn)制數(shù),將其轉(zhuǎn)化為十進(jìn)制輸出。

一般來(lái)說(shuō),一個(gè)完整的程序通常由輸入部分、處理部分和輸出三大部分組成,題目的已知條件通常確定程序輸入部分,目的確定程序的輸出,要求確定程序的處理部分,編程的一切都得從審題開(kāi)始,然后認(rèn)真分析得出程序的各部分關(guān)鍵語(yǔ)句。

第一步:審題(從已知條件、目的和要求三個(gè)方面來(lái)分析)

已知條件:輸入一個(gè)長(zhǎng)度不超過(guò)五位的十六進(jìn)制數(shù)

輸入一個(gè)未知數(shù),用INPUT語(yǔ)句,運(yùn)行時(shí)由鍵盤(pán)輸入。輸入后放入一個(gè)什么類(lèi)型的變量?比如輸入[ZZ(Z]694[ZZ)]或者輸入D3B49,這兩者均符合題目要求。如果存入一個(gè)數(shù)值型變量,第一個(gè)數(shù)還可以,但第二個(gè)就出錯(cuò)了,為了能考慮各種情況的輸入,應(yīng)選用字符型的變量,這樣就可以存儲(chǔ)各種輸入的可能性數(shù)值。

如何保證長(zhǎng)度不超過(guò)5位:

(1)在INPUT語(yǔ)句中用明確的提示性語(yǔ)言,如:

INPUT “請(qǐng)輸入長(zhǎng)度不超過(guò)五位的十六進(jìn)制數(shù)”;X$

(2)先輸入,然后用測(cè)試串長(zhǎng)函數(shù)、檢測(cè)來(lái)檢查,如超過(guò)五個(gè)字節(jié)的長(zhǎng)度,則要求重新輸入,如:

DO

INPUT“請(qǐng)輸入一個(gè)十六進(jìn)制數(shù)”;X$

LOOP UNTILE LEN(X$)<=5

目的:在屏幕上打印出相對(duì)應(yīng)的十進(jìn)制值。

要求:該題只要完成將輸入的十六進(jìn)制的值轉(zhuǎn)化為十進(jìn)制數(shù)值,至于具體用什么方法來(lái)求出對(duì)應(yīng)的十進(jìn)制值并無(wú)具體要求。

我們可以用學(xué)過(guò)的進(jìn)制互化的方法來(lái)進(jìn)行,以具體例子來(lái)分析,若:輸入D3B49,其轉(zhuǎn)換方法應(yīng)為D*164+3*163+B*162+4*161+9*160,其中D、B應(yīng)轉(zhuǎn)化為13、11,計(jì)算后求和即可。

具體分析,我們只要將字符串逐位取出,取出后為一個(gè)一個(gè)的字符,只需將字符“D”、“3”、“B”、“4”“9”轉(zhuǎn)化為13、3、11、4、9,然后再乘以16的n次方(位權(quán)),其中n的取值與該字符在數(shù)中所處的位置有關(guān),如串長(zhǎng)為L(zhǎng),字符串左邊開(kāi)始為第一位,則第I位應(yīng)乘以16的(L-I)次方,乘積加入累加器。最后,累加器中的值,即為該十六進(jìn)制數(shù)對(duì)應(yīng)的十進(jìn)制值。

在上面的分析中,只需將字符轉(zhuǎn)化為相應(yīng)的數(shù)值,如果是數(shù)字字符,即“0-9”只要用字符型轉(zhuǎn)換為數(shù)值型函數(shù)VAL()即可,如果是字母字符“A-F”,則應(yīng)將其轉(zhuǎn)換為“10—15”,即“A”轉(zhuǎn)換為10、“B”轉(zhuǎn)換為“11”……,字母向后一個(gè),數(shù)值就大1,如何轉(zhuǎn)化呢?我們知道字母“A”的ASCII碼值為65,“B”的ASCII碼值為“66”,也是字母向后一個(gè),數(shù)值就大1。

如果我們把字母的ASCII碼值減去55,就能得到與之相對(duì)應(yīng)的數(shù)值,即“A”的ASCII碼值為65,減去55等于10,“B”的ASCII碼值為66,減去55,等于11……當(dāng)然,還要考慮防止用戶(hù)輸入的是小寫(xiě)字母,還應(yīng)先用大寫(xiě)轉(zhuǎn)換函數(shù)UCASE()轉(zhuǎn)換成大寫(xiě)字母,才能保證程序的正確性。

第二步:根據(jù)審題及各部分的分析寫(xiě)出對(duì)應(yīng)的程序。

程序及相應(yīng)注釋如下:

S=0 累加器顯性賦初值

INPUT “請(qǐng)輸入一個(gè)不超過(guò)五位的十六進(jìn)制”;X$

L=LEN(X$) 求字符串長(zhǎng)度

FOR I= 1 TO L 設(shè)置循環(huán),逐一取出字符串串字符

T$=MID$(X$,I,1) 取出字符

IF T$>=“0” AND T$<=“9” THEN

M=VAL(T$) 是數(shù)值字符直接轉(zhuǎn)換

ELSE

M=ASC(UCASE(T$))-55

字母字符轉(zhuǎn)換為大字字母后

END IF 求ASCII值,再減去55

S=S+M*16^(L-I) 求出該項(xiàng)值后加入累加器

NEXT I

PRINT S

END

第三步:考慮各種輸入的可能,用大腦模擬計(jì)算機(jī)運(yùn)行。

編寫(xiě)完程序,不要急于上機(jī)調(diào)試運(yùn)行,首先要在大腦內(nèi)進(jìn)行模擬運(yùn)行,考慮各種輸入情況,并舉幾個(gè)特例來(lái)分析,這樣有利于查出程序的結(jié)構(gòu)錯(cuò)誤和邏輯錯(cuò)誤。通過(guò)這種鍛煉也有助于提高編程能力、分析問(wèn)題和解決問(wèn)題的能力。

第四步:上機(jī)調(diào)試、運(yùn)行、驗(yàn)證。

用更多的輸入來(lái)檢驗(yàn)程序的運(yùn)行結(jié)果。

至此,程序編寫(xiě)結(jié)束:上機(jī)運(yùn)行調(diào)試通過(guò)。該程序雖然簡(jiǎn)單,也可能有很多其他的編程方法,但本文主要是與大家交流編程思路及步驟。接到題目,認(rèn)真審題,分析已知條件,確定輸入部分,分析程序要求確定處理部分,分析目的確定輸出部分,編寫(xiě)程序,模擬計(jì)算機(jī)運(yùn)行、檢驗(yàn)程序正確性,直至上機(jī)調(diào)試通過(guò)。

參考文獻(xiàn):

1. 李潔冰,《中職計(jì)算機(jī)程序設(shè)計(jì)課程教學(xué)探討》[J],電腦知識(shí)與技術(shù),2008,(05)

2. 蔣慧,《構(gòu)造類(lèi)型論與計(jì)算機(jī)程序設(shè)計(jì)》[J],計(jì)算機(jī)科學(xué),2002,(02)

3. 林小華,《計(jì)算機(jī)程序設(shè)計(jì)風(fēng)格探討》 [J],軟件導(dǎo)刊,2006(09)

猜你喜歡
上機(jī)字符數(shù)值
秦九韶與高次方程的數(shù)值解法
Python實(shí)現(xiàn)圖片轉(zhuǎn)字符畫(huà)
正則表達(dá)式快速入門(mén)
圖片輕松變身ASCⅡ藝術(shù)畫(huà)
上機(jī)數(shù)控“可疑”的高毛利率
改進(jìn)明托熱機(jī)的數(shù)值模擬研究
改進(jìn)明托熱機(jī)的數(shù)值模擬研究
基于有限差分法的邊坡治理數(shù)值分析
基于有限差分法的邊坡治理數(shù)值分析
高中信息技術(shù)教學(xué)實(shí)效探究
桃园县| 云龙县| 溧阳市| 准格尔旗| 三穗县| 松原市| 牟定县| 昌江| 彰化县| 庆安县| 淮滨县| 洛隆县| 南溪县| 平邑县| 武城县| 白城市| 关岭| 紫金县| 南漳县| 枞阳县| 万年县| 淳安县| 吉木乃县| 图木舒克市| 贵德县| 尤溪县| 噶尔县| 法库县| 凤山县| 城市| 蒙城县| 会理县| 宝坻区| 巴彦淖尔市| 临桂县| 新宾| 凤阳县| 海宁市| 讷河市| 安塞县| 田阳县|