الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

طباعة الشكل التالي

مغلق
بدأه أيمن عشبة في 13 يونيو 2007 · 8 رد · 914 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

انا اريد من الاخوه كيف اطبع الشكل التالي بلغة الباسكال

*

***

*****

*******

*********

***********

*************

اللهم انصر الاسلام والمسلمين

2035881233.gif

#2

اظهر محاولاتك اولا لكي يساعدك غيره

على الاقل اخبرنا اين واجهت المشكل

ولا تطلب حلول جاهزة راجع قوانين المنتدى و القسم

d4baa0.gif
#3

عفوا يا اخي انا لا اريد حلول جاهزة ولكن كنت اريد مقارنه في الحلول لاغير


begin
for j:=1 to i
write('*');
writeln;
end;
for i:=1 to 13 step 2

هذا الشكل يطبع النجمات من بداية الشاشه وهي نقطه 0,0 ولكن انا اريده علي شكل هرم .

الفكره ابسطها عليكم هو نفس الكود المكتوب اعلاه ولكن حد يعطينا فكره المؤشر الطباعه يروح شويه علي اليمين وبعدين يزل شويه شويه ناحية اليسار وشكرا.

ملاحظة: الكود مكتوب بلغة الباسكال واعتقد انه مافي فرق بين الباسكال والدلفي لا بصراحه استخدام الفيجوال دوت نت .

اللهم انصر الاسلام والمسلمين

2035881233.gif

#4

يمكنك من خلال الكود التالي رسم هرم بعد أن تختار كم سطر سيكون أرتفاعه

procedure DrewPyramid(LinsNumber:integer);
Function PutChar(num:integer;chare:string):string;
var
s  : string;
i:integer;
begin
s:='';
for i:=1 to num do s:=s+chare;
result:= s
end;
begin
for i :=1 to LinsNumber do
begin
Write( PutChar( LinsNumber - i,' ') + PutChar(i*2-1 ,'*')   );
writeln;
end;
end;

لمستخدمي ديلفي يمكنكم تجربة الكود التالي

طبعا بعد وضع عنصر Memo

procedure Tform1.DrewPyramid(LinsNumber:integer);
Function PutChar(num:integer;chare:string):string;
var
s  : string;
i:integer;
begin
s:='';
for i:=1 to num do s:=s+chare;
result:= s
end;
begin
for i :=1 to LinsNumber do
begin
Memo1.Lines.Add( PutChar( LinsNumber - i,' ') + PutChar(i*2-1 ,'*')   );
end;
end;

تم تعديل هذه المشاركة بواسطة decompiler في 15 يونيو 2007 في 19:21

#5

اليك الطريقة

Var
 i,j , N : Integer;
 S : String;
begin
 N := 5;
 S := '';
 For i := 1  to N Do
  Begin
   For j :=  1 to 2 * N - 1  Do
	Begin
	 If (J >= n - (i - 1)) And (J <= n + (i - 1)) Then
	  S := S + '*'
	 Else
	  S := S + ' '
  End;
   S := S + Chr(13);
  End;
  ShowMessage(S);
#6

ذكرني هذا السؤال في اختبار لي في الجامعة سنة 1997، توجد طريقتان للحل باستخدام ال For Loop، والحل الأسهل هو التالي

writeln('		   *			 ');
writeln('		 ***		   ');
writeln('	   *****		 ');
writeln('	  *******	  ');
writeln('	*********	');
writeln('  ***********  ');
writeln('*************');
#7
writeln(' * ');
writeln(' *** ');
writeln(' ***** ');
writeln(' ******* ');
writeln(' ********* ');
writeln(' *********** ');
writeln('*************');

ملعوبة

جواب الأخ aabughazaleh

هاذا برأيي أفضل جواب للسؤال ههههههههههه :D

تم تعديل هذه المشاركة بواسطة decompiler في 16 يونيو 2007 في 09:12

#8

شكرا يا جماعة علي المشاركة والتافاعل الطيب بس انا اريد الكود بلغة البسكال

اللهم انصر الاسلام والمسلمين

2035881233.gif

#9
N := 5;
For i := 1  to N
 Begin
  For j :=  1 to 2 * N - 1  
	Begin
	 If (J >= n - (i - 1)) And (J <= n + (i - 1)) Then
	  Write('*')
	 Else
	  Write(' ')
   End;
	 writeln;
 End;

هذا الموضوع مغلق.

مواضيع مشابهة