Pascal 程式設計,pascal程式

2023-03-05 00:40:02 字數 2929 閱讀 5318

1樓:陽光上的橋

要想提高,得自己寫程式,讓大家看看你錯在**,看別人的程式上進比較慢的。

下面的程式除錯通過,完全滿足你的要求,迴圈裡面的writeln是輸出每一項數值的,你可以註釋掉。

program ygb;

var i,j,n,x:integer;

begini:=0;

j:=0;x:=1;

write('n=')readln(n);

while ibegini:=i+1;

if jthen j:=j+1

else begin j:=1; x:=x+2; end;

writeln(i:5,x:10);

end;writeln(x);

end.

2樓:黃走之

用數學方法。

我的方法最短。

而且是對的。

var n:integer;

beginreadln(n);

writeln(2*trunc(sqrt(n-1))+1);

end.和樓上的程式比對過,都是對的。

pascal程式

pascal程式設計!高手速進!

3樓:不死de大地

我給你提供程式的思想,但是程式你自己編。不會可以問。

根據初等數論,顯而易見的,我們可以用帶餘除法來解決這個問題。

首先,你先把錢數轉化為7進製。如(672)10=(1650)7

然後先求單方面給,就是純加法的運算,這很簡單,只需要將7進製下的數字和求出來即可。1+6+5=12。

下一步,就要用到找錢了。思想核心就在這裡。怎麼找錢呢?

我們先看看如果單看七進製一位上的數字。可以得到4是中間數,這個數無論是純加法還是找錢所需張數都一樣。即我可以給4張,也可以給你一張比當前大乙個面值的,再由你找3張。

便於理解,我舉例:錢數是11,7進製是14。不看要給的7塊,單從剩餘4塊分析,我可以給4張1塊,也可以給1張7塊,你找3張一快,錢的張數都是4。

綜上,我們推知,當單個位上的數字≤4的時候,我們可利用純加法(既然都一樣用簡單的),當數字>4的時候,我們就用找錢。

繼續開頭的例子。1650的七進製,6>4,5>4,所以應該找錢。怎麼找呢?

6進一位,所以要給一張7^3也就是343元的代替了6張49元,5進一位,所以也要給一張49元的代替5張7元。

看下面的**。

給錢 2 1

找錢 1 2

我們發現,給一張49又找一張49,抵消了;給一張7找2張7,抵消了一張。

因此,我們可以把各個位上給錢和找錢的差的絕對值加起來,2+2=3張。

我們來驗證一下。672=343*2-7*2。沒錯。

那我也說一下程式上怎麼實現這個理念呢?純加法我不說了,分離數就可以。那後面的找錢我建議你定義陣列來做,就像上面的**,兩個陣列來儲存給錢和找錢,然後求差值,有負號就消掉,再求和。

當然最後別忘了比較。

有問題可以問我。希望有追加分數,謝謝。

pascal 程式問題

4樓:匿名使用者

我們可以看random函式的定義:

random(n):表示產生[0,n)之間的隨機整數,可以直接使用random語句表示隨機產生乙個[0,1)的數。

我們知道,[表示包括,)表示不包括,所以random語句只會產生0到1但不包括1的數。

readln語句表示一直讀入資料直到遇到第乙個換行符。

我們知道在fp中,程式一執行結束就立刻退出dos螢幕,可以按alt+f5檢視dos螢幕中的內容。

像上面這種在程式的末尾加一readln,就相當於讓程式讀入一行的資料(這些資料並沒有實際用途),讓程式再等待使用者輸入一行資料後再結束執行,這樣可以起到乙個暫停程式的作用。

writeln語句是輸出一行資料,輸出完資料後程式就結束了,程式結束當然就返回頁面。

5樓:匿名使用者

應該不會隨機生成1的。

第二個我知道。

writeln是換行語句,只代表輸出結果之後,會另起一行如果是readln,意味著要讀入資料,所以可以直接看。

6樓:匿名使用者

隨機生成的是(0-899)中乙個數在加上100,保證了一定是三位數。

2.至於第二個,是你輸入乙個回車號之後螢幕才會繼續重新整理,否則會停留在列印的頁面。直到你打乙個回車號。

是直接輸出。當然不行。雖然這兩個都是換行。

pascal程式設計求急

7樓:網友

1 簡單判斷。

varscore:longint;

beginreadln(score); 讀入成績if score>85 then writeln('very good');判斷是否高於85分。

elsebegin

if score<60 then writeln('bad') 判斷是否地獄60分。

else writeln('good');

end;end.

2 由題可知,當前月具有生育能力的兔子數量等於上上個月的兔子總數,則當前月兔子總數為上月兔子數(原有)+上上月兔子數(新生)

vara,b,c,i:longint;

begina:=1; /上上個月。

b:=2; /上個月。

for i:=3 to 12 do

beginc:=a+b; /求得本月兔子數。

a:=b; /上個月變成了上上個月。

b:=c; /本月變成了山个月。

end; /1月和 2月已知,迴圈十次後本月即為十二月writeln(c); 輸出本月兔子數end.

8樓:匿名使用者

第乙個就是簡單的判斷;

第二個是斐波那契數列;

很好做的~

pascal程式設計問題

vara,b,c,d integer begin read a,b,c if a b then d b else d a if c d then d c writeln d end.vars string t,q,m,b,i,k,max longint a array 1.1000 of longi...

pascal程式設計急求

好像上面兩位都有點問題 第一題program exe1 vars real i,n,k integer begin s 0.0 readln n for i 1 to n do if odd i then s s 1 ielse s s 1 i writeln s 0 6 end.第二題progra...

PASCAL程式設計中的函式 英文原文

我來滿足一下lz的好奇心啊,順便提公升我的英語水平,這些詞的詞性不統一啊,你就將就著看吧。一般能用到的就有這些 abs x f absolute valuechr x f char dec x p decrease eof f f end of file eoln f f end of lineex...