الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

شابتر 2 (الاسئلة + امثلة صعبة للتذكير) و تحديات برمجية

بدأه XMasterrrr في 27 أكتوبر 2010 · 22 رد · 8,509 مشاهدة · في المواضيع والدروس
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم و الصلاة و السلام على سيدنا محمد صلى الله عليه و سلم

اجابة استشكالات الاعضاء تكون كل يوم جمعة فقط بسبب مشاغلى الخاصة

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

اذا فلا تتعجل و تسأل اسئلة لم ندرسها و اذا وجدت فى اخير الدورة انه لم يتم تدريس شئ فعليك بالقول .

بداية سوف نأخذ مثالين و شرحهما بأذن الله

بسم الله نبدء:

فلنقول اننا بحاجة لعمل برنامج يحسب مرتب الموظف الاسبوعى , مدة العمل الاسبوعى هى 40 ساعة اى ساعة اخرى تحتسب وقت اضافى بمرتب اضافى الموظف يربح كل ساعة 18.25$ (مرتب حلو اوى ياسلام :D)

و للوقت الاضافى 27.78$ اذا فسوف يكون صافى الساعات 50 ساعة منهم 10 ساعات وقت اضافى بمرتب اخر

الخوارزمية التى سنعمل عليها هى التالى

اقتباس

Regular wages = base pay rate * regular hours

Overtime = overtime pay rate * overtime hours

Total wages = regular wages + overtime

جرب ان تقوم ببرمجته بنفسك

هل قومت بذلك؟؟؟

اذ لم يكن فالكود التالى سيعمل

#include <iostream>
using namespace std;

int main()
{
	double regularWages,
		   baseRatePay = 18.25,
		   baseHours = 40.0,
		   Overtime,
		   overtimePayRate=27.78,
		   overtimeHours=10,
		   TotalWages;

	//يحسب المرتب الطبيعى
	regularWages=baseRatePay * baseHours;

	//يحسب المرتب الاضافى
	Overtime = overtimePayRate * overtimeHours;
	//يحسب المرتب الكامل
	TotalWages = regularWages + Overtime;
	//يعرض المرتب
	cout << "Your employe : " << TotalWages << "!" << endl;
	system("pause");
	return 0;
}

المخرجات:

اقتباس

Your employe : 1007.8!

الشرح :

كما شاهدتم فى المثال لقد وضعت الملاحظات لكى تساعدكم على الفهم السريع يوجد 6 متغيرات من نوع:

regularWages,baseRatePay,baseHours,Overtime,overtimePayRate,overtimeHours,TotalWages.

اوكى فى السطر ال 16 قمنا بعمل عملية رياضية و هى ضرب ال baseRatePay بال baseHours اى المعدل الاساسى للمال فى المعدل الاساسى لساعات العمل و تم تخزين الناتج فى regularWages اى المرتب الثابت.

	regularWages=baseRatePay * baseHours;

فى السطر ال 19 ضربنا ال overtimePayRate فى overtimeHours اى معدل المال للساعة الاضافية فى كمية الساعات الاضافية و تم التحزين فى Overtime اى الوقت الاضافى (اسف لم اختار اسم مناسب لهذا المتغير)

Overtime = overtimePayRate * overtimeHours;

فى السطر 21 قمنا باضافة المتغير regularWages مع Overtime و تخزينهم فى المتغير TotalWages

	TotalWages = regularWages + Overtime;

فى السطر 23 تم عرض الناتج

تم الانتهاء من المثال الاول .

المثال الثانى:

قم بعمل برنامج يحسب النسبة و الخصم :

معرفة النسب فى الرياضيات هى شئ اساسى فى البرمجة ايضا و تُستخدم فى الواقع علامة % لكن فى البرمجة و من ضمنهم لغة السى++ لا نستخدم تلك العلامة (%) لكى تعرف النسبة فى البرمجة نقوم بعمل متغير من نوع floating point (يجب ان يكون floating point ) لأنه سيحمل رقم به كسر من ثم اذا اردنا حسابة 50 فى المئة من نسبة شئ ما اذا فسوف نضرب الشئ ما ذاك و مثال سيكون 100 جنيه اريد ان ارى نسبة ال 50 فى المئة بها سوف نقوم بالتالى

100*0.5

سوف يكون الناتج 50

اذا اردنا ان تكون النسبة هى 20 بالمئة فسوف يكون المثال اتالى

100*0.2

اذا اردنا ان تكون النسبة هى 3 بالمئة فسوف يكون المثال التالى:

100*0.03

اذا اردنا 19 بالمئة فسوف يكون المثال التالى :

100*0.019

اتمنى انها تكون وضحت

حسنا البرنامج المطلوب هو :

فلنقول انك بتكسب 6000 دولار فى الشهر و ان هناك نسبة من المال تذهب الى البنك حسنا سووف نقوم بعمل برنامج يحسب لنا ان كان المال الذى سيذهب الى البنك هو 5 فى المئة , 7 فى المئة و 10 فى المئة

اولا حسابة النسبة:

المثال:

#include <iostream>
using namespace std;

int main()
{
	//المرتب الشهر و النسبة
	double monthlyPay = 6000.0, Precentage;

	//سوف نحسب الان 5 فى المئة و نعرضها
	Precentage = monthlyPay * 0.05;
	cout << "5 Precent is $" << Precentage
		<< " per month.\n";

	//سوف نحسب الان 7 فى المئة و نعرضها
	Precentage = monthlyPay * 0.07;
	cout << "7 Precent is $" << Precentage
		<< " per month.\n";

		//سوف نحسب الان 5 فى المئة و نعرضها
	Precentage = monthlyPay * 0.1;
	cout << "10 Precent is $" << Precentage
		<< " per month.\n";

	system("pause");
	return 0;
}

المخرجات:

اقتباس

5 precent is $300 per month.

7 precent is $420 per month.

10 precent is $600 per month.

الشرح:

فى السطر ال 11 قمنا بعمل متغيران فقط monthlyPay و Precentage. ال monthlyPay سيتم وضع بداخله المرتب الشهرى اى 6000.0 , ال Precentage هذا سوف يتم وضع بداخله النسبة التى نريد ان نعرفها مثل ما رئينا فى المثال .

من السطر 14 الى 16 تم حسابة 5 فى المئة من المرتب الشهرى , العملية الحسابية انتهت فى السطر رقم 14 حين تم ضرب ال monthlyPay فى 0.05 اى 5 فى المئة و تم تخزين الناتج داخل Precentage و الذى يتم ظهوره على الشاشة فى السطر ال 15 و ال 16

فى السطر ال 18 الى 21 نقوم بنفس ما قولناه لكن لحسابة 7 فى المئة ثم من السطر 24 الى 26 نقوم بحسابة 10 فى المئة .

ثانيا حسابة الخصم:

شئ اخر هنقوم به و هو حسابة الخصم بالنسب مثال:

بائع بقالة يبيع شئ (معرفوش) ب 59.95$ و سوف يقوم بخصم 20 بالمئة و طُلب منك ان تقوم بكتابة ذلك البرنامج

الخوارزمية :

اولا : تتعرف على كمية الخصم المرادة و هى 20 بالمئة من سعر القطعة الرئيسية

ثانيا : تقوم بعمل طرح للخصم من السعر الحقيقة

مثال البرنامج:

//هذا البرنامج يقوم بحسابة سعر القطعة

//سعر تلك القطعة هو 59.95$ و سوف نقوم بخصم 20 بالمئة من سعرها

//ثم نقوم بعمل الطرح

#include <iostream>
using namespace std;

int main()
{
	//المتغير الذى سوف يُوجد به السعر الاساسى
	//الخصم ثم سعر البيع
	double regularPrice = 59.95, discount,salePrice;

	//حسابة الخصم
	discount = regularPrice * 0.2;

	//حسابة سعر البيع بطرح الخصم من السعر الرئيسى
	salePrice = regularPrice - discount;

	//عرض النتائج
	cout << "Regular price : $" << regularPrice << endl;
	cout << "Discount amount : $" << discount << endl;
	cout << "Sale price : $" << salePrice << endl;
	system("pause");
	return 0;
}

اقتباس

المخرجات :

Regular price : $59.95

Discount amount : $11.99

Sale price : $47.96

الشرح :

فى السطر التالى :

	double regularPrice = 59.95, discount,salePrice;

قمنا بعمل 3 متغيرات regularPrice لكى يحمل السعر الرئيسى للقطعة و قمنا بوضع داخلها الرقم 59.95 . ثم المتغير discount الذى سيتم وضع به نسبة الخصم عندما يقوم بعمل العملية الحسابية المطلوبة منه عند بدء البرنامج. ثم المتغير salePrice الذى سوف يحمل السعر النهائى للقطعة.

فى السطر التالى :

discount = regularPrice * 0.2;

لحسابة نسبة الخصم و هى 20 بالمئة بطريقة ضرب السعر الحقيقى ب 0.2 اى 20 بالمئة فى لغة البرمجة وتم تخزين الناتج فى المتغير discount .

فى السطر التالى

	salePrice = regularPrice - discount;

يتم وضع بداخله السعر النهائى للعميل كما رئينا.

الاسطر التالية:

	cout << "Regular price : $" << regularPrice << endl;
	cout << "Discount amount : $" << discount << endl;
	cout << "Sale price : $" << salePrice << endl;

يقومون بعرض النتائج لنا.

الى هنا نكون قد انتتهينا من شرح الامثلة و فى المشاركات القادمة سوف يكون هناك الاسئلة

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

اجزاء برنامج السى++

1 : البرنامج التالى لن يعمل لأننا قمنا بعمل تبديل فى الاسطر ,قم بترتيبها ثم تجربة البرنامج

