تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[مشروع] تصميم برنامج تعليمي .. تدريبات على الاعراب المختصر
#1
السلام عليكم
دائما مع البرامج التربوية

لتلاميذ الابتدائي ...
تدريبات على الاعراب المختصر 
و معناه نعطي للطالب جملة بسيطة و يتعرف على مكوناتها اعرابا
مثلا 

اكل القط فأرا سمينا
اكل : فعل ماض
القط : فاعل مرفوع
فأرا : مفعول به منصوب
سمينا : صفة منصوبة 

و جمل اخرى ....................

كيف العمل :

اولا سنتفق على انه  لا يمكن ان ننشئ نظاما او برنامجا للاعراب المطلق لانه غير ممكن
لكن ممكن ان نحدد جملا يعينها و اعرابها متفق عليه

ما اقصده سانظم برنامجي هذا مسبقا بحيث اختار 1 انماط للاعراب مثلا
1- فعل فاعل مفعول به
2 - مبيدا خبر صفة
3 - فعل فاعل حرف جر اسم مجرور
.......الخ

ولكل نمك احضر قائمة جمل لها نفس هذا الاعراب يعني من اجل النمط الثالث ( فعل فاعل حرف جر و اسم مجرور ) احضر ما يلي

خرج الطفل من المنزل
صعد المسافر الى الحافلة
جاء خالد من العاصمة
دخل القط الى الحجر
لعب الولد في الملعب
غنت التلميذة في الحفل
فازت سعاد بـ الجائزة
نزل المطر من السماء
قفز القرد من الشجرة
صام المسلمون في رمضان

و للانماط الاخرى ايضا ثم اضعها في ملفات تكست 

البرنامج سيختار عشوائيا ملف تكيت مما يعني نمكا للاعراب
من الملف سيختار عشوائيا سطرا اي جملة 
ثم نفككها الى كلمات 
اما كل كلمة سنعطي للطالب خيارات ضمن كومبوكس

لما يجيب نحضر له زر للتصحيح
اذا اجاب فله نقطة و الا فيصحح له ما اخطا فيه 

----------------------------------------------------------------------------------------------
الشكل النهائي لما ذكرناه 





سنرجع معكم بالشرح للبرمجة 

تحياتي

مع الشرح :

اولا سنضع 10 ملفات تكست 
كل ملف  تكست له نمط معين من الاعراب

نضعها في ملف البرنامج bin
ليتم استدعائها من هناك 

ايضا عندنا صورتين للصح و الخطأ 
....

الان مع صفحة العمل 


نضع richtetx  لعرض السؤال

نضع اسفل منه 5 كومبوكس
كل كومبوكس قبله ليبال و بعده ليبال
الاول لعرض الكلمة و الثاني للاعراب الصحيح باللون الاحمر
اليبالات الثانية كلها مخفية لا تظهر  الا في حالة الخطأ

نضع في الاسفل زر للتصحيح
و زر للسؤال الموالي او الجملة الاخرى

و ليبال للتنقيط

 لعل الكلمة التي تنفعني لم أكتبها بعد
عبد الله بن المبارك
الرد }}}
#2
رائع كالعادة دائما
بارك الله فيك
الرد }}}
#3
برنامج رائع أتمنى أن تكمله للنهاية، فهذا هو مجال تخصصي لغة عربية
إذا طُعِنتَ من الخلفِ فاعلمْ أنك في المقدمةِ
الرد }}}
تم الشكر بواسطة: asemshahen , بلدي , ابراهيم ايبو , asemshahen5
#4
(17-08-20, 11:42 PM)مصمم هاوي كتب : برنامج رائع أتمنى أن تكمله للنهاية، فهذا هو مجال تخصصي لغة عربية

  حاضر استاذ
ان شاء الله يكون مبدا البرنامج مفهوم
يعني ممكن تحضر عدة انماط  حسب تعقيداتها
و تضع لكل منها ملف تكست تضع فيه جملا اعرابها هو نفسه
يعني يمكن ننتج 100 الجمل او المتسويات من اللعب

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

نتابع الشرح :

في form_load
 سنحفظ في مصفوفات الكوومبكس و الليبالات و الصور

PHP كود :
Combox = {ComboBox1ComboBox2ComboBox3ComboBox4ComboBox5}
 
       Labl = {Label1Label2Label3Label4Label5}
 
       Labl2 = {Label6Label7Label8Label9Label10}
 
       pict = {PictureBox1PictureBox2PictureBox3PictureBox4PictureBox5}
 
      

الانماط التي ذكرناها هي كالتالي

