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

مفهوم الخوارزميات فى البرمجة Algorithm

اذهب الى الأسفل

مفهوم الخوارزميات فى البرمجة Algorithm Empty مفهوم الخوارزميات فى البرمجة Algorithm

مُساهمة من طرف زهراء الجمعة يناير 22, 2021 6:55 am

أهلا بكم

سنتعرف فى هذا المقال على #الخوارزميات فى البرمجة امثلة عملية عليها

أولا:مفهوم الخوارزميات #Algorithm

على الرغم من عدم وجود إجماع رسمي على تعريف مناسب للـ #"خوارزمية"، إلا أنه من الممكن صياغة تعريف مناسب لها عن طريق اعتبارها مجموعة من الخطوات و التعليمات المنطقية والمتسلسلة اللازمة لحل مشكلة ما. وسميت #الخوارزمية بهذا الاسم نسبة إلى العالم أبو جعفر محمد بن موسى الخوارزمي الذي ابتكرها في القرن التاسع الميلادي و تسمى #Algorithms في اللغات اللاتينية والأوروبية .

ولكى نفهم الموضوع أكثر إليك هذه الأمثلة .

بفرض انك تريد مقابلة صديق لك فى المطار وتوصيله من المطار إلى بيته فهناك العديد من الطرق (الخوارزميات) التى يمكن استخدامها لتنفيذ هذه المهمة .

عن طريق التاكسى :

  1. ايقاف التاكسى
  2. الدخول إلى التاكسى
  3. إعطاء السائق العنوان


عن طريق تأجير سيارة :

  1. الذهاب لمكان الحصول على السيارة
  2. تأجير السيارة
  3. التوجه نحو المطار


هذه الطرق #(الخوارزميات) وغيرها من الطرق الاخر يمكنك استخدامها لتنفيذ الهدف النهائى وهو توصيل صديقك إلى المطار وكل الطرق تؤدى فى النهاية إلى نفس الهدف , ولكن كل منهم بطريقة مختلفة وبخطوات مختلفة بطبيعة الحل , فكل خوارزمية لها تكلفة Cost مختلفة , وكل منهما له زمن تنفيذ Time مختلف فالتكسى على سبيل المثال ربما اسرع طريقة ولكن فى المقابل ربما هو الاغلى .

ولذلك يتم قياس أداء الخوارزمية على أساس الخصائص التالية:


  • Time Complexity :وهو الوقت الذى يقضيه الكمبيوتر فى تنفيذ الخوارزمية  
  • Space Complexity :وهو كمية الذاكرة التى استخدمها البرنامج لتنفيذ الخوارزمية



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

ثانيا :عوامل جودة الخوارزمية :

يجب أن تستوفي كل خوارزمية الخصائص التالية حتى تتصف بالجودة :


  1. تحديد المدخلات والمخرجات للخوارزمية بدقة.
  2. أن تكون كل خطوة في الخوارزمية واضحة.
  3. أن تكون الخوارزميات أكثر فعالية من حيث زمن التنفيذ والمساحة من بين العديد من الخوارزميات المختلفة لحل مشكلة ما.
  4. لا ينبغي أن تتضمن الخوارزمية شفرة برمجة ،بل يجب كتابة الخوارزمية بطريقة يمكن استخدامها في لغات برمجة المختلفة.


ثالثا :أمثلة على الخوارزميات في البرمجة :

1_خوارزمية لجمع رقمين أدخلهما المستخدم :
الكود:
Step 1: Start
Step 2: Declare variables num1, num2 and sum.
Step 3: Read values num1 and num2.
Step 4: Add num1 and num2 and assign the result to sum.
        sum←num1+num2
Step 5: Display sum
Step 6: Stop

التنفيذ بلغة C
الكود:
#include <stdio.h>
int main() {    

    int Num1, Num2, sum;
    
    printf("Enter two integers: ");
    scanf("%d %d", &Num1, &Num2);

    sum = Num1 + Num2;      
    
    printf("%d",sum);
    return 0;
}

التنفيذ بلغة ++C
الكود:
#include <iostream>
using namespace std;

int main()
{
    int Num1, Num2, sum;
    
    cout << "Enter two integers: ";
    cin >> Num1 >> Num2;

    sum = Num1 + Num2;

    // Prints sum
    cout << sum;    

    return 0;
}


التنفيذ بلغة Java

الكود:
import java.util.Scanner;
public class Main
{
 public static void main(String[] args) {
    
    int Num1, Num2, sum;
    Scanner sc = new Scanner(System.in);
 System.out.println("Enter two integers:");
 Num1 = sc.nextInt();
 Num2 = sc.nextInt();
 sum = Num1 + Num2;
 System.out.println(sum);
 }
}


2_خوارزمية لإيجاد أكبر عدد من بين ثلاثة أعداد مختلفة :

الكود:
Step 1: Start
Step 2: Declare variables a,b and c.
Step 3: Read variables a,b and c.
Step 4: If a > b
           If a > c
              Display a is the largest number.
           Else
              Display c is the largest number.
        Else
           If b > c
              Display b is the largest number.
           Else
              Display c is the greatest number.  
Step 5: Stop


3_خوارزمية لفحص الاعداد الاولية :
الكود:
Step 1: Start
Step 2: Declare variables n, i, flag.
Step 3: Initialize variables
        flag ← 1
        i ← 2  
Step 4: Read n from the user.
Step 5: Repeat the steps until i=(n/2)
     5.1 If remainder of n÷i equals 0
            flag ← 0
            Go to step 6
     5.2 i ← i+1
Step 6: If flag = 0
           Display n is not prime
        else
           Display n is prime
Step 7: Stop
زهراء
زهراء
........
........

تاريخ التسجيل : 18/02/2011
المساهمات : 436
النقاط : 762
التقيم : 64
الدولة : مصر
الجنس : انثى

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة

ََ

مواضيع ذات صلة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى