程式設計作業 漢字程式設計

2022-07-26 08:57:12 字數 4123 閱讀 6150

這個作業屬於哪個課程

軟體工程

這個作業要求在**

第一次個人程式設計作業

這個作業的目標

實現漢字程式設計

作業正文

隨筆漢字是迄今為止持續使用時間最長的文字,也是上古時期各大文字型係中唯一傳承至今者,中國歷代皆以漢字為主要的官方文字。我們在感嘆漢字的源遠流長時,也不禁感慨,為什麼沒有一門使用漢字程式設計的語言?

小楊同學想到:用漢字來進行程式設計一定很有趣,來請你幫幫他。

變數定義:整數 (變數名) 等於 (數字)

運算(加法):(變數名) 增加 (數字)

運算(減法):(變數名) 減少 (數字)

輸出:看看 (變數名) or 看看 「(字串內容)」

附加要求:

樣例1輸入:

整數 氣溫 等於 十

氣溫 減少 三

氣溫 增加 二

看看 氣溫

如果 氣溫 大於 八 則 看看 「你好,世界」 否則 看看 「凍死我了」

輸出:九

你好,世界

樣例2輸入:

整數 小楊年齡 等於 八

整數 小楊零花錢 等於 二

小楊年齡 增加 一

如果 小楊年齡 大於 八 則 小楊零花錢 增加 一 否則 無

看看 小楊零花錢

**:我先寫了兩個用來作文本轉換的方法。

def change1(s1):

for s in s1:

if s=="一":

return(1)

elif s=="二":

return(2)

elif s=="三":

return(3)

elif s=="四":

return(4)

elif s=="五":

return(5)

elif s=="六":

return(6)

elif s=="七":

return(7)

elif s=="八":

return(8)

elif s=="九":

return(9)

elif s=="零":

return(0)

else:

return("輸入錯誤,只能為零-九。")

# 中文數字 —> 阿拉伯數字

def change_alb(s):

m = 0

t = 1

if s[0]=="負":

s = s[1:]

t*=-1

# [ : : -1]將字串逆序

s_nixu = s[ : : -1]

for c in s_nixu:

m = change1(c)*t + m

t*=10

return m

注:

我這裡的10用的是"一零",不是"十"。輸入"一零"對輸入沒有限制,"十"這種再補充。

def change2(s1):

for s in s1:

if s=="1":

return("一")

elif s=="2":

return("二")

elif s=="3":

return("三")

elif s=="4":

return("四")

elif s=="5":

return("五")

elif s=="6":

return("六")

elif s=="7":

return("七")

elif s=="8":

return("八")

elif s=="9":

return("九")

elif s=="0":

return("零")

elif s=="-":

return("負")

else:

return("輸入錯誤,只能為0-9。")

# 阿拉伯數字 —> 中文數字

def change_zw(s):

s_zhongwen = ""

for c in s:

s_zhongwen += change2(c)

return s_zhongwen

def chuli(s):

s_list = s.split(" ")

## 定義語句

if s_list[0] == "整數" and len(s_list) == 4:

# print(s_list[3])

dict1[s_list[1]] = change_alb(s_list[3])

## 檢視語句

elif (s_list[0] == "看看") and len(s_list) == 2:

# 取出key為s_list[1]的值

s_value = dict1.get(s_list[1], none)

if s_value:

print(change_zw(str(s_value)))

# 將阿拉伯數字的值轉換成中文數字,並輸出

else:

print(s_list[1][1:-1])

## 運算語句

else:

if s_list[1] == "減少" and len(s_list) == 3:

dict1[s_list[0]] = dict1[ s_list[0] ] - change_alb(s_list[2])

elif s_list[1] == "增加" and len(s_list) == 3:

dict1[s_list[0]] = dict1[ s_list[0] ] + change_alb(s_list[2])

對如果後面的判斷語句進行判定的方法

def panduan(s):

if "大於" in s:

# 此處的 s_list 存放的是:所要判斷的 變數名 和 判斷的值。

s_list = s.split(" 大於 ")

if dict1[ s_list[0] ] > change_alb(s_list[1]):

return true

else:

return false

elif "小於" in s:

# 此處的 s_list 存放的是:所要判斷的 變數名 和 判斷的值。

s_list = s.split(" 小於 ")

if dict1[ s_list[0] ] < change_alb(s_list[1]):

return true

else:

return false

這段是主函式,先判斷要執行的語句中是否存在如果,有的話讓語句通過對["否則","則","如果"]遍歷切割,先把三個語句切分出來,然後根據得到的元素(只存在如果),呼叫chuli方法對切割後的執行語句進行處理。

#def chuli(s):

def main(s) :

s_list =

if "如果" in s:

s_list =

for c in [" 否則 ", " 則 ", "如果 "]:

if c in s:

s_list1 = s.split(c)

s = s_list1[0]

if len(s_list)>1:

if panduan(s_list[-1]):

chuli(s_list[-2])

else:

if s_list[0]=="無":

return 0

else:

chuli(s_list[0])

else:

chuli(s)

執行的時候通過這個來呼叫main方法,當輸入為break的時候退出程式。

# 建立乙個空字典來存放定義的變數名跟值,如

dict1 = {}

while(1):

s = input()

if s=="break":

break

main(s)

第一次個人程式設計作業(漢字程式設計)

這個作業屬於哪個課程 這個作業要求在 homework 10283 這個作業的目標 漢字程式設計 作業正文 其他參考文獻 無輸入時,採用了while scanf s a eof 根據a的輸入來分別跳轉至加減法運算 看看 如果 或是再次定義漢字變數,四種情況。根據n的長度來分為不同的情況,乙個漢字佔2...

漢字顯示程式設計示例

data segment line char equ 210 在螢幕上第幾行顯示 col char equ 230 在螢幕上第幾列顯示 color char equ 0eh 顯示顏色 chars equ offset disp data end offset disp data 2 cc file ...

程式設計作業 程式設計作業 類和物件

描述 下面程式輸出的結果是 4,6請填空 include using namespace std class a int getval class b public a int getval int main 輸入無輸出4,6樣例輸入 無樣例輸出 4,6code include using name...