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大 所以不會執行 望 僅限你現在的程式 就如樓上所說 這一段 問題很多 你打錯了 不少...