Int main()
}
//برنامج تم عمل به ميكس(تبديل) فى الاسطر
return 0;
#include <iostream>
cout << "In 1492 Columbus sailed the ocean blue>";
{
system("pause");
using namespace std;

الموجه

Include

2- البرنامج التالى لن يعمل ايضا لأننا قمنا بخلط الكود

cout << "Sucess\n";
cout << "Success\n\n";
int main()
cout << "Succes";
}
using namespace std;
//برنامج مُتعب
#include <iostream>
cout << "Success\n";
{
return 0;
system("pause");

المخرجات هتكون كالتالى:

اقتباس

Success

Success Success

Success

3-رتب الاسطر و شغل البرنامج و يجب ان يكون المخرجات كما شاهدنا.

ادرس الكود التالى و فكر منغير متشغل البرنامج المخرجات هتبقى ايه

// The Works of Wolfgang
#include <iostream>
using namespace std;
int main()
{
cout << "The works of Wolfgang\ninclude the following";
cout << "\nThe Turkish March" << endl;
cout << "and Symphony No. 40 ";
cout << "in G minor." << endl;
system("pause");
return 0;
}

.

4- اكتب برنامج يقوم بطباعة التالى على الشاشة:

1-عنوانك

-مدينتك

3-الرمز البريدى

4-رقم التليفون

و لا تنس ان تقوم بعمل ملاحظة فى اعلى البرنامد.

الثوابت و المتغيرات

5- اولا اشرح ما سوف يقوم به البرنامج منغير متجربه

ثانيا اكتب كل المتغيرات الى فى البرنامج .

// This program uses variables and constants
#include <iostream>
using namespace std;
int main()
{
int little;
int big;
little = 2;
big = 2000;
cout << "The little number is " << little << endl;
cout << "The big number is " << big << endl;
system("pause");
return 0;
}

6- من دون ان تقوم بتجربة البرنامج , ما الذى سوف يقوم بفعله البرنامج التالى:

#include <iostream>
using namespace std;
int main()
{
int number;
number = 712;
cout << "The value is " << "number" << endl;
system("pause");
return 0;
}

انواع المتغيرات

(int)

7- ايا من تلك الاسماء القادمة لن يُقبل كمتغير , و لماذا

اقتباس

x

99bottles

july97

theSalesFigureForFiscalYear98

r&d

grade_report

8- المتغير الذى له الاسم Sales هو هو برضك sales ؟ لماذا او لماذا لا؟

9-عرفنا من قبل احجام ال (integer types) اذا

1- لو المتغير يحتاج ان يكون بين رقم 32 و 6000 اى نوع سوف نأخذ ؟

2- لو المتغير يحتاج ان يكون بين رقم -40000 و +40000 اى نوع سوف نأخذ؟

3- ايا من الثوابت التالية يأخذ حجم اكبر؟ 20 ام 20L

اخير سؤال سهل جدا علشان عارف ناس هتقول صعب

10 – فى اى كمبيوتر اى نوع يأخذ اكثر فى المساحة الرئيسية ( RAM ) ال Integer ام ال Unsigned Integer

Char Data type

11 – ما هو الكود الرقمى للحروف التالية :

C

F

W

12- ايا من التالى هو ثوابت من نوع Character (Char)

'B'

"B"

13- كما نعرف فأن ال char data type تستخدم 1 بايت من المساحة الرئيسية , كم من المساحة تستخدم الثوابت التالية

'Q'

"Q"

"Sales"

'\n'

14- اكتب برنامج يوجد به 3 متغيرات من نوع Char و سميهم first,middle,last و ادخل اول حرف من اسمك ثم اسم والدك ثم اسم العائلة و اطبعهم على الشاشة

15- ما الخطاء مع البرنامج القادم

#include <iostream>
using namespace std;

int main()
{
	char letter;

	letter = "Z";
	cout << letter << endl;
	system("pause");
	return 0;
}

معرفة حجم انواع البيانات

16 – نعم ام لا: هل يوجد نوع unsigned floating point ؟؟ لو نعم ما هو؟

17- كيف تقوم بعمل الرقم التالى بالعملية العملية E ؟

6.31 * 10^17

18- اكتب برنامج و قم بعمل متغير من نوع Integer و سميه age و متغير من نوع float و سميه weight ادخل وزنك و سنك كثوابت فى المتغيرات , اجعل البرنامج يطبعهم على الشاشة . سوف يكونوا كالأتى

المخرجات:

My age is 26 and my weight is 180 pounts.

اكتب اى سن و اى وزن الكمبيوتر مش هيعرف :D

العلامات الرياضية

19- هل التنصيب التالى صحيح

72 = amount;

20- كيف تقوم بالمتغيرات الاتية فى نفس الجملة

int x = 7;

int y = 16;

int z = 28;

21- ما الخطاء فى البرنامج التالى , كيف نصححه

#include <iostream>
using namespace std;

int main()
{
	number = 62.7;
	double number;
	cout << number << endl;
	system("pause");
	return 0;
}

22-ها المثال التالى هو قسمة لل Integer ام قسمة لل floating point ؟ ما الناتج الذى سيخزن فى المتغير؟

الى الأن انتهينا من اسئلتنا حول كل درس محدد

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

تم تعديل هذه المشاركة بواسطة HGB في 27 أكتوبر 2010 في 17:40

.Everyone has a dream

.I never thought that I would be the one I am on now

...No Pain No Gain

مشرف قسم السى/سى++ و الاسيمبلى سنة 2015 بأذن الله ...

تعديل: مشرف قسم السى/سى++ من 2012.

#2

23- كيف نقوم بوضع هذه المتغيرات من نوع (floating point ) فى سطر واحد

temp , weight, age

24-كيف نقوم بعمل المتغيرات التالية من نوع Int فى سطر واحد فقط

Months,days,years

و نقوم بوضع الناتج 2 فى المتغير Month و الناتج 3 فى المتغير year

25-قم بعمل التعريفات التالية للمتغيرات a,b,c

اقتباس

قم باضافة 2 الى a و قم بتخزين الناتج فى b

قم بضرب b فى 4 و قم بتخزين الناتج فى a

قم بقسمة a على 3.14 و خزن الناتج فى b

اطرح 8 من b ثم خزنه داخل a

قم بتخزين الرقم 27 فى a

قم بوضع ال char 'K' فى c (كما قولنا سابقا الحروف اساسها ارقام)

ضع الكود الرقم لحرف 'B' فى المتغير C

26-الملاحظة التالية هل هى ذات سطر واحد ام ذات الاسطر المتعددة

اقتباس
/* This is it */

27-

الملاحظة التالية هل هى ذات سطر واحد ام ذات الاسطر المتعددة

اقتباس
// This is it

28-قم بالتعديل على الكود الأتى لكى يقوم بطباعة سطريين فارغين بعد كل جملة نصية

#include <iostream>
using namespace std;

int main()
{
	cout << "Two mandolins like creatures in the";
	cout << "dark";
	cout << "Creating the agony of ecstasy.";
	cout << "					-Ahmed Magdy";
	system("pause");
	return 0;
}

اسئلة الاختيارات الأن:

29-كل جملة كاملة تنتهى ب:

اقتباس

1-#

2-;

3-}

4-@

30-ايا من تلك الجمل صحيحة

اقتباس

A. #include (iostream)

B. #include [iostream]

C.#include <iostream>

D.#include {iostream}

31- اى برنامج C++ يجب ان يوجد به

اقتباس

A. جملة cout

B. الدوال main

C. الموجه #include

D. كل ما سبق

32-الموجه يبدء بى

اقتباس

A. #

B. !

C. <

D. *

E. لا شئ من ما مضى

33-البيانات القادمة

72
'A'
"Hello World"
2.8712

ماذا يكونون

اقتباس

A. متغيرات

B. ثوابت

C. نصوص

D. لا شئ من ما مضى

34-مجموعة من الجمل (مثل الجمل التى بداخل الدوال) تكون مغلقة بين

A.	{}
B.	()
C.	<>
D.	ولا شئ من ما مضى

35-ايا من القادم ليس تهيئة صحيحة للمتغيرات

total = 9;
72 = amount;
proft = 129
letter = 'W';

من الممكن ان يكون اكثر من واحد

36-ايا من التالى ليس جملة cout صحيحة

cout << "Hello World";
cout << "Have a nice day"\n;
cout << value;
cout << programming is great fun;

من الممكن ان يكون اكثر من جملة

37-صح او خطاء فقط

اقتباس
1 – المتغير يجب ان يتم تهيئته او تنصيبه قبل ان يتم استخدامه

2
اقتباس
–المتغير من الممكن ان يبداء اسمه برقم
اقتباس
3 – المتغير اسمه من الممكن ان يكون طوله 31 حرف ( صحيح)

4
اقتباس
–ال { فى اول البرنامج يجب ان يتبعه } فى نهاية البرنامج

38-ما الخطاء فى هذا الرنامج ( يوجد الكثير)

