المواضيع الأخيرة
اللعب عالمكشوف ... لمن يملك الطرنيب
7/10/2016, 11:43 am من طرف الأمين العام
اللعب عالمكشوف ... لمن يملك الطرنيب
بعد ست سنوات من الحرب الطاحنة و التخفي لكل دولة وراء الدعم المقدم لقوى …
بعد ست سنوات من الحرب الطاحنة و التخفي لكل دولة وراء الدعم المقدم لقوى …
تعاليق: 0
مبروك لقطر مبروك للخليج
5/8/2015, 6:58 pm من طرف الأمين العام
مبروك لقطر مبروك للخليج ....
من كأس النخوة التفخيخية و الهيجان العاهر اشربوا ....
من كأس الحقد و السقاطة و التآمر …
من كأس النخوة التفخيخية و الهيجان العاهر اشربوا ....
من كأس الحقد و السقاطة و التآمر …
تعاليق: 0
عاجل جدا .... رؤيا نتمنى أن تلقى آذان صاغية .
12/7/2015, 8:24 pm من طرف الأمين العام
عاجل جدا .... رؤيا نتمنى أن تلقى آذان صاغية .
سلمية الأمان سلمية المحبة هناك من يحاول إثارة فتيل الفتنة و الخراب …
سلمية الأمان سلمية المحبة هناك من يحاول إثارة فتيل الفتنة و الخراب …
تعاليق: 0
ماذا بعد يا صاحب القرار
9/7/2015, 9:41 pm من طرف الأمين العام
ماذا بعد يا صاحب القرار .....
هاهو التلفزيون السوري الرسمي يفصحُ بما عجزَ عنه الناس .. ويفضحُ بما لا يقبل الشك …
هاهو التلفزيون السوري الرسمي يفصحُ بما عجزَ عنه الناس .. ويفضحُ بما لا يقبل الشك …
تعاليق: 0
الشعب يتساءل ......
7/7/2015, 9:54 pm من طرف الأمين العام
بيان :
الشعب يتساءل ......
إننا لا نتكلم في السياسة لان السياسة بأساسها هي علاقة أوجدها الإنسان ليستطيع من …
الشعب يتساءل ......
إننا لا نتكلم في السياسة لان السياسة بأساسها هي علاقة أوجدها الإنسان ليستطيع من …
تعاليق: 0
المجموعة الثامنة فيجوال بيزيك
صفحة 1 من اصل 1
المجموعة الثامنة فيجوال بيزيك
أولا: حلقة Do الشرطية:
ولها شكلين:
الشكل الأول:
do until condition
-
-
-
loop
الشكل الثاني
do
-
-
-
loop until condition
ملاحظة:
لا يختلف الشكل الأول عن الشكل الثاني إلا في حالة خاصة جداً عندما يكون الشرط محقق منذ البداية فإن البرنامج لا يدخل للحلقة في الشكل الأول وبالتالي لا يتم تعريف المتحولات داخل الحلقة.
· ويمكن أن يكتب الشكلين السابقين بصورة أخرى ، نستبدل كلمة until (حتى) بكلمة while(بينما).
· الفرق بين حلقتي FOR،Do في المثال التالي:
ليكن لدينا السلسلة :
- إذا كان المطلوب جمع N حد من هذه السلسلة FOR
- إذا كان المطلوب عدد ما (بحيث نصل لحد قيمته أصغر من EPS=0.003) Do
وإليك الكود الخاص بهذا الجمع:
EPS=VAL(-----)
F=1
S=0
I=1
DO UNTIL F>EPS
F=1/I
S=S+F
I=I+1
LOOP
ثانياً: كتل select case:
تستخدم لتقرير ما يجب فعله بناءً على قيمة تعبير ما.
الشكل العام:
Select Csae
case 1
------
case 2
-------
case n
-------
مثال 14
لدى شركة الكهرباء مجموعة من المشتركين عددهم n مع كمية استهلاكهم للطاقة الكهربائية، وكانت السعر الإفرادي لواحدة الكمية يتغير حسب كمية الاستهلاك كما في الجدول التالي:
والمطلوب:1- تشكيل جدول يضم: اسم المشترك، كمية استهلاكه، السعر الإفراتي، السعر الإجمالي
2- حساب عدد المشتركين الذين زادة كمية استهلاكهم عن 500
3-حساب أكبر مبلغ ممكن يدفعه ثلاث مشتركين.
الحل: سوف نصمم البرنامج على ثلاث نوافذ:
- النافذة الأولىwelcome) وهي تمثل كلمة مرور للبرنامج، والكلمة هي (سري
للغاية) وإذا لم يتم كتابة الكلمة بشكل صحيح سوف يصدر البرنامج رسالة تحذير ومن ثم سوف يغلق البرنامج.
[color=red]Private Sub Command1_Click()[color:d137=red:d137]
n = Text1.Text
If n = "سري للغاية" Then
Data.Show
Welcom.Hide
Else
b = MsgBox("هذا البرنامج ليس من اختصاصك، لا تحاول الدخول ثانية", 48, "تحذير")
If b = 1 Then End
End If
End Sub
- النافذة الثانيةdata) وهي تحوي على جدول بأسماء الموظفين وكمياتهم وعلى زرين أحدهما إظهار النتائج والآخر لمسح القيم.
[color=red]Function price(m)[color:d137=red:d137]
Select Case m
Case 0 To 100
price = 0.75
Case 100 To 300
price = 1.1
Case 300 To 700
price = 1.5
Case 700 To 1300
price = 2.2
Case Is > 1300
price = 3
End Select
[color=red]End Function[color:d137=red:d137]
[color=red]Sub sort(w(), p)[color:d137=red:d137]
For i = 1 To p - 1
For j = 1 + i To p
If w(j) > w(i) Then
c = w(i)
w(i) = w(j)
w(j) = c
End If
Next j
Next i
[color=red]End Sub[color:d137=red:d137]
[color=red]Private Sub codelet_Click()[color:d137=red:d137]
Unload Data
Data.Show
[color=red]End Sub[color:d137=red:d137]
[color=red]Private Sub Command1_Click()[color:d137=red:d137]
n = Val(Text1.Text)
ReDim a(n), q(n), s1(n), s2(n)
For i = 1 To n
a(i) = g1.TextMatrix(i, 1)
q(i) = Val(g1.TextMatrix(i, 2))
If q(i) > 500 Then s = s + 1
s1(i) = price(q(i))
s2(i) = q(i) * s1(i)
Next i
For i = 1 To n
Pricefin.g2.TextMatrix(i, 1) = a(i)
Pricefin.g2.TextMatrix(i, 2) = q(i)
Pricefin.g2.TextMatrix(i, 3) = s1(i)
Pricefin.g2.TextMatrix(i, 4) = s2(i)
Next i
Call sort(s2(), n)
sum3 = s2(1) + s2(2) + s2(3)
Pricefin.Text1.Text = s
Pricefin.Text2.Text = sum3
Data.Hide
Pricefin.Show
[color=red]End Sub[color:d137=red:d137]
[color=red]Private Sub Form_Load()[color:d137=red:d137]
g1.TextMatrix(0, 0) = "الرقم"
g1.TextMatrix(0, 1) = "اسم المشترك"
g1.TextMatrix(0, 2) = "الكمية"
g1.ColWidth(1) = 1700
For i = 0 To 2
g1.ColAlignment(i) = 3
Next i
[color=red]End Sub[color:d137=red:d137]
[color=red]Private Sub g1_Click()[color:d137=red:d137]
g1.Text = ""
[color=red]End Sub[color:d137=red:d137]
[color=red]Private Sub g1_KeyPress(KeyAscii As Integer)[color:d137=red:d137]
g1.Text = g1.Text + Chr(KeyAscii)
[color=red]End Sub[color:d137=red:d137]
[color=red]Private Sub Text1_Change()[color:d137=red:d137]
n = Val(Text1.Text)
g1.Rows = n + 1
Pricefin.g2.Rows = n + 1
For i = 1 To n
g1.TextMatrix(i, 0) = i
Pricefin.g2.TextMatrix(i, 0) = i
Next i
End Sub
- النافذة الثالثة: (pricefin) وهي تحتوي على النتائج وزرين واحد لتعديل المعطيات والآخر للخروج من البرنامج.
[color=red]Private Sub coend_Click()[color:d137=red:d137]
b = MsgBox("إلى اللقاءً", 2096, "خروج")
If b = 1 Then End
[color=red]End Sub[color:d137=red:d137]
[color=red]Private Sub Command1_Click()[color:d137=red:d137]
Pricefin.Hide
Data.Show
[color=red]End Sub[color:d137=red:d137]
[color=red]Private Sub Form_Load()[color:d137=red:d137]
g2.TextMatrix(0, 0) = "الرقم"
g2.TextMatrix(0, 1) = "اسم المشترك"
g2.TextMatrix(0, 2) = "الكمية"
g2.TextMatrix(0, 3) = "السعر الافرادي"
g2.TextMatrix(0, 4) = "السعر الاجمالي"
g2.ColWidth(1) = 1700
g2.ColWidth(3) = 1200
g2.ColWidth(4) = 1200
For i = 0 To 4
g2.ColAlignment(i) = 3
Next i
End Sub
يحتوي البرنامج على تابع معرف باسم price لتحديد السعر حسب الكمية. وبرنامج جزئي باسم sort لترتيب قيم شعاع بشكل تصاعدي.
ولها شكلين:
الشكل الأول:
do until condition
-
-
-
loop
الشكل الثاني
do
-
-
-
loop until condition
ملاحظة:
لا يختلف الشكل الأول عن الشكل الثاني إلا في حالة خاصة جداً عندما يكون الشرط محقق منذ البداية فإن البرنامج لا يدخل للحلقة في الشكل الأول وبالتالي لا يتم تعريف المتحولات داخل الحلقة.
· ويمكن أن يكتب الشكلين السابقين بصورة أخرى ، نستبدل كلمة until (حتى) بكلمة while(بينما).
· الفرق بين حلقتي FOR،Do في المثال التالي:
ليكن لدينا السلسلة :
- إذا كان المطلوب جمع N حد من هذه السلسلة FOR
- إذا كان المطلوب عدد ما (بحيث نصل لحد قيمته أصغر من EPS=0.003) Do
وإليك الكود الخاص بهذا الجمع:
EPS=VAL(-----)
F=1
S=0
I=1
DO UNTIL F>EPS
F=1/I
S=S+F
I=I+1
LOOP
ثانياً: كتل select case:
تستخدم لتقرير ما يجب فعله بناءً على قيمة تعبير ما.
الشكل العام:
Select Csae
case 1
------
case 2
-------
case n
-------
case else
-------
end select
مثال 14
لدى شركة الكهرباء مجموعة من المشتركين عددهم n مع كمية استهلاكهم للطاقة الكهربائية، وكانت السعر الإفرادي لواحدة الكمية يتغير حسب كمية الاستهلاك كما في الجدول التالي:
اسم الشريحة
مقدار الاستهلاك
السعر الإفرادي
S1
0-100
0.75
S2
100-300
1.1
S3
300-700
1.5
S4
700-1300
2.2
S5
>1300
3
والمطلوب:1- تشكيل جدول يضم: اسم المشترك، كمية استهلاكه، السعر الإفراتي، السعر الإجمالي
2- حساب عدد المشتركين الذين زادة كمية استهلاكهم عن 500
3-حساب أكبر مبلغ ممكن يدفعه ثلاث مشتركين.
الحل: سوف نصمم البرنامج على ثلاث نوافذ:
- النافذة الأولىwelcome) وهي تمثل كلمة مرور للبرنامج، والكلمة هي (سري
للغاية) وإذا لم يتم كتابة الكلمة بشكل صحيح سوف يصدر البرنامج رسالة تحذير ومن ثم سوف يغلق البرنامج.
[color=red]Private Sub Command1_Click()[color:d137=red:d137]
n = Text1.Text
If n = "سري للغاية" Then
Data.Show
Welcom.Hide
Else
b = MsgBox("هذا البرنامج ليس من اختصاصك، لا تحاول الدخول ثانية", 48, "تحذير")
If b = 1 Then End
End If
End Sub
- النافذة الثانيةdata) وهي تحوي على جدول بأسماء الموظفين وكمياتهم وعلى زرين أحدهما إظهار النتائج والآخر لمسح القيم.
[color=red]Function price(m)[color:d137=red:d137]
Select Case m
Case 0 To 100
price = 0.75
Case 100 To 300
price = 1.1
Case 300 To 700
price = 1.5
Case 700 To 1300
price = 2.2
Case Is > 1300
price = 3
End Select
[color=red]End Function[color:d137=red:d137]
[color=red]Sub sort(w(), p)[color:d137=red:d137]
For i = 1 To p - 1
For j = 1 + i To p
If w(j) > w(i) Then
c = w(i)
w(i) = w(j)
w(j) = c
End If
Next j
Next i
[color=red]End Sub[color:d137=red:d137]
[color=red]Private Sub codelet_Click()[color:d137=red:d137]
Unload Data
Data.Show
[color=red]End Sub[color:d137=red:d137]
[color=red]Private Sub Command1_Click()[color:d137=red:d137]
n = Val(Text1.Text)
ReDim a(n), q(n), s1(n), s2(n)
For i = 1 To n
a(i) = g1.TextMatrix(i, 1)
q(i) = Val(g1.TextMatrix(i, 2))
If q(i) > 500 Then s = s + 1
s1(i) = price(q(i))
s2(i) = q(i) * s1(i)
Next i
For i = 1 To n
Pricefin.g2.TextMatrix(i, 1) = a(i)
Pricefin.g2.TextMatrix(i, 2) = q(i)
Pricefin.g2.TextMatrix(i, 3) = s1(i)
Pricefin.g2.TextMatrix(i, 4) = s2(i)
Next i
Call sort(s2(), n)
sum3 = s2(1) + s2(2) + s2(3)
Pricefin.Text1.Text = s
Pricefin.Text2.Text = sum3
Data.Hide
Pricefin.Show
[color=red]End Sub[color:d137=red:d137]
[color=red]Private Sub Form_Load()[color:d137=red:d137]
g1.TextMatrix(0, 0) = "الرقم"
g1.TextMatrix(0, 1) = "اسم المشترك"
g1.TextMatrix(0, 2) = "الكمية"
g1.ColWidth(1) = 1700
For i = 0 To 2
g1.ColAlignment(i) = 3
Next i
[color=red]End Sub[color:d137=red:d137]
[color=red]Private Sub g1_Click()[color:d137=red:d137]
g1.Text = ""
[color=red]End Sub[color:d137=red:d137]
[color=red]Private Sub g1_KeyPress(KeyAscii As Integer)[color:d137=red:d137]
g1.Text = g1.Text + Chr(KeyAscii)
[color=red]End Sub[color:d137=red:d137]
[color=red]Private Sub Text1_Change()[color:d137=red:d137]
n = Val(Text1.Text)
g1.Rows = n + 1
Pricefin.g2.Rows = n + 1
For i = 1 To n
g1.TextMatrix(i, 0) = i
Pricefin.g2.TextMatrix(i, 0) = i
Next i
End Sub
- النافذة الثالثة: (pricefin) وهي تحتوي على النتائج وزرين واحد لتعديل المعطيات والآخر للخروج من البرنامج.
[color=red]Private Sub coend_Click()[color:d137=red:d137]
b = MsgBox("إلى اللقاءً", 2096, "خروج")
If b = 1 Then End
[color=red]End Sub[color:d137=red:d137]
[color=red]Private Sub Command1_Click()[color:d137=red:d137]
Pricefin.Hide
Data.Show
[color=red]End Sub[color:d137=red:d137]
[color=red]Private Sub Form_Load()[color:d137=red:d137]
g2.TextMatrix(0, 0) = "الرقم"
g2.TextMatrix(0, 1) = "اسم المشترك"
g2.TextMatrix(0, 2) = "الكمية"
g2.TextMatrix(0, 3) = "السعر الافرادي"
g2.TextMatrix(0, 4) = "السعر الاجمالي"
g2.ColWidth(1) = 1700
g2.ColWidth(3) = 1200
g2.ColWidth(4) = 1200
For i = 0 To 4
g2.ColAlignment(i) = 3
Next i
End Sub
يحتوي البرنامج على تابع معرف باسم price لتحديد السعر حسب الكمية. وبرنامج جزئي باسم sort لترتيب قيم شعاع بشكل تصاعدي.
مواضيع مماثلة
» المجموعة الرابعة فيجوال بيزيك
» المجموعة الخامسة فيجوال بيزيك
» المجموعة السادسة فيجوال بيزيك
» المجموعة السابعة فيجوال بيزيك
» المجموعة التاسعة فيجوال بيزيك
» المجموعة الخامسة فيجوال بيزيك
» المجموعة السادسة فيجوال بيزيك
» المجموعة السابعة فيجوال بيزيك
» المجموعة التاسعة فيجوال بيزيك
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى
29/7/2017, 11:29 am من طرف جبران جمول
» متى ستصحو وزارتي التربية والتعليم العالي
8/7/2017, 5:33 pm من طرف جبران جمول
» قليلا من الصدق يا محللين
2/7/2017, 7:29 pm من طرف جبران جمول
» امريكا وطبيعة المفاهيم والعقائد السائدة
28/6/2017, 7:59 am من طرف جبران جمول
» فلم خيالي من الواقع
7/6/2017, 4:02 pm من طرف جبران جمول
» مناهجنا
5/6/2017, 8:30 pm من طرف جبران جمول
» اللعب عالمكشوف ... لمن يملك الطرنيب
7/10/2016, 11:43 am من طرف الأمين العام
» خبير أمريكي: "الرواية الرسمية لعمليات سبتمبر الإرهابية مزيفة
13/9/2016, 9:33 am من طرف جبران جمول
» ماذا عن الاله بعل بعض المعلومات
6/8/2016, 12:20 pm من طرف جبران جمول
» سلمية تحارب بالكهرباء بالمياه
12/7/2016, 7:27 pm من طرف جبران جمول
» أسئلة برسم الفقهاء والعلماء فهل من مجيب
12/7/2016, 7:13 pm من طرف جبران جمول
» متى نبتعد عن السلفية في افكارنا .؟
8/7/2016, 11:12 am من طرف جبران جمول
» مبروك لقطر مبروك للخليج
5/8/2015, 6:58 pm من طرف الأمين العام
» ممثل الرئيس في سلمية لحل الأزمة
16/7/2015, 11:07 pm من طرف الأمين العام
» عاجل جدا .... رؤيا نتمنى أن تلقى آذان صاغية .
12/7/2015, 8:24 pm من طرف الأمين العام