<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>زيروجيت</title>
	<atom:link href="http://0gate.com/idx/feed/" rel="self" type="application/rss+xml" />
	<link>http://0gate.com/idx</link>
	<description>للبرمجة والتطوبر وحلول ومشاكل الكمبيوتر</description>
	<lastBuildDate>Wed, 22 Feb 2012 15:15:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>ما هو محرك الالعاب (Game engine)</title>
		<link>http://0gate.com/idx/2012/02/%d9%85%d8%a7-%d9%87%d9%88-%d9%85%d8%ad%d8%b1%d9%83-%d8%a7%d9%84%d8%a7%d9%84%d8%b9%d8%a7%d8%a8-game-engine/</link>
		<comments>http://0gate.com/idx/2012/02/%d9%85%d8%a7-%d9%87%d9%88-%d9%85%d8%ad%d8%b1%d9%83-%d8%a7%d9%84%d8%a7%d9%84%d8%b9%d8%a7%d8%a8-game-engine/#comments</comments>
		<pubDate>Wed, 22 Feb 2012 15:07:34 +0000</pubDate>
		<dc:creator>مكسرات</dc:creator>
				<category><![CDATA[برمجة الويندوز]]></category>
		<category><![CDATA[Game engine]]></category>
		<category><![CDATA[محرك الالعاب]]></category>

		<guid isPermaLink="false">http://0gate.com/idx/?p=312</guid>
		<description><![CDATA[من منا لم يلعب العاب سواء على الكمبيوتر أو على أجهزة الالعاب الشهيرة , وكثيرا منا يتمنى أن يقوم هو بإنشاء الالعاب وبرمجتها بنفسة , ويوجد منا من يكون جاد فى هذا ويتعلم اللغات التى تساعد على برمجة الالعاب ثم &#8230; <a href="http://0gate.com/idx/2012/02/%d9%85%d8%a7-%d9%87%d9%88-%d9%85%d8%ad%d8%b1%d9%83-%d8%a7%d9%84%d8%a7%d9%84%d8%b9%d8%a7%d8%a8-game-engine/">تكملة المقال <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" style="margin: 0 0 3px 5px;" title="game engine" src="https://lh4.googleusercontent.com/-Xq7eeVXpUe8/T0UDm8n_ZCI/AAAAAAAAAHM/hsOrgY88WJ4/s200/0gate.com_wp_game-engine.jpg" alt="" width="200" height="150" />من منا لم يلعب العاب سواء على الكمبيوتر أو على أجهزة الالعاب الشهيرة , وكثيرا منا يتمنى أن يقوم هو بإنشاء الالعاب وبرمجتها بنفسة , ويوجد منا من يكون جاد فى هذا ويتعلم اللغات التى تساعد على برمجة الالعاب ثم بعد الانتهاء من تعلم اللغة ويبدأ بالدخول إلى برمجة الالعاب نفسها يتفاجئ بشئ لم يتوقعة وهى مدى المجهود الكبير الذى يتطلب لعمل لعبة من الصفر</p>
<p><span id="more-312"></span>, فإنها تحتاج الكثيرمن من الوقت لكتابة الاكواد الكثيرة والذى يتطلب مجهود كبير , ولهذا السبب تم إنشاء بما يعرف محرك الالعاب أو بالانجليزية Game engine , والتى قد سهلت الكثير على المبرمج لكى يقوم ببرمجة وتطوير أى لعبة , والميزة أيضا التى فى محركات الالعاب أنها منفصلة أى مثل ما يقولو محمولة , فإذا كنت تريد عمل لعبة ما كل ما عليك فعلة هو تضمين ملفات محرك الالعاب الذى تختارة إلى ملفات اللعبة وبهذا الشكل تستطيع عمل عدة العاب فى نفس الوقت بدون المساس بملفات محرك الالعاب نفسة , وفى ما يلى شرح لمحرك الالعاب بشكل أوضح  :</p>
<p>محرك الالعاب او <span style="color: #008000;">Game engine</span> هو نظام أو مكتبة تم تصميمها لإنشاء وتطوير الالعاب , وهناك العديد من محركات الالعاب تم تصميمها لكى تنشئ العاب تعمل على أجهزة الالعاب المعروفة مثل <span style="color: #993300;">Playstation</span> , <span style="color: #993300;">Xbox</span> , <span style="color: #993300;">Nintendo</span> ومحركات تنشئ العاب تعمل على اجهزة الكمبيوتر الشخصى أو تنشئ لكلاهما , ومن محركات الالعاب من يكون متضمنا معة بيئة تطوير متكاملة (<span style="color: #800080;">IDE</span>) والتى تساعد على إنشاء وتطوير الالعاب بدون الحاجة إلى أستخدام برامج أخرى لكى نقوم بإنشاء الالعاب من خلالها , ومنها أيضا من يأتى بملفات المصدر فقط ثم تقوم أنت بأختيار بيئة التطوير (<span style="color: #800080;">IDE</span>) التى تستخدمها لإنشاء الالعاب , ومن بيئات التطوير هى <span style="color: #800080;">Visual Studio</span> وغيرها .<br />
ويتكون محرك الالعاب من مجموعة من الدوال والكلاسات التى تم كابتها مسبقا &#8220;الجاهزة&#8221; والتى تساعد على التعامل مع الاتى :</p>
<ul>
<li> الرسوم ثنائية وثلاثية الابعاد (<span style="color: #000080;">graphics</span>) .</li>
<li>الصوتيات (<span style="color: #000080;">sound</span>) .</li>
<li>وسائل الادخال والاخراج (<span style="color: #000080;">input&amp;output</span>) .</li>
<li>الحركة (<span style="color: #000080;">animation</span>) .</li>
<li>الذكاء الاصطناعى (<span style="color: #000080;">artificial intelligence</span>) .</li>
<li>الفيزيكس (<span style="color: #000080;">physics</span>)</li>
<li>إدارة الذاكرة (<span style="color: #000080;">memory management</span>) .</li>
<li>عمل المسارات  (<span style="color: #000080;">threading</span>) .</li>
<li>دعم عدة لغات (<span style="color: #000080;">localization</span>) .</li>
</ul>
<p>وطبعا ليس كل محرك العاب يحتوى على الممميزات السابقة ولكن كل محرك يختلف عن الاخر فى الإمكانيات , ولكن كل ما كان المحرك يتعامل مع أشياء كثيرة فى نفس اللحظة يكون أحسن , حتى يوفر عليك البحث على مكتبات أخرى تحتوى على الميزة التى تريدها .</p>
<p>ويوجد حاليا الكثير والكثير من محركات الالعاب , كل محرك لة مميزاتة وعيوبة , ولكى تختار المحرك المناسب لعمل لعبتك التى تريد إنشائها لابد وأن تقارن من بين هذة المحركات.</p>
<p>ولقد وجدت موقع مميز يعرض أكثر محركات الالعاب المجانية وغير المجانية المتواجدة حاليا ومواصفات كل محرك, ويمكنك من خلال هذا الموقع المقارنة وإيجاد أفضل محرك العاب مناسب لك  .</p>
<p><a href="http://content.gpwiki.org/index.php/Game_Engines" target="_blank">مقارنة بين محركات الالعاب</a></p>
]]></content:encoded>
			<wfw:commentRss>http://0gate.com/idx/2012/02/%d9%85%d8%a7-%d9%87%d9%88-%d9%85%d8%ad%d8%b1%d9%83-%d8%a7%d9%84%d8%a7%d9%84%d8%b9%d8%a7%d8%a8-game-engine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>اضافة حقوق الموقع على اى صورة بأستخدام دالة PHP</title>
		<link>http://0gate.com/idx/2012/02/%d8%a7%d8%b6%d8%a7%d9%81%d8%a9-%d8%ad%d9%82%d9%88%d9%82-%d8%a7%d9%84%d9%85%d9%88%d9%82%d8%b9-%d8%b9%d9%84%d9%89-%d8%a7%d9%89-%d8%b5%d9%88%d8%b1%d8%a9-%d8%a8%d8%a3%d8%b3%d8%aa%d8%ae%d8%af%d8%a7%d9%85/</link>
		<comments>http://0gate.com/idx/2012/02/%d8%a7%d8%b6%d8%a7%d9%81%d8%a9-%d8%ad%d9%82%d9%88%d9%82-%d8%a7%d9%84%d9%85%d9%88%d9%82%d8%b9-%d8%b9%d9%84%d9%89-%d8%a7%d9%89-%d8%b5%d9%88%d8%b1%d8%a9-%d8%a8%d8%a3%d8%b3%d8%aa%d8%ae%d8%af%d8%a7%d9%85/#comments</comments>
		<pubDate>Thu, 16 Feb 2012 01:27:38 +0000</pubDate>
		<dc:creator>مكسرات</dc:creator>
				<category><![CDATA[برمجة الويب]]></category>
		<category><![CDATA[rights]]></category>
		<category><![CDATA[حقوق الصور]]></category>
		<category><![CDATA[حقوق الموقع]]></category>

		<guid isPermaLink="false">http://0gate.com/idx/?p=294</guid>
		<description><![CDATA[كثرت سرقة محتوى المواقع هذة الايام من منا لا يبذل مجهور فى موضوع أو شرح ما فى موقعة ثم يفاجأ أن الموضوع الذى كتبة وبذل مجهود فى كتابتة قد أخذة شخص أخر ووضعة فى موقعة ولا يظهر أى علامة توضح &#8230; <a href="http://0gate.com/idx/2012/02/%d8%a7%d8%b6%d8%a7%d9%81%d8%a9-%d8%ad%d9%82%d9%88%d9%82-%d8%a7%d9%84%d9%85%d9%88%d9%82%d8%b9-%d8%b9%d9%84%d9%89-%d8%a7%d9%89-%d8%b5%d9%88%d8%b1%d8%a9-%d8%a8%d8%a3%d8%b3%d8%aa%d8%ae%d8%af%d8%a7%d9%85/">تكملة المقال <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" style="margin: 0pt 0pt 5px 3px;" title="pictures rights" src="https://lh6.googleusercontent.com/-c8Unha5dU9k/TzxZEBt1pMI/AAAAAAAAAHA/sRghSPhy7DU/s200/0gate.com_wp_pic-rights.jpg" alt="" width="200" height="154" />كثرت سرقة محتوى المواقع هذة الايام من منا لا يبذل مجهور فى موضوع أو شرح ما فى موقعة ثم يفاجأ أن الموضوع الذى كتبة وبذل مجهود فى كتابتة قد أخذة شخص أخر ووضعة فى موقعة ولا يظهر أى علامة توضح أن هذا المحتوى أو الصور التى فى المحتوى من موقع أخر , ولهذا لغة PHP سهلت علينا حفظ الحقوق على أى صورة وذلك ليتضح صاحب هذة المحتوى من خلال</p>
<p><span id="more-294"></span></p>
<p>حقوق الموقع على الصور , وفى هذا الموضوع سوف ننشئ دالة PHP تقوم بإضافة صورة صغيرة توضح علامة موقعك أو أسم موقعك على أى صورة تريد وسوف نشرح هذة الدالة بشكل مفصل , وسوف تقوم هذة الدالة بإضافة حقوق موقعك بشكل برمجى أى بدون أى تعب أو مجهود , لان <span style="color: #008000;">PHP</span> سوف تقوم بعمل ذلك بدلا منك .</p>
<p>وسنبدأ الان بشرح هذة الدالة التى ستسهل علينا كثير من المجهود , لكن أولا سنبدأ بتحليل الدالة أو سوف نكتب ماذا ستفعل الدالة ثم بعد ذلك سوف نترجم هذا الكلام الذى سنكتبة على هيئة كود .</p>
<p><strong><span style="color: #0000ff;">خطوات عمل الدالة (تحليل الدالة) :</span></strong></p>
<ol>
<li>نختار أسم للدالة وكمثال سوف نختار أسم  <span style="color: #800080;">Rights</span> (الحقوق) , وسوف تتكون هذة الدالة من 5 معاملات (<span style="color: #800080;">parameters</span>) , الاول سيكون هو مسار الصورة الرئيسة التى سنضيف عليها الحقوق , الثانى سيكون صورة الحقوق نفسها كأسم الموقع أو رمز الموقع , الثالث سيكون مكان إضافة الحقوق على الصورة وهى ستكون كلمات ثابتة وهذا المعامل سيكون غير إجبارى , الرابع سيكون مكان الصورة الحقوق بالمحور أكس وهو ليس إجبارى , الخامس سيكون مكان الصورة الحقوق بالمحور واى وهو ليس إجبارى أيضا .</li>
<li>ثم سنقوم بعمل متغير لتخزين بيانات عن الصورة الرئيسية , ثم متغير أخر لتخزين معلومات عن صورة الحقوق .</li>
<li>بعد ذلك سوف نختبر متغير مكان صورة الحقوق والذى سيكون كلمات ثابتة مثل ( <span style="color: #800080;">top_right</span> , <span style="color: #800080;">center</span> , <span style="color: #800080;">bottom_left</span> ) وهكذا , وسيكون الاختبار هو إذا كان الكلمة المكتوبة كذا أجعل صورة الحقوق تكون فى المكان الفلانى وهكذا وسوف تتضح الروية أكثر عند تنفيذ الدالة .</li>
<li>ثم تختبر أيضا الصورة الرئيسية لمعرفة ما نوعها هل <span style="color: #800080;">jpg</span> , <span style="color: #800080;">gif</span> , <span style="color: #800080;">png</span> لكى نقوم بعمل نسخة منها حتى نستطيع تطبيق ما نريد على هذة النسخة .</li>
<li>ثم نقوم بتنفيذ نفس الخطوة السابقة ولكن هذة المرة على صورة الحقوق .</li>
<li>ثم نقوم بنسخ صورة الحقوق لكى نضيفها على الصورة الرئيسية .</li>
<li>ثم بعد ذلك نقو بإخراج الناتج النهائى للصورة وسوف يكون الصورة الرئيسية وعليها صورة الحقوق .</li>
<li>ثم بعد ذلك نقوم بتحرير الذاكرة من كل ما فعلناة فى الخطوات السابقة .</li>
</ol>
<p>والان وبعد ما أنتهينا من تحليل الدالة نبدأ الان بعملها , وسوف نترجم كل ما كتبناة فى الخطوات السابقة إلى كود <span style="color: #008080;">PHP</span> يتم نفيذة</p>
<p><strong><span style="color: #ff0000;">ملحوظة :</span></strong> لكى تفهم الكود الذى سوف نكتبة فى الخطوات القادمة راجع خطوات تحليل الدالة التى ذكرناها فى الخطوات السابقة .</p>
<ul>
<li><strong><span style="color: #0000ff;">كتابة هيكل الدالة :</span></strong></li>
</ul>
<pre class="brush:php">function Rights($file, $watermark, $pos = null, $x = 0, $y = 0){

}</pre>
<ul>
<li><strong><span style="color: #0000ff;">تخزين معلومات الصورة الرئيسية وصورة الحقوق:</span></strong></li>
</ul>
<pre class="brush:php">	$details = getimagesize($file);
	$wDetails = getimagesize($watermark);</pre>
<ul>
<li><strong><span style="color: #0000ff;">إضافة ثوابت لاماكن صورة الحقوق ثم أختبارها :</span></strong></li>
</ul>
<pre class="brush:php">if (!is_null($pos)) {
		switch($pos) {
			case TOP_LEFT :
				$x = 0;
				$y = 0;
				break;
			case TOP_RIGHT :
				$x = $details[0] - $wDetails[0];
				$y = 0;
				break;
			case BOTTOM_LEFT :
				$x = 0;
				$y = $details[1] - $wDetails[1];
				break;
			case BOTTOM_RIGHT :
				$x = $details[0] - $wDetails[0];
				$y = $details[1] - $wDetails[1];
				break;
			case CENTER :
				$x = round(($details[0] - $wDetails[0]) / 2);
				$y = round(($details[1] - $wDetails[1]) / 2);
				break;
      }
}</pre>
<ul>
<li><strong><span style="color: #0000ff;">نختبر نوعية الصورة الرئيسية:</span></strong></li>
</ul>
<pre class="brush:php">	switch($details['mime']) {
		case 'image/jpeg' :
			$im = imagecreatefromjpeg($file);
			break;
		case 'image/gif' :
			$im = imagecreatefromgif($file);
			break;
		case 'image/png' :
			$im = imagecreatefrompng($file);
			break;
	}</pre>
<ul>
<li><strong><span style="color: #0000ff;">نختبر نوع صورة الحقوق:</span></strong></li>
</ul>
<pre class="brush:php">	switch($wDetails['mime']) {
		case 'image/jpeg' :
			$newWater = imagecreatefromjpeg($watermark);
			break;
		case 'image/gif' :
			$newWater = imagecreatefromgif($watermark);
			$colorTransparent = imagecolortransparent($newWater);
			imagefill($newWater, 0, 0, $colorTransparent);
			imagecolortransparent($newWater, $colorTransparent);
			break;
		case 'image/png' :
			$newWater = imagecreatefrompng($watermark);
			imagealphablending($newWater, false);
			imagesavealpha($newWater, true);
			break;
	}</pre>
<ul>
<li><strong><span style="color: #0000ff;">نسخ صورة الحقوق وإضافتها على الصورة الرئيسية :</span></strong></li>
</ul>
<pre class="brush:php">	imagecopyresampled($im, $newWater, $x, $y, 0, 0, $wDetails[0], $wDetails[1], $wDetails[0], $wDetails[1]);</pre>
<ul>
<li><strong><span style="color: #0000ff;">إخراج الناتج النهائى للصورة :</span></strong></li>
</ul>
<pre class="brush:php">	switch($details['mime']) {
		case 'image/jpeg' :
			header('Content-type: image/jpeg');
			imagejpeg($im);
			break;
		case 'image/gif' :
			header('Content-type: image/gif');
			imagegif($im);
			break;
		case 'image/png' :
			header('Content-type: image/png');
			imagepng($im);
			break;
	}</pre>
<ul>
<li><strong><span style="color: #0000ff;">تحرير الذاكرة مما فعلناة , <span style="color: #ff0000;">( والشكل النهائى للدالة )</span> :</span></strong></li>
</ul>
<pre class="brush:php">function Rights($file, $watermark, $pos = null, $x = 0, $y = 0) {
	$details = getimagesize($file);
	$wDetails = getimagesize($watermark);
	if (!is_null($pos)) {
		switch($pos) {
			case TOP_LEFT :
				$x = 0;
				$y = 0;
				break;
			case TOP_RIGHT :
				$x = $details[0] - $wDetails[0];
				$y = 0;
				break;
			case BOTTOM_LEFT :
				$x = 0;
				$y = $details[1] - $wDetails[1];
				break;
			case BOTTOM_RIGHT :
				$x = $details[0] - $wDetails[0];
				$y = $details[1] - $wDetails[1];
				break;
			case CENTER :
				$x = round(($details[0] - $wDetails[0]) / 2);
				$y = round(($details[1] - $wDetails[1]) / 2);
				break;
		}
	}
	switch($details['mime']) {
		case 'image/jpeg' :
			$im = imagecreatefromjpeg($file);
			break;
		case 'image/gif' :
			$im = imagecreatefromgif($file);
			break;
		case 'image/png' :
			$im = imagecreatefrompng($file);
			break;
	}
	switch($wDetails['mime']) {
		case 'image/jpeg' :
			$newWater = imagecreatefromjpeg($watermark);
			break;
		case 'image/gif' :
			$newWater = imagecreatefromgif($watermark);
			$colorTransparent = imagecolortransparent($newWater);
			imagefill($newWater, 0, 0, $colorTransparent);
			imagecolortransparent($newWater, $colorTransparent);
			break;
		case 'image/png' :
			$newWater = imagecreatefrompng($watermark);
			imagealphablending($newWater, false);
			imagesavealpha($newWater, true);
			break;
	}
	imagecopyresampled($im, $newWater, $x, $y, 0, 0, $wDetails[0], $wDetails[1], $wDetails[0], $wDetails[1]);
	// Output the image
	switch($details['mime']) {
		case 'image/jpeg' :
			header('Content-type: image/jpeg');
			imagejpeg($im);
			break;
		case 'image/gif' :
			header('Content-type: image/gif');
			imagegif($im);
			break;
		case 'image/png' :
			header('Content-type: image/png');
			imagepng($im);
			break;
	}

	// Free up memory -  0gate.com
	imagedestroy($im);
}</pre>
<p>&nbsp;</p>
<p><strong><span style="color: #0000ff;">طريقة أستخدام الدالة :</span></strong></p>
<p>يوجد ثلاثة أشكال للدالة لكى يتم أستخدامها .</p>
<p><span style="color: #800000;">الشكل الاول:</span></p>
<pre class="brush:php">Rights('images/Main_img.jpg', 'images/watermark.png');</pre>
<p>قمنا بأستخادم معاملين فقط (<span style="color: #333399;">مسار الصورة الرئيسية</span> <strong>,</strong> <span style="color: #333399;">مسار صورة الحقوق</span>)</p>
<p><span style="color: #800000;">الشكل الثانى:</span></p>
<pre class="brush:php">Rights('images/Main_img', 'images/watermark.png', BOTTOM_RIGHT);</pre>
<p>قمنا بأستخادم ثلاث معاملات فقط (<span style="color: #333399;">مسار الصورة الرئيسية</span> <strong>,</strong> <span style="color: #333399;">مسار صورة الحقوق</span> <strong>,</strong> <span style="color: #333399;">الثابت الذى يدل على مكان صورة الحقوق</span>)</p>
<p><span style="color: #800000;">الشكل الثالث:</span></p>
<pre class="brush:php">Rights('images/Main_img', 'images/watermark.png', NULL, 200, 200);</pre>
<p>هذة المرة سنستخدم جميع المعاملات (<span style="color: #333399;">مسار الصورة الرئيسية</span> <strong>,</strong> <span style="color: #333399;">مسار صورة الحقوق</span> <strong>,</strong> <span style="color: #333399;">أضفنا <span style="color: #800080;">NULL</span> فى المعامل الثالث لكى نختار مكان محدد لصورة الحقوق</span> <strong>,</strong> <span style="color: #333399;">مكان صورة الحقوق فى المحور أكس</span> <strong>,</strong> <span style="color: #333399;">مكان صورة الحقوق فى المحور واى</span>)</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://0gate.com/idx/2012/02/%d8%a7%d8%b6%d8%a7%d9%81%d8%a9-%d8%ad%d9%82%d9%88%d9%82-%d8%a7%d9%84%d9%85%d9%88%d9%82%d8%b9-%d8%b9%d9%84%d9%89-%d8%a7%d9%89-%d8%b5%d9%88%d8%b1%d8%a9-%d8%a8%d8%a3%d8%b3%d8%aa%d8%ae%d8%af%d8%a7%d9%85/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>التوجيهات Directives فى لغة C/C++</title>
		<link>http://0gate.com/idx/2012/02/%d8%a7%d9%84%d8%aa%d9%88%d8%ac%d9%8a%d9%87%d8%a7%d8%aa-directives-%d9%81%d9%89-%d9%84%d8%ba%d8%a9-cc/</link>
		<comments>http://0gate.com/idx/2012/02/%d8%a7%d9%84%d8%aa%d9%88%d8%ac%d9%8a%d9%87%d8%a7%d8%aa-directives-%d9%81%d9%89-%d9%84%d8%ba%d8%a9-cc/#comments</comments>
		<pubDate>Tue, 14 Feb 2012 20:51:25 +0000</pubDate>
		<dc:creator>مكسرات</dc:creator>
				<category><![CDATA[برمجة الويندوز]]></category>
		<category><![CDATA[Directives]]></category>
		<category><![CDATA[التوجيهات]]></category>

		<guid isPermaLink="false">http://0gate.com/idx/?p=287</guid>
		<description><![CDATA[التوجيهات(Directives) , وهى عبارة عن تعليمات خاصة بالمترجم يتم تنفيذها قبل البدأ فى الترجمة , وهى دائما عند كتابتها لابد أن تبدأ بالرمز #  , والتوجيهات تحتوى على عدة أوامر سوف نذكرها تباعا مع فائدة كل منها وطريقة أستخدامها . &#8230; <a href="http://0gate.com/idx/2012/02/%d8%a7%d9%84%d8%aa%d9%88%d8%ac%d9%8a%d9%87%d8%a7%d8%aa-directives-%d9%81%d9%89-%d9%84%d8%ba%d8%a9-cc/">تكملة المقال <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" style="margin: 0pt 0pt 3px 5px;" title="C directives" src="https://lh5.googleusercontent.com/-uh_w1UxXMuw/TzrKZsZwx4I/AAAAAAAAAGs/b5KafTFgLg8/s200/0gate.com_wp_C-directives.jpg" alt="" width="200" height="150" />التوجيهات(Directives) , وهى عبارة عن تعليمات خاصة بالمترجم يتم تنفيذها قبل البدأ فى الترجمة , وهى دائما عند كتابتها لابد أن تبدأ بالرمز #  , والتوجيهات تحتوى على عدة أوامر سوف نذكرها تباعا مع فائدة كل منها وطريقة أستخدامها .</p>
<p><span id="more-287"></span></p>
<ul>
<li dir="ltr"><strong><span style="color: #0000ff;">#define</span></strong></li>
</ul>
<p>وهناك طريقتان لتعريف هذا الامر وهو يسمى المايكرو <span style="color: #008000;">(macro)</span> , والطريقة الاولى لتعريفة وهى تشبة الدالة<span style="color: #008000;">(Function)</span> , والطريقة الثانية لتعريفة تشبة تعريف ثابت وفى ما يلى أمثلة على أستخدامة:</p>
<pre class="brush:cpp">#define funcName(a,b)
#define constName constValue</pre>
<p><span style="color: #800000;">مثال على الطريقة الاولى:</span></p>
<pre class="brush:cpp">#include &lt;stdio.h&gt;
#define PrintText(txt) printf("Your Text is: %s\n",txt);

void main(){
    PrintText("0gate.com!");
}</pre>
<p><span style="color: #800000;">مثال على الطريقة الثانية</span></p>
<pre class="brush:cpp">#include &lt;stdio.h&gt;
#define inp 20

void main(){
	printf("%d\n",inp);
}</pre>
<ul>
<li dir="ltr"><strong><span style="color: #0000ff;">#undef</span></strong></li>
</ul>
<p>يستخدم هذا الامر لإلغاء تعريف مايكرو قمنا بتعريفة مسبقا والمثال التالى يوضح طريقة أستخدامة</p>
<p><span style="color: #800000;">مثال:</span></p>
<pre class="brush:cpp">#include &lt;stdio.h&gt;

#define txt "0gate.com"
#undef txt  // remove txt micro

void main(){
   printf("%d\n",txt); // An error occurs
}</pre>
<ul>
<li dir="ltr"><strong><span style="color: #0000ff;">#include</span></strong></li>
</ul>
<p>يستخدم هذا الامر لتضمين ملفات خارجية أو ملفات مكتبات اللغة مع الملف الحالى الذى نعمل علية لكى نقوم بأستخدام الدوال أو الكلاسات أو غيرها والتى توجد فى الملفات الخارجية , ويتم ذلك من خلال المثال التالى  :</p>
<pre class="brush:cpp">#include &lt;filename&gt;
#include "filename"</pre>
<p>الشكل الاول يستخدم لتضمين ملفات مكتبات اللغة , أما الشكل الثانى فهو يقوم أولا بالبحث عن الملف الذى تريد تضمينة فى ملفات المشروع الذى تعملة حاليا فإن لم يجدة فسوف يبحث عنة داخل ملفات مكتبة اللغة .</p>
<ul>
<li dir="ltr"><strong><span style="color: #0000ff;">__LINE__ , __FILE__ , __DATE__ , __TIME__</span></strong></li>
</ul>
<p>هذة الاسماء ثوابت معرفة مسبقا وكل أمر لة وظيفتة الخاصة كما يلى</p>
<p><span style="color: #0000ff;">__LINE__</span> : ثابت عشرى ويستخدم لطباعة رقم السطر الحالى<br />
<span style="color: #0000ff;">__FILE__</span> : سلسلة حرفية ويستخدم لطباعة أسم الملف على.<br />
<span style="color: #0000ff;">__DATE__</span> : سلسلة حرفية وتستخدم لطباعة التاريخ<br />
<span style="color: #0000ff;">__TIME__</span> : نفس السابق لكن هذة المرة يطبع الوقت .</p>
<ul>
<li dir="ltr"><strong><span style="color: #0000ff;">#if , #else , #elif , #endif</span></strong></li>
</ul>
<p>تستخدم لإنشاء الشروط المعتادة مثلها مثل الطريقة العادية لعمل الشروط</p>
<p><span style="color: #800000;">مثال:</span></p>
<pre class="brush:cpp">#define x 10

#if x == 200
#define x 10
#elif x == 20
#define x 50
#else
#define x 100
#endif</pre>
<ul>
<li dir="ltr"><strong><span style="color: #0000ff;">#ifdef</span></strong></li>
</ul>
<p>تستخدم للتأكد من إذا كان تم تعريف مايكرو محدد أم لا</p>
<p><span style="color: #800000;">مثال:</span></p>
<pre class="brush:cpp">#define x 10
#ifdef x
  // enter what you want
#endif</pre>
<ul>
<li dir="ltr"><strong><span style="color: #0000ff;">#ifndef</span></strong></li>
</ul>
<p>يستخدم لمعرفة إذا كان مايكرون محدد هل لم يتم تعريفة</p>
<p><span style="color: #800000;">مثال:</span></p>
<pre class="brush:cpp">#ifndef x
  // enter what you want
#endif</pre>
<ul>
<li dir="ltr"><strong><span style="color: #0000ff;">#endif</span></strong></li>
</ul>
<p>وهذة لابد أن يتم إضافتها فى نهاية أو بعد كل عملية شرطية لإنهاء الجملة الشرطية</p>
<p><span style="color: #800000;">مثال:</span></p>
<pre class="brush:cpp">#ifdef x
  #define x 50
#endif</pre>
<ul>
<li dir="ltr"><strong><span style="color: #0000ff;">#line</span></strong></li>
</ul>
<p>يستخدم هذا الامر لتحديد سطر للملف الحالى أو سطر للملف غير الحالى , وتستخدم هذة الاشياء فى عملية بناء المترجمات</p>
<p><span style="color: #800000;">مثال:</span></p>
<pre class="brush:cpp">#line LineNumber</pre>
<ul>
<li dir="ltr"><strong><span style="color: #0000ff;">#error</span></strong></li>
</ul>
<p>وهذة تستخدم  لتنبية المبرمج فى مرحلة الترجمة مباشرة , لأخطار يقوم بتجهيزها المبرمج فى حالة الوقوقع فيها</p>
<p><span style="color: #800000;">مثال:</span></p>
<pre class="brush:cpp">#ifndef x
  #error x are not declared
#endif</pre>
<ul>
<li dir="ltr"><strong><span style="color: #0000ff;">#pragma</span></strong></li>
</ul>
<p>تستخدم للتحكم فى المترجم حسب رغبة المبرمج , وهى تختلف من مترجم إلى أخر</p>
<p><span style="color: #800000;">مثال:</span></p>
<pre class="brush:cpp">#pragma comment (lib,"OPENGL32.lib") // 0gate.com</pre>
]]></content:encoded>
			<wfw:commentRss>http://0gate.com/idx/2012/02/%d8%a7%d9%84%d8%aa%d9%88%d8%ac%d9%8a%d9%87%d8%a7%d8%aa-directives-%d9%81%d9%89-%d9%84%d8%ba%d8%a9-cc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>مقدمة فى فيجوال سى++ (Visual C++ MFC)</title>
		<link>http://0gate.com/idx/2012/02/%d9%85%d9%82%d8%af%d9%85%d8%a9-%d9%81%d9%89-visual-c-mfc/</link>
		<comments>http://0gate.com/idx/2012/02/%d9%85%d9%82%d8%af%d9%85%d8%a9-%d9%81%d9%89-visual-c-mfc/#comments</comments>
		<pubDate>Mon, 06 Feb 2012 12:09:07 +0000</pubDate>
		<dc:creator>مكسرات</dc:creator>
				<category><![CDATA[برمجة الويندوز]]></category>
		<category><![CDATA[CFrameWnd]]></category>
		<category><![CDATA[CWinApp]]></category>
		<category><![CDATA[mfc]]></category>
		<category><![CDATA[visual c++]]></category>
		<category><![CDATA[win32]]></category>

		<guid isPermaLink="false">http://0gate.com/idx/?p=268</guid>
		<description><![CDATA[مكتبة MFC هى أختصار إلى The Microsoft Foundation Class وهى مكتبة تتكون من مجموعة من أنواع البيانات (data types) والدوال (functions) والفئات (classes) والثوابت (constants) تستخدم فى إنشاء التطبيقات لتعمل على عائلة نظام التشغيل ويندوز . بداية: لكى تكون قادرا &#8230; <a href="http://0gate.com/idx/2012/02/%d9%85%d9%82%d8%af%d9%85%d8%a9-%d9%81%d9%89-visual-c-mfc/">تكملة المقال <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" style="margin: 0pt 0pt 3px 5px;" title="Introduction to mfc" src="https://lh5.googleusercontent.com/-fCHhSI7E1Bw/Ty_FFk9DR8I/AAAAAAAAAGY/qkqReink3JE/s200/0gate.com_wp_Introduction-to-mfc.jpg" alt="" width="200" height="150" />مكتبة MFC هى أختصار إلى The Microsoft Foundation Class وهى مكتبة تتكون من مجموعة من أنواع البيانات (data types) والدوال (functions) والفئات (classes) والثوابت (constants) تستخدم فى إنشاء التطبيقات لتعمل على عائلة نظام التشغيل ويندوز .</p>
<p><span id="more-268"></span>بداية: لكى تكون قادرا على التعامل مع مكتبة <span style="color: #008000;">MFC</span> ينبغى أن يكون لديك خبرة بلغة C++ و <span style="color: #339966;">Win32</span> أو <span style="color: #339966;">WindowsAPI</span> حتى تكون قادر على التعامل مع هذة المكتبة .<br />
أول شئ يجب عليك القيام بة للبدأ فى إنشاء تطبيقات تعمل على <span style="color: #008080;">32 بت</span> <span style="color: #008080;">(Win32)</span> , ولكى يتم إنشاء تطبيق لابد من إنشاء الدالة الرئيسية <span style="color: #000080;">WinMain()</span> وهى الدالة الرئيسية فى أى برنامج والتى ستحتوى البرنامج كلة , وأستخدام (structure) الهيكل <span style="color: #000080;">WNDCLASS</span> أو <span style="color: #000080;">WNDCLASSEX</span> وهى أيضا التى سيتم بداخلها تعريف خصائص النافذة .<br />
فى مكتبة <span style="color: #008000;">MFC</span> تم تعريف الدالة الرئيسية والهياكل السابقة فى فئة (class) يسمى <span style="color: #000080;">CWinApp</span> (Class-For-A-Windows-Application) .<br />
وتم إنشاء هذه الفئة (class) لإنشاء أى تطبيق, عند إنشاء فئة خاصة بتطبيقك لابد من أن ترث الفئة الخاصة بك الفئة <span style="color: #000080;">CWinApp</span> لكى يتم أستخدام محتويات هذة الفئة فى برنامجنا .<br />
بعد إنشاء تطبيق جديد فإنة يكون فارغ أى لا يقوم بتنفيذ أو عرض أى شئ ولكن أنت تقوم بتعريف نظام التشغيل بأننا سوف نقوم بإنشاء تطبيق لكى يتم تشغيلة على هذا الكمبيوتر, لكن إذا كنت تريد عرض شئ ما , تحتوى الفئة <span style="color: #000080;">CWinApp</span> على دالة تسمى <span style="color: #000080;">InitApplication()</span> والتى يجب عليك أستخدامها فى الفئة (class) الخاصة بتطبيقك .<br />
الدالة <span style="color: #000080;">InitApplication()</span> هى دالة منطقية (Boolean) أى تسترجع إما <span style="color: #993300;">true</span> أو <span style="color: #993300;">false</span> , فإذا نجحت هذة الدالة فى إنشاء أول جزء من البرنامج تسترجع <span style="color: #993300;">true</span> وإذا حدث خطأ تسترجع <span style="color: #993300;">false</span> .<br />
الحد الادنى لهيكل البرنامج أو أقل كود لاى برنامج جديد لابد أن يكون بهذا الشكل :</p>
<pre class="brush:cpp">class CExerciseApp : public CWinApp{
public:
    virtual BOOL InitInstance();
};
BOOL CExerciseApp::InitInstance(){
    return TRUE; // 0gate.com
}</pre>
<p>بعد إنشاء التطبيق, لكى تجعلة متاح لباقى أجزاء البرنامج , يجب عليك الإعلان عن متغير عام للفئة (class) الخاصة بك وهو من المعتاد أن يسمى <span style="color: #000080;">theApp</span> لكنك يمكنك تسميتة بأى أسم أخر كما يحلو لك فهذا ليس إجبارى , وشكل كود التطبيق بعد تعريف المتغير العام يكون بالشكل التالى:</p>
<pre class="brush:cpp">#include &lt;AFXWIN.H&gt;

class CExerciseApp : public CWinApp{
public:
    virtual BOOL InitInstance();
};

BOOL CExerciseApp::InitInstance(){
    return TRUE;
}

CExerciseApp theApp; // 0gate.com</pre>
<p><strong><span style="color: #0000ff;">مقدمة للإطارات (Frames):</span></strong><br />
الإطارات معناها مثل أسمها , والمقصود بها النافذة (window) , ومكوناتها وخصائصها وتتضمن الحدود(borders), الموقع(location), والابعاد(dimensions) الخاصة بالنافذة .</p>
<p><span style="color: #993366;">يوجد نوعان من تطبيقات الـ MFC :</span></p>
<ul>
<li>التطبيقات التى تستخدم الإطار(Frames) .</li>
<li>التطبيقات التى لا تستخدم الإطار .</li>
</ul>
<p>التطبيقات المبنية على الإطارات: تستخدم مفهوم يسمى بمعمارية الوثيقة والعرض (Document/View) وفكرتها هى يمكن الاستفاده منها لوضع أجزاء من التطبيق بداخله أو لوضع عناصر اخرى بداخلها .<br />
ولإنشاء إطار , قامت مكتبة <span style="color: #008000;">MFC</span> بتزويدنا بفئات متنوعة, من بينهم فئة(class) تسمى <span style="color: #000080;">CFrameWnd</span> وهى الاكثر استخداما .<br />
ولإنشاء إطار جديد يمكنك أن تجعل الفئة الخاصة بتطبيقك أن ترث من الفئة <span style="color: #000080;">CFrameWnd</span> كما فى الشكل التالى:</p>
<pre class="brush:cpp">class CApplicationFrame : public CFrameWnd{
  // 0gate.com
};</pre>
<p>ولأنه يمكن أن يكون هناك العديد من الأطر أو أنواع مختلفة من الإطارات في التطبيق, ولكى لا يحدث أى مشاكل فى الاسماء عادة الإطار الاول أو الرئيسى يسمى <span style="color: #000080;">CMainFrame</span> , ولكن أيضا يمكنك تغيير الاسم كما يحلو لك فهذا ليس إجبارى .</p>
<pre class="brush:cpp">class CMainFrame : public CFrameWnd{
  // 0gate.com
};</pre>
<p>بعد ذلك يجب عليك أن تقوم بإنشاء إطار نافذة (window frame) والذى سوف يتم عرضة على مستخدم التطبيق.<br />
ولكى يتم إنشاء إطار نافذة , قامت الفئة <span style="color: #000080;">CFrameWnd</span> بتزويدنا بدالة تسمى <span style="color: #000080;">Create()</span> , وبناء هذة الدالة يكون بهذا الشكل :</p>
<pre class="brush:cpp">BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName,DWORD dwStyle = WS_OVERLAPPEDWINDOW, const RECT&amp; rect = rectDefault,CWnd* pParentWnd = NULL, LPCTSTR lpszMenuName = NULL, DWORD dwExStyle = 0,CCreateContext* pContext = NULL );</pre>
<p>كما ترى فى الكود السابق , المعاملين(arguments) المهمين والمطلوبين هما أسم الفئة(ClassName) و أسم النافذة(WindowName) .<br />
والان , ويمكن إنشاء إطار كحد أدنى ببساطة عن طريق إضافة القيمة NULL فى المعامل أسم الفئة(ClassName) وإضافة أى قيمة نصية فى معامل أسم النافذة(WindowName) كما فى المثال التالى:</p>
<pre class="brush:cpp">class CMainFrame : public CFrameWnd{
public:
    CMainFrame();
};

CMainFrame::CMainFrame(){
    Create(NULL, "MFC Fundamentals"); // 0gate.com
}</pre>
<p>من أجل توفير أو إنشاء نافذة أو إطار للتطبيق, لابد إنشاء مسار لتدفق البيانات بة (thread), ويتم ذلك بأستخدام الفئة <span style="color: #000080;">CWinThread</span>.<br />
ولكى تصنع ذلك بشكل سهل , الفئة <span style="color: #000080;">CWinThread</span> مجهزة بـ عضو متغير عام (public member variable) يسمى <span style="color: #000080;">m_pMainWnd</span> هذا المتغير يمكن أستخدامة لإنشاء مسار لتدفق البيانات لة(thread) للنافذة الرئيسية للتطبيق.<br />
ومن مميزاتة أيضا هو أن يجعل التطبيق ينتهى بسلاسة عندما يقرر المستخدم بإغلاقة .<br />
الفئة <span style="color: #000080;">CWinThread</span> هى الفئة الام للفئة <span style="color: #000080;">CWinApp</span> ويتسبب ذلك فى أن العضو <span style="color: #000080;">m_pMainWnd</span> متاح لاى فئة وارثة من الفئة <span style="color: #000080;">CWinThread</span> مثل الفئة <span style="color: #000080;">CFrameWnd</span> .<br />
وبناء على ذلك , لإنشاء مسار لتدفق البيانات (thread) للنافذة الرئيسية لكى يتم عرضها , يمكن إسناد مؤشر(pointer) إطار(frame) الفئة الخاصة بك إلى العضو <span style="color: #000080;">m_pMainWnd</span> .<br />
وبعد هذة المهمة, العضو <span style="color: #000080;">m_pMainWnd</span> يمكن أستخدامة مثل كائن النافذة (window object) لعرض الإطار(frame) , ويتم ذلك عادة من خلال أستخدام الدالة <span style="color: #000080;">ShowWindow()</span> والتى تستخدم لعرض الإطار أو النافذة .</p>
<pre class="brush:cpp">BOOL CExerciseApp::InitInstance(){
    m_pMainWnd = new CMainFrame;
    m_pMainWnd-&gt;ShowWindow(SW_NORMAL);

    return TRUE; // 0gate.com
}</pre>
<p><span style="color: #993366;">خطوات إنشاء تطبيق جديد:</span></p>
<ul>
<li>تشغيل برنامج Microsoft Visual C++ أو Visual Studio .</li>
<li>في القائمة الرئيسية نضغط على إما (File -&gt; New) أو ((File -&gt; New Project .</li>
<li>بعد ظهور مربع الحوار نضغط على نضغط على Projects أو Visual C++ Projects .</li>
<li>ثم أضغط على إما Win32 Application أو Win32 Project .</li>
<li>ثم أكتب أسم للتطبيق في مربع الاسم, كمثال MFCFundamentals ثم أضغط موافق .</li>
<li>قم بالتاشير على Empty Project لكى يتم إنشاء تطبيق فارغ ثم إضغط إنهاء Finish .</li>
<li>ولكى تستخدم مكتبة MFC في إصدار الفجوال ستوديو 6 أختر Project -&gt; Settings وفى الفيجوال ستوديو 7 , من نافذة Solutions Explorer نضغط بزر الماوس الايمن على أسم المشروع ثم نختار خصائص (Properties) .</li>
<li>فى مربع السرد Microsoft Foundation Classes أو Use of MFC أختر Use MFC In A Shared DLL ثم أضغط موافق .</li>
<li>لإضافة ملف لإنشاء تطبيق, في القائمة الرئيسية لفجوال ستوديو 6 click File -&gt; New أو لفجوال ستوديو 7 Project -&gt; Add New Item .</li>
<li>إضغط على C++ (Source) File وفى مربع الاسم أكتب أسم للملف كمثال Exercise ثم أضغط على موافق أو فتح .</li>
<li>وبعد فتح الملف نجد أنة فارغ , ثم نقوم بكتابة الكود التالى:</li>
</ul>
<pre class="brush:cpp">#include &lt;AFXWIN.H&gt;

class CExerciseApp : public CWinApp{
public:
  virtual BOOL InitInstance();
};

class CMainFrame : public CFrameWnd{
public:
  CMainFrame();
};

CMainFrame::CMainFrame(){
  Create(NULL, "MFC Fundamentals");
}

BOOL CExerciseApp::InitInstance(){
  m_pMainWnd = new CMainFrame;
  m_pMainWnd-&gt;ShowWindow(SW_NORMAL);

  return TRUE;
}

CExerciseApp theApp; // 0gate.com</pre>
<ul>
<li>بعد ذلك قم بتنفيذ البرنامج .</li>
<li>أغلق البرنامج ثم أرجع إلى نافذة الفيجوال ستوديو .</li>
</ul>
<p>&nbsp;</p>
<p>وهى أيضا التى سيتم بداخلها تعريف خصائص النافذة</p>
]]></content:encoded>
			<wfw:commentRss>http://0gate.com/idx/2012/02/%d9%85%d9%82%d8%af%d9%85%d8%a9-%d9%81%d9%89-visual-c-mfc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>تمارين برمجية C++ (اختبر قدرتك)</title>
		<link>http://0gate.com/idx/2012/02/%d8%aa%d9%85%d8%a7%d8%b1%d9%8a%d9%86-%d8%a8%d8%b1%d9%85%d8%ac%d9%8a%d8%a9-cpp-%d8%a7%d8%ae%d8%aa%d8%a8%d8%b1-%d9%82%d8%af%d8%b1%d8%aa%d9%83/</link>
		<comments>http://0gate.com/idx/2012/02/%d8%aa%d9%85%d8%a7%d8%b1%d9%8a%d9%86-%d8%a8%d8%b1%d9%85%d8%ac%d9%8a%d8%a9-cpp-%d8%a7%d8%ae%d8%aa%d8%a8%d8%b1-%d9%82%d8%af%d8%b1%d8%aa%d9%83/#comments</comments>
		<pubDate>Thu, 02 Feb 2012 14:27:07 +0000</pubDate>
		<dc:creator>مكسرات</dc:creator>
				<category><![CDATA[برمجة الويندوز]]></category>
		<category><![CDATA[cpp]]></category>
		<category><![CDATA[تمارين]]></category>
		<category><![CDATA[سى بلس سلس]]></category>

		<guid isPermaLink="false">http://0gate.com/idx/?p=254</guid>
		<description><![CDATA[سوف نعرض فى هذا الموضوع مجموعة من التمارين والاسئلة الخاصة بلغة البرمجة C++ &#8211; سى بلس بس والتى تساعدك على أختبار قدرتك البرمجية فى تحليل وحل المسائل الخاصة ببرمجة السى بلس بلس والتى هى أيضا تساعدك على زيادة خبرتك فى &#8230; <a href="http://0gate.com/idx/2012/02/%d8%aa%d9%85%d8%a7%d8%b1%d9%8a%d9%86-%d8%a8%d8%b1%d9%85%d8%ac%d9%8a%d8%a9-cpp-%d8%a7%d8%ae%d8%aa%d8%a8%d8%b1-%d9%82%d8%af%d8%b1%d8%aa%d9%83/">تكملة المقال <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" style="margin: 0px 0px 3px 5px;" title="cpp exercise" src="https://lh3.googleusercontent.com/-XOIi3UFFHm8/TyqbgtPGctI/AAAAAAAAAGE/IzAKLAdTPvQ/s200/0gate.com_wp_cpp-exercise.jpg" alt="" width="200" height="150" />سوف نعرض فى هذا الموضوع مجموعة من التمارين والاسئلة الخاصة بلغة البرمجة C++ &#8211; سى بلس بس والتى تساعدك على أختبار قدرتك البرمجية فى تحليل وحل المسائل الخاصة ببرمجة السى بلس بلس والتى هى أيضا تساعدك على زيادة خبرتك فى البرمجة وحل المشاكل والابتكار, وتختلف الاسئلة فى مستواها البرمجى ما بين المبتدئ والمحترف .</p>
<p><span id="more-254"></span></p>
<p><strong><span style="color: #0000ff;">نبدأ الان :-</span></strong></p>
<ul>
<li><span style="color: #008080;">اطبع الاحرف الفردية بين 0 و50 .</span></li>
<li><span style="color: #008080;">كون مصفوفة احادية البعد غير محدودة الحجم انت تحدد عناصرها في كل ادخال(نعلم هذاالسؤال مستحيل مع المصفوفة الاعتيادية ولاكن ممكن مع المؤشرات) وجد مجموع المصفوفة والمعدل .</span></li>
<li><span style="color: #008080;">ايجاد الجذر لرقم معين باستخدام دالة الجذر التربيعي .</span></li>
<li><span style="color: #008080;">قم بإنشاء برنامج لعكس مصفوفة ثنائية الابعاد من المنتصف .</span></li>
<li><span style="color: #008080;">برنامج يحول    (Decimal to Binary) .</span></li>
<li><span style="color: #993300;">برنامج لتشفير الاحرف وفك الشفرات التى تم تشفيرها .</span></li>
<li><span style="color: #993300;">برنامج تدخل فيه جمل حرفية ويطبع لك الجملة بالاتجاه المعاكس أو بشكل مقلوب .</span></li>
<li><span style="color: #993300;">برنامج لادخال معلومات خمس كتب في سجل أو struct والمعلومات وهي(عنوان الكتاب,اسم المؤلف ,وعنوان الطبع,وسنة الطباعة) .</span></li>
<li><span style="color: #993300;">تخزين مصفوفة رقمية في ملف .</span></li>
<li><span style="color: #993300;">أكتب مؤشر يشير لمحتويات متغير معين وطبع القيمة التي فيه .</span></li>
<li><span style="color: #333399;">مصفوفتين كل واحدة منهما مكونة من خمس عناصر ادمج هاتين المصفوفتين في مصفوفة ثالثة للعلم ان كل المصفوفات احادية البعد<br />
</span></li>
<li><span style="color: #333399;">قم بكتابة برنامج عند إدخال أى حرف من الحروف يقوم بطباعة قيمة هذا الحرف بالاسكى .</span></li>
<li><span style="color: #333399;">قم بعمل برنامج لجامعة , يقوم البرنامج بتخزين بيانات الطلاب فى الجامعة كرقم الطالب والاسم والعمر والكلية الملتحق بها والصف , أجعل هذا البرنامج يقوم بتحزين معلومات هذة الطلاب فى ملف ثم إستدعاء هذة البيانات حسب أسم أو رقم الطالب. </span></li>
<li><span style="color: #333399;">برنامج لأدخال درجات ثلاث طلاب وأيجاد متوسط الدرجات . </span></li>
<li><span style="color: #333399;">قم بطباعة ايام الاسبوع بحيت اذا ضغطنا (1) يظهر يوم السبت في شاشة التنفيذ والبقية بالتسلسل الى (7) يمثل الجمعة .</span></li>
<li><span style="color: #003300;"> قم بطباعة قيمة متغير تم إسناد  قيمة إليه وقت تعريفه .</span></li>
<li><span style="color: #003300;">قم بعمل برنامج لطباعة أول 5 عناصر فقط من مصفوفة مكونة من 10 عناصر .</span></li>
<li><span style="color: #003300;">قم بإنشاء ملف وأحفظ بداخلة أى جملة ثم قم بطباعة ما بداخل الملف .</span></li>
<li><span style="color: #003300;">قم بإنشاء برنامج دليل تليفونات لتخزين بيانات الاصدقاء كالاسم ورقم التليفون والعنوان فى ملف , ثم إذا أرنا معرفة معلومات أى صديق نقوم بالبحث عن عن طريق رقم التليفون .</span></li>
<li><span style="color: #003300;">قم بعمل مصفوفتين رقميتين ثم قمة بجمع عناصر المصفوفة وأطبع الناتج .</span></li>
</ul>
<p>ن<span style="color: #993366;">تمنى الفائدة للجميع</span> &#8230;.0gate.com&#8230;..</p>
]]></content:encoded>
			<wfw:commentRss>http://0gate.com/idx/2012/02/%d8%aa%d9%85%d8%a7%d8%b1%d9%8a%d9%86-%d8%a8%d8%b1%d9%85%d8%ac%d9%8a%d8%a9-cpp-%d8%a7%d8%ae%d8%aa%d8%a8%d8%b1-%d9%82%d8%af%d8%b1%d8%aa%d9%83/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>خاصية font-face وطريقة استخدام خط خارجى فى CSS</title>
		<link>http://0gate.com/idx/2012/01/%d8%ae%d8%a7%d8%b5%d9%8a%d8%a9-font-face-%d9%88%d8%b7%d8%b1%d9%8a%d9%82%d8%a9-%d8%a7%d8%b3%d8%aa%d8%ae%d8%af%d8%a7%d9%85-%d8%ae%d8%b7-%d8%ae%d8%a7%d8%b1%d8%ac%d9%89-%d9%81%d9%89-css/</link>
		<comments>http://0gate.com/idx/2012/01/%d8%ae%d8%a7%d8%b5%d9%8a%d8%a9-font-face-%d9%88%d8%b7%d8%b1%d9%8a%d9%82%d8%a9-%d8%a7%d8%b3%d8%aa%d8%ae%d8%af%d8%a7%d9%85-%d8%ae%d8%b7-%d8%ae%d8%a7%d8%b1%d8%ac%d9%89-%d9%81%d9%89-css/#comments</comments>
		<pubDate>Mon, 30 Jan 2012 22:43:13 +0000</pubDate>
		<dc:creator>مكسرات</dc:creator>
				<category><![CDATA[برمجة الويب]]></category>
		<category><![CDATA[font-face]]></category>
		<category><![CDATA[خط خارجى]]></category>
		<category><![CDATA[خط خاص]]></category>

		<guid isPermaLink="false">http://0gate.com/idx/?p=238</guid>
		<description><![CDATA[الكثير منا قد مل من الخطوط الاعتيادية والموجودة فى الويندوز والمستخدمة فى معظم مواقع الانترنت لعرض النصوص والعناوين ومحتويات المواقع النصية لكن فى بعض الاوقات بعض منا يتمنى لو أن يعرض نص أو عنوان أو أى محتوى نصى على موقعة &#8230; <a href="http://0gate.com/idx/2012/01/%d8%ae%d8%a7%d8%b5%d9%8a%d8%a9-font-face-%d9%88%d8%b7%d8%b1%d9%8a%d9%82%d8%a9-%d8%a7%d8%b3%d8%aa%d8%ae%d8%af%d8%a7%d9%85-%d8%ae%d8%b7-%d8%ae%d8%a7%d8%b1%d8%ac%d9%89-%d9%81%d9%89-css/">تكملة المقال <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" style="margin: 0 0 3px 5px;" title="font-face" src="https://lh3.googleusercontent.com/-vWGMb8Z5SbQ/TycamH1ntCI/AAAAAAAAAF0/aFFWWY-xvCs/s200/wp_font-face.jpg" alt="" width="200" height="150" />الكثير منا قد مل من الخطوط الاعتيادية والموجودة فى الويندوز والمستخدمة فى معظم مواقع الانترنت لعرض النصوص والعناوين ومحتويات المواقع النصية لكن فى بعض الاوقات بعض منا يتمنى لو أن يعرض نص أو عنوان أو أى محتوى نصى على موقعة بخط مختلف أو خط خاص بموقعة فقط لا يستخدمة أحد وقد أتت لنا لغة CSS الاصدار 3 بهذة بهذة الخاصية الجميلة والبسيطة التى تسمح لنا بإضافة خط خارجى</p>
<p><span id="more-238"></span></p>
<p>وأستخدامة فى الموقع بحيث تظهر نصوص محددة بهذا الخط وفى ما يلئ شرح لهذة الخاصية وطريقة أستخدامها .</p>
<ul>
<li> <strong><span style="color: #0000ff;">طريقة أستخدام هذة الخاصية ( تنقسم إلى جزئين ) :</span></strong></li>
</ul>
<p><span style="color: #800000;">1 -</span> <span style="color: #800000;">تعريف الخط الجديد أو الخارجى</span></p>
<p>وهذة الجزئية تستخدم لتعرف اللغة بوجود خط خارجى أو جديد سوف تستخدمة ويكون بالشكل التالى:</p>
<pre class="brush:css">@font-face {
  font-family: z_gate; /*  الاسم الذى سوف نستخدمة */
  src: url(0gate_com.eot); /* انترنت اكسبلورر فقط */
  src: url(0gate_com.ttf);/* المسار أو المكان المتواجد فية ملف الخط */
}</pre>
<p><span style="color: #800000;">2 -</span> <span style="color: #800000;">أستخدام الخط الجديد:</span></p>
<p>بعد أن قمنا بتعريف الخط الجديد أو الخارجى يمكننا الان أستخدامة مثل أى خط أخر بأسخدام الخاصية (<span style="color: #993300;">font-family</span>) وهى كالاتى:</p>
<pre class="brush:css">h2{
    font-family: z_gate;    /* قمنا هنا بإضافة الاسم الذى أخترناة للخط الخارجى */
}</pre>
<p>&nbsp;</p>
<ul>
<li><strong><span style="color: #0000ff;">المتصفحات المتوافقة مع هذة الخاصية :</span></strong></li>
</ul>
<p>- <span style="color: #3366ff;">أكسبلورر: الاصدار 9+</span><br />
- <span style="color: #993300;">فايرفوكس: 3.5+</span><br />
- <span style="color: #808080;">سفارى: 5.0+</span><br />
- <span style="color: #ff6600;">أوبرا: 10.0+</span><br />
- <span style="color: #808000;">كروم:  4.0+</span></p>
<p><span style="color: #ff0000;">ملحوظة :</span> يوجد أختلاف بين نوع ملف الخط الذى يدعمة أكبلورر وفايرفوكس وبقية المتصفحات .<br />
<span style="color: #333399;">(فايرفوكس وبقية المتصفحات):</span> تستطيع أستخدام ملفات الخطوط المستخدمة فى ويندوز ذات الامتداد TTF .<br />
<span style="color: #333399;">(أنترنت أكسبلورر):</span> تستطيع أستخدام ملفات الخطوط ذات الامتداد OTF , ولهذا فأنت تحتاج إلى أداة تحويل .</p>
]]></content:encoded>
			<wfw:commentRss>http://0gate.com/idx/2012/01/%d8%ae%d8%a7%d8%b5%d9%8a%d8%a9-font-face-%d9%88%d8%b7%d8%b1%d9%8a%d9%82%d8%a9-%d8%a7%d8%b3%d8%aa%d8%ae%d8%af%d8%a7%d9%85-%d8%ae%d8%b7-%d8%ae%d8%a7%d8%b1%d8%ac%d9%89-%d9%81%d9%89-css/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>أنواع البيانات فى PHP وكيفية التحويل بينهم</title>
		<link>http://0gate.com/idx/2012/01/%d8%a3%d9%86%d9%88%d8%a7%d8%b9-%d8%a7%d9%84%d8%a8%d9%8a%d8%a7%d9%86%d8%a7%d8%aa-%d9%81%d9%89-php-%d9%88%d9%83%d9%8a%d9%81%d9%8a%d8%a9-%d8%a7%d9%84%d8%aa%d8%ad%d9%88%d9%8a%d9%84-%d8%a8%d9%8a%d9%86/</link>
		<comments>http://0gate.com/idx/2012/01/%d8%a3%d9%86%d9%88%d8%a7%d8%b9-%d8%a7%d9%84%d8%a8%d9%8a%d8%a7%d9%86%d8%a7%d8%aa-%d9%81%d9%89-php-%d9%88%d9%83%d9%8a%d9%81%d9%8a%d8%a9-%d8%a7%d9%84%d8%aa%d8%ad%d9%88%d9%8a%d9%84-%d8%a8%d9%8a%d9%86/#comments</comments>
		<pubDate>Thu, 26 Jan 2012 00:30:51 +0000</pubDate>
		<dc:creator>مكسرات</dc:creator>
				<category><![CDATA[برمجة الويب]]></category>
		<category><![CDATA[Casting]]></category>
		<category><![CDATA[intval]]></category>
		<category><![CDATA[settype]]></category>
		<category><![CDATA[التحويل]]></category>

		<guid isPermaLink="false">http://0gate.com/idx/?p=204</guid>
		<description><![CDATA[لغة PHP من اللغات التى لا تحتاج إلى تعريف نوعية البيانات أولا قبل أستخدامها ,ولكن اللغة هى التى تقوم بعمل ذلك بالنيابة عنك , وتقوم بمعرفة نوعية البيانات من خلال القيمة التى تخزن فى المتغير , وطبعا هذة طريقة جيدة &#8230; <a href="http://0gate.com/idx/2012/01/%d8%a3%d9%86%d9%88%d8%a7%d8%b9-%d8%a7%d9%84%d8%a8%d9%8a%d8%a7%d9%86%d8%a7%d8%aa-%d9%81%d9%89-php-%d9%88%d9%83%d9%8a%d9%81%d9%8a%d8%a9-%d8%a7%d9%84%d8%aa%d8%ad%d9%88%d9%8a%d9%84-%d8%a8%d9%8a%d9%86/">تكملة المقال <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" style="margin: 0pt 0pt 3px 5px;" title="php casting" src="https://lh4.googleusercontent.com/-eYUzsGKp4ZM/TyCqJp9lDDI/AAAAAAAAAEw/6jYay3ul_W8/s200/wp_php-casting.jpg" alt="" width="200" height="150" />لغة PHP من اللغات التى لا تحتاج إلى تعريف نوعية البيانات أولا قبل أستخدامها ,ولكن اللغة هى التى تقوم بعمل ذلك بالنيابة عنك , وتقوم بمعرفة نوعية البيانات من خلال القيمة التى تخزن فى المتغير , وطبعا هذة طريقة جيدة جدا لتسهيل تعريف البيانات بدون أى مجهود بدلا من إضافة نوعية البيانات عند تعريف أى متغير كما فى لغات أخرى .</p>
<p><span id="more-204"></span></p>
<p><strong>سوف نستعرض طريقة تعريف المتغيرات فى عدة لغات :</strong></p>
<ul>
<li dir="ltr"><span style="color: #0000ff;">ِC++</span></li>
</ul>
<pre class="brush:cpp">int simple = 20;</pre>
<ul>
<li dir="ltr"><span style="color: #0000ff;">Visual Basic</span></li>
</ul>
<pre class="brush:vb">Dim simple As Integer</pre>
<ul>
<li dir="ltr"><span style="color: #0000ff;">Javascript</span></li>
</ul>
<pre class="brush:js">var simple = 10</pre>
<p><strong>أما لغة PHP فقد سهلت على المبرمج تحديد نوعية المتغير وقامت هى بعمل ذلك وهو كالتالى:</strong></p>
<pre class="brush:php">$simple = 10;
$simple = "0gate.com";
$simple = 30.1;</pre>
<p>كما رأينا سابقا بأن PHP سهلت علينا تحديد نوع المتغير , لكن كيف تحدد هذة اللغة نوعية كل متغير, وذلك عن طريق محتوى المتغير نفسة أى إذا كتبنا القيمة <span style="color: #333399;">(10)</span> فهذا معناة أن المتغير <span style="color: #333399;">عدد صحيح</span>, أما لو كانت القيمة <span style="color: #000080;">(30.1)</span> فهذا معناة أن المتغير نوعة <span style="color: #000080;">عدد عشرى</span> أى يحتوى على العلامة العشرية , أما إذا كانت القيمة <span style="color: #008000;">(&#8220;0gate&#8221;)</span> فهذا معناة أن <span style="color: #008000;">المتغير نصى</span> لانة يحتوى على الفاصلة المنقوطة وهى التى تحدد أن المتغير نصى .</p>
<p><strong>التحويل بين المتغيرات وبعضها:</strong></p>
<p>كما ذكرنا سابقا أن لغة PHP سهلت على المبرمج طريقة الإعلان عن المتغيرات بدون تحديد نوعة أو كما فى بعض اللغات الاخرى , لكن نأتى الان إلى شئ يستخدم كثير فى اللغات الاخرى مثل C++ وغيرها من اللغات وهى كيف يمكن تحويل متغير من نوع إلى نوع أخر , طبعا التحويل لن تحتاجة كثير فى لغة PHP لكنك فى بعض الاوقات تحتاج إلى تحويل قيمة أو متغير من نوع إلى نوع أخر .</p>
<p>وتسمى هذة الطريقة باللغة الانجليزية <span style="color: #800000;">(Casting)</span> وهى تعنى تحويل أنواع المتغيرات .</p>
<p><strong>ويمكننا تحويل البيانات من أى نوع إلى الانواع التالية:</strong></p>
<ul dir="ltr">
<li>(int), (integer)</li>
<li>(bool), (boolean)</li>
<li>(float), (double), (real)</li>
<li>(string)</li>
<li>(array)</li>
<li>(object)</li>
<li>(unset)</li>
</ul>
<p><strong>أما طريقة التحويل فهى تكون كالاتى :</strong></p>
<pre class="brush:php">// المتغيرات قبل التحويل
$simpleInt = 20;
$simpleDouble = 50.7;

// المتغيرات بعد التحويل
$simpleInt = (string)20;
$simpleDouble = (int) 50.7;</pre>
<p>كما رأينا فى المثال السابق طريقة التحويل وذلك من خلال شكل المتغيرات قبل التحويل وبعد التحويل .</p>
<p><strong>ويوجد طرق أخرى أيضا وذلك من خلال أستخدام دوال جاهزة فى PHP من بينها الدوال التالية:</strong></p>
<ul dir="ltr">
<li>settype($val,type)</li>
<li>intval($var)</li>
</ul>
<p><span style="color: #800080;">الدالة الاولى</span> هى للتحويل بين أنواع البيانات وهى لديها معاملين الاول المتغير الذى تريد تحويل , والثانى هو النوع الذى تريد التحويل إلية .</p>
<p><span style="color: #800080;">الدالة الثانية</span> هى خاصة للتحويل إلى قيمة عدد صحيح .</p>
<p>والامثلة التالية تبين طريقة أستخدام هذة الدوال .</p>
<pre class="brush:php">$simpleInt = 20;
$simpleDouble = intval(50.7); convert this value to integer
settype($simpleInt,string); convert $simpleInt to string</pre>
<p>كما ذكرنا سابقا أن تحويل أنواع المتغيرات ليس كثيير الاستخدام فى لغة PHP لكن فى بعض الاوقات قد تحتاجة , وللضرورة أحكام ولهذا السبب ليس بسبب عدم أستخدامة كثير أنك لا تتعلمة بالطبع لا ولكن كل شئ لابد أن نتعلمة سواء يستخدم كثيرا أو قليلا .</p>
]]></content:encoded>
			<wfw:commentRss>http://0gate.com/idx/2012/01/%d8%a3%d9%86%d9%88%d8%a7%d8%b9-%d8%a7%d9%84%d8%a8%d9%8a%d8%a7%d9%86%d8%a7%d8%aa-%d9%81%d9%89-php-%d9%88%d9%83%d9%8a%d9%81%d9%8a%d8%a9-%d8%a7%d9%84%d8%aa%d8%ad%d9%88%d9%8a%d9%84-%d8%a8%d9%8a%d9%86/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>تعلم كيف تنشئ Javascript framework خاص بك (كتاب E)</title>
		<link>http://0gate.com/idx/2012/01/%d8%aa%d8%b9%d9%84%d9%85-%d9%83%d9%8a%d9%81-%d8%aa%d9%86%d8%b4%d8%a6-javascript-framework-%d8%ae%d8%a7%d8%b5-%d8%a8%d9%83-%d9%83%d8%aa%d8%a7%d8%a8-e/</link>
		<comments>http://0gate.com/idx/2012/01/%d8%aa%d8%b9%d9%84%d9%85-%d9%83%d9%8a%d9%81-%d8%aa%d9%86%d8%b4%d8%a6-javascript-framework-%d8%ae%d8%a7%d8%b5-%d8%a8%d9%83-%d9%83%d8%aa%d8%a7%d8%a8-e/#comments</comments>
		<pubDate>Thu, 19 Jan 2012 04:38:58 +0000</pubDate>
		<dc:creator>مكسرات</dc:creator>
				<category><![CDATA[برمجة الويب]]></category>
		<category><![CDATA[Javascript framework]]></category>
		<category><![CDATA[اطار جافا سكربت]]></category>
		<category><![CDATA[كتاب]]></category>

		<guid isPermaLink="false">http://0gate.com/idx/?p=192</guid>
		<description><![CDATA[الجميع يرى ويستخدم إطارات العمل أو frameworks التى تم إنشائها بواسطة اللغة الشهيرة Javascript ومنها إطار العمل Jquery وهو أشهر إطارات العمل , إطار Prototype , إطار MooTools , إطار Dojo , وغيرها من الإطارات الاخرى . لكن هل حلمت أن يكون &#8230; <a href="http://0gate.com/idx/2012/01/%d8%aa%d8%b9%d9%84%d9%85-%d9%83%d9%8a%d9%81-%d8%aa%d9%86%d8%b4%d8%a6-javascript-framework-%d8%ae%d8%a7%d8%b5-%d8%a8%d9%83-%d9%83%d8%aa%d8%a7%d8%a8-e/">تكملة المقال <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" style="margin: 0pt 0pt 3px 5px;" title="js framework" src="https://lh5.googleusercontent.com/-5ijXpwPaqBI/TxjpjtAy_NI/AAAAAAAAAEU/Ro--Eqjbcss/s200/wp_jsframework.jpg" alt="" width="200" height="150" />الجميع يرى ويستخدم إطارات العمل أو frameworks التى تم إنشائها بواسطة اللغة الشهيرة Javascript ومنها إطار العمل Jquery وهو أشهر إطارات العمل , إطار Prototype , إطار MooTools , إطار Dojo , وغيرها من الإطارات الاخرى .<br />
لكن هل حلمت أن يكون لك إطار عمل خاص بك تصنعة أنت ويكون لك أنت فقط , وتكون قادر على تطويرة كما تشاء , فقد</p>
<p><span id="more-192"></span></p>
<p>حان الوقت لكى تتعلم كيف تصنع إطار عمل خاص بك بأستخدام الجافا سكربت , وها نحن قد أتينا لك بكتاب باللغة الانجليزية يشرح لك طرق برمجة إطار عمل خطوة خطوة , وبعد قراءة هذا الكتاب سوف تكون قادرا على عمل الإطار المناسب لك .</p>
<p>يتكلم الكتاب عن المواضيع الاتية:</p>
<ul dir="ltr">
<li><span style="color: #000080;">Introduction </span></li>
<li><span style="color: #000080;">Object Oriented JavaScript </span></li>
<li><span style="color: #000080;">Functional Programming </span></li>
<li><span style="color: #000080;">Selector Engine </span></li>
<li><span style="color: #000080;">Events </span></li>
<li><span style="color: #000080;">Aliasing and Packing </span></li>
<li><span style="color: #000080;">Ajax </span></li>
<li><span style="color: #000080;">Animations </span></li>
<li><span style="color: #000080;">Touch </span></li>
<li><span style="color: #000080;">Chained APIs </span></li>
<li><span style="color: #000080;">Test Framework</span></li>
</ul>
<p>لكن تذكر لابد وأن تكون مستواك البرمجى على الاقل فى لغة جافا سكربت يجب أن يكون متوسط لكى تكون قادر على فهم الشرح والاكواد التى ستعرض فى الكتاب .</p>
<p><strong><span style="color: #ff0000;">[ وصلة التحميل ]</span></strong><br />
<a title="تعلم كيف تنشئ Javascript framework خاص بك" href="http://www.mediafire.com/download.php?d1la0c45w2gj5l0" target="_blank">تحميل الكتاب</a> ..</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://0gate.com/idx/2012/01/%d8%aa%d8%b9%d9%84%d9%85-%d9%83%d9%8a%d9%81-%d8%aa%d9%86%d8%b4%d8%a6-javascript-framework-%d8%ae%d8%a7%d8%b5-%d8%a8%d9%83-%d9%83%d8%aa%d8%a7%d8%a8-e/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ما هو PowerShell هيا نتعرف علية</title>
		<link>http://0gate.com/idx/2012/01/%d9%85%d8%a7-%d9%87%d9%88-powershell-%d9%87%d9%8a%d8%a7-%d9%86%d8%aa%d8%b9%d8%b1%d9%81-%d8%b9%d9%84%d9%8a%d8%a9/</link>
		<comments>http://0gate.com/idx/2012/01/%d9%85%d8%a7-%d9%87%d9%88-powershell-%d9%87%d9%8a%d8%a7-%d9%86%d8%aa%d8%b9%d8%b1%d9%81-%d8%b9%d9%84%d9%8a%d8%a9/#comments</comments>
		<pubDate>Thu, 19 Jan 2012 02:24:58 +0000</pubDate>
		<dc:creator>مكسرات</dc:creator>
				<category><![CDATA[الكمبيوتر]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[باور شيل]]></category>

		<guid isPermaLink="false">http://0gate.com/idx/?p=178</guid>
		<description><![CDATA[PowerShell او PS. ببساطة هو &#8221; شيل &#8221; اعتقد ان جميع رواد لينكس يعلمون ماهو الـ Shell و Bash وغيرها من منصات الشيل. ولكن البور شيل ليس له دخل بلينكس. هو خاص بنظام مايكروسوفت ويندوز. أول إصدارة له كانت سنة 2006. &#8230; <a href="http://0gate.com/idx/2012/01/%d9%85%d8%a7-%d9%87%d9%88-powershell-%d9%87%d9%8a%d8%a7-%d9%86%d8%aa%d8%b9%d8%b1%d9%81-%d8%b9%d9%84%d9%8a%d8%a9/">تكملة المقال <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" style="margin: 0px 0px 3px 5px;" title="powershell" src="https://lh6.googleusercontent.com/-VrfRLVSFvEs/Tye5kT1VgdI/AAAAAAAAAF8/Xqxngu0lALo/s200/wp_powershell.jpg" alt="" width="200" height="150" />PowerShell او PS. ببساطة هو &#8221; شيل &#8221; اعتقد ان جميع رواد لينكس يعلمون ماهو الـ Shell و Bash وغيرها من منصات الشيل. ولكن البور شيل ليس له دخل بلينكس. هو خاص بنظام مايكروسوفت ويندوز. أول إصدارة له كانت سنة 2006. ولكن حقيقة لا اعلم لماذا لا احد يتحدث عنه في عالمنا العربي .</p>
<p><span id="more-178"></span></p>
<p>قبل ما نتكلم عن PowerShell  بشكل أكثر وضوحا سوف نتكلم قليلا عن الـ Scripting ولماذا نستخدمة ومن اللى المفروض يتسخدموا. إذا كنت بتشتغل IT Pro وكلمة IT Pro دي تشمل</p>
<ul dir="ltr">
<li><span style="color: #333399;">System Administrator</span></li>
<li><span style="color: #333399;">System</span></li>
<li><span style="color: #333399;">Engineer</span></li>
<li><span style="color: #333399;">Network Administrator</span></li>
<li><span style="color: #333399;">Help desk</span></li>
</ul>
<p>أكثر الناس شغلهم كله بيبقي Administration لشبكة، هذة الشبكة بيبقي فيها سيرفر، راوتر ، سويتش وكمان بعض المستخدمين اللي بنسمى أجهزتهم Clients. بالنسبة للسيرفر بيبقي في اكتر من سيرفر كل واحد فيهم بيبلعب دور معين ، يعني مثلا تلاقي سيرفر عليه Active Directory – DNS و سيرفر تاني عليه ISA علشان يبقي Firewall و سيرفر تالت عليه Exchange علشان يبقي Mail، في الأول الـ Administration بيبقي سهل وبسيط لكن مع الوقت الدنيا بتكبر و الشبكة حجمها بيزيد سواء على مستوي الـ Servers &amp; Application او على مستوي عدد الـ Users. فيبدأ الـ IT Pro يدور على حاجة تخلي موضوع الـ Administration أسهل وأسرع.  وهنا يجي دور الـ Scripting، عن طريق الـ Scripting يبدأ يكتب مجموعة من الـ Scripts اللي تساعده في تنفيذ حاجات معينه يعني مثلا ممكن يعمل Script يستخدم مع اي كمبيوتر جديد وتكون وظيفة الـScript ده انه يـربط الكمبيوتر ده على الـ Domain.</p>
<p><strong><span style="color: #0000ff;">- لكن الان ما هو الـ Script .. كيف يتم عملة و وكيف يكون شكلة ؟</span></strong></p>
<p>الـ Script ده مجموعة من الأوامر مكتوبة في Script File وهذة الاوامر يتم تنفيذها بشكل متتالى عند تشغيل الـ Script. وطبعا الـ Script نقدر نقول عليه نوع من أنواع الـ Porgramming لأنك لكى تكتب Script محتاج انك تتعلم Scripting Language تكتب بيها الأسكربت ده. في Scripting Languages كتير مثل :</p>
<ul dir="ltr">
<li><span style="color: #333399;">Perl</span></li>
<li><span style="color: #333399;">VBScript</span></li>
<li><span style="color: #333399;">JavaScript</span></li>
</ul>
<p>وطبعاً PowerShell في Scripting Languages تاني بس كفاية دول كمثال.</p>
<p><strong><span style="color: #0000ff;">- والان نحن عرفنا ما هو الـ Scripting ، طيب ما هو PowerShell ؟</span></strong></p>
<p>عند إعلان شركة مايكروسوفت عن النسخة التجريبية من Windows Server 2008 أعلنت أيضا عن حاجة معاه اسمها Windows PowerShell.</p>
<p>Windows PowerShell دي ببساطة عبارة عن Shell Scripting Environment تم صناعتها مخصوص للـ Windows و تم بنائها على net framework. وكان الهدف من انها تبقي مبنيه على Net framework. انها تقدر تندمج مع كل برامج ميكروسوفت خصوصا ان أصبح من الواضح ان Net framework. بقي حاجة اساسية مع الويندوز وكل برامج ميكروسوفت والدليل على كده ان الـ Net framework. أصبحت بينزل بشكل آلى مع الويندوز – فى السابت كنا بتعملها install لما إذا أحتجنا لها – أيضا إذا قمت بعمل Install لاى برنامج من برامج ميكروسوفت هيسألك على Net framework. الأول وإذا لم تكن موجودة تظهر لك رسالة خطأ Error.</p>
<p>نرجع تاني لـ PowerShell. لما تفتح PowerShell Console هتلاقي في شبة كبير في الشكل من CMD.exe أو نافذة الدوس القديمة لكن طبعا الشبه في الشكل بس لكن الفرق كبير جدا في الوظيفة والامكانيات. طبعاً في ناس مستغربة وهي بتقرأ الكلام ده واكيد بيتسألوا هي ليه ميكروسوفت رجعت تاني للـ shell أو واجهة الدوس بعد كل هذا التطور في الـ User  Interface أو واجهة المستخدم , وطبعا التساؤلات زادت عندما أعلنت ميكروسوفت عن Windows Server 2008 | ServerCode installationاللذى أصبح كله shell وفيه شبه كبير من Unix-Linux.<br />
الموضوع ببساطة ان الـ Windows Shell كان ضعيف و محدود الأمكانيات بالمقارنة مع Unix shell ، والسبب انه كان محدود لانة كان لا يدعم :</p>
<ul dir="ltr">
<li><span style="color: #333399;">recursive programming</span></li>
<li><span style="color: #333399;">conditional</span></li>
<li><span style="color: #333399;">pipelining</span></li>
</ul>
<p>أيضا كان لا يوفر للـ Administrator مجموعة كبيرة من احتياجاتة، ومع الوقت حجم ويندوز بدأ يكبر و بدأ يقدم خدمات أكتر فبقي من الصعب ويمكن من المستحيل ان الـ Administrator يظل يستخدم Windows Shell، بدأت ميكروسوفت تركز أكتر على الـ User Interface لكى تعوض النقص في مشكلة الـShell وبدأت تقوم بتطوير الـ interface لحد ما وصلنا للشكل Vista و windows7 مع أن الـ GUI بتعمل كل حاجة تقريباً بس لسه مش مناسبة لإحتياجات الـAdministrator. علشان كده ميكروسوفت رجعت تاني تطور في الـShell علشان الويندوز يبقي بيوفر إحتيجات الـ Administrator زي ما بيوفرها للـ User. ومن هنا ظهر Windows PowerShell.</p>
<p><img src="http://arabianpowershell.files.wordpress.com/2008/12/powershell.jpg" alt="http://arabianpowershell.files.wordpress.com/2008/12/powershell.jpg" /></p>
<p><img src="http://learn.iis.net/Content_Cache/161/Fig1.jpg" alt="http://learn.iis.net/Content_Cache/161/Fig1.jpg" /><br />
<strong></strong></p>
<p><strong><span style="color: #0000ff;">- لماذا PowerShell مختلف ؟</span></strong></p>
<p>PowerShell ده أول Shell يكون Object-Oriented Shell أو الموجهة بالاهداف, يعني بيتعامل مع كل حاجة جوه بيئة الـ Shell كأنها Object على عكس أي Shell تاني بيتعامل مع اي حاجة كأنها text.</p>
<p>وفيما يلى نستعرض بعض الخصائص البسيطة للـ PowerShell :</p>
<ul>
<li><span style="color: #008000;">PowerShell Remoting:</span> هذة خاصية موجوده في PowerShell بس بتخليك انك تقدر تكتب PowerShell commands and Scripts على اي Remote Computer، يعني من وانت قاعد على الكمبيوتر بتاعك في البيت ممكن تفتح PowerShell عندك و تتحكم في السيرفر اللي في المكتب كأنك بتكتب PowerShell عليه.</li>
<li><span style="color: #008000;">Backgroud-Jobs:</span> هذة معناها ان PowerShell بينفذ الـ commands/scripts في الـ backgroud من غير اي Interaction مع الـ Interface .</li>
<li><span style="color: #008000;">Native-Shell environment:</span> يعني مش محتاج برامج زي Editor – Compiler علشان تشغل الـ Script .. في PowerShell كل المطلوب انك تفتح PowerShell console كأنك بتفتح CMD.exe، معني كده انك تقدر تشغل PowerShell على اي Windows من غير قلق من ان البرنامج اللي بيتشغل الScript مش موجود على الكمبيوتر.</li>
<li><span style="color: #008000;">Script-Debugging:</span> خذة تجعلك تقدر تتابع الـ script / command اللي انت كاتبه وكمان تعمله Debugging من غير متستخدم اي Editor-Compiler.</li>
</ul>
<p>طبعا PowerShell فيه مميزات أكتر من كده بس انا حبيت اركز على أهم مميزاته .</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://0gate.com/idx/2012/01/%d9%85%d8%a7-%d9%87%d9%88-powershell-%d9%87%d9%8a%d8%a7-%d9%86%d8%aa%d8%b9%d8%b1%d9%81-%d8%b9%d9%84%d9%8a%d8%a9/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>طريقة عمل دالة لتقطيع النص فى C++</title>
		<link>http://0gate.com/idx/2012/01/%d8%b7%d8%b1%d9%8a%d9%82%d8%a9-%d8%b9%d9%85%d9%84-%d8%af%d8%a7%d9%84%d8%a9-%d9%84%d8%aa%d9%82%d8%b7%d9%8a%d8%b9-%d8%a7%d9%84%d9%86%d8%b5-%d9%81%d9%89-c/</link>
		<comments>http://0gate.com/idx/2012/01/%d8%b7%d8%b1%d9%8a%d9%82%d8%a9-%d8%b9%d9%85%d9%84-%d8%af%d8%a7%d9%84%d8%a9-%d9%84%d8%aa%d9%82%d8%b7%d9%8a%d8%b9-%d8%a7%d9%84%d9%86%d8%b5-%d9%81%d9%89-c/#comments</comments>
		<pubDate>Sun, 08 Jan 2012 14:40:50 +0000</pubDate>
		<dc:creator>مكسرات</dc:creator>
				<category><![CDATA[برمجة الويندوز]]></category>
		<category><![CDATA[تقطيع النص]]></category>
		<category><![CDATA[دالة]]></category>
		<category><![CDATA[سى بلس بلس]]></category>

		<guid isPermaLink="false">http://0gate.com/idx/?p=157</guid>
		<description><![CDATA[فى هذا الموضوع سوف نتكلم عن طريقة عمل دالة لتقطيع أى جملة أو نص إلى كلمات منفردة , وسوف يتم تحديد رمز محدد يتم تقطيع الجملة أو النص من خلالة , وسيتم حفظ الناتج فى مصفوفة بحيث أن كل كلمة &#8230; <a href="http://0gate.com/idx/2012/01/%d8%b7%d8%b1%d9%8a%d9%82%d8%a9-%d8%b9%d9%85%d9%84-%d8%af%d8%a7%d9%84%d8%a9-%d9%84%d8%aa%d9%82%d8%b7%d9%8a%d8%b9-%d8%a7%d9%84%d9%86%d8%b5-%d9%81%d9%89-c/">تكملة المقال <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" style="margin: 0px 0px 3px 5px;" title="split function in c" src="http://ef.engr.utk.edu/ef230-2011-01/modules/matlab-functions/pix/function-overview-alt.png" alt="" width="200" height="150" />فى هذا الموضوع سوف نتكلم عن طريقة عمل دالة لتقطيع أى جملة أو نص إلى كلمات منفردة , وسوف يتم تحديد رمز محدد يتم تقطيع الجملة أو النص من خلالة , وسيتم حفظ الناتج فى مصفوفة بحيث أن كل كلمة تم فصلها من الجملة يتم إضافتها فى مفتاح جديد للمصفوفة , وهذا لتسهيل التعامل مع كل مفتاح فى المصفوفة بشكل منفرد</p>
<p><span id="more-157"></span></p>
<p><strong><span style="color: #800000;">فمثلا لدينا جملة كهذة .</span></strong></p>
<pre class="brush:plain">Welcome to 0gate.com</pre>
<p>عند إدخالها للدالة سيتم تقطيعها لكى يتم إخراج كل كلمة منفردة والرمز الذى سيفصل النص من خلالة هو المسافة , فستظهر الجملة بهذا الشكل .</p>
<pre class="brush:plain">Welcome
To
0gate.com</pre>
<p><strong><span style="color: #0000ff;">تحتوى الدالة على معاملين:-</span></strong></p>
<ul>
<li><strong><span style="color: #333399;">معامل النص</span> : وهو النص الذى نريد أن نفصل كل كلمة عن بعضها</strong></li>
<li><strong><span style="color: #333399;">معامل الرمز</span>: وهو الذى سيتم قطع النص من خلالة</strong></li>
</ul>
<p><strong><span style="color: #800000;">وفى ما يلى نعرض لكم الكود الخاص بالدالة , مع طريقة أستخدامها .</span></strong></p>
<pre class="brush:cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;sstream&gt; 

using namespace std; 

void splitSentence(char *, char); // a prototype of function 

int main(){
	splitSentence("Welcome to 0gate.com", ' ');
	return 0;
} 

void splitSentence(char *Sentence, char symb){
	const int Size = strlen(Sentence);
	string Sent;
	string *SentenceResult = new string[Size];
	int count= 0;
	stringstream stream;
	for(int i=0;i&lt;=Size;i++){
		stream &lt;&lt; Sentence[i]; // Store every word in string stream
		if((Sentence[i] == symb) || (Sentence[i] == '\0')){
			Sent = stream.str(); // convert stringstream to string and store it in Sent variable
			Sent.erase(Sent.end()-1); // Edit the Sent variable to erase the symbol from Sent variable
			SentenceResult[count] = Sent; // Store next word in new key in array
			count++; // Increase the count variable to go to next key in array
			stream.str(""); // clear the stringstream
		}
	} 

	// display every word in line
	for(int i=0;i&lt;count;i++)
		cout &lt;&lt; SentenceResult[i] &lt;&lt; endl;
}</pre>
<p>نتمنى أن تكون الدالة سهلة وبسيطة وأن يكون الشرح مفهوم .</p>
]]></content:encoded>
			<wfw:commentRss>http://0gate.com/idx/2012/01/%d8%b7%d8%b1%d9%8a%d9%82%d8%a9-%d8%b9%d9%85%d9%84-%d8%af%d8%a7%d9%84%d8%a9-%d9%84%d8%aa%d9%82%d8%b7%d9%8a%d8%b9-%d8%a7%d9%84%d9%86%d8%b5-%d9%81%d9%89-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