*/ What's wrong with this program? /*
#include iostream
using namespace std;
int main();
}
int a, b, c\\ Three integers
a = 3
b = 4
c = a + b
Cout < "The value of c is %d" < C;
System pause;
return 0;
{

الخوارزميات :

39-قم بعمل البرنامج التالى

اقتباس

ضع الناتج 172.5 فى المتغير force

ضع الناتج 27.5 فى المتغير area

اقسم ال area على force و خزن الناتج فى المتغير pressure

اظهر الناتج على الشاشة

فى المشاركة القادمة سوف نأخذ بعد التحديات البرمجية

التحديات البرمجية:

1-مجموع رقمين

اكتب برنامج يخزن متغيرين 62,99 وقم بعمل متغير اخر يقوم بجمعهم و اسمه total

2- التنبوء المبيعى

مبيعات الساحل الشرقى لوحدها فقط حاذت على 62 فى المئة من كل مبيعات الشركة التى تُصدر لها حسب هذه النسبة اكتب برنامج يقوم بالتنبوء بنسبة الربح الصافى للساحل الشرقى من ضمن الشركة اذا كانت الشركة قد كسبت 4.6 مليون دولار اذا فنسبة الساحل الشرقى 62 لهذا العام فكم هى النسبة ؟

3-ضرائب المبيعات

اكتب برنامج يقوم بمعرفة ضريبة المبيعات لقطعة ملابس ثمنها 52 دولار مع العلم ان ضريبة المبيعات هى 4 فى المئة و ان ضريبة الولاية هى 2 بالمئة (قم بجمع الاثنان)

4-سعر الوجبة

اكتب برنامج يقوم بجمع الضرائب و البقشيش :D داخل مطعم

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

قم بعرض سعر الوجبة , الضرائب,البقشيش و السعر النهائى على الشاشة

5 – نسبة الارقام

لكى تأتى بنسبة لعدد من الارقام نقوم بجمع كل الارقام ثم طرحهم على كمية الارقام

مثال اذا كان لدينا الارقام التالية ( 44,23,42,43,64) كم كميتهم ؟ 5 صحيح نقوم بجمع الارقام جميعا ثم طرحهم على كميتهم التى هى هنا 5

قم بكتابة برنامج يقوم بوضع ال 5 ارقام التالية فى متغيرات مختلفة

28,32,37,24,33 .

البرنامج اولا سيقوم بجمع ال 5 متغيرات و وضع الناتج داهل متغير اسمه sum ثم قسمة ال sum على كمية الارقام التى هى 5 هنا ثم نضع الناتج داخل المتغير average ثم نظهر ال average على الشاشة

ملاحظة : استخدم هنا النوع double فى هذا البرنامج.

6- الراتب السنوى

لنقول ان الموظف يقبض كل اسبوعين 1700.0 دولار اذا فى السنة ستكون 26 مرة يقبض فيهم ,

اكتب برنامج يقوم بعمل المتغيرات التالية

payAmount : هذا المتغير سوف يحمل المرتب الثابت كل اسبوعين و هو 1700.0

PayPeriod : هذا المتغير سوف يحمل الرقم الخاص بكم مرة يقبض الموظف و هى 26 مرة فى السنة

Total : هذا المتغير سوف يحمل العملية الحسابية الخاصة بما سبق

الطريقة هى ضرب المرتب فى كم مرة يتم اخذ فيها المرتب

ثم اظهارها على الشاشة

7-نسبة المحيط

حسنا نسبة المحيط سنويا ترتفع بقدر 1.5 mm كل سنة اكتب برنامج يقوم بالتالى :

الرقم الخاص بكمية ال mm التى سترتفع بعد 5 اعوام

الرقم الخاص بكمية ال mm التى سترتفع بعد 7 اعوام

الرقم الخاص بكمية ال mm التى سترتفع بعد 10 اعوام

8-المشترايات النهائية

شخص دخل محل و اشترى 5 اشياء , هذه اسعارهم

القطعة الاولى = 12.95

القطعة الثانية = 24.95

القطعة الثالثة = 6.95

القطعة الرابعة = 14.95

القطعة الخامسة = 3.95

اكتب برنامج و قم بعمل 5 متغيرات داخل كل منهم اسعار القطع هذه اعرض على الشاشة ثمن كل قطعة و الثمن النهائى (بعد الجمع) و الضرائب ( الضرائب 6 فى المئة)

9 – معرفة مساحة ال Data

اكتب برنامج يعرفك على مساحة كل انواع المتغيرات بأنواعها Integer,floating points,char

10 – عدد الكيلوهات فى الغالون

سيارة تحمل 12 غالون(الى بيتحط فيها البنزين) من البنزين و تقدر على السفر 350 كيلو قبل ان تقوم بالتفويل مجددا اكتب برنامج يقوم بمعرفة كم كيلو فى الجالون الواحد و اعرض الناتج على الشاشة

ملاحظة : استخدم الطريقة التالية miles per gallon (MPG)

MPG = Miles / Gallons

اى قسمة العدد النهائى للكيلوميترات على الغالونات المتاحة

11-المسافة كل تانج غاز

سيارة مع 20 جالون من الغاز تقدر على السير 21.5 كيلو كل جالون غاز فى المدينة و 26.8 كل جالون غاز فى الطرق السريعة.

اكتب برنامج يحسب لك كم سوف تقدر السيارة على السير بأستخدام ال 20 جالون فى المدينة و ايضا كم ستقدر السيارة على السير باستخدام 20 جالون فى الطرق السريعة

12- دوائر كهربائية

شركة تبيع الدوائر الكهربائة بمكسب 40 فى المئة من سعرها

اكتب برنامج يحسب لك كم هو سعر الدوائر الكهربائية من دون الربح (40 فى المئة*

سعر الدائرة الكهربائة هو 12.67

13- معلومات شخصية

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

A. اسمك

B. عنوانك,بلدك,مدينتك و رمزك البرديى

C. رقم التليفون

D. كليتك

مع الوضع فى الاعتبار استخدم جملة cout واحدة

14- شكل المثلث

قم بكتابة برنامج يعطى الشكل التالى

اقتباس
*

***

****

******

15- مثلث ثنائى

قم بكتابة برنامج يعطى الشكل التالى

اقتباس
*

***

****

******

****

***

*

16-اسهم البرصة

شخص ما قام بشراء 600 سهم فى البورصة بسعر 21.77 دولار للسهم الواحد. لكى تربح يجب عليها البيع بمكسب 2 بالمئة, اكتب برنامج يقوم بالتالى:

A. المبلغ الاجمالى للشراء (من دون الربح ) اى عدد الاسهم فى السعر

B. المبلغ الذى سيتم ربحه (اعرف النسبة ثم قم بضربها فى 600)

C. المبلغ الكامل فى البيع ( الربح الاجمالى + السعر الاجمالى)

17- استهلاك مشروب الطاقة

شركات العصائر الخفيفة علمت من منذ مدة قصيرة انها لديها 12,467 عميل 14 فى المئة منهم يقومون بشراء اكثر من مشروب طاقة واحد فى الاسبوع و من ال 14 فى المئة تلك 64 فى المئة يفضلون نوع واحد من العصائر

قم بكتابة برنامج يقوم بما يلى:

A. عدد من يقومون بشراء اكثر من مشروب طاقة واحد فى الاسبوع

B. عدد من يقومون بتفضيل نوع واحد من العصير

الى هنا اكون قد انتهيت الحمدلله من الاسئلة و الاختبارات لهذا الفصل

ارجوا منكم الدعاء لى و لأهلى و لكل المسليمن.

.Everyone has a dream

.I never thought that I would be the one I am on now

...No Pain No Gain

مشرف قسم السى/سى++ و الاسيمبلى سنة 2015 بأذن الله ...

تعديل: مشرف قسم السى/سى++ من 2012.

#3

السلام عليكم

بما أنه حان وقت طرح الأسئلة فإليك أسئلتي :)

  • سبق و أن بحثت عن معلومات توضح لي عمل الـ linker و طريقة ربط الملفات مع بعضها البعض و قد أعجبني المقطع التالي مع أنني لم أفهمه بشكل كامل لذلك أريد التوضيح أكثر و خصوصا المقطع الأحمر اللون :
    اقتباس
    ما هي المراحل التي يمر بها الكـود أثناء إنشاءه !؟
    تمر عملية إنشاء أي برنامج مكتوب بلغة C أو C++ بست مراحل هي:
    1–Editing
    2–Preprocessing
    3–Compiling
    4–Linking
    5–Loading
    6–executing


    شرح هذه المراحل:
    في عملية الـ Editing نقوم بكتـابة كود البرنامـج في محـرر نصوص ونقوم بعـمل التعديلات عليه والتصحيح إذا لزم الأمر, ثم نقوم بتخزين ملف الكود على وحـدة تخزين ثانوية مثل الـ Hard disk, عندما نقوم بحفظ الملف يجب أن يكون بأحد الامتدادات التالية : (.cpp) or (.cxx) or (.c), يوجد في نظام التشغيل يونيكس محررات مشهورة لهذا الغرض مثل (vi & emacs)وفي الويندوز يوجد Notepadوفي الدوس يوجد edit programme, كما توجـد أيضا حـزم برمجيات سي++ لأجهزة الكمبيوتر الشخصية مثل :
    Turbo C++,Borland C++,C++ Builder and Microsoft VC++
    ويوجد بداخلهم محرر نصوص تستطيع من خلاله كتابة الكود .
    ملاحظة:
    o الكود الذي كتبناه داخل محرر النصوص يدعى Source code
    o الملف الذي يحتوي على Source code يدعى Source file
    بعد مرحلة التحرير (Editing) نقوم بإصدار أمر Compileفتـأتي مرحـلة الترجمة أو الـ Compiling, ومن المعروف أن الكـومبايلر يقوم بتحويل الكود إلى لغة الآلة ولكن قبل ذلك يتم تنفيذ خطوة الـ Preprocessor أوتوماتيكيا.
    برنامج الـ Preprocessor يكون مدمج مع الـ Compiler في معظم المترجمـات الحديثة, حيث يقوم هذا البرنامج بالبحث عن الجمـل التي تبدأ بـ #, و التي تدعـى Compiler directives, يقوم برنامج الـ Preprocessing بتـوجيه هذه الجمل والتعديل في ملف الـ Source code الأصلي, ثـم يقوم الـ Compiler بأخـذ الملف الناتج من عملية الـ Preprocessing ويقوم بإنتاج ملف آخر يُدعى
    Object file, هذا الملف يحتوي بداخله على الـ object codeأو machine code الذي يفهمه الـ CPU الموجود بالكمبيوتر.
    حتى الآن لا يستطيع الكمبيوتر تنفيذ الـ object code! و ذلك لاحتـوائه عـلى أجزاء لم تحول إلى لغة الآلة بعد, فلغة الآلة تتكون من 0 و 1 فقط.
    في هذا الموقف نقول أن الـ object code يحتوي على Undefined references
    و هي أجزاء في الـ object code لم يتم تعويضها من أي مكان لإتمام البرنامج .. على سبيل المثال ممكن أن يحتوي الـ object code على نداءات لـدوال ولكنه إلى الآن لا يحتوي على الهيئة التي يمكن تنفيذها بواسطة وحدة CPUلتنفيذ تلك الدوال.
    هذه الهيئة التي نحتاجها من الممكن أن تكون متوفرة في مكان خارجي كملف مكتبة (أو ما يعرف بـ Library file) أو متوفرة في object file آخر ولكن البحث عن هذه الأجزاء المفقودة ليس من اختصاص الـ Compilerفيظهر هنا دور الـ Linker .
    يقوم برنامج الـ linker بتعويض الـ undefined references من object files و المكتبات المتضمنة مع اللغة, أي يقوم بالبحث عن الكود المكون من (الصفر و الواحد) والمقابل لـ undefined refernces حتى يتم تعويضه في object fileوهذا الكود يكون موجود في مكتبه من مكتبات اللغة أو في object file آخر.
    وبعد عملية Linking يكون الملف الناتج هو ملف يدعى Executable fileويحتوي على Executable code , الملف الأخير كله عبارة عن (0 و 1) و هو جاهز للتنفيذ ولكي يتم تنفيذ البرنامج يجب أولا تحميله على ذاكرة الكمبيوتر ولذلك هناك جزء مـن Executable code يقوم بتحميل البرنامج إلى الذاكرة ويدعى هذا الجزء بـ loader
    انتهى كلام الأخ.

    أسئلتي حول هذه الفقرة هي :
    ما هي الـ undefined references !؟
    ما هو عمل الـ Linker !؟ هل يقوم بربط ملفات ال obj مع بعضها البعض أم أنه يقوم بربط ملفات الـ obj مع ملفات الـ .h !؟
    هل الـ Loader تابع لـ linker أم كلاهما برنامج مستقل !؟
    ما معنى "تحميل البرنامج على الذاكرة" !؟و مالفائدة منه !؟
  • قبل أيام, قرأت موضوع للأستاذ محمد علاء الدين أجاب فيه عن أسئلة عدة تتعلق بالمصفوفات و عناوين الذاكرة ولكن ما جذبني في هذا الحوار هو الفقرة التالية :
    اقتباس
    السؤال الذى قد يتبادر إلى ذهنك الان، ماذا يحدث للمتغيرات التى تم التصريح عنها و لكن لم يتم ادخال لها قيمه و لم يتم استخدامها داخل الداله؟
    هذه المتغيرات يقوم المترجم بإعطائك تحذير عنها و هو unreferenced local variable و فى حالة نسخ الـ debug من البرنامج يتم حجز مساحة لها داخل الـ stack و لكن يترك مكانها كما هو بالقيمه التى يحتوى عليها و تسمى القيمه التى يحتوى عليها فى هذا الوقت هى junk اى قيم غير صحيحه، فى النسخ الـ release من البرنامج حيث الـ optimization مفعله يتم حذف هذه المتغيرات.
    رابط الموضوع الأصلي.
    و هو أنه عندما نعلن عن متغير بدون قيمة ابتدائية فإن النظام يُسند له قيمة "غير عشوائية" فالأمر يتعلق بـ unreferenced local variable و أشياء أخرى لم أفهمها, لذلك أرجو التوضيح أكثر !
    كيف تكون القيمة المُسندة للمتغير غير عشوائية !؟, هل يمكننا التنبؤ بها !؟
  • قلتَ في موضوع "شابتر 2 (مقدمة الى السى++)" في المشاركة رقم 2 تحت عنوان "الكائن cout" ما يلي :
    اقتباس
    استخدم الكائن cout لطباعة البيانات على الشاشة
    قال لي بعض الإخوة أن الكائن cout يقوم بالكتابة داخل standard output stream للبرنامج و ليس الشاشة, كيف ترد !؟ :)