PHP كود :
 p1 = {"فعل ماض""فاعل مرفوع""حرف جر""اسم مجرور"}
 
       p2 = {"فعل ماض ناقص""اسم كان و اخواتها""خبر كان و اخواتها"}
 
       p3 = {"حرف ناسخ""اسم إن و اخواتها""خبر إن و اخوانها"}
 
       p4 = {"فعل ماض""فاعل مرفوع""مفعول به منصوب""صفة منصوبة"}
 
       p5 = {"فعل مضارع""فاعل مرفوع""حال منصوبة""حرف جر""اسم مجرور"}
 
       p6 = {"فعل ماض""فاعل مرفوع""مفعول به اول""مفعول به ثان"}
 
       p7 = {"فعل ماض""فاعل مرفوع""مفعول به منصوب و هو مضاف""مضاف اليه"}
 
       p8 = {"فعل ماض""فاعل مرفوع""مفعول مطلق""صفة منصوبة"}
 
       p9 = {"مبتدأ مرفوع ""خبر مرفوع""صفة مرفوعة"}
 
       p10 = {"حرف نصب""فعل مضارع منصوب""فاعل مرفوع""صفة مرفوعة"}
 
      

يعني من اجل ملف تكست 1 حلها هو المصفوفة p1
وهي التي نقارن بها بين اجابة الطالب و الاعراب

نجمعها في مصفوفة ايضا
PHP كود :
  Rpp = {p1p2p3p4p5p6p7p8p9p10}
 
    

الان كل ما سبق سنجمعه في مصفوفة واحدة و نحذف المتشابهات
لنضمن ان لا نخطئ في الكتابة 
لانه يمكن ان نملا الكومبوكس لكن اي خطا و لو في الهمزة او المسافات سيعتبر خطا
ثم نرتب ما تم جمعه ابجديا

PHP كود :
   For Each gh As Array In Rpp
            For i 
0 To gh.Length 1
                somme
.Add(gh(i))
 
           Next
        Next
        For i 
0 To somme.Count 2
            For p 
somme.Count 1 To i 1 Step -1
                If somme
(i).ToString somme(p).ToString Then
                    somme
.RemoveAt(p)
 
               End If
 
           Next
        Next
        
' ترتيب العناصر
        somme.Sort()
     

الان تم التحضير  للبرنامج

الان مع الدة توليد الاسئلة : question()

سنخفي كل الكومبوكسات و نفرغها من محتواها
اليبلات و كل الصور و ايضا نرجعها الى فراغ 

PHP كود :
For 0 To 4
            Combox
(p).Visible False
            Combox
(p).Items.Clear()
 
           Labl(p).Visible False
            Labl2
(p).Text Nothing
            Labl2
(p).Visible False
            pict
(p).Visible False
        Next 

ثم سنعبئ الكومبوكسات من المصفوفة التي جمعنا فيها الاجابات كلها

PHP كود :
For 0 To somme.Count 1
            For p 
0 To 4
                Combox
(p).Items.Add(somme(f))
 
           Next
        Next 

سنضع كل عناصر الاجابة فارغة 

