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

التمرين الأول

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


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

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

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

المطلوب

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

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


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

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

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

		for i in range(1, n+1):
		print('*' * i)
	  

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

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

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

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

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

		i = 1
		while i <= n:
		j = 1
		while j <= i:
        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 j=1; j<=i; j++)
		{
		System.out.print("*");
		}
		System.out.println();
        }

		}

		}
	  

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

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

الحل بلغة C

تمارين خوارزميات و هياكل البيانات - التحدي الأول - حل التمرين الأول بلغة C

المطلوب

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


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


الحل بلغة 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 j=1; j<=i; j++ )
        {
		printf("*");
        }
        printf("\n");
		}

		}
	  

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

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

الحل بلغة السي شارب

تمارين خوارزميات و هياكل البيانات - التحدي الأول - حل التمرين الأول بلغة C#

المطلوب

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


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


الحل بلغة 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 j=1; j<=i; j++)
		{
		Console.Write("*");
		}
		Console.WriteLine();
        }

        Console.ReadKey();
		}
		}

	  

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

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

الحل بلغة السي بلاس بلاس

تمارين خوارزميات و هياكل البيانات - التحدي الأول - حل التمرين الأول بلغة C++

المطلوب

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


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


الحل بلغة 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 j = 1; j <= i; j++)
		{
		printf("*");
		}
		printf("\n");
		}

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

		}
	  

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

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


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

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


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

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

المطلوب

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

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


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

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

		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('*' * i)
	  

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

		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='')

		for j in range(1, i+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

		j = 1
		while j <= i:
        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(" ");
		}

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

		System.out.println();
        }

		}

		}

	  

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

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

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

المطلوب

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


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


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

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

        printf("\n");
		}

		}
	  

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

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

تمارين خوارزميات و هياكل البيانات - التحدي الأول - حل التمرين الثاني بلغة C#

المطلوب

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


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


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

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

        Console.ReadKey();
		}
		}
	  

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

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

تمارين خوارزميات و هياكل البيانات - التحدي الأول - حل التمرين الثاني بلغة C++

المطلوب

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


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


الحل بلغة 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 << " ";
		}
		for (int j = 1; j <= i; j++)
		{
		std::cout << "*";
		}
		std::cout << "\n";
		}

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

		}
	  

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

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


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

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


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

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

المطلوب

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

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


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

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

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

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

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

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

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

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

		print()
	  

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

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

		i = 1
		while i <= n:

		j = 1
		while j <= n+1-i:
        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 j=1; j<=n+1-i; j++)
		{
		System.out.print("*");
		}

		System.out.println();
        }

		}

		}
	  

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

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

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

المطلوب

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


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


الحل بلغة 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 j=1; j<=n+1-i; j++)
        {
		printf("*");
        }

        printf("\n");
		}

		}
	  

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

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

تمارين خوارزميات و هياكل البيانات - التحدي الأول - حل التمرين الثالث بلغة C#

المطلوب

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


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


الحل بلغة 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 j = 1; j <= n+1-i; j++)
		{
		Console.Write("*");
		}
		Console.WriteLine();
        }

        Console.ReadKey();
		}
		}
	  

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

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

تمارين خوارزميات و هياكل البيانات - التحدي الأول - حل التمرين الثالث بلغة C++

المطلوب

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


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


الحل بلغة 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 j = 1; j <= n + 1 - i; j++)
		{
		std::cout << "*";
		}
		std::cout << "\n";
		}

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

		}
	  

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

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


التمرين الرابع

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


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

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

المطلوب

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

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


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

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

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

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

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

		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, i):
        print(' ', end='')

		for j in range(1, n+2-i):
        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 < i:
        print(' ', end='')
        k += 1

		j = 1
		while j <= n+1-i:
        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<i; k++)
		{
		System.out.print(" ");
		}

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

		System.out.println();
        }

		}

		}
	  

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

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

تمارين خوارزميات و هياكل البيانات - التحدي الأول - حل التمرين الرابع بلغة C

المطلوب

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


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


الحل بلغة 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<i; k++)
        {
		printf(" ");
        }

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

        printf("\n");
		}

		}
	  

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

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

تمارين خوارزميات و هياكل البيانات - التحدي الأول - حل التمرين الرابع بلغة C#

المطلوب

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


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


الحل بلغة 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 < i; k++)
		{
		Console.Write(" ");
		}

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

		Console.WriteLine();
        }

        Console.ReadKey();
		}
		}
	  

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

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

تمارين خوارزميات و هياكل البيانات - التحدي الأول - حل التمرين الرابع بلغة C++

المطلوب

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


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


الحل بلغة 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 < i; k++)
		{
		std::cout << " ";
		}

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

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

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

		}
	  

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

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


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

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


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

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

المطلوب

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


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


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

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

		n = 0
		m = 0

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

		while m <= 0:
		m = int(input("Enter the number of columns: "))

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

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

		n = 0
		m = 0

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

		while m <= 0:
		m = int(input("Enter the number of columns: "))

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

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

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

		print()
	  

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

		n = 0
		m = 0

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

		while m <= 0:
		m = int(input("Enter the number of columns: "))

		i = 1
		while i < n:

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

		j = 1
		while j <= m:
        print('*', end='')
        j += 1

		print()
		i += 1
	  

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

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

تمارين خوارزميات و هياكل البيانات - التحدي الأول - حل التمرين الخامس بلغة جافا

المطلوب

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


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


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

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

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

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

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

		System.out.println();
        }

		}

		}
	  

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

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

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

المطلوب

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


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


الحل بلغة C

		#include<stdio.h>

		void main() {

		int n;
		int m;

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

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

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

        for (int j=1; j<=m; j++)
        {
		printf("*");
        }

        printf("\n");
		}

		}
	  

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

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

تمارين خوارزميات و هياكل البيانات - التحدي الأول - حل التمرين الخامس بلغة C#

المطلوب

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


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


الحل بلغة C#

		using System;

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

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

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

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

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

		Console.WriteLine();
        }

        Console.ReadKey();
		}
		}
	  

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

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

تمارين خوارزميات و هياكل البيانات - التحدي الأول - حل التمرين الخامس بلغة C++

المطلوب

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


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


الحل بلغة C++

		#include <iostream>

		int main() {

		int n;
		int m;

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

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

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

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

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

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

		}
	  

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

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