انتهت أسئلتي :)

===========

حتى لا تقول أن أسئلتي خارج نطاق الفصول التي درسناها سابقا ! :sleep:

سؤالي الأول يتعلق بـ linker و قد شرحتَه في أول درس بالدورة تحت عنوان "الـ compiler"

سؤالي الثاني يتعلق بعدم إسناد قيمة ابتدائية إلى متغير و قد تعرضنا إلى إسناد القيم للمتغيرات في الفصل الثاني من الدورة.

سؤالي الثالث يتعلق بطريقة عمل الكائن cout و قد خصصتَ لها درسا كاملا !

===========

بانتظار أجوبتك, أرجو لك التوفيق.

#4
اقتباس
ما هي الـ undefined references !؟

هو استخدامك لداله قبل ان تعرفها، بمعنى داخل الداله main تقوم بإستدعاء الداله compute دون أن تقوم بكتبة الـ prototype ألخاص بها قبل الداله main أو قبل إستدعائك للداله compute.

اقتباس
ما هو عمل الـ Linker !؟ هل يقوم بربط ملفات ال obj مع بعضها البعض أم أنه يقوم بربط ملفات الـ obj مع ملفات الـ .h !؟

ملفات الـ object files تحتوى على الكود التنفيذى و بعض المعلومات الأخرى التى يحتاجها الـ linker ليقوم بدمجهم معا و اخراج لك ملف تنفيذى يستطيع نظام التشغيل فهمه.