PHP كود :
   reponses = {""""""""""}
 
    

ثم سنختار عشوائيا رقم من 1 الى 10 وهو الذي ويافق ملف التكست 

PHP كود :
 Dim NmberQ Nrandom.Next(110)
 
       Dim Hafs As String Application.StartupPath "\" & NmberQ & ".txt"
     

 الان سننشئ مصفوفة تتكون من اسطر هذا التكست

PHP كود :
   Dim readH As StreamReader
        Dim Harr
() As String Nothing
        
''''''''''''
 
       readH = New StreamReader(Hafs)
 
       Dim I As Integer
        Do Until readH
.EndOfStream
            ReDim Preserve Harr
(I)
 
           Harr(I) = readH.ReadLine()
 
           I += 1
        Loop
        readH
.Close() 



ايضا سنختار عشوائيا من بين هذه الجمل من المصفوفة و نضعها في textrich
PHP كود :
 Dim Nmberphrase Nrandom.Next(0Harr.Length)
 
       RichTextBox1.Text Harr(Nmberphrase)
 
       RichTextBox1.SelectionAlignment HorizontalAlignment.Center
       

بعدها سنقسم كلماتها في مصفوفة 

PHP كود :
  txtQ Harr(Nmberphrase).Split(" "

و من خلال ذلك سنعطي لكل ليبال كلمة و بالتالي يهر ان الجملة قد فسمت في جدول للاعراب

PHP كود :
For 0 To txtQ.Length 1
            Combox
(p).Visible True
            Labl
(p).Visible True
            Labl
(p).Text txtQ(p)
 
       Next 

نتابع :

كما تذكرون قد جمعنا الحلول في مصفوفة 
لما اخترنا رقم ملف التكست فالحل هو رقم مصفوفة الاجابة في المجموعة - 1

PHP كود :
 Dim sol Rpp(NmberQ 1)
 
    

ثم نملا بها ليبالات الحل الحمراء التي تهر في حالى الخطا

PHP كود :
For 0 To sol.Length 1
            Labl2
(I).Text sol(I)
 
       Next 

 حينها نضيف 1 لرقم السؤال لعرض ابلسؤال الموالي

و بالتالي تكون دالة توليد الاسئلة  الكلية هي

PHP كود :
 Sub questions()

 
       ' اخفاء الكومبوكس و كالكلمات و الصور
        For p = 0 To 4
            Combox(p).Visible = False
            Combox(p).Items.Clear()
            Labl(p).Visible = False
            Labl2(p).Text = Nothing
            Labl2(p).Visible = False
            pict(p).Visible = False
        Next

        ' 
ملء الكومبوكس
        For f 
0 To somme.Count 1
            For p 
0 To 4
                Combox
(p).Items.Add(somme(f))
 
           Next
        Next

        
'تفريغ الاجابات
        reponses = {"", "", "", "", ""}
        ' 
اختيار عشوائي للملف ووضعه في مصفوفة
        Dim NmberQ 
Nrandom.Next(110)
 
       Dim Hafs As String Application.StartupPath "\" & NmberQ & ".txt"
        Dim readH As StreamReader
        Dim Harr() As String = Nothing
        ''''''''''''
        readH = New StreamReader(Hafs)
        Dim I As Integer
        Do Until readH.EndOfStream
            ReDim Preserve Harr(I)
            Harr(I) = readH.ReadLine()
            I += 1
        Loop
        readH.Close()
        ' اختيار عوائي للجملة من المصقوقة
        Dim Nmberphrase = Nrandom.Next(0, Harr.Length)
        RichTextBox1.Text = Harr(Nmberphrase)
        RichTextBox1.SelectionAlignment = HorizontalAlignment.Center
        txtQ = Harr(Nmberphrase).Split(" ")

        ' اظهار عدد الكلمات و الكومبوكس وفق عدد كلمات الجملة
        For p = 0 To txtQ.Length - 1
            Combox(p).Visible = True
            Labl(p).Visible = True
            Labl(p).Text = txtQ(p)
        Next

        ' الحل
        Dim sol = Rpp(NmberQ - 1)
        For I = 0 To sol.Length - 1
            Labl2(I).Text = sol(I)
        Next

        NmberQ += 1
    End Sub 

نتابع :

الان في الكومبوكسات سنجعل كل ما يختار كومبوكس يسجل clic +1
و يسجل اختياره في مصفوفة الاجابات
لطلك من اجل الحدث ComboBox1_SelectedIndexChanged سنضع الكود

PHP كود :
clic += 1
        reponses
(0) = ComboBox1.Text 

و نكرره لكل كومبوكس مع تغيير رقمه في الكود

و بالتالي من اجل 5 كوبموكس سنجد التالي

PHP كود :
 Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.ObjectByVal e As System.EventArgsHandles ComboBox1.SelectedIndexChanged
        clic 
+= 1
        reponses
(0) = ComboBox1.Text
    End Sub
    Private Sub ComboBox2_SelectedIndexChanged
(ByVal sender As System.ObjectByVal e As System.EventArgsHandles ComboBox2.SelectedIndexChanged
        clic 
+= 1
        reponses
(1) = ComboBox2.Text
    End Sub

    Private Sub ComboBox3_SelectedIndexChanged
(ByVal sender As System.ObjectByVal e As System.EventArgsHandles ComboBox3.SelectedIndexChanged
        clic 
+= 1
        reponses
(2) = ComboBox3.Text
    End Sub

    Private Sub ComboBox4_SelectedIndexChanged
(ByVal sender As System.ObjectByVal e As System.EventArgsHandles ComboBox4.SelectedIndexChanged
        clic 
+= 1
        reponses
(3) = ComboBox4.Text
    End Sub

    Private Sub ComboBox5_SelectedIndexChanged
(ByVal sender As System.ObjectByVal e As System.EventArgsHandles ComboBox5.SelectedIndexChanged
        clic 
+= 1
        reponses
(4) = ComboBox5.Text
    End Sub 

الان في زر التالي سنضع ببساطة 

PHP كود :
questions() 

اما في زر التصحيح نضع  دالة التصحيح

PHP كود :
verfications() 

ماذا نضع في دالة التصحيح ؟؟؟؟

مباشرة سنقارن محتوى مصفوفة الاجابة reponses  مع مصفوفة الحلول Labl2


اذا وجد النصين متساوين يضيف رقم 1 الى متغير reusi  وهو عدد الكلمات الصحيحة
و يعطي الصورة شكل صح 

و الا سيعطي الصورة شكل خطا 
 اذا كان متغير reusi  هو نفسه عدد كلمات الجملة فهو قد اجاب على كل الكلمات فنعطيه  1 للنقاط  scor +1  من 10
ثم نهر كل الصور

اذا وصل الى 10/10 فهو قد اجاب جيدا نظهر له رسالة تهنئة 

اذن الكود لكه للتصحيح كالتالي

PHP كود :
 Sub verfications()
 
       Dim reusi As Integer 0
        For i 
0 To 4
            If reponses
(i) = Labl2(i).Text Then
                reusi 
+= 1
                pict
(i).Image My.Resources.yes
            Else
                Labl2
(i).Visible True
                 pict
(i).Image My.Resources.no
            End 
If
 
       Next
        If reusi 
5 Then
            score 
+= 1
            Labscore
.Text += 1
        End 
If

 
       For i 0 To txtQ.Length 1
            pict
(i).Visible True
        Next

        If reusi 
>= 10 Then
            MessageBox
.Show(" ما شاء الله انت في طريقك  لاحتراف الاعراب""عبد الهادي بهاب"MessageBoxButtons.OKMessageBoxIcon.Information)
 
           restart()
 
       End If

 
   End Sub 

بعد 10 /10

سنعيد من جديد و نفعل دالة الاعادة restart

PHP كود :
Sub restart()
 
       score 0
        Labscore
.Text 0
        NmberQ 
0
        questions
()
 
   End Sub 

اخيرا مع الملف

اولا حمل الملفات هذه وهي ملفات تكست من 1 الى 10
يمكن ان تيف لها جملا لكن بنفس سياق الاعراب


.rar   i3rab_ txt.rar (الحجم : 2.51 ك ب / التحميلات : 30)

ثم حمل ملف برنامج الاعراب المختصر


.rar   i3rab.rar (الحجم : 159.38 ك ب / التحميلات : 48)

mp = vb4arb.com

ضعه في مجلد \bin\Debug

و استمتع بالبرنامج

بالتوفيق في مشاريعكم

لا تنسونا بدعوة خالصة
 لعل الكلمة التي تنفعني لم أكتبها بعد
عبد الله بن المبارك
الرد }}}
تم الشكر بواسطة: بلدي , بلدي , ابراهيم ايبو , asemshahen5
#5
تم اضافة كلمة السر و هي دائما

vb4arb.com

شكرا استاذ بلدي على المتابعة الدائمة

تم التعديل على المشاركة

( حاولت ان ارسل رسالة خاصة لشكرك في الموضوع الاول و الحاضر لكنها لا تعمل معي اسف )
 لعل الكلمة التي تنفعني لم أكتبها بعد
عبد الله بن المبارك
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو , بلدي , asemshahen5 , asemshahen5


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  برنامج البحث عن لقطة داخل صورة أخرى Taha Okla 4 1,233 أمس, 04:23 PM
آخر رد: عبدالكريم برشدان
Big Grin [مشروع] تصميم محرر اكواد بسيط من خلال الفيجوال بيسك مع السورس كود ahmadpal 1 2,118 23-01-24, 05:38 PM
آخر رد: alkndy
  برنامج صانع الاكواد الاصدار المجاني الجديد aljzazy 27 20,083 14-01-24, 12:39 PM
آخر رد: mahmoued2022
Shocked برنامج مواقيت الصلاة ( الاذان ) alsaher1 5 2,531 25-11-23, 02:57 PM
آخر رد: alsaher1
Star [مشروع] برنامج مبيعات مفتوح المصدر 2018 mohammedvego 174 143,573 18-11-23, 03:01 AM
آخر رد: Darweesh
Thumbs Up [VB.NET] برنامج محاسبي مجاني ( مبيعات - مشتريات - مخزون - حسابات ) مفتوح المصدر توب سوفت 3 7,497 06-11-23, 01:36 AM
آخر رد: Ramzigh
  [مشروع] سورس كود برنامج مبيعات لسه مبتدئ 42 34,751 07-10-23, 07:25 PM
آخر رد: حورس2000
  برنامج لادارة الدروس الخصوصية VB.NET2013& Access moaath.khalaf 16 15,790 19-08-23, 12:22 AM
آخر رد: Ramadan alking
  برنامج بنك الأكواد esawy1 4 1,368 28-07-23, 11:53 AM
آخر رد: karmina2012
Music [VB.NET] سورس كود برنامج إذاعي متطور musalem 0 624 25-06-23, 02:06 AM
آخر رد: musalem

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم