تمارين خوارزميات و هياكل البيانات - رسم أشكال هندسية - التحدي الثاني التمرين الثاني

التمرين الثاني

أكتب برنامج مهمته رسم الشكل التالي بواسطة الحلقات.
عند تشغيل البرنامج, يجب أن يطلب من المستخدم إدخال عدد أسطر الشكل الذي سيتم رسمه.
إنتبه: يجب أن يدخل المستخدم عدد أكبر من صفر, لأن عدد الأسطر لا يمكن أن يكون صفر أو أقل من صفر.

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


الحل بلغة بايثون

الطريقة الأولى لحل التمرين.

n = 0

while n <= 0:
    n = int(input("Enter the number of lines: "))

for i in range(1, n+1):
    print(' ' * (n-i), end='')
    print('*', end='')
    print('*' * (i*2-2))
		

الطريقة الثانية لحل التمرين و الحصول على نفس النتيجة.

n = 0

while n <= 0:
    n = int(input("Enter the number of lines: "))

for i in range(1, n+1):

    for k in range(1, n+1-i):
        print(' ', end='')

    print('*', end='')

    for j in range(1, (i*2)-1):
        print('*', end='')

    print()
		

الطريقة الثالثة لحل التمرين و الحصول على نفس النتيجة.

n = 0

while n <= 0:
    n = int(input("Enter the number of lines: "))

i = 1
while i <= n:

    k = 1
    while k <= n-i:
        print(' ', end='')
        k += 1

    print('*', end='')

    j = 1
    while j < (i*2)-1:
        print('*', end='')
        j += 1

    print()
    i += 1
		

سنحصل على النتيجة التالية إذا قام المستخدم بإدخال الرقم 5 عند التشغيل.

Enter the number of lines: 5
    *
   ***
  *****
 *******
*********
		

الحل بلغة جافا

					import java.util.Scanner;

					public class Main {

					public static void main(String[] args) {

					Scanner input = new Scanner(System.in);
					int n;

					do {
					System.out.print("Enter the number of lines: ");
					n = input.nextInt();
					}
					while( n<=0 );

					for (int i=1; i<=n; i++)
					{
					for (int k=1; k<=n-i; k++)
					{
					System.out.print(" ");
					}
					System.out.print("*");

					for (int j=1; j<(i*2)-1; j++)
					{
					System.out.print("*");
					}

					System.out.println();
					}

					}

					}
				  

سنحصل على النتيجة التالية إذا قام المستخدم بإدخال الرقم 5 عند التشغيل.

					Enter the number of lines: 5
					*
					***
					*****
					*******
					*********
				  

الحل بلغة C

				  #include<stdio.h>

				  void main() {

				  int n;

				  do {
				  printf("Enter the number of lines: ");
				  scanf("%d", &n);
				  }
				  while( n<=0 );

				  for( int i=1; i<=n; i++ )
				  {
				  for (int k=1; k<=n-i; k++)
				  {
				  printf(" ");
				  }

				  printf("*");

				  for (int j=1; j<(i*2)-1; j++)
				  {
				  printf("*");
				  }

				  printf("\n");
				  }

				  }
				

سنحصل على النتيجة التالية إذا قام المستخدم بإدخال الرقم 5 عند التشغيل.

				  Enter the number of lines: 5
				  *
				  ***
				  *****
				  *******
				  *********
				

الحل بلغة C#

					  using System;

					  class Program
					  {
					  static void Main(string[] args)
					  {
					  int n;

					  do
					  {
					  Console.Write("Enter the number of lines: ");
					  n = int.Parse(Console.ReadLine());
					  }
					  while (n <= 0);

					  for (int i = 1; i <= n; i++)
					  {
					  for (int k = 1; k <= n - i; k++)
					  {
					  Console.Write(" ");
					  }

					  Console.Write("*");

					  for (int j = 1; j < (i * 2) - 1; j++)
					  {
					  Console.Write("*");
					  }

					  Console.WriteLine();
					  }

					  Console.ReadKey();
					  }
					  }
					

سنحصل على النتيجة التالية إذا قام المستخدم بإدخال الرقم 5 عند التشغيل.

					  Enter the number of lines: 5
					  *
					  ***
					  *****
					  *******
					  *********
					

الحل بلغة C++

						#include <iostream>

						int main() {

						int n;

						do
						{
						std::cout << "Enter the number of lines: ";
						std::cin >> n;
						}
						while (n <= 0);

						for (int i = 1; i <= n; i++)
						{
						for (int k = 1; k <= n - i; k++)
						{
						std::cout << " ";
						}

						std::cout << "*";

						for (int j = 1; j < (i * 2) - 1; j++)
						{
						std::cout << "*";
						}

						std::cout << "\n";
						}

						char end; std::cin >> end;
						return 0;

						}
					  

سنحصل على النتيجة التالية إذا قام المستخدم بإدخال الرقم 5 عند التشغيل.

						Enter the number of lines: 5
						*
						***
						*****
						*******
						*********