轉到內容

MUMPS 程式設計/簡單輸入和輸出

來自維基百科,開放世界,開放書籍

MUMPS 使用 WRITE(縮寫為 W)命令用於輸出,並且使用 READ (R) 命令用於輸入。除非由 USE (U) 命令指定,否則,輸出的內容預設為與實現等效的 STDOUT,輸入的內容預設為與 STDIN 等效。

USE 命令將 I/O 裝置重定向到其他裝置。它的語法因實現而異。在執行 DSM-11 的較早的 PDP-11 計算機上,裝置進行了整數標識。VAX-DSM 和其他實現允許字串指定主機作業系統的裝置。

任何特定正在執行的例項的預設裝置始終是 $PRINCIPLE ($P),並且大多數實現也將接受 0 作為 $P 的等效項。

ATM
Withdraw
	K Amount,Availablenotes,TMP
	I ($G(^ATM(1000))+$G(^ATM(500))+$G(^ATM(100)))<=0 D
	. W #,!,"There is no money available in this Machine. Sorry for the inconvenience."
	. Q	
	Set Availablenotes=$S($G(^ATM(100)):"100",1:"")
	Set Availablenotes=Availablenotes_" "_$S($G(^ATM(500)):"500",1:"")
	Set Availablenotes=Availablenotes_" "_$S($G(^ATM(1000)):"1000",1:"")
	W #,!,"Only ",Availablenotes," note(s) are available"
	R !,"Enter the Amount :",Amount:60
	I '$T D
	. W !,"Sorry! Time Out!"
	. R TMP#1:5
	. G Exit
	I Amount>10000 D
	. W !,"Please enter an amount less then 10000."
	. R TMP#1:5
	. G Withdraw
	I (Amount#100) D
	. W !,"Please enter an amount in multiples of 100."
	. R TMP#1:5
	. G Withdraw
	I (($G(^ATM(1000))*1000)+($G(^ATM(500))*500)+($G(^ATM(100))*100))<Amount D
	. W !,"Transaction failed"
	. R TMP#1:5
	. G Withdraw
	I (Amount<500)&&($G(^ATM(100))<(Amount#100)) D
	. W !,"Transaction failed"
	. R TMP#1:5
	. G Withdraw
Exit
	W !,"Thank you visit again"
	Q


; Sundara Moorthy
; Sr. Cache And MUMPS Developer
; suthy.s.45@gmail.com
華夏公益教科書