【正文】
if (c==39。\n39。 } c=getc(stdin)。 } printf(INFO: the input number must be in {0,...,20}\n\n )。\n39。 else { while (1) { c=getc(stdin)。039。amp。)。 } if (k2) k=k*10+(c39。 } printf(INFO: the input must be 1 or 2 digits\n\n)。\n39。) { while (1) { c=getc(stdin)。||c39。 } if (c39。\n39。 c=getc(stdin)。 } k=c39。 } printf(INFO: the input must be 1 or 2 digits\n\n)。\n39。) { while (1) { c=getc(stdin)。||c39。 } if (c39。) { printf(INFO: the input must be 1 or 2 digits\n\n)。 if (c==39。 putc(9,stdout)。:39。,stdout)。 putc(39。 int k=0。 } return k。 else k=k+2。 } /**************************************************/ int isk(int n,int k) { if (k!=20) { if (k!=n) k=21。 y3=y3+y2。 while (y3=x) { y1=y1+1。amp。 y3=1。 y1=0。 int y2=0。 printf(RESULT: %i\n\n,m)。 m=isr(n,k)。 printf(INFO: system is now active\n)。 int m=0。 int isk(int n,int k)。 } } ./isr INFO: system is now active N: 2 RESULT: 1 N: 10 RESULT: 3 N: 20 RESULT: 4 N: 30 INFO: the input number must be in {0,...,20} N: 5 RESULT: 2 N: 例子 : ISR include /**************************************************/ int in()。 continue。) break。 if (c==39。\n39。 } c=getc(stdin)。 } printf(INFO: the input number must be in {0,...,20}\n\n )。\n39。 else { while (1) { c=getc(stdin)。039。amp。)。 } if (k2) k=k*10+(c39。 } printf(INFO: the input must be 1 or 2 digits\n\n)。\n39。) { while (1) { c=getc(stdin)。||c39。 } if (c39。\n39。 c=getc(stdin)。 } k=c39。 } printf(INFO: the input must be 1 or 2 digits\n\n)。\n39。) { while (1) { c=getc(stdin)。||c39。 } if (c39。) { printf(INFO: the input must be 1 or 2 digits\n\n)。 if (c==39。 putc(9,stdout)。:39。,stdout)。 putc(39。 int k=0。 } return k。 else k=k+2。 } /**************************************************/ int isk(int n,int k) { if (k!=20) { if (k!=n) k=21。 y3=y3+y2。 while (y3=x) { y1=y1+1。amp。 y3=1。 y1=0。 int y2=0。 printf(RESULT: %i\n\n,m)。 m=isr(n,k)。 printf(INFO: system is now active\n)。 int m=0。 int isk(int n,int k)。模型檢測(cè) – 例子 中國(guó)科學(xué)院軟件研究所 計(jì)算機(jī)科學(xué)國(guó)家重點(diǎn)實(shí)驗(yàn)室 張文輝 程序正確的重要性 ? 應(yīng)用廣泛 –航空 –航天 –金融 –設(shè)備的控制 –日常生活 ? 軟件錯(cuò)誤的可能后果 –火箭 Ariane 5 Explosion (1997) –火星氣候軌道器 NASA Mars Climate Orbiter (1999) 程序正確性方法 ? 測(cè)試 –黑盒測(cè)試 –白盒測(cè)試 ? 形式驗(yàn)證 –推理驗(yàn)證 –模型檢測(cè) 可執(zhí)行代碼 程序代碼 程序代碼或其抽象模型 程序運(yùn)行環(huán)境模型 規(guī)則 算法 例子 : ISR include /**************************************************/ int in()。 int isr(int x,int k)。 /**************************************************/ int main() { int n=0。 int k=1。 while (1) { n=in()。 k=isk(n,k)。 } } /**************************************************/ int isr(int x,int k) { int y1=0。 int y3=0。 y2=1。 if (x==2||(x2amp。k==20)) x=x1。 y2=y2+2。 } return y1。 else if (k==19) k=0。 } else { k=21。 } /**************************************************/ int in() { char c=0。 while (1) { k=0。N39。 putc(39。,stdout)。 c=getc(stdin)。\n39。 continue。039。939。 if (c==39。) break。 continue。039。 if (c==39。) { return k。039。939。 if (c==39。) break。 continue。039。 else if (k==2amp。c==39。) k=20。 if (c==39。) break。 continue。 if (c!=39。) { while (1) { c=getc(stdin)。\n39。