طباعة مثلث باسكال في ج
طباعة مثلث باسكال في ج
مثلث باسكال أحد الأمثلة الكلاسيكية التي يتم تدريسها لطلاب الهندسة. لها تفسيرات كثيرة. أحد أشهر هذه المعادلات هو استخدامه مع المعادلات ذات الحدين.
تعتبر جميع القيم خارج المثلث صفراً (0). الصف الأول هو 0 1 0 بينما 1 فقط يحصل على مسافة في مثلث باسكال ، 0 ثانية غير مرئية. يتم الحصول على الصف الثاني بجمع (0 + 1) و (1 + 0). الإخراج محصور بين صفرين. تستمر العملية حتى يتم تحقيق المستوى المطلوب.
يمكن اشتقاق مثلث باسكال باستخدام نظرية ذات الحدين. يمكننا استخدام المجموعات والمضروب لتحقيق ذلك.
الخوارزمية
بافتراض أننا ندرك جيدًا العوامل ، سننظر في المفهوم الأساسي لرسم مثلث باسكال بطريقة خطوة بخطوة -
START Step 1 - Take number of rows to be printed, n. Step 2 - Make outer iteration I for n times to print rows Step 3 - Make inner iteration for J to (N - 1) Step 4 - Print single blank space " " Step 5 - Close inner loop Step 6 - Make inner iteration for J to I Step 7 - Print nCr of I and J Step 8 - Close inner loop Step 9 - Print NEWLINE character after each inner iteration Step 10 - Return STOP
كود مزيف
يمكننا اشتقاق كود كاذب للخوارزمية المذكورة أعلاه ، على النحو التالي -
procedure pascals_triangle FOR I = 0 to N DO FOR J = 0 to N-1 DO PRINT " " END FOR FOR J = 0 to I DO PRINT nCr(i,j) END FOR PRINT NEWLINE END FOR end procedure
التنفيذ
دعونا ننفذ هذا البرنامج بالكامل. سنقوم بتنفيذ وظائف عاملي (غير متكرر) وكذلك ncr (مجموعة)
#include <stdio.h> int factorial(int n) { int f; for(f = 1; n > 1; n--) f *= n; return f; } int ncr(int n,int r) { return factorial(n) / ( factorial(n-r) * factorial(r) ); } int main() { int n, i, j; n = 5; for(i = 0; i <= n; i++) { for(j = 0; j <= n-i; j++) printf(" "); for(j = 0; j <= i; j++) printf(" %3d", ncr(i, j)); printf("\n"); } return 0; }
يجب أن يبدو الإخراج كالتالي -
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1
التسميات: لغة سي c
<< الصفحة الرئيسية