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

التحدي الرابع التمرين الخامس

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

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


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

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

n = 0

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

if n % 2 == 0:
    n += 1

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

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

        if i == 1 or i == n or j == 1 or j == n or i == int(n / 2) + 1 or j == int(n / 2) + 1:
            print('*', end='')

        else:
            print(' ', end='')

    print()
		

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

n = 0

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

if n % 2 == 0:
    n += 1

i = 1
while i <= n:

    j = 1
    while j <= n:

        if i == 1 or i == n or j == 1 or j == n or i == int(n / 2) + 1 or j == int(n / 2) + 1:
            print('*', end='')

        else:
            print(' ', end='')

        j += 1

    print()
    i += 1
		

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

Enter the number of lines: 11
***********
*    *    *
*    *    *
*    *    *
*    *    *
***********
*    *    *
*    *    *
*    *    *
*    *    *
***********
		

ملاحظة

الشكل الذي يظهر لك في النتيجة النهائية عبارة عن مربع لأن عدد النجوم التي تظهر عامودياً يساوي عدد النجوم التي تظهر أفقياً, لكنه لا يظهر لك كذلك بسبب الهامش الإفتراضي الذي يقوم الحاسوب بوضعه بين الأسطر.

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

					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);

					if (n % 2 == 0)
					{
					n++;
					}

					for (int i = 1; i <= n; i++)
					{
					for (int j = 1; j <= n; j++)
					{
					if (i == 1 || i == n || j == 1 || j == n || i == n/2 + 1 || j == n/2 + 1)
					{
                    System.out.print("*");
					}
					else
					{
                    System.out.print(" ");
					}
					}
					System.out.println();
					}

					}

					}
				  

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

					Enter the number of lines: 11
					***********
					*    *    *
					*    *    *
					*    *    *
					*    *    *
					***********
					*    *    *
					*    *    *
					*    *    *
					*    *    *
					***********
				  

ملاحظة

الشكل الذي يظهر لك في النتيجة النهائية عبارة عن مربع لأن عدد النجوم التي تظهر عامودياً يساوي عدد النجوم التي تظهر أفقياً, لكنه لا يظهر لك كذلك بسبب الهامش الإفتراضي الذي يقوم الحاسوب بوضعه بين الأسطر.

الحل بلغة C

					  #include<stdio.h>

					  void main() {

					  int n;

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

					  if( n%2==0 )
					  {
					  n++;
					  }

					  for( int i=1; i<=n; i++ )
					  {
					  for( int j=1; j<=n; j++ )
					  {
					  if( i == 1 || i == n || j == 1 || j == n || i == n/2 + 1 || j == n/2 + 1 )
					  {
					  printf("*");
					  }
					  else
					  {
					  printf(" ");
					  }
					  }
					  printf("\n");
					  }

					  }
					

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

					  Enter the number of lines: 11
					  ***********
					  *    *    *
					  *    *    *
					  *    *    *
					  *    *    *
					  ***********
					  *    *    *
					  *    *    *
					  *    *    *
					  *    *    *
					  ***********
					

ملاحظة

الشكل الذي يظهر لك في النتيجة النهائية عبارة عن مربع لأن عدد النجوم التي تظهر عامودياً يساوي عدد النجوم التي تظهر أفقياً, لكنه لا يظهر لك كذلك بسبب الهامش الإفتراضي الذي يقوم الحاسوب بوضعه بين الأسطر.

الحل بلغة 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);

						if (n % 2 == 0)
						{
						n++;
						}

						for (int i = 1; i <= n; i++)
						{
						for (int j = 1; j <= n; j++)
						{
						if (i == 1 || i == n || j == 1 || j == n || i == n / 2 + 1 || j == n / 2 + 1)
						{
						Console.Write("*");
						}
						else
						{
						Console.Write(" ");
						}
						}
						Console.WriteLine();
						}

						Console.ReadKey();
						}
						}
					  

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

						Enter the number of lines: 11
						***********
						*    *    *
						*    *    *
						*    *    *
						*    *    *
						***********
						*    *    *
						*    *    *
						*    *    *
						*    *    *
						***********
					  

ملاحظة

الشكل الذي يظهر لك في النتيجة النهائية عبارة عن مربع لأن عدد النجوم التي تظهر عامودياً يساوي عدد النجوم التي تظهر أفقياً, لكنه لا يظهر لك كذلك بسبب الهامش الإفتراضي الذي يقوم الحاسوب بوضعه بين الأسطر.

الحل بلغة C++

						  #include <iostream>

						  int main() {

						  int n;

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

						  if (n % 2 == 0)
						  {
						  n++;
						  }

						  for (int i = 1; i <= n; i++)
						  {
						  for (int j = 1; j <= n; j++)
						  {

						  if (i == 1 || i == n || j == 1 || j == n || i == n / 2 + 1 || j == n / 2 + 1)
						  {
						  std::cout << "*";
						  }
						  else
						  {
						  std::cout << " ";
						  }
						  }
						  std::cout << "\n";
						  }

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

						  }
						

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

						  Enter the number of lines: 11
						  ***********
						  *    *    *
						  *    *    *
						  *    *    *
						  *    *    *
						  ***********
						  *    *    *
						  *    *    *
						  *    *    *
						  *    *    *
						  ***********
						

ملاحظة

الشكل الذي يظهر لك في النتيجة النهائية عبارة عن مربع لأن عدد النجوم التي تظهر عامودياً يساوي عدد النجوم التي تظهر أفقياً, لكنه لا يظهر لك كذلك بسبب الهامش الإفتراضي الذي يقوم الحاسوب بوضعه بين الأسطر.

تعليقات