freepascal的基礎練習題急需

2022-02-20 16:59:26 字數 4788 閱讀 1672

1樓:匿名使用者

出幾道題給你吧

一、某超市為了**,規定:購物不足50元的按原價付款,超過50不足100的按九折付款,超過100元的,超過部分按八折付款。編一程式完成超市的自動計費的工作。

二、輸入a,b,c三個不同的數,將它們按由小到大的順序輸出。

三、程式設計模擬剪刀、石頭、布遊戲:用s表示剪刀,用r表示石頭,用p表示布。規則是:

剪刀剪布,石頭砸剪刀,布包石頭。遊戲者分別把自己的選擇輸入,計算給出結果。 一、var moneya:

integer;moneyb:real;

begin

readln(moneya);

if moneya<=50 then moneyb:=moneya

else if moneya<=100 then moneyb:=50+(moneya-50)*0.9

else moneyb:=50+45+(moneya-100)*0.8;

writeln(moneyb:0:2);

readln;

end.

二、var a:array[0..3]of longint;i,j:byte;

begin

read(a[1],a[2],a[3]);

for i:=1 to 2 do

for j:=i+1 to 3 do

if a[i]>a[j] then begin

a[0]:=a[i];a[i]:=a[j];a[j]:=a[0];

end;

write(a[1],' ',a[2],' ',a[3]);

readln;

end.

三、const ch1='s';ch2='r';ch3='p';

var s:string[2];winner:byte;b:boolean;

begin

b:=true;

readln(s);

case s[1] of

ch1:case s[2] of

ch1:b:=false;

ch2:winner:=2;

ch3:winner:=1;

end;

ch2:case s[2] of

ch1:winner:=1;

ch2:b:=false;

ch3:winner:=2;

end;

ch3:case s[2] of

ch1:winner:=2;

ch2:winner:=1;

ch3:b:=false;

end;

end;

if b then writeln('第',winner,'個人贏了')

else writeln('沒有人贏');

end.

free pascal和turbo pascal的區別在於

雖然free pascal儘量設計得和turbo pascal接近,但是由於以下的兩個原因,兩者之間還是有一些區別的:

1.free pascal是一個32位的編譯器,而turbo pascal只是16位編譯器;

2.free pascal是一個跨平臺的編譯器,而turbo pascal只在windows上使用。

如果你的**是遵守ansi pascal的,那麼**從turbo pascal移植到free pascal是沒有問題的。

下面是在turbo pascal上可以使用,但是在free pascal就不能使用的一些語言特性:

1.函式和過程在使用時,引數的型別必須和定義時完全一致。原因是在free pascal中新增了函式過載功能。

2.protected,public,published,try,finally,except,raise成為了關鍵字,因此不能作為函式和過程的名字。

3.far,near不再是關鍵字了。原因是free pascal是32位系統,不再需要這些關鍵字。

4.布林表示式不一定要全部進行計算。只要最終結果已經能夠確定,就不再計算其它還沒有計算的部分了。比如布林表示式exp1 and exp2 and exp3,如果已知exp1的結果是false,那麼怎麼表示式的結果肯定是false,exp2和exp3就不用進行計算了。

5.在free pascal中,集合中的元素都是4個位元組長的。

6.表示式執行的順序是不確定的。比如對於表示式a:=g(2)+f(3); 不保證g(2)一定在f(3)之前執行。

7.如果用rewrite開啟檔案,那麼檔案就只能被寫入了。如果需要讀取這個檔案,要對檔案執行reset。

8.free pascal在程式結束之前一定要關閉輸出檔案,否則輸出檔案可能不能被正確的寫入。

9.free pascal理論上可以使用4gb的記憶體,因此實際上幾乎可以使用系統中的所有剩餘記憶體(除非賽題中有記憶體限制)。這是free pascal由於32位的編譯器。但是對於turbo pascal來說,由於是16位的編譯器,因此不能定義大小超過64kb的資料型別和變數,並且在dos真實模式下可以使用的記憶體總數只有640kb。

下面是free pascal相對於turbo pascal擴充的一些功能:

1.函式可以返回複雜的型別,比如記錄和陣列。

2.在函式中,函式的返回值可以作為一個變數來處理。比如:

