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

اظهر محاولاتك اولا لكي يساعدك غيره
على الاقل اخبرنا اين واجهت المشكل
ولا تطلب حلول جاهزة راجع قوانين المنتدى و القسم
عفوا يا اخي انا لا اريد حلول جاهزة ولكن كنت اريد مقارنه في الحلول لاغير
for i:=1 to 13 step 2
هذا الشكل يطبع النجمات من بداية الشاشه وهي نقطه 0,0 ولكن انا اريده علي شكل هرم .
الفكره ابسطها عليكم هو نفس الكود المكتوب اعلاه ولكن حد يعطينا فكره المؤشر الطباعه يروح شويه علي اليمين وبعدين يزل شويه شويه ناحية اليسار وشكرا.
ملاحظة: الكود مكتوب بلغة الباسكال واعتقد انه مافي فرق بين الباسكال والدلفي لا بصراحه استخدام الفيجوال دوت نت .
اللهم انصر الاسلام والمسلمين

يمكنك من خلال الكود التالي رسم هرم بعد أن تختار كم سطر سيكون أرتفاعه
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
اليك الطريقة
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);
ذكرني هذا السؤال في اختبار لي في الجامعة سنة 1997، توجد طريقتان للحل باستخدام ال For Loop، والحل الأسهل هو التالي
writeln(' * ');
writeln(' *** ');
writeln(' ***** ');
writeln(' ******* ');
writeln(' ********* ');
writeln(' *********** ');
writeln('*************');writeln(' * ');
writeln(' *** ');
writeln(' ***** ');
writeln(' ******* ');
writeln(' ********* ');
writeln(' *********** ');
writeln('*************');ملعوبة
جواب الأخ aabughazaleh
هاذا برأيي أفضل جواب للسؤال ههههههههههه :D
تم تعديل هذه المشاركة بواسطة decompiler في 16 يونيو 2007 في 09:12
شكرا يا جماعة علي المشاركة والتافاعل الطيب بس انا اريد الكود بلغة البسكال
اللهم انصر الاسلام والمسلمين

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;هذا الموضوع مغلق.