[HR][/HR] شاید همه شما این برنامه رو نوشته باشید. ولی من مطمینم در ایجاد فرمت خروجی (به شکل مثلث) با مشکل روبرو شدید. برنامه حاضر با استفاده از پروسیجرهای غیرمعمول ، سطرها و جاهای خالی مابین اعداد واقع بر مثلث را ایجاد می کند.یک برنامه کاملا آموزشی برای آنها که به خوانایی برنامه اهمیت می دهند. PROGRAM KHAYYAM; VAR Pos,N,K:Integer; FUNCTION Fact(K:Integer):LongInt; {تابع بازگشتی محاسبه فاکتوریل} BEGIN IF (K=۰) OR (K=۱) THEN Fact:=۱ ELSE Fact:=K*Fact(K-۱); END; FUNCTION Tarkib(K,I:Integer):longInt; {تابع محاسبه ترکیب} BEGIN Tarkib:=trunc(Fact(K)/(Fact(I)*Fact(K-I))); END; PROCEDURE Blank; {پروسیجر ایجاد فواصل خالی} VAR I:Integer; BEGIN FOR I:=۱ TO Pos DO Write(’ ‘); Pos:=Pos-۳; END; PROCEDURE Satr(K:Integer); {پروسیجر ایجاد سطرهای مثلث} VAR I:Integer; BEGIN FOR I:=۰ TO K DO Write(Tarkib(K,I):۶); END; BEGIN{Of Main} Pos:=۳۳; {قرار دادن مکان نما در وسط صفحه نمایش} Write(’Enter Your Number: ‘); {گرفتن تعداد سطرهای مثلث از کاربر} Readln(N); FOR K:=۰ TO N DO BEGIN Blank; Satr(K); Writeln(”); END;{Of For} Readln END.{Of Main}