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

التمرين الخامس

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



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


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

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

n = 0
while n <= 0:
    n = int(input("Enter the height: "))

m = 0
while m <= 0:
    m = int(input("Enter the width: "))

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

    if i == 1 or i == n:
        print('*' * m)

    else:
        print("*", end='')
        print(' ' * (m - 2), end='')
        print("*")
		

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

n = 0
while n <= 0:
    n = int(input("Enter the height: "))

m = 0
while m <= 0:
    m = int(input("Enter the width: "))

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

    if i == 1 or i == n:
        for j in range(1, m+1):
            print('*', end='')
        print()

    else:
        print("*", end='')
        for k in range(1, m-1):
            print(' ', end='')
        print("*")
		

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

n = 0
while n <= 0:
    n = int(input("Enter the height: "))

m = 0
while m <= 0:
    m = int(input("Enter the width: "))

i = 1
while i <= n:

    if i == 1 or i == n:
        j = 1
        while j <= m:
            print('*', end='')
            j += 1
        print()

    else:
        print("*", end='')
        k = 1
        while k < m - 1:
            print(' ', end='')
            k += 1
        print("*")

    i += 1
		

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

Enter the height: 5
Enter the width: 10
**********
*        *
*        *
*        *
**********
		

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

Enter the height: 10
Enter the width: 5
*****
*   *
*   *
*   *
*   *
*   *
*   *
*   *
*   *
*****
		

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

					import java.util.Scanner;

					public class Main {

					public static void main(String[] args) {

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

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

					do {
					System.out.print("Enter the width: ");
					m = input.nextInt();
					}
					while (m <= 0);

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

					}

					}
				  

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

					Enter the height: 5
					Enter the width: 10
					**********
					*        *
					*        *
					*        *
					**********
				  

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

					Enter the height: 10
					Enter the width: 5
					*****
					*   *
					*   *
					*   *
					*   *
					*   *
					*   *
					*   *
					*   *
					*****
				  

الحل بلغة C++

					#include <iostream>

					int main() {

					int n;
					int m;


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

					do {
					std::cout << "Enter the width: ";
					std::cin >> m;
					}
					while (m <= 0);

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

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

					}
				  

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

					Enter the height: 5
					Enter the width: 10
					**********
					*        *
					*        *
					*        *
					**********
				  

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

					Enter the height: 10
					Enter the width: 5
					*****
					*   *
					*   *
					*   *
					*   *
					*   *
					*   *
					*   *
					*   *
					*****
				  

الحل بلغة C#

					using System;

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

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

					do
					{
					Console.Write("Enter the width: ");
					m = int.Parse(Console.ReadLine());
					}
					while (m <= 0);

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

					Console.ReadKey();
					}
					}
				  

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

					Enter the height: 5
					Enter the width: 10
					**********
					*        *
					*        *
					*        *
					**********
				  

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

					Enter the height: 10
					Enter the width: 5
					*****
					*   *
					*   *
					*   *
					*   *
					*   *
					*   *
					*   *
					*   *
					*****
				  

الحل بلغة C++

					#include <iostream>

					int main() {

					int n;
					int m;


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

					do {
					std::cout << "Enter the width: ";
					std::cin >> m;
					}
					while (m <= 0);

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

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

					}
				  

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

					Enter the height: 5
					Enter the width: 10
					**********
					*        *
					*        *
					*        *
					**********
				  

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

					Enter the height: 10
					Enter the width: 5
					*****
					*   *
					*   *
					*   *
					*   *
					*   *
					*   *
					*   *
					*   *
					*****