پروژه: جدول ضرب و شکلهای ستارهای
پروژه گرافیکی متنی: جدول ضرب، هرمها، لوزی و اشکال ستارهای با حلقههای تودرتو.
پروژه ۴: هنر با حلقهها ⭐
حلقههای تودرتو + write/writeln = نقاشی با متن! این پروژه استاد حلقهها میکند.
۱. جدول ضرب کامل
procedure MulTable(size: integer);
var
i, j: integer;
begin
write('*':4);
for j := 1 to size do
write(j:4);
writeln;
for i := 1 to size do
begin
write(i:4);
for j := 1 to size do
write(i * j:4);
writeln;
end;
end;
۲. هرم وسطچین
procedure Pyramid(height: integer);
var
i, j: integer;
begin
for i := 1 to height do
begin
{ فاصلههای قبل }
for j := 1 to height - i do
write(' ');
{ ستارهها }
for j := 1 to 2 * i - 1 do
write('*');
writeln;
end;
end;
خروجی برای height=5:
*
***
*****
*******
*********
۳. لوزی
procedure Diamond(size: integer);
var
i, j: integer;
begin
{ نیمه بالایی }
for i := 1 to size do
begin
for j := 1 to size - i do write(' ');
for j := 1 to 2 * i - 1 do write('*');
writeln;
end;
{ نیمه پایینی }
for i := size - 1 downto 1 do
begin
for j := 1 to size - i do write(' ');
for j := 1 to 2 * i - 1 do write('*');
writeln;
end;
end;
۴. شکل X
procedure XShape(size: integer);
var
i, j: integer;
begin
for i := 1 to size do
begin
for j := 1 to size do
if (i = j) or (i + j = size + 1) then
write('*')
else
write(' ');
writeln;
end;
end;
۵. قاب خالی
procedure HollowBox(w, h: integer);
var
i, j: integer;
begin
for i := 1 to h do
begin
for j := 1 to w do
if (i = 1) or (i = h) or (j = 1) or (j = w) then
write('*')
else
write(' ');
writeln;
end;
end;
فرمولهای کلیدی
| شکل | فرمول |
|---|---|
| هرم خط i | (h-i) فاصله + (2i-1) ستاره |
| لوزی | هرم + هرم معکوس |
| قاب | ستاره فقط در لبهها |
| X | i=j یا i+j=n+1 |
چالشهای تکمیلی
- مثلث اعداد پاسکال (با تابع Comb بازگشتی!)
- شکل ساعت شنی (دو مثلث)
- موج سینوسی با کاراکتر
- مثلث فلوید (اعداد متوالی)
چه یاد گرفتیم؟
- تسلط کامل بر حلقههای تودرتو
- الگوی فاصله + ستاره
- فرمتبندی :width برای تراز کردن
- تفکر هندسی با کد
این مبحث بخشی از دوره آموزش کامل پاسکال است.