Pascal程式設計問題

2022-11-07 20:30:26 字數 4728 閱讀 2172

1樓:盧恕範橋

那位仁兄的答案是錯的額,你判斷閏年有問題,真正閏年的定義是:年號是400的整倍數或4的整倍數(但非100的倍數),也就是說2000是閏年,2023年也是閏年,但2023年不是閏年。

vara,b,c:integer;

begin

readln(a,b);

casebof

1,3,5,7,8,10,12:c:=31;

4,6,9,11:c:=30;

2:if

amod

4=0then

begin

c:=29;

if(a

mod100=0)and(a

mod400<>0)

then

c:=28;

endelse

c:=28;

end;

writeln(c);

end.

2樓:喜揚揚

1.program ssy;

var i,e:integer;

begin

read(n);

assign(output,'tuxing.out');

rewrite(output);

for i:=n downto 1 do

begin

for e:=1 to i do write(e);

for e:=i-1 downto 1 do write(e);

writeln;

end;

close(output);

end.

2.program xt;

var thief:char;

begin

assign(output,'xt.out');

rewrite(output);

for thief:='a'to'd'do

if ord(thief<>'a')+ord(thief='c')+ord(thief='d')+ord(thief<>'d')=3 then writeln('the thief is',' ',thief);

close(output);

end.

第二題說明一下: a說:「我不是小偷。」 表示式為 'a'<>thief

b說:「c是小偷。」 表示式為 'c'=thief

c說:「小偷肯定是d」 表示式為 'd'=thief

d說:「c冤枉人!」 表示式為 'd'<>thief

用一個迴圈依次將thief賦值為a,b,c,d(即將a,b,c,d分別假定為小偷去檢驗),又因為

ord(true)=1

ord(false)=0

原題已說三人說的是真話,一人說的是假話

所以如果當thief被賦的值就是小偷時,thief<>'a', thief='c',thief='d',thief<>'d'這幾個布林變數就有3個為true,一個為false

所以ord(thief<>'a')+ord(thief='c')+ord(thief='d')+ord(thief<>'d')=3 這時就讀出 writeln('the thief is',' ',thief);

3樓:匿名使用者

1.program p1;

vari,j,n:integer;

begin

for i:=1 to n do

begin

for j:=1 to (5-i+1) dowrite(j);

for j:=(5-i) downto 1 dowrite(j);

writeln;

end;

end.

2.var

i:integer;

begin

for i:=1 to 4 do

if(ord(i=1)+ord(i<>3)+ord(i<>4)+ord(i=4))=1 then writeln(chr(ord('a')+i-1));

end.

希望提問者能看得懂我的答案!!!!

(渴望也行 (^o^) )!!!!!!!!!

樓上的作得不是不對,但太不容易理解!!!!!

(人家初學,還不懂)!!!!!

希望樓上的能加以改進!!!

(我的程式或許不是正宗的程式,但結果絕對正確!!!!)(^o^)(^o^)(^o^)(^o^)(^o^)(^o^)(^o^)(^o^)(^o^)(^o^)(^o^)(^o^)(^o^)(^o^)(^o^)(^o^)(^o^)(^o^)(^o^)(^o^)(^o^)(^o^)(^o^)(^o^)(^o^)(^o^)(^o^)(^o^)(^o^)(^o^)(^o^)(^o^)

請支援我!!

謝謝@@@

以下內容可以不看

4樓:

1.program tuxing;

const n=5;

var i,e:integer;

begin

assign(output,'tuxing.out');

rewrite(output);

for i:=1 to n do begin

for e:=1 to n+1-i do write(e);

for e:=n-i downto 1 do write(e);

writeln;

end;

close(output);

end.

2.program xt;

var thief:char;

begin

assign(output,'xt.out');

rewrite(output);

for thief:='a'to'd'do

if ord(thief<>'a')+ord(thief='c')+ord(thief='d')+ord(thief<>'d')=3 then writeln('the thief is',' ',thief);

close(output);

end.

第二題說明一下: a說:「我不是小偷。」 表示式為 'a'<>thief

b說:「c是小偷。」 表示式為 'c'=thief

c說:「小偷肯定是d」 表示式為 'd'=thief

d說:「c冤枉人!」 表示式為 'd'<>thief

用一個迴圈依次將thief賦值為a,b,c,d(即將a,b,c,d分別假定為小偷去檢驗),又因為

ord(true)=1

ord(false)=0

原題已說三人說的是真話,一人說的是假話

所以如果當thief被賦的值就是小偷時,thief<>'a', thief='c',thief='d',thief<>'d'這幾個布林變數就有3個為true,一個為false

所以ord(thief<>'a')+ord(thief='c')+ord(thief='d')+ord(thief<>'d')=3 這時就讀出 writeln('the thief is',' ',thief);

5樓:匿名使用者

哇哇!!! 現在還有人學pascal程式設計?

我是玩delphi 的!!! 它也是基於pascal的!!! 呵呵!

兄弟。我可沒有叫你換哈!!只是現在正在陪美女聊天。沒來得急給你寫**。就敲了回車了!!!

不要亂想哈!!!

樓上。樓下的兄弟可不要亂講哈。怕怕!

6樓:

const n=5;

var i,e:integer;

begin

assign(output,'tuxing.out');

rewrite(output);

for i:=1 to n do beginfor e:=1 to n+1-i do write(e);

for e:=n-i downto 1 do write(e);

writeln;

end;

close(output);

end.

2.program xt;

var thief:char;

begin

assign(output,'xt.out');

rewrite(output);

for thief:='a'to'd'doif ord(thief<>'a')+ord(thief='c')+ord(thief='d')+ord(thief<>'d')=3 then writeln('the thief is',' ',thief);

close(output);

end.

很簡單的 自己體會一下把

7樓:1出問題

.............

第一題n是變數不是常量5,應該讀入

8樓:匿名使用者

no.1

vari,j,k,n,m:longint;

begin

read(n);

for i:=1 to n do

begin

for j:=1 to n-i+1 do

write(j);

for j:=n-i downto 1 dowrite(j);

if i<>n then writeln;

end;

end.

9樓:

不是進來回答的,是勸你換種語言的

10樓:xx小小迷

習題上有答案的,自己翻一翻。

pascal郵票問題程式設計題目郵票問題

如樓上所說這個子程式其實就是求能構成的最大面值,對於每個面值的郵票,選擇要幾張,並且郵票用光了就結束,結果就在money裡 其實沒有太大的意義 讓你體會一下回溯的思想 這個子程式其實就是求能構成的最大面值,對於每個面值的郵票,選擇要幾張,並且郵票用光了就結束,結果就在money裡,通過money就可...

pascal程式設計題目

vara array 1.100 of integer n,i,ans,len,tmp,beg integer begin read n for i 1 to n do read a i tmp 0 ans 0 len 0 beg 0 for i 1 to n do begin if tmp a i...

pascal 數字分組問題,Pascal記數問題

答案是這些 計算這個答案的pascal程式如下,做好心理準備,別笑疼了肚子 program project1 var a1,a2,a3,a4,a5,a6,a7,a8,a9 integer beginfor a1 1 to 9 do for a2 1 to 9 do if a2 a1 then for...