function a : longint;

begin

a:=12;

while a>4 do

begin

end;

end;

這個例子在turbo pascal中,a>4會被認為是函式的遞迴呼叫,但是在free pascal中會認為a只是一個變數。如果想在free pascal中實現遞迴呼叫,就要寫成下面的形式:

function a : longint;

begin

a:=12;

if a()>4 then

begin

end;

end;

3.exit可以接受一個引數作為函式的返回值。比如:

function a : longint;

begin

a:=12;

if a>4 then

begin

exit(a*67);

end;

end;

4.free pascal支援函式過載。可以用相同的名字定義不同的函式,只要這些函式的引數不同,就是不同的函式。比如:

procedure dosomething (a : longint);

begin

end;

procedure dosomething (a : real);

begin

end;

可以使用不同的引數型別longint或者real來呼叫不同的dosomething過程。

由於這個功能,函式的提前宣告必須有完整的引數宣告:

procedure x (v : longint); forward;

procedure x;

begin

end;

5.free pascal容許運算子過載。比如,可以自己為矩陣運算定義一個「+」運算。

6.free pascal在windows 95及其以上的windows版本上支援長檔名。對於檔名,由於windows系統對大小寫不敏感,因此在程式中,檔名的大小寫是無關的。但是對於其它大小寫敏感的系統,比如linux,程式中用到的檔名必須和系統中的檔名完全一致。

但是由於資訊學競賽的評測系統一般是linux,因此要求程式中的檔名和系統中的檔名一樣。

2樓:

目前93#汽油的**是6.53元/升,小明的爸爸10天前給汽車加了250元的汽油總共開了480公里路,請用pascal編寫一個計算汽車百公里的油耗的程式?

3樓:匿名使用者

基礎的題啊,這個就挺好 http://begin.tyvj.cn上面全是最基礎的題。

free pascal語言與基礎演算法(第三版)

4樓:篢霯孞譯

第三版我沒有,但你要什麼知識我可以告訴你,我有第二版的。

取絕對值是abs(x)

取平方是sqr(x)

分數直接用 (表示式) / (表示式) 就可以了,但必須要用實型real儲存,並且是近似值,比如1/3就只能存為0.333333333,pascal中沒有存分數的東西。

還有什麼需要的儘管說。

free pascal的題目

5樓:聽不清啊

來一個pascal的程式:

const a:array[1..4]of integer=(2,3,5,7);

var n,m,i:integer;

function humble(x:integer):boolean;

var i:integer;

begin

humble:=true;

for i:=1 to 4 do

begin

while x mod a[i]=0 do x:=x div a[i];

if x=1 then exit

end;

humble:=false

end;

begin

readln(n); m:=n; i:=0;

while m>0 do

begin

inc(i);

if humble(i) then dec(m);

end;

writeln('then ',n,'th humble is ',i);

end.

程式設計的一些基礎問題freepascal新手求救

integer是用一個長度為16的二進位制數來表示的.其中最高位是符號位,1表示負數,0表示整數.剩下15位用來表示數了.所以integer的最大值就是 0111111111111111 2 2 15 1 32767,負數最小值就是 1111111111111111 2 32768.同理,longi...

我想練習書法,想從最基礎的開始學,應該練習什麼字型,以及練習誰的字型比較好呢?軟筆和硬筆都想練習

學書可以從楷書開始,進而看一看隸書,然後練行草書,最後練篆。硬筆與軟筆可以齊頭並進。材料的話,建議用田氏兄弟,田英章與田蘊章的硬筆與軟筆字貼,再加一本九成宮即可。筆與紙有講究的,開始筆要用差的,以後見什麼筆你都不怕,紙卻要用好的,以後上大場面時,你不害怕。熟練了之後,用什麼也隨便你。由正書入手。正書...

求一道free pascal 的題目

while j 0 do後面的意思是 把b 1 5 從1 5 變為6 10 所以要25次 因為s本來是1 所以s為26 還有觀察一下就知道for i j i to 5 do b i b j i j 這段中i永遠比5大 所以不會執行 望 僅限你現在的程式 就如樓上所說 這一段 問題很多 你打錯了 不少...