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

التحدي الخامس التمرين الاول

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

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


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

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

n = 0

while n <= 0 or n % 2 == 0:
    n = int(input("Enter and odd number as the number of lines: "))

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

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

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

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

    print()
		

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

n = 0

while n <= 0 or n % 2 == 0:
    n = int(input("Enter and odd number as the number of lines: "))

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

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

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

    else:
        print('*' * (int(n / 2) + 1), end='')

    print()
		

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

Enter an odd number as the number of lines: 9
    *****
    *****
    *****
    *****
*********
*****    
*****    
*****    
*****    
		

ملاحظة

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

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

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

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

				  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 an odd number as the number of lines: ");
				  n = input.nextInt();
				  }
				  while (n <= 0 || n%2 == 0);

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

				  }

				  }
				

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

				  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 an odd number as the number of lines: ");
				  n = input.nextInt();
				  }
				  while (n <= 0 || n % 2 == 0);

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

				  }

				  }
				

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

				  Enter an odd number as the number of lines: 9
				  *****
				  *****
				  *****
				  *****
				  *********
				  *****    
				  *****    
				  *****    
				  *****    
				

ملاحظة

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

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

الحل بلغة C

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

				  #include <stdio.h>

				  void main() {

				  int n;

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

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

				  }
				

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

				  #include <stdio.h>

				  void main() {

				  int n;

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

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

				  printf("\n");
				  }

				  }
				

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

				  Enter an odd number as the number of lines: 9
				  *****
				  *****
				  *****
				  *****
				  *********
				  *****    
				  *****    
				  *****    
				  *****    
				

ملاحظة

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

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

الحل بلغة C#

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

				  using System;

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

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

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

				  Console.ReadKey();
				  }
				  }
				

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

				  using System;

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

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

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

				  Console.ReadKey();
				  }
				  }
				

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

				  Enter an odd number as the number of lines: 9
				  *****
				  *****
				  *****
				  *****
				  *********
				  *****    
				  *****    
				  *****    
				  *****    
				

ملاحظة

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

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

الحل بلغة C++

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

				  #include <iostream>

				  int main() {

				  int n;

				  do {
				  std::cout << "Enter an odd number as the number of lines: ";
				  std::cin >> n;
				  }
				  while (n <= 0 || n % 2 == 0);

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

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

				  }
				

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

				  #include <iostream>

				  int main() {

				  int n;

				  do {
				  std::cout << "Enter an odd number as the number of lines: ";
				  std::cin >> n;
				  } while (n <= 0 || n % 2 == 0);

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

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

				  }
				

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

				  Enter an odd number as the number of lines: 9
				  *****
				  *****
				  *****
				  *****
				  *********
				  *****    
				  *****    
				  *****    
				  *****    
				

ملاحظة

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

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

تعليقات