اقتباس
هل الـ Loader تابع لـ linker أم كلاهما برنامج مستقل !؟

الـ Loader هو جزء من نظام التشغيل المسئول عن تحميل الملف التنفيذى داخل الذاكره ليتم تنفيذه من قبل المعالج، الـ Linker هو برنامج يستقبل مجموعه من الـ Object Files ذات بنيه معينه يفهمها و يقوم بدمجهم معا ليخرج ملف تنفيذى يستطيع الـ Loader فيما بعد تحميله و تنفيذه. (هذه الإجابه هى أكثر تفصيلا لما سبق أن تم ذكره).

اقتباس
ما معنى "تحميل البرنامج على الذاكرة" !؟و مالفائدة منه !؟

يعنى تحميل الكود التنفيذى من الهارد داخل الـ RAM عن طريق الـ Loader ليتم فيما بعد تنفيذ الكود من المعالج.

اقتباس
كيف تكون القيمة المُسندة للمتغير غير عشوائية !؟, هل يمكننا التنبؤ بها !؟

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

اقتباس
قال لي بعض الإخوة أن الكائن cout يقوم بالكتابة داخل standard output stream للبرنامج و ليس الشاشة

هذا صحيح.

و الله ولي التوفيق

مدونتي: C++ Tips and Tricks

#5

شكرا لك استاذ محمد علاء الدين

لكن لى تعقيب بسيط على ال cout فخالد دائما يرى اننى اشرح بالطريقة الخطاء

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

هذا ما اتبعه و يتبعه مؤلفون كبراء .

داخل الدرس يوجد كل المعلومات الهامة و القواعد الهامة.

انتهى.

.Everyone has a dream

.I never thought that I would be the one I am on now

...No Pain No Gain

مشرف قسم السى/سى++ و الاسيمبلى سنة 2015 بأذن الله ...

تعديل: مشرف قسم السى/سى++ من 2012.

#6
اقتباس
ملفات الـ object files تحتوى على الكود التنفيذى و بعض المعلومات الأخرى التى يحتاجها الـ linker ليقوم بدمجهم معا و اخراج لك ملف تنفيذى يستطيع نظام التشغيل فهمه.

ماذا تقصد بالكود التنفيذي, هل هو الكود المقابل للكود المكتوب و لكن بلغة الأسمبلي !؟

ممكن تعطيني أمثلة على "بعض المعلومات الأخرى" !؟

اقتباس
هذا صحيح.

كيف ذاك !؟ مالفرق بين standard output stream و الشاشة !؟

أليست الشاشة هي قناة الإخراج القياسية في الـ console !؟

============

اقتباس
لكن لى تعقيب بسيط على ال cout فخالد دائما يرى اننى اشرح بالطريقة الخطاء

و الله العظيم .. أعلم أن شرحك مميز و رائع أيضا و قد أخبرتك بأن دورتك تحتوي على معلومات مفيدة وجميلة جدا, أضف إلى ذلك أن الإختلاف في وجهات النظر لا يفسد للود قضية ! :) , أنا أحبك أوي يا أخي الفاضل و أستاذي في الدورة :wub:

#7
اقتباس

ماذا تقصد بالكود التنفيذي, هل هو الكود المقابل للكود المكتوب و لكن بلغة الأسمبلي !؟

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

اقتباس
ممكن تعطيني أمثلة على "بعض المعلومات الأخرى" !؟

داخل ويندوز ملف الـ Object file يحتوى على هيكل يعرف بـ COFF و هو إختصارا لـ Common Object File Format (أبحث داخل wikipedia و موقع ميكروسوفت و مكتبة قسم API و كذلك المواضيع داخله لمزيد من المعلومات بخصوصه).

اقتباس

كيف ذاك !؟ مالفرق بين standard output stream و الشاشة !؟

أليست الشاشة هي قناة الإخراج القياسية في الـ console !؟

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

و الله ولي التوفيق

تم تعديل هذه المشاركة بواسطة محمد علاء الدين في 28 أكتوبر 2010 في 00:02

مدونتي: C++ Tips and Tricks

#9

ماشاءالله عليك ياستاذ ^_^

الله يتمم الفائده ان شاءالله بعد انتهاء الدوره

بانتظار تكمله الدوره .. ^_^

واخي محمد علاء \ دكتور بالسي ^_^ استفدت من اجابتك لـ خالد

#10

جزاك الله خير

#12

غدا بعد الصلاة الشابتر الجديد

تم تعديل هذه المشاركة بواسطة XMasterrrr في 28 أكتوبر 2010 في 22:03

.Everyone has a dream

.I never thought that I would be the one I am on now

...No Pain No Gain

مشرف قسم السى/سى++ و الاسيمبلى سنة 2015 بأذن الله ...

تعديل: مشرف قسم السى/سى++ من 2012.

#13

بانتظار الفصل الثالث ^ _ ^

#14

حدثت امور غير ظريفة من امس مساء فقد انقطعت الكهرباء كثيرا حتى الأن و جارى العمل على شاتبر 3 و اسف للتأخر

تم تعديل هذه المشاركة بواسطة XMasterrrr في 29 أكتوبر 2010 في 20:21

.Everyone has a dream

.I never thought that I would be the one I am on now

...No Pain No Gain

مشرف قسم السى/سى++ و الاسيمبلى سنة 2015 بأذن الله ...

تعديل: مشرف قسم السى/سى++ من 2012.

#15

بانتظار الفصل الثالث بفارغ الصبر :)

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

#16

< يؤيد خـالد بخصوص الاسئله يجب ان تكون صعبه .. ^

ويمكن اتأخر في الاجابه لان الان انا بالامتحانات ^_^

ولكن متابع

#17

5 ساعات على انطلاق الشابتر بأذن الله

.Everyone has a dream

.I never thought that I would be the one I am on now

...No Pain No Gain

مشرف قسم السى/سى++ و الاسيمبلى سنة 2015 بأذن الله ...

تعديل: مشرف قسم السى/سى++ من 2012.

#18

تم اضافة شابتر 3 التفاعلات

.Everyone has a dream

.I never thought that I would be the one I am on now

...No Pain No Gain

مشرف قسم السى/سى++ و الاسيمبلى سنة 2015 بأذن الله ...

تعديل: مشرف قسم السى/سى++ من 2012.

#19

تم التعديل على موضوع الفهرس و اضافة القوانين و كمية الشباتر و اشياء اخرى....................... (فهرس) دورة السى++ من الصفر الى الاحتراف

.Everyone has a dream

.I never thought that I would be the one I am on now

...No Pain No Gain

مشرف قسم السى/سى++ و الاسيمبلى سنة 2015 بأذن الله ...

تعديل: مشرف قسم السى/سى++ من 2012.

#20

تمت اضافة الجزء الثانى و الاخير من الشابتر 3شابتر 3 (ألجزء الثانى)

.Everyone has a dream

.I never thought that I would be the one I am on now

...No Pain No Gain

مشرف قسم السى/سى++ و الاسيمبلى سنة 2015 بأذن الله ...

تعديل: مشرف قسم السى/سى++ من 2012.

#21

تمت اضافة اسئلة شابتر 3 اسئلة: شابتر 3 ( التفاعلات)

تم تعديل هذه المشاركة بواسطة XMasterrrr في 10 نوفمبر 2010 في 05:48

.Everyone has a dream

.I never thought that I would be the one I am on now

...No Pain No Gain

مشرف قسم السى/سى++ و الاسيمبلى سنة 2015 بأذن الله ...

تعديل: مشرف قسم السى/سى++ من 2012.

#22

تم اضافة شابتر 4 :شابتر 4 (اتخاذ القرارات)

.Everyone has a dream

.I never thought that I would be the one I am on now

...No Pain No Gain

مشرف قسم السى/سى++ و الاسيمبلى سنة 2015 بأذن الله ...

تعديل: مشرف قسم السى/سى++ من 2012.

#23

تم اضافة شابتر 4 (الجزء الثانى)

.Everyone has a dream

.I never thought that I would be the one I am on now

...No Pain No Gain

مشرف قسم السى/سى++ و الاسيمبلى سنة 2015 بأذن الله ...

تعديل: مشرف قسم السى/سى++ من 2012.

مواضيع مشابهة