pascal 程式設計問題 (剛入門pascal,才學到迴圈,陣列,字串什麼的都沒學)
1樓:網友
雙重迴圈你應該會了吧,列印圖形自古以來就只有兩種演算法,一種是老老實實的對每個點進行描述,另一種是找到這些點的規律,不用說也知道你需要的是第二種。
要列印乙個邊長為n的直角三角形,我猜想題目要求應該還有等腰兩個字,也就是45°的直角三角形,我們會需要一塊「畫布」:乙個n*n大小的畫布,我們用空格字元來表示空白畫布,我們用*字元來表示乙個點,那麼將採用乙個雙重巢狀迴圈來列印畫布,一層列印縱向一層列印橫向,縱向的迴圈體很簡單,執行橫向的迴圈體和換行,橫向的迴圈體裡邊巢狀乙個條件語句,if,如果當前點滿足圖形要求則列印成*,否則列印成空格。
再說圖形要求,我們知道我們的「畫布」座標系原點在左上角,右是x軸正向,下是y軸正向,等直三角形的邊應該就可以求出來了,x=0,y=0,y=n-x-1,知道三條邊的方程,題目就做完了,pascal語法我不瞭解,給你寫個c的**,看了上邊的思路你應該能看懂了:
int main()else
printf("");列印換行。
2樓:防彈的
要看你要什麼樣的直角三角形。。。
1.直角在左上角。
vari,j,n:integer;
beginreadln(n);
for i:=n downto 1 do
beginfor j:=1 to i dowrite('*
writeln;
end;end.
2.直角在左下角。
vari,j,n:integer;
beginreadln(n);
for i:=1 to n do
beginfor j:=1 to i dowrite('*
writeln;
end;end.
3.直角在右上角。
vari,j,n:integer;
beginreadln(n);
for i:=0 to n-1 do
beginfor j:=1 to i dowrite('
for j:=1 to n-i do
write('*
writeln;
end;end;
4.直角在右下角。
vari,j,n:integer;
beginreadln(n);
for i:=n-1 downto 0 dobeginfor j:=1 to i dowrite('
for j:=1 to n-i do
write('*
writeln;
end;end.
至於原理很簡單,自己手工走一邊程式就清楚了。
希望我的能對你有所幫助。
pascal 布林型別陣列
3樓:善佩杉詩貝
不一定為false
如果你的系統當前記憶體分配不多,那麼運攜首行程式在記憶體分配的時候分配到空記憶體幾率大。(空值就是預設為或譁0,0在布林中就是為false)
但是如果你開了乙個很大的布林陣列,記得要fillchar初始化,否則很可能有其中一辯團數些資料是不為0的。
特別在競賽中,千萬別忘記了初始化。
用pascal語言找出1 100之間的孿生漂亮數
請先告訴我什麼是孿生漂亮數 type node record z,n longint end vari,r,j longint b array 0.1000,0.1 of longint procedure find ans longint vari,p longint a array 1.100 ...
用c語言動態三維陣列用C語言,動態三維陣列
1 先說二維,可以這麼理解 int n 3 有3個int 那麼,int m 5 3 有5個int 3 賦值時 n 1 3把3給1號 m 4 m 4 是個int 3 型別,這麼賦值,也就是這麼賦值 m 4 的 0 是5 m 4 0 5 m 4 1 9 m 4 2 4 懂了嗎?三維甚至更多維大同小異,比...
在c語言陣列中怎麼用,C語言陣列怎麼輸出全部?
真是沒轍.實在就多分配點空間.連結串列是動態的,如果用c 把動態分配放到類裡面,就給你一個介面,你是不是也認為那是動態的呢?c與vb不能比.vb有幾個是弄記憶體的?基本上是對的,scanf 裡的引數就是變數的地址陣列名你可以理解為這個陣列的起始地址 第一個元素的地址 比如你這裡的a,它就相當於是 a...