1樓:匿名使用者
迴圈問題。樓上講得很詳細,對樓上的進行補充一下迴圈語句的基本格式,這對初學者的用處也是不可忽視,得從基本的開始,先掌握理論,進行實戰,事半功倍。
for 《迴圈變數》:=《初始值》to《終值》 do迴圈體;
接著就是了解方法,樓上已經把解題的方法講的很詳細了,綜合的應用就要看樓主自己的啦,多練習兩次,相信不難掌握迴圈語句。
告戒:語言是招式,演算法是內功,要想成為變成界的高手,演算法內功要一起學。
祝:樓主早日成為「高手」。
2樓:鍾闊
**如下:
problemn 表是你問的第n個問題。
迴圈很簡單,很好學。
varm,n:longint;
procedure problem1//第1個問題,下同;
var i,j:longint;
begin
for i:=10 downto 0 do //三角形的層數
begin
for j:=1 to i do write(' ');//空格數,遞減
for j:=1 to 10-i do write('*');//三角形,遞增
writeln;//每次寫完一行要回車
end;
end;
procedure problem2; //(problem1的逆運算)
var i,j:longint;
begin
for i:=0 to 10 do
begin
for j:=1 to i do write(' ');
for j:=1 to 10-i do write('*');
writeln;
end;
end;
procedure problem3;
var i,j:longint;
begin
for i:=1 to 5 do
begin
for j:=6-i downto 1 do write(' ');//就是兩個直角三角形在一起
for j:=1 to i do write('*');
for j:=1 to i-1 do write('*');
writeln;//回車。
end;
end;
procedure problem4;//仔細觀察,也是上一個的逆運算,不多說。
var i,j:longint;
begin
for i:=5 downto 1 do
begin
for j:=6-i downto 1 do write(' ');
for j:=1 to i do write('*');
for j:=1 to i-1 do write('*');
writeln;
end;
end;
procedure problem5;
var i,j:longint;
begin
for i:=1 to 4 do //左邊空格數,右邊不用寫的
begin
for j:=5-i downto 1 do write(' ');//同p3,空格遞減
write('*');//寫一個『*』
for j:=1 to i-1 do write(' ');//中間是空格,同p3的『*』,內容不同
for j:=1 to i-2 do write(' ');//右面的空格
if i<>1 then writeln('*') else writeln;//補回一個『*』,但注意第一行的不要補回
end;
for i:=1 to 9 do write('*');//最後一行全是『*』
writeln;
end;
procedure problem6;//上一題的逆運算,自己看一下吧。
var i,j:longint;
begin
for i:=1 to 9 do write('*');
writeln;
for i:=4 downto 1 do
begin
for j:=5-i downto 1 do write(' ');
write('*');
for j:=1 to i-1 do write(' ');
for j:=1 to i-2 do write(' ');
if i<>1 then writeln('*') else writeln;
end;
end;
[begin
writeln('case 1:');
problem1;
writeln;
writeln('case 2:');
problem2;
writeln;
writeln('case 3:');
problem3;
writeln;
writeln('case 4:');
problem4;
writeln;
writeln('case 5:');
problem5;
writeln;
writeln('case 6:');
problem6;
writeln;
end.]
裡面的是枝幹。
就這樣。圖案很好看。你肯定很快學會的,加油!
3樓:
var m,n:longint;
procedure problem1//第1個問題var i,j:longint;
begin
for i:=10 downto 0 dobegin
for j:=1 to i do write(' ');//空格數,遞減
for j:=1 to 10-i do write('*');//三角形,遞增
writeln;
end;
end;
4樓:環英楠
有語言篇嗎??這種題目很基礎的
一個關於free pascal的程式設計問題,高手進進來
5樓:匿名使用者
不知道你要什麼形式的值班表,我這個是按照a~g每個大夫的值班日輸出的:
var a,b,c,d,e,f,g,i,j:longint;
begin
f:=4;
for a:=1 to 7 do
for b:=1 to 7 do
for c:=1 to 7 do
if (a=c+1)and(bf) thenfor d:=1 to 7 do
for e:=1 to 7 do
if d=e+2 then
for g:=1 to 7 do
if (b+3=g)and(a+b+c+d+e+f+g=28)and(a*b*c*d*e*f*g=5040) then
writeln(a,' ',b,' ',c,' ',d,' ',e,' ',f,' ',g);
end.
臨時寫的,給點分吧~~~
6樓:往事已隨流年
先列舉值班順序,然後判斷是否合法即可。
複雜度 7!
free pascal中的for多重迴圈問題
你的程式有一個嚴重的語法錯誤。freepascal的主程式 必須 被包括在一對begin.end中 最後一個end後加點 你的程式可以改成 program sy var a,b integer begin for a 1 to 5 do beginfor b 1 to 10 do write end...
關於c 程式設計
所謂轉置,就是將矩陣的一個三角和對對應三角的資料互換,也就是 a i j 和 a j i 互換,給你段4 4矩陣轉置的參考 自己去實現吧,不難的。for i 0 i 3 i cout 轉置後矩陣 a m n b m n for int i 0 i for i 0 i 見 include includ...
c語言程式設計問題 約瑟夫問題求解,C語言程式設計問題 約瑟夫問題求解
include include n表示最初有多少個人,m表示報數到多少的人離開,函式joseph返回最後剩下的人的編號 這個演算法應該比較經典,等高手解答。我的想法的是,兩數列不斷交替篩選。用一個迴圈連結串列就可以完成了!include struct nodenode,list,p,r void j...