A. vfp 改錯題
VFP改錯題
瀏覽次數:次懸賞分:10
|
離問題結束還有
4
天
1
小時
|
提問者:知識總掌門
6.student.dbf
庫結構中含有姓名(C,6)、總成績(N,3,0)欄位。要求能反復根據用戶輸入的姓名,查閱student庫中的姓名
和總成績。
SET
TALK
OFF
CLEAR
USE
student
INDEX
ON
姓名
TO
name
**********found**********
WAIT
'請輸入學生姓名'
TO
xm
DO
WHILE
.T.
CLEAR
**********found**********
SEEK
FOR
姓名=xm
IF
FOUND()
?'姓名:'+姓名,"
總成績"+STR(總成績,3)
ELSE
?'查無此人'
ENDIF
WAIT
'繼續查詢嗎?(Y/N)'
TO
jx
IF
upper(jx)='Y'
CLEAR
ACCE
'請輸入學生姓名'
TO
xm
LOOP
ELSE
**********found**********
cont
ENDIF
ENDDO
USE
SET
TALK
ON
RETURN
7.
職工:
倉庫號C(4),職工號C(4),工資N(4);
訂購單:職工號C(4),供應商號C(4),訂購單號C(4),訂購日期D,總金額N(10);
工資:
職工號C(4),工資N(4);
程序M.PRG功能:檢索出與供應商S7、S4和S6都有業務聯系的職工的職工號和工資,並存放到工資文件中。
set
talk
off
set
safety
off
close
all
clear
select
1
use
工資
zap
select
2
use
訂購單
select
3
use
職工
store
.f.
to
x,y,z
scan
select
2
locate
for
職工號=c->職工號
*************found****************
do
while
.t.
do
case
case
供應商號="S7"
x=.t.
case
供應商號="S4"
y=.t.
case
供應商號="S6"
z=.t.
endcase
*************found****************
skip
enddo
if
x.and.y.and.z
select
1
append
blank
replace
職工號
with
c->職工號,工資
with
c->工資
endif
store
.f.
to
x,y,z
select
3
*************found****************
loop
select
1
list
close
database
set
talk
on
set
safety
on
8.能夠根據給定的幾個庫文件XS.DBF、KC.DBF和CJ.DBF
,不限次數地按鍵入的學號查詢輸出該生各門課的分數,直到輸
入的學號為"Q"或"q"時才退出查詢。
set
talk
off
set
safe
off
use
xs
inde
on
學號
to
xh00
sele
b
use
kc
inde
on
課程號
to
kch00
sele
c
use
cj
set
rela
to
學號
into
a,課程號
into
b
do
while
.t.
clear
x="
"
@
5,6
say
"學號(Q:Exit):
"
get
x
**********found**********
menu
to
if
"Q"$x
.or.
"q"$x
**********found**********
loop
endif
loca
for
學號=x
@
7,6
say
a.姓名+":
"
do
while
found()
?
b.課程名稱
??
分數
**********found**********
skip
enddo
wait
enddo
@
9,6
say
"再見!"
close
database
set
talk
on
set
safe
on
return
B. VFP程序改錯:表文件st.dbf含有xh(學號)和xm(姓名)欄位,現由用戶輸入學號,自動輸出姓名。
endfor 改為 endif
C. 資料庫vf程序改錯程序改錯
SET TALK OFF
USE D:考生文件夾D1
STORE "李明" TO XMM
INDE ON XM TO XMSY
SEEK XMM
IF FOUND()
DISP
ELSE
? "無此學生"
ENDIF
USE
SET TALK ON
RETU
D. VFP 改錯,並編制子程序。
錯誤的地方有
1. 程序中的英文引號你用成了中文引號
2. 你的程序設計有誤,部分設計可能會進入死循環
應該這樣改:
Set talk off
Clear
do while .t.
Input"請輸入一位整數,0表示退出:"to j
do case
case j>=10.or.j<0
@0,20 say "請輸入10以下的正整數!"
loop
case j=0
Exit
endcase
clear
@1,20 say j
k=0
FOR i=1 TO j*2-1
IF i>j
k=k-1
else
k=k+1
endif
?REPLICATE(" ",j-k)
??REPLICATE(ALLTRIM(STR(k)),(k-1)*2+1)
ENDFOR
enddo
set talk on
return
E. 全國計算機二級考試VFP程序改錯題
上面顯示的是不能用縮寫嗎?還是顯示其他的錯誤,或者不是因為縮寫出錯,是因為其他錯誤。我之前沒遇到過這樣的問題,而且我也是一直用的縮寫。如果可以,可以截圖給我看看。
F. VFP高手請進,程序改錯
(一)CLEAR
DIME arrp[100]
i=1
n=2
DO WHILE i<=100
IF checkp (n)
arrp[i]=n
?? arrp[i]
i=i+1
ENDIF
n=n+1
ENDDO
FUNCTION checkp
PARA pn
IF pn=2
return .t.
ENDIF
m=.T.
FOR j=2 TO CEILING (SQRT(pn)) && CEILING (n)是取不小於n的最小整數
*IF pn%j<>0 && 錯
*m=.T. && 錯
IF pn%j=0
m=.F.
ENDIF
ENDFOR
RETURN m
ENDFUNC
(二)
CLEAR
DIME arrPrime[100]
i=1
n=2
DO WHILE i<=100
isPrime=.t.
FOR j=2 TO INT(SQRT(n))
*IF n%j!=0 && 錯
IF n%j=0
isPrime=.f.
EXIT
ENDIF
ENDFOR
IF isPrime
arrPrime[i]=n
?? arrPrime[i]
IF i%5=0
?
ENDIF
i=i+1
*ENDF && 錯
ENDIF
n=n+1
ENDDO
G. vfp程序改錯題
CLEAR
SETTALKOFF
SETDEVICETOprint
SETPRINTERto~aa.txt
FORi=1to33
FORj=1to50
FORk=1to100
IFi+j+k=100andi*3+j*2+k*0.5=100
@row(),col()saySTR(i,4)+STR(j,4)+STR(k,4)
ENDIF
ENDFOR
ENDFOR
ENDFOR
SETPRINTERtoprn
MODIFYCOMMAND~aa.txt
RETURN
23068
52570
82072
111574
141076
17578
H. VF程序改錯,十進制數轉換成二進制數
dimension s(t)
你的T初值是1,也就是說你定義的數組dimension s(1),當然是下標超界了。改為:dimension s(n)
改後程序如下回:我已經驗證答過了。
set talk off
clear
t=1
input "請輸入一個十進制數:" to n
dimension s(n) &&此行有改動
do while n!=0
s(t)=n%2
n=int(n/2)
t=t+1
enddo
?"n的二進制數為:"
for i=t-1 to 1 step -1 &&此行有改動
??s(i) &&此行有改動
endfor
set talk on
return
I. 一般大學計算機VFP期末考試,在最後的程序改錯題中,都絕對是**FOUND**下面一行是錯的
廢話。
***FOUND***本來就意味著「(請)找出(下面這行的錯誤之處)」。
要適當學一點英語啊……
J. 求高手解答vfp程序改錯題!
二級
VF
上機考試程序改錯題精選
程序改錯題
1
:
(
5
)
在考生文件夾下完成如下簡單應用:
1 . modi1.prg
程序文件中
SQLSELECT
語句的功能
是查詢目前用於
3
個項目的零件
(零件名稱)
,
並將結果
按升序存入文本文件
results.txt
中.
給出的
SQL
SELECT
語句中在第
l
、
3
、
5
行各有一處錯誤,請改正並運行
程序(不得增、刪語句或短語,也不得改變語句行)
。
***********
程序提供的代碼
***********
SELECT
零件名稱
FROM
零件信息
WHERE
零件號
=
(SELECT
零件號
FROM
使用零件
;
GROUP BY
項目號
HAVING COUNT(
項目號
) = 3)
ORDER BY
零件名稱
INTO FILE results
************************************
其中,
第
1
行中的
"="
需改為
"IN"
;
第
3
行中的
"GROUP BY
項目號
"
需改為
"GROUP
BY
零件號
"
;
第
5
行中的
"INTO FILE"
需改為
"TO FILE"
。
程序改錯題
2
:
(
34
)
在考生文件夾下完成如下簡單應用:
1
.
程序文件
rate_pro
的功能是計算出
"
林詩因
"
所持有
的全部外幣相當於人民幣的數量,
summ
中存放的是結
果。注意:某種外幣相當於人民幣數量的計算公式:人
民幣數量=該種外幣的
"
現鈔買入價
"*
該種外幣的
"
持有
數量
"
。請在指定位置修改程序語句,不得增加或刪除程
序行,並保存所做的修改。
步驟
1
:打開程序
rate_pro
。修改程序如下:
第
1
處錯誤改為:
locate for
姓名
="
林詩因
"
第
2
處錯誤改為:
do while not eof()
第
3
處錯誤改為:
summ
=
summ
+
a[1] * currency_sl.
持有
數量
步驟
2
:保存並運行程序。
程序改錯題
3
:
(
56
)
打開程序文件
cylinder.prg
,該程序的功能是根據輸
入的半徑和高計算圓柱體表面積,其中函數定義中有錯
誤,
請在
******found*******
的下一行進行修改使之能正
確運行
(
不得增加語句,不得刪除語句
)
。
打開程序文件
cylinder.prg
,程序修改如下:
第
1
處改為:
PARAMETERS a,b
第
2
處改為:
RETURN c
程序改錯題
4
:
(
8
)
test.prg
中的第
2
條語句是錯誤的,修改該語句
(注意:只能修改該條語句)
,使得程序執行的結果是在
屏幕上顯示
10
到
1
,如下圖所示。
打開程序
test
,將
第二行語句改為:
DO WHILE i>=1
保存並運行程序,查看運行結果。
程序改錯題
5
:
(
8
)
修改並執行程序
temp
。該程序的功能是根據
"
教師表
"
和
"
課程表
"
計算講授
"
數據結構
"
這門課程,並且
"
工資
"
大於等於
4000
的教師人數.注意,只能修改標有錯誤的
語句行,不能修改其他語句。
********************************
錯誤
1
:將
TO
改為
INTO
。
錯誤
2
:將
OPEN
改為
USE
。
錯誤
3
:將
SCAN OF
改為
SCAN FOR
。
錯誤
4
:將
OR
改為
AND
。
錯誤
5
:將
sum+1
改為
sum=sum+1
。
程序改錯題
6
:
(
9
)
給定表單
modi2.scx
,功能是:要求用戶輸入一個
正整數,然後計算從侄四該數字之間有多少偶數、多少
奇數、多少能被
3
整除的數,並分別顯示出來,最後統
計出滿足條件的數的總數量.請修改並調試該程序,使
之能夠正確運行。
改錯要求:
"
計算
"
按鈕的
Click
事件代碼中共有
3
處錯誤,請修改
"*** found ***
下面語句行的錯誤,必
須在原來位置修改,不能增加或刪減程序行(其中第一
行的賦值語句不許減少或改變變數名)
。
"
退出
"
按鈕的
Click
事件代碼中有一處錯誤,該按
鈕的功能是關閉並釋放表單.
步驟
1
:打開表單
modi2
,修改
"
計算
"
命令按鈕的
Click
事件。
錯誤
1
:改為
STORE 0 TO x,s1,s2,s3
。
錯誤
2
:改為
x=val(thisform.text1.value)
。
錯誤
3
:改為
if mod(x,3)=0
。
步驟
2
:以同樣的方法修改
"
退出
"
按鈕的
Click
事件
代碼為
"Thisform.Release"