الدرس التاسع ( 9 ) - - جملة التكرار For وكيفية التعامل معها - RaggiTech - 19-10-12
كاتب الموضوع : lo2i
السلام عليكم ورحمة الله وبركاته
(( وماأوتيتم من العلم إلا قليلاً ))
-------------------------------------------------------------------------------------------------------------------------------
الدرس التاسع في دورة السي بلس بلس
-------------------------------------------------------------------------------------------------------------------------------
سنتعلم في هذا الدرس ان شاء الله :_
- التعرف على جملة التكرار for
- استخدامات هذه الجملة
- خصائص هذه الجملة وفوائدها
- كيفية التعامل مع ال step
- استخدام الـ if مع الـ for
- طريقة كتابتها
- امثلة عليها
-----------------------------------
جملة التكرار for نستخدمها عندما نريد تكرار شيء معين بعد معين
مثلاً لو اردنا ان نكرر كلمة vb4arab عشر مرات بالطريقة الافتراضية سوف نقوم بكتابة الكود بهذا الشكل
كود : [color=#000000][COLOR=#0000bb][/color][COLOR=#ff8000]#include "stdafx.h"
#include <iostream>
[/COLOR][color=#0000bb]using namespace std[/color][COLOR=#007700];
[/COLOR][color=#0000bb]int main[/color][COLOR=#007700]()
{
[/COLOR][color=#0000bb]cout [/color][color=#007700]<< [/color][color=#dd0000]"vb4arab.com" [/color][color=#007700]<< [/color][color=#0000bb]endl[/color][COLOR=#007700];
[/COLOR][color=#0000bb]cout [/color][color=#007700]<< [/color][color=#dd0000]"vb4arab.com" [/color][color=#007700]<< [/color][color=#0000bb]endl[/color][COLOR=#007700];
[/COLOR][color=#0000bb]cout [/color][color=#007700]<< [/color][color=#dd0000]"vb4arab.com" [/color][color=#007700]<< [/color][color=#0000bb]endl[/color][COLOR=#007700];
[/COLOR][color=#0000bb]cout [/color][color=#007700]<< [/color][color=#dd0000]"vb4arab.com" [/color][color=#007700]<< [/color][color=#0000bb]endl[/color][COLOR=#007700];
[/COLOR][color=#0000bb]cout [/color][color=#007700]<< [/color][color=#dd0000]"vb4arab.com" [/color][color=#007700]<< [/color][color=#0000bb]endl[/color][COLOR=#007700];
[/COLOR][color=#0000bb]cout [/color][color=#007700]<< [/color][color=#dd0000]"vb4arab.com" [/color][color=#007700]<< [/color][color=#0000bb]endl[/color][COLOR=#007700];
[/COLOR][color=#0000bb]cout [/color][color=#007700]<< [/color][color=#dd0000]"vb4arab.com" [/color][color=#007700]<< [/color][color=#0000bb]endl[/color][COLOR=#007700];
[/COLOR][color=#0000bb]cout [/color][color=#007700]<< [/color][color=#dd0000]"vb4arab.com" [/color][color=#007700]<< [/color][color=#0000bb]endl[/color][COLOR=#007700];
[/COLOR][color=#0000bb]cout [/color][color=#007700]<< [/color][color=#dd0000]"vb4arab.com" [/color][color=#007700]<< [/color][color=#0000bb]endl[/color][COLOR=#007700];
[/COLOR][color=#0000bb]cout [/color][color=#007700]<< [/color][color=#dd0000]"vb4arab.com" [/color][color=#007700]<< [/color][color=#0000bb]endl[/color][COLOR=#007700];
[/COLOR][color=#0000bb]system[/color][color=#007700]([/color][color=#dd0000]"pause"[/color][COLOR=#007700]);
return [/COLOR][color=#0000bb]0[/color][COLOR=#007700];
}
[/COLOR][color=#0000bb][/color][/COLOR]
اما باستخدام جملة التكرار for فسوف تختصر الكود إلى هذا الشكل ,,
كود : [color=#000000][COLOR=#0000bb][/color][COLOR=#ff8000]#include "stdafx.h"
#include <iostream>
[/COLOR][color=#0000bb]using namespace std[/color][COLOR=#007700];
[/COLOR][color=#0000bb]int main[/color][COLOR=#007700]()
{
for ([/COLOR][color=#0000bb]int i [/color][color=#007700]= [/color][color=#0000bb]0[/color][color=#007700];[/color][color=#0000bb]i[/color][color=#007700]<[/color][color=#0000bb]10 [/color][color=#007700];[/color][color=#0000bb]i[/color][COLOR=#007700]++){
[/COLOR][color=#0000bb]cout [/color][color=#007700]<< [/color][color=#dd0000]"vb4arab.com" [/color][color=#007700]<< [/color][color=#0000bb]endl[/color][COLOR=#007700];
}
[/COLOR][color=#0000bb]system[/color][color=#007700]([/color][color=#dd0000]"pause"[/color][COLOR=#007700]);
return [/COLOR][color=#0000bb]0[/color][COLOR=#007700];
}
[/COLOR][color=#0000bb][/color][/COLOR]
بالكود السابق لو تلاحظ بدأنا كود ال for
بهذا الشكل ,,
كود : [color=#000000][COLOR=#0000bb][/color][color=#007700]for ([/color][color=#0000bb]int i [/color][color=#007700]= [/color][color=#0000bb]0[/color][color=#007700];[/color][color=#0000bb]i[/color][color=#007700]<[/color][color=#0000bb]10 [/color][color=#007700];[/color][color=#0000bb]i[/color][COLOR=#007700]++){
[/COLOR][color=#0000bb]cout [/color][color=#007700]<< [/color][color=#dd0000]"vb4arab.com" [/color][color=#007700]<< [/color][color=#0000bb]endl[/color][COLOR=#007700];
}
[/COLOR][color=#0000bb][/color][/COLOR]
وجملة التكرار for تبدأ بكلمة for
وتأخد ثلاث وسائط , ان صح التعبير
-----
الوسيط الاول :- هو قيمة المتغير العددي,
الوسيط الثاني :- هو قيمة الشرط,
الوسيط الثالث : - قيمة الزيادة لكل تكرار من التكرارات,
-----
ومابين العلامتين { } هو الكود الذي نريده ان يتكرر كل مرة ,
---
الصورة التالية قد توضح الصورة بشكل افضل ,,
![[صورة مرفقة: 18_01350630166.jpg]](https://vb4arb.com/vb/uploaded/18_01350630166.jpg)
يمكن كتابة كود تكرار ال for بأكثر من طريقة ,,
هي تعريف المتغير int ضمن الوسيط الاول واعطاء قيمة له
مثل الكود التالي ,,
كود : [color=#000000][COLOR=#0000bb] [/color][color=#007700]for ([/color][color=#0000bb]int i [/color][color=#007700]= [/color][color=#0000bb]0[/color][color=#007700];[/color][color=#0000bb]i[/color][color=#007700]<[/color][color=#0000bb]10 [/color][color=#007700];[/color][color=#0000bb]i[/color][COLOR=#007700]++){
[/COLOR][color=#0000bb]cout [/color][color=#007700]<< [/color][color=#dd0000]"vb4arab.com" [/color][color=#007700]<< [/color][color=#0000bb]endl[/color][COLOR=#007700];
}
[/COLOR][color=#0000bb][/color][/COLOR]
هو تغيير قيمة الوسيط الثالث او تغيير شكله بهذا الشكل
i++ <<<=>>> i =i+1
كود : [color=#000000][COLOR=#0000bb] [/color][color=#007700]for ([/color][color=#0000bb]int i [/color][color=#007700]= [/color][color=#0000bb]0[/color][color=#007700];[/color][color=#0000bb]i[/color][color=#007700]<[/color][color=#0000bb]10 [/color][color=#007700];[/color][color=#0000bb]i[/color][color=#007700]=[/color][color=#0000bb]i[/color][color=#007700]+[/color][color=#0000bb]1[/color][COLOR=#007700]){
[/COLOR][color=#0000bb]cout [/color][color=#007700]<< [/color][color=#dd0000]"vb4arab.com" [/color][color=#007700]<< [/color][color=#0000bb]endl[/color][COLOR=#007700];
}
[/COLOR][color=#0000bb][/color][/COLOR]
هي تعريف المتغير int في الاعلى وذكر قيمته فقط في الكود
كود : [color=#000000][COLOR=#0000bb]int i[/color][COLOR=#007700];
for ([/COLOR][color=#0000bb]i [/color][color=#007700]= [/color][color=#0000bb]0[/color][color=#007700];[/color][color=#0000bb]i[/color][color=#007700]<[/color][color=#0000bb]10 [/color][color=#007700];[/color][color=#0000bb]i[/color][color=#007700]=[/color][color=#0000bb]i[/color][color=#007700]+[/color][color=#0000bb]1[/color][COLOR=#007700]){
[/COLOR][color=#0000bb]cout [/color][color=#007700]<< [/color][color=#dd0000]"vb4arab.com" [/color][color=#007700]<< [/color][color=#0000bb]endl[/color][COLOR=#007700];
}
[/COLOR][color=#0000bb][/color][/COLOR]
------------
وهذا مثال اخر
كود : [color=#000000][COLOR=#0000bb][/color][COLOR=#ff8000]#include "stdafx.h"
#include <iostream>
[/COLOR][color=#0000bb]using namespace std[/color][COLOR=#007700];
[/COLOR][color=#0000bb]int main[/color][COLOR=#007700]()
{
[/COLOR][color=#0000bb]int i[/color][color=#007700]=[/color][color=#0000bb]0[/color][COLOR=#007700];
for ( [/COLOR][color=#0000bb]i [/color][color=#007700]; [/color][color=#0000bb]i[/color][color=#007700]<[/color][color=#0000bb]11 [/color][color=#007700]; [/color][color=#0000bb]i[/color][COLOR=#007700]++ )
{
[/COLOR][color=#0000bb]cout [/color][color=#007700]<< [/color][color=#0000bb]i [/color][color=#007700]<< [/color][color=#0000bb]endl[/color][COLOR=#007700];
}
[/COLOR][color=#0000bb]system[/color][color=#007700]([/color][color=#dd0000]"pause"[/color][COLOR=#007700]);
return [/COLOR][color=#0000bb]0[/color][COLOR=#007700];
}
[/COLOR][color=#0000bb][/color][/COLOR]
جربه ,, فهذا الكود في كل تكرار من التكرارات فسوف يقوم بطباعة قيمة المتغير .
--------------
وهذا مثال اخر لكيفية التعامل مع ال step
كود : [color=#000000][COLOR=#0000bb][/color][COLOR=#ff8000]#include "stdafx.h"
#include <iostream>
[/COLOR][color=#0000bb]using namespace std[/color][COLOR=#007700];
[/COLOR][color=#0000bb]int main[/color][COLOR=#007700]()
{
[/COLOR][color=#0000bb]int i[/color][color=#007700]=[/color][color=#0000bb]0[/color][COLOR=#007700];
for ( [/COLOR][color=#0000bb]i [/color][color=#007700]; [/color][color=#0000bb]i[/color][color=#007700]<[/color][color=#0000bb]11 [/color][color=#007700]; [/color][color=#0000bb]i[/color][color=#007700]=[/color][color=#0000bb]i[/color][color=#007700]+[/color][color=#0000bb]2 [/color][COLOR=#007700])
{
[/COLOR][color=#0000bb]cout [/color][color=#007700]<< [/color][color=#0000bb]i [/color][color=#007700]<< [/color][color=#0000bb]endl[/color][COLOR=#007700];
}
[/COLOR][color=#0000bb]system[/color][color=#007700]([/color][color=#dd0000]"pause"[/color][COLOR=#007700]);
return [/COLOR][color=#0000bb]0[/color][COLOR=#007700];
}
[/COLOR][color=#0000bb][/color][/COLOR]
في الكود السابق سيخرج لنا البرنامج الارقام الزوجية من القيمة صفر
إلى القيمة 11
لاحظ ان المتغير يبدأ من الصفر ويزيد في كل تكرار قيمة 2
بمعنى اخر سيكون المخرج بهذا الشكل ,,
0 2 4 6 8 10
--------------------
ولو اردنا اخراج الارقام الفردية ,
كود : [color=#000000][COLOR=#0000bb][/color][COLOR=#ff8000]#include "stdafx.h"
#include <iostream>
[/COLOR][color=#0000bb]using namespace std[/color][COLOR=#007700];
[/COLOR][color=#0000bb]int main[/color][COLOR=#007700]()
{
[/COLOR][color=#0000bb]int i[/color][color=#007700]=[/color][color=#0000bb]1[/color][COLOR=#007700];
for ( [/COLOR][color=#0000bb]i [/color][color=#007700]; [/color][color=#0000bb]i[/color][color=#007700]<[/color][color=#0000bb]11 [/color][color=#007700]; [/color][color=#0000bb]i[/color][color=#007700]=[/color][color=#0000bb]i[/color][color=#007700]+[/color][color=#0000bb]2 [/color][COLOR=#007700])
{
[/COLOR][color=#0000bb]cout [/color][color=#007700]<< [/color][color=#0000bb]i [/color][color=#007700]<< [/color][color=#0000bb]endl[/color][COLOR=#007700];
}
[/COLOR][color=#0000bb]system[/color][color=#007700]([/color][color=#dd0000]"pause"[/color][COLOR=#007700]);
return [/COLOR][color=#0000bb]0[/color][COLOR=#007700];
}
[/COLOR][color=#0000bb][/color][/COLOR]
لو لاحظت الفرق فقط في هذا الكود
كود : [color=#000000][COLOR=#0000bb] int i[/color][color=#007700]=[/color][color=#0000bb]1[/color][COLOR=#007700];
[/COLOR][color=#0000bb][/color][/COLOR]
يبدأ بالعد من الرقم 1 ويزيد قيمة 2 على كل تكرار ثم يقوم بطباعة القيمة ,
والمخرج سيكون بهذا الشكل
1 3 5 7 9
-------------
كيفية استخدام ال if (الجمل الشرطية) مع الـ for
كود : [color=#000000][COLOR=#0000bb][/color][COLOR=#ff8000]#include "stdafx.h"
#include <iostream>
[/COLOR][color=#0000bb]using namespace std[/color][COLOR=#007700];
[/COLOR][color=#0000bb]int main[/color][COLOR=#007700]()
{
[/COLOR][color=#0000bb]int i[/color][color=#007700]=[/color][color=#0000bb]0[/color][COLOR=#007700];
for ( [/COLOR][color=#0000bb]i [/color][color=#007700]; [/color][color=#0000bb]i[/color][color=#007700]<[/color][color=#0000bb]11 [/color][color=#007700]; [/color][color=#0000bb]i[/color][COLOR=#007700]++ )
{
if([/COLOR][color=#0000bb]i [/color][color=#007700]== [/color][color=#0000bb]6 [/color][COLOR=#007700])
{
[/COLOR][color=#0000bb]goto end[/color][COLOR=#007700];
}
[/COLOR][color=#0000bb]cout [/color][color=#007700]<< [/color][color=#0000bb]i [/color][color=#007700]<< [/color][color=#0000bb]endl[/color][COLOR=#007700];
}
[/COLOR][color=#0000bb]end[/color][COLOR=#007700]:
[/COLOR][color=#0000bb]system[/color][color=#007700]([/color][color=#dd0000]"pause"[/color][COLOR=#007700]);
return [/COLOR][color=#0000bb]0[/color][COLOR=#007700];
}
[/COLOR][color=#0000bb][/color][/COLOR]
في الكود السابق استخدمنا جملة الشرط if في حال اذا كان المتغير
يساوي 6 اذاً يخرج من جملة التكرار ولا يكمل الباقي
يعني سيكون المخرج بهذا الشكل
0
1
2
3
4
5
==========================================
والان جرب واعطيني النتيجة
====================
========
==
انتظروا الدرس العاشر !!
|