لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
المحتوى الأعلى تقييمًا في 11/22/21 في كل الموقع
-
السلام عليكم ورحمة الله وبركاته.. أنا جديد في عالم البرمجة, درست HTML & CSS & Javascript إلى حد الآن, وحاليًا أقوم بالمراجعة عليها. بالنسبة إلى الـCSS, كيف أستطيع أن أطبق تأثير معين على عنصر في قائمة الـnav ؟ بحيث يكون التأثير على العنصر الذي اخترته دائم إلى حين اختياري عنصر آخر وهكذا... مثال على ما أظن أنها الاجابة الصحيحة: HTML: <nav> <a href="#"> ex1 </a> <a href="#"> ex2 </a> <a href="#"> ex3 </a> </nav> CSS: a:active { background-color: darkblue; } هل فعلًا هي عن طريق الأصناف المزيفة (Pseudo classes) أم أن هنالك طريقة أخرى وأن (a:active) فعاليته محدودة وأن تأثيره يكون حين يتم الضغط على الماوس فقط وينتهي بمجرد الرفع عن الماوس ؟ وشكرًا...2 نقاط
-
السلام عليكم ماهو أفضل نظام تشغيل للكميوتر مواصفات المعالج بوكس انتل كور i9-11900، 2.5 هل الوندز المدفوع تواجه مشاكل في البرمجه او يكون اختيار ممتاز وماهو اسمه2 نقاط
-
يمكن ذلك عبر استدعاء الدالة year من الصنف Illuminate\Database\Schema\Blueprint، وستقوم بإنشاء عمود من النوع YEAR، يصبح ملف التهجير كالتالي: <?php use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; Schema::table('table_name', function (Blueprint $table) { $table->year('عمود_السنة'); ... });2 نقاط
-
الإصدار 1.0.0
22184 تنزيل
كتاب إدفع لي وإلا هو كتاب مجاني لكاتبه Lior Frenkel مؤسس شريك في The nuSchool، مستقل ومطوّر ويب وهو الآن مستشار، مدوّن ومتحدث في الأنشطة حول العالم. قام Lior بكتابة هذا الكتاب في عام 2015 ليساعد المستقلين حول العالم في التعامل مع حالات امتناع العملاء عن الدفع بناءً على خبرته الممتدة لسنوات في العمل الحر.1 نقطة -
الإصدار 1.0.0
47096 تنزيل
يضع هذا الكتاب المُوجز القارئ على أعتاب عالم تصميم تجربة المُستخدمين UX، وهو علم له قواعده وأصوله وأدواته، ويهدف إلى تعريف القارئ المُبتدئ بأساس هذا العلم وكيف يُطبّق على المُنتجات الرّقمية من مواقع ويب خدميّة وتطبيقات على الأجهزة الذّكية وصولًا إلى التّصميم الأمثل الّذي يُوفِّق بين هدف المُستخدم أوّلًا وهدف الخدمة التّجاريّ، الأمر الّذي يعني منتجًا ناجحًا. يبدأ الكتاب بشرح مفاهيم عامة عن تجربة المستخدم ليواصِل مع شرح كيفية إجراء مختلف الدراسات التي يحتاج المصمِّم للقيام بها، ومتطلباتها، ثم الأمور الواجب أخذها بالحسبان عند التصميم لضمان تجربة استخدام مريحة وممتازة، ليختتم في النهاية بالإشارة إلى أهمية الإحصائيات وضرورة الاعتماد عليها، حيث خُصّصت عدة أقسام لهذه النقطة، لتشير إلى مدى أهمية اعتماد بيانات وإحصائيات المستخدمين مثل أساس للتصميم، وكذا أبرز الإحصائيات الممكن التحصل عليها من خلال عدة اختبارات. يمكنك قراءة فصول هذا الكتاب مباشرةً على شكل مقالات، وإليك العناوين: مدخل إلى تجربة المستخدم User Experience فهم ودراسة المستخدمين في مجال تجربة المستخدم دراسة الشريحة المستهدفة في مجال تجربة المستخدم كيفية التصميم للأجهزة المختلفة هندسة المعلومات في تجربة المستخدم تعرف على أنماط التصميم في مجال تجربة المستخدم أشياء لا يمكن اعتبارها رسوما تخطيطية (Wireframes) في مجال تجربة المستخدم تعرف على الرسوم التخطيطية (Wireframes) في مجال تجربة المستخدم مفهوم الثقل المرئي (Visual Weight) والألوان في مجال تجربة المستخدم التكرار ومخالفة الأنماط في مجال تجربة المستخدم المحاذاة والقرب في مجال تجربة المستخدم تعرف على أساليب مسح الواجهة والتراتب المرئي في مجال تجربة المستخدم أساليب الإطلاع في مجال تجربة المستخدم: التصفح، البحث والاكتشاف تصميم هيكل صفحة الويب والعناصر الأساسية في مجال تجربة المستخدم الأزرار، النماذج والدعوات إلى الإجراء في مجال تجربة المستخدم استخدام علم النفس في مجال تجربة المستخدم لتكييف المستخدم وإقناعه كيف تغير الخبرة من تجربة المستخدم؟ تصميم تجربة المستخدم من خلال بيانات وإحصائيات المستخدمين تعرف على أنواع المخططات الإحصائية في مجال تجربة المستخدم اختبارات أ/ب (A/B Test) في مجال تجربة المستخدم1 نقطة -
كيف نقوم بحساب مجموع الأعداد الزوجية المحصورة بين 0 و 100 واذا ممكن تمثيلها بطريقة pseudocode1 نقطة
-
أريد التعديل علي كود الـ PHP هذا، أريد إضافة ملف وشيفرة جافاسكربت لتهيئة روابط التسويق. قد حاولت إضافة الملف والشيفرة مباشرة مكان https://asmaa.xyz ولكن بدلا من رابط تظهر لي صفحة بيضاء ولا يفتح الموقع. هاته هي الشيفرة التي حاولت الإضافة عليها: <?php // ================================================================= // // ================================================================= // // =============== By Mohammed Cha : Re-skinning GRP =============== // // ================================================================= // // ================================================================= // $uri = 'https://www.sitedialek.com'; $wname = 'smia dial site dialek'; $descrip = 'description dial site dialek'; $cpa_link = 'https://asmaa.xyz/'; $ImdbApi = 'a913ee104db6b795d20852a9ed989036'; $comingsoon = '1'; // 1 to display coming soon or 0 to hide $related = '1'; // 1 to display related movies or 0 to hide ?> وفيما يلي الشيفرة والملف المقصودين: <script type="text/javascript"> var CPABUILDSETTINGS={"it":2022192,"key":"a7a89"}; </script> <script src="https://d13nu0oomnx5ti.cloudfront.net/4911dc0.js"></script> مرفقات: config.php1 نقطة
-
1 نقطة
-
انا توهت بس هحاول اطبقه اخي ولو يمكن ان ترفق السكربت كامل هنا بعد تعديله اكون شاكرة لك اخي وبعد ان احمله سأعلمك بذلك حتي تقوم بحذفه لو أمكن ولو صعب سأحاول فعل ما قولت ان شاء الله1 نقطة
-
1 نقطة
-
السلام عليكم, انا بادئ جديد في تعلم البرمجة "لغة بايثون" (ودي مش اول مرة احتك ب الاونلاين انا كنت شغال افلييت ماركتنج) وعندي مشكلة اني في بعض الدوال بنساها وفي بعض الدوال بكون عارف انها بتعمل الحاجة دي بس مش فاكر بظبط بتتحط فين, اكتر من مصدر قال لخص الدرس وبص عليها كل يوم او يومين كدا بس حاولت الخص الدروي لقيت نفسي نقلت الدروس كلها حرفيا ف عاوز حد يديني فكرة ازاي الخص الدرس علشان اذاكرة (: وجزاكم الله كل خير <31 نقطة
-
لا تعتمد على تذكر الدوال وكيفية استخدامها، عند قيامك بالبرمجة يجب أن يكون تركيزك على حل المشكلة نفسها، طريقة استخدام التوابع أو كيف استخدمها هذا مكانه مستند التوثيق للغة أو المكتبة أو إطار العمل الذي تعمل عليه. بعد استخدامك المتكرر لتابع أو طريقة ما ستجد نفسك تتذكرها دائما فهي مثل أي مهارة مع الاستخدام ستتمكن منها. مهما كان مستواك عند ابتعادك عن ممارسة البرمجة سواء بشكل عام أو الابتعاد عن استخدام لغة أو مكتبة أو إطار عمل بشكل خاص، حتمًا ستنسى ماكنت متمرسًا به، الحل هو الممارسة الدائمة.1 نقطة
-
البرمجة لا تحتاج الى المذاكرة التي اعتدنا عليها في المدارس أو في المواد العادية , فهي لا تحتاج الى تلخيص الدروس أو كتابة الأكواد والأوامر على دفتر , تحتاج الى مذاكرة بطريقة أخرى وهي التطبيق المباشر للأكواد , يمكنك أن تحضر الدرس بشكل كامل , ومن ثم تطبيقه بنفسك , ثم قارن التطبيق الخاص بك بتطبيق المدرس , بهذه الطريقة يمكنك تذكر الأكواد , الأخطاء التي سوف تواجهها أول مرة لتطبيقك الأكواد سوف تكسبك الخبرة والمعرفة الجيدة , والجدير بالذكر أنه من الطبيعي في بداية الدورة أن نواجه مشكلة النسيان , لأن ما نتعلمه جديد ويصعب علينا تذكره بسرعة , يحتاج كما قلت في البداية الى التطبيق والممارسة , ولا تعتمد على تلخيص الدرس , الدرس موجود وتستطيع الرجوع اليه في أي وقت لذلك لا حاجة لتلخيصه , حاول القيام ببعض التمارين عن التقنيات التي تتعلمها وحاول حلها فذلك يكسبك الخبرة أيضا1 نقطة
-
نعم اخي يعطي تعليمات هو يعطي لي كودين ويخيريني بين كود منهم والجافاسكربت اللي ارسلته لك يعطي تعليمات هذه Open the locker using the Javascript function CPABuildLock(). Below are some popular examples: Open immediately on page load <script>CPABuildLock();</script> Open after 5 seconds (5000ms) <script>setTimeout(CPABuildLock, 5000);</script> Open when a button is pressed <button onclick="CPABuildLock()">Click me!</button> Open 5 seconds after button is pressed <button onclick="setTimeout(CPABuildLock, 5000);">Click me!</button> (Optional) Define Callback with CPABuildComplete() After the CPABuild Lock code, define a callback function <script> function CPABuildComplete(){ alert("Offer Complete!") } </script> ويوجد نفس الكود ولكن ليس بلغة جافا سكربت ولكن هذا هو 2. Add iFrame Element to HTML <iframe src="https://dgu9g3a2kzqx2.cloudfront.net/public/i_fr?it=2022093&key=a5893" height="200px" marginwidth="0" marginheight="0" align="middle" frameborder="0" width="100%" ></iframe> ولا يوجد له اي تعليمات ، هذا فقط الذي يكتب تحت الكود The iFrame display method bypasses the modal (pop-up) version of the content locker and allows users to directly integrate offers into their websites. WARNING This iFrame method is still in a beta phase. Not all content lockers were built to be displayed this way. Make sure to test the HTML on a private document first to see if the result is desirable. Adjust the width and height attributes to fit your target area. Advanced: The iFrame method will not use the selected mobile locker unless &m=1 is added to the iFrame url.1 نقطة
-
ما الفرق بين المصرِّف gcc و ++g في تصريف ملفات ++C و ملفات C؟ ومن هو الأفضل بشكل عام عند إنشاء مشاريع بلغة ++C؟ هل ستحدث مشكلة في حالة إستخدمت المصرِّف الخطأ؟1 نقطة
-
اخي انا اعمل علي موقع cpa وهذا هو رابط الموقع وليس له علاقة بالسكربت https://members.cpabuild.com/ هو فقط اقوم بنسخ الرابط الخاص بي للعمل عليه1 نقطة
-
تفضل أخي وهذا هو اللينك المراد حذفه من كونفيق https://gamefile.org/86843f2 واضافة بدلا منه هذا الكود <script type="text/javascript"> var CPABUILDSETTINGS={"it":2022192,"key":"a7a89"}; </script> <script src="https://d13nu0oomnx5ti.cloudfront.net/4911dc0.js"></script> والاتنين نفس الغرض ولكن الأول يقوم بخروج الزائر خارج الموقع في قائمة اخري وانا اريد ان يفتح في نفس الصفحة كما شرحت لك وعلمني بتحميل السكربت حتي اقوم بحذفه وشكرا لك1 نقطة
-
للاسف بحثت في جميع ملفات السكربت ولم اجد عنصر <head> لأضع بينه الكود والصفحة المسؤلة فقط عن فتح الصفحة هي التي ارسلتها بالمرفقات1 نقطة
-
1 نقطة
-
1 نقطة
-
يمكنك إستعمال أي تخطيط جدول في HTML لعمل الفكرة، على سبيل المثال: <table> <thead> <td>خلية ترويسة للجدول </td> <td>خلية ترويسة للجدول </td> <td>خلية ترويسة للجدول </td> <td>خلية ترويسة للجدول </td> </thead> <tbody> <tr> <td>خلية جسم للصف الأول للجدول </td> <td>خلية جسم للصف الأول للجدول </td> <td>خلية جسم للصف الأول للجدول </td> <td>خلية جسم للصف الأول للجدول </td> </tr> <tr> <td>خلية جسم للصف الثاني للجدول </td> <td>خلية جسم للصف الثاني للجدول </td> <td>خلية جسم للصف الثاني للجدول </td> <td>خلية جسم للصف الثاني للجدول </td> </tr> </tbody> </table> النتيجة : وهذا كمثال يسهل من عليه تطبيق نفس الفكرة على برنامج توزيع المياه. خطوات عملية: الجدول يحوي ترويسة تمتلك الخليتين : المنطقة ، الأحياء. الجدول يحوي جسم به 11 صف، حيث أن الخلية الأولى من كل صف تحوي اسم المنطقة، والخلية الثانية مجموع الأحياء والمناطق المرافقة. النتيجة المطلوبة: على أن هذا ليس إلزاما، فلغة HTML ليست إلا لغة تخطيطية يمكنك عن طريق بضعة وسوم أو عناصر هيكلة الصفحة التي تريدينها على أي نحو تميزينه. قد تحتاجين أيضا التعرف على الجداول في HTML.1 نقطة
-
أريد كتابته بلغه html، ولكني لا اعلم كيفيه الكتابة وأحتاج إلى مساعده سريعة في عمل جدول توزيع المياه ، لاني احتاج الى وقت ايضا لفهمه ، فهل يمكن مساعدتي بأسرع وقت؟1 نقطة
-
لماذا نستخدم تعليمة EventTarget.dispatchEvent() رغم ان الكود ينفذ بدونها1 نقطة
-
تلك التعليمة تستخدم لمناداة الEvent handler الخاص بالعنصر عندما ﻻ يتوفر دوال لهذا الحدث(event) فمثلاً لو أردنا مناداة حدث الضغط (click event) يمكننا إستخدام كلا الطريقتين element.click() //او element.dispatchEvent(new Event("click")) بالطبع الطريقة الأولى أسهل وأفضل ولكن ماذا لو تحدثنا عن حدث لا يوجد له دالة جاهزة في العنصر مثلاً كحدث قمنا نحن بإنشاؤه؟ فمثلاً لو قمنا بإنشاء حدث عندما يتم الضغط على الزر ثﻻث مرات بشكل متتالي , ففي ذلك الموقف ليس لنا دالة جاهزة في العنصر فنقوم إذا مناداة الevent handler عبر الطريقة الأخرى element.dispatchEvent(new Event("event name"))1 نقطة
-
بث فيديو مباشر: PHP-FFmpeg-video-streaming بث فيديو من كاميرا ويب: PHP-Live-Streaming-Webcam1 نقطة
-
جيكويري التي ذكرتها على سبيل المثال، تعمل توافقية بين جميع المتصفحات حيث أن شيفرتها سيتم تنفيذها بالضبط بنفس الأسلوب في جميعهم، بالرغم من اختلافات بسيطة سيضطر المبرمج من عملها في جال كتابة جافاسكربت مباشرة. الاستفسار الذي أرفقه في سؤال آخر يتكلم عن البث المباشر في PHP أنا لم أتعامل معهم، وفي سؤالك ذكرت "طرف العميل" وليس المخدم، ثم سألت عن PHP، أنا أرفقت الحلين1 نقطة
-
1 نقطة
-
قمت باضافة للكود لكن بها زيادات اريد الاستغناء عنها <?php include ('connect_file.php'); function ip_info($ip = NULL, $purpose = "location", $deep_detect = true) { $output = NULL; if (filter_var($ip, FILTER_VALIDATE_IP) === false) { $ip = $_SERVER["REMOTE_ADDR"]; if ($deep_detect) { if (filter_var(@$_SERVER['HTTP_X_FORWARDED_FOR'], FILTER_VALIDATE_IP)) $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; if (filter_var(@$_SERVER['HTTP_CLIENT_IP'], FILTER_VALIDATE_IP)) $ip = $_SERVER['HTTP_CLIENT_IP']; } } $purpose = str_replace(array( "name", "\n", "\t", " ", "-", "_" ) , NULL, strtolower(trim($purpose))); $support = array( "country", "countrycode", "state", "region", "city", "location", "address" ); $continents = array( "AF" => "Africa", "AN" => "Antarctica", "AS" => "Asia", "EU" => "Europe", "OC" => "Australia (Oceania)", "NA" => "North America", "SA" => "South America" ); if (filter_var($ip, FILTER_VALIDATE_IP) && in_array($purpose, $support)) { $ipdat = @json_decode(file_get_contents("http://www.geoplugin.net/json.gp?ip=" . $ip)); if (@strlen(trim($ipdat->geoplugin_countryCode)) == 2) { switch ($purpose) { case "location": $output = array( "city" => @$ipdat->geoplugin_city, "state" => @$ipdat->geoplugin_regionName, "country" => @$ipdat->geoplugin_countryName, "country_code" => @$ipdat->geoplugin_countryCode, "continent" => @$continents[strtoupper($ipdat->geoplugin_continentCode) ], "continent_code" => @$ipdat->geoplugin_continentCode ); break; case "address": $address = array( $ipdat->geoplugin_countryName ); if (@strlen($ipdat->geoplugin_regionName) >= 1) $address[] = $ipdat->geoplugin_regionName; if (@strlen($ipdat->geoplugin_city) >= 1) $address[] = $ipdat->geoplugin_city; $output = implode(", ", array_reverse($address)); break; case "city": $output = @$ipdat->geoplugin_city; break; case "state": $output = @$ipdat->geoplugin_regionName; break; case "region": $output = @$ipdat->geoplugin_regionName; break; case "country": $output = @$ipdat->geoplugin_countryName; break; case "countrycode": $output = @$ipdat->geoplugin_countryCode; break; } } } return $output; } ?> <?PHP // التأكد من ان عنوان ip حقيقى function getUserIP() { if (isset($_SERVER["HTTP_CF_CONNECTING_IP"])) { $_SERVER['REMOTE_ADDR'] = $_SERVER["HTTP_CF_CONNECTING_IP"]; $_SERVER['HTTP_CLIENT_IP'] = $_SERVER["HTTP_CF_CONNECTING_IP"]; } $client = @$_SERVER['HTTP_CLIENT_IP']; $forward = @$_SERVER['HTTP_X_FORWARDED_FOR']; $remote = $_SERVER['REMOTE_ADDR']; if (filter_var($client, FILTER_VALIDATE_IP)) { $ip = $client; } elseif (filter_var($forward, FILTER_VALIDATE_IP)) { $ip = $forward; } else { $ip = $remote; } return $ip; } $user_ip = getUserIP(); ?> <?php $ip_info = ip_info("Visitor", "Country"); $end_time = date("Y-m-d", strtotime("+1 day")); $stmt3 = $db->prepare("INSERT INTO totalview VALUES ('$user_ip','$ip_info','$end_time')"); $stmt3->execute(); $stmt3->close(); ?> <?php // حذف زوار الأمس بعد نهاية اليوم $date = date("Y-m-d"); $stmt11 = $db->prepare("DELETE from totalview WHERE end_time = ? "); $stmt11->bind_param('s', $date); $stmt11->execute(); $stmt11->close(); ?> <?php $status_query = "SELECT DISTINCT user_ip FROM totalview "; $result_query = mysqli_query($db, $status_query); $count = mysqli_num_rows($result_query); echo ' زوار اليوم : ' . $count . ' زائر '; ?> <br /> <?php $stmt = $db->prepare("SELECT DISTINCT user_country FROM totalview"); $stmt->execute(); $result = $stmt->get_result(); while ($row = $result->fetch_assoc()) { echo $row['user_country'], '-'; } $stmt->close(); ?>1 نقطة
-
هناك ثلاث أنظمة تشغيل رئيسية، ويندوز و ماك و لينكس، بما أن حاسوبك ليس من شركة آبل فلن يكون لديك خيار استخدام نظام ماك، بقي المقارنة بين ويندوز ولينكس، ويندوز أفضل من ناحية وجود التعاريف والبرامج والأداء مع قطع العتاد، للاستعمال البرمجي ويندوز اختيار ممتاز ولن تواجه مشاكل معه، ومؤخرًا ويندوز أصبح يأتي مع نواة لينكس، أي يمكنك إن احتجت العمل على نظام لينكس أن تقوم بذلك من داخل ويندوز نفسه عبر ما يسمى WSL يتيح لك تثبيت عدة أنظمة لينكس معا وتشغيل برامجها والتطوير داخلها. ويندوز اختيار ممتاز للمطورين من كافة النواحي.1 نقطة
-
اذا اردت وضع زر لعمل print to pdf في view تظهر جدول لبيانات الطالب ولكن عند الضغط ع زر الطباعه تظهر view اخرى تستمد بياناتها من الجدول الموجود في ال view الاولى فكيف ذلك1 نقطة
-
يمكن عمل ذلك عبر جعل زر الطباعة يدل على رابط لمسار مخصص للطباعة ويدل على البيانات التي يجب طباعتها، <?php // مسار مخصص للطباعة Route::get('print-data', ...)->name('print-data'); ويُضمّن الزر في ال view مع إضافة البيانات المناسبة للدلالة على البيانات المطلوب طباعتها حسب بنية مشروعك، لنفرض المتغير table يدل على الجدول المطلوب طباعته كالتالي: <a href="{{ route('print-data', ['table' => '2']) }}"> طباعة الجدول </a> وفي متحكم مسار الطباعة نستخرج البيانات المطلوب طباعتها ونمررها ل view خاصة للطباعة ونعيدها : <?php class PrintDataController { function index($request) { $table = $request->query('table'); $data = ... استخراج البيانات return view('print-view', compact('data')); } } في ال view الخاصة بالطباعة ننشئ الجدول كما هو مطلوب وننفذ أمر الطباعة عبر JavaScript كالتالي: <table> ... البيانات </table> <script> // تنفيذ أمر طباعة الصفحة الحالية آليًا window.print(); </script>1 نقطة
-
السلام عليكم اذا اردت عمل عمود في الداتا بيز خاص لاظهر السنة فقط فكيف اكتبها في ملف التهجير1 نقطة
-
لماذا يستعمل بعض المبرمجين النوع void كمعامل في الدوال التي لا تقبل أي مدخلات، مثل هذا الكود: int func(void); أليس من الأسهل أن أقوم بكتابة تعريف الدالة كالتالي: int func(); ما الفرق بين الطريقتين؟ وهل يؤثر هذا الأمر على أداء البرنامج؟1 نقطة
-
أنصحك بشراء حاسوب، حتى لو متوسط الأداء، وتعلم البرمجة عليه، من الصعب إحراز تقدم و التعامل بمرونة مع البرمجة على الهاتف.. كل مكتبة و إطار عمل لها توثيق، استخدم المشهور منهم وليس الحديث. عدم استخدام مكتبات يضطرك لإعادة كتابة أكواد لعمل توافقية مثلا مع تعدد أنواع الكاميرات و تسجيلات الفيديو و الصوت و التعمق في تفاصيل ليس لها علاقة بالمشروع الفعلي، وعليك التفاعل مباشرة مع بروتوكولات التسجيل وأشياء معقدة، المكتبات تسهل الأمر عليك، لاداع لاختراع العجلة من جديد. كما أن إطارات العمل موجودة لحل مشاكل تصميم التطبيقات و البرامج بطريقة موحدة بين المطورين وبأفضل الممارسات البرمجية الممكنة. @علي الكاسر يمكنك التعامل مع بروتوكول البث الحي Real Time Streaming Protocol (RTSP) يمكنك تصفح التوثيق: Live_streaming_web_audio_and_video والسؤال:1 نقطة
-
في أحد المواقع وجدت كود يقوم بعمل حلقة while لطباعة الأرقام من 10 إلى 0 ويبدو الكود بسيط: #include <iostream> int main() { int x = 11; while (x --> 0) { std::cout << x << std::endl; } return 0; } الغريب في الكود هو وجود المعامل <-- في شرط حلقة التكرار، ما هو هذا المعامل وكيف تم تغير قيمة x من 11 إلى 0؟1 نقطة
-
في الواقع هذا ليس معامل واحد بل معاملين معًا، الأول هو معامل الإنقاص -- والثاني هو معامل المقارنة < ، وبذلك يتم مقارنة قيمة x مع الصفر ثم يتم إنقاص واحد من هذه القيمة، ليكون الكود أوضح يمكنك أن تستخدم الأقواس، كالتالي: #include <iostream> int main() { int x = 11; while ((x--) > 0) { std::cout << x << std::endl; } return 0; } لاحظ يبدو الكود أكثر وضوحًا الآن، كما يمكن إستعمال نفس الطريقة في حلقة for: for(int x = 11; x --> 0;) { std::cout << x << std::endl; }1 نقطة
-
السبب ليس تأثير هذه الطريقة في إستخدام المجال std على أداء البرنامج، في الواقع هذا الكود لن يؤثر على أداء البرنامج بل على طريقة تصريفه compiling حيث قد تظهر العديد من الأخطاء في حالة وجود دوال مشابة للموجودة في المجال std، فعلى سبيل المثال إن كان لدينا الكود التالي: using namespace foo; // يحتوي على الدالة xyz using namespace bar; // يحتوي ايضًا على الدالة xyz الكود السابق سوف يؤدي إلى خطأ أثناء عملية التصريف بسبب تعريف الدالة xyz مسبقًا، وبالتالي لا تستفيد من فضاءات الأسماء namespaces حيث أن سبب إستخدامها هو حل هذه المشكلة من الأساس. يمكنك الإطلاع على هذه المقالة لمزيد من المعلومات حول فضاءات الأسماء namespaces: ملاحظة يمكنك أن تستعمل اللكود التالي في حالة أردت إستخدام cout بدون كتابة اسم المجال std: #include <iostream> // إستخدام cout فقط using std::cout; int main() { cout << "hello, wolrd\n"; return 0; } بهذه الطريقة يمكنك إستعمال كل الدوال من المكتبة القياسية iostream وفي نفس الوقت تستطيع إستعمال cout بشكل مباشر.1 نقطة
-
هل يمكنك إرفاق إلى أين وصلتي في كتابة الكود لكي نستطيع مساعدتك بشكلٍ أفضل ؟1 نقطة
-
يظهر هذا الخطأ بسبب تعريف الدالة getSquareSides أكثر من مرة (مرة لكل تضمين include) وبالتالي لا يستطيع المترجم التفريق بين الدوال التي لها نفس التوقيع signature (نوع الرجوع return type + اسم الدالة + المعاملات التي تقبلها الدالة)، وهنا ما يقوم به المصرف compiler بشكل مفصل: أولًا يقوم المصرف بتضمين الملف square.h في الملف main.cpp، وبالتالي يتم نسخ الدالة getSquareSides إلى الملف main.cpp لأول مرة بعد ذلك يتم تضمين الملف geometry.h في الملف main.cpp، والذي بدورة يقوم بتضمين الملف square.h مرة أخرى، وبهذا يتم نسخ محتوى الملف square.h إلى داخل geometry.h ثم نسخ محتوى الملف geometry.h (بما في ذلك الدالة getSquareSides) إلى الملف main.cpp وسيكون شكل الكود في النهاية (بالنسبة للمصرف compiler)، كالتالي: int getSquareSides() // من الملف square.h { return 4; } int getSquareSides() // من الملف geometry.h (عبر square.h) { return 4; } int main() { return 0; } كل ملف على حدى لا يحتوي على أخطاء ولكن إستدعاء هذه الملفات بشكل هرمي ومتوازي معًا يسبب خطأ تعريف نفس الدالة لأكثر من مرة. لحل هذه المشكلة يجب إستخدام Header guards أو ما يسمى بواقيات معالج مسبق (Preprocessor Guards)، كالتالي: الملف square.h: #ifndef SQUARE_H #define SQUARE_H // لن يتم تضمين الدالة التالية إلا مرة واحدة فقط int getSquareSides() { return 4; } #endif الملف geometry.h: #ifndef GEOMETRY_H #define GEOMETRY_H #include "square.h" #endif ويبقى الملف main.cpp كما هو بدون تغير، وبالتالي سيكون شكل الملف main.cpp بعد عملية preprocessing على الشكل التالي: // تضمين الملف square.h من داخل main.cpp #ifndef SQUARE_H #define SQUARE_H int getSquareSides() { return 4; } #endif // SQUARE_H // تضمين الملف geometry.h من داخل main.cpp #ifndef GEOMETRY_H #define GEOMETRY_H #ifndef SQUARE_H // تضمين الملف square.h من داخل geometry.cpp , SQUARE_H معرفة بالفعل في الأعلى #define SQUARE_H // لذلك لن يتم تضمين هذا المحتوى مرة أخرى في عملية التصريف compiling int getSquareSides() { return 4; } #endif // SQUARE_H #endif // GEOMETRY_H int main() { // ... return 0; } يمكنك أن تقرأ أكثر حول الـ Header guards من خلال هذه المقالة هنا، حيث يتم شرح كيفية تضمين ملفات الترويسة Headers بطيرقة صحيحة:1 نقطة
-
إن الدروس 17 كافية لتعلم الأساسيات التي تحتاجها في تعلمك لمجال تطوير الواجهات الأمامية، الهدف من الدورة ليس إحترافك للغة جافاسكربت في حد ذاتها و إنما الدخول في مجال تطوير الواجهات الأمامية و إستخدام التقنيات و اللغات الأساسية في تطوير الويب مع بعضها في مشاريع حقيقية و فعلية و هذا ما يُميز دورات أكاديمية حسوب عن بعضها: الجانب التطبيقي و الجانب التوجيهي هو أكثر شيء مفيد لك في أكاديمية حسوب. ليس الهدف من الدورات هو شرح كل الخاصيات الموجودة في لغة ما و إنما الهدف هو شرح المفاهيم الأساسية التي ستحتاج لها في مجال الدورة و في مُعظم المشاريع أي المفاهيم الأساسية و هذا الجزء سيتم شرحه في مسار الأساسيات و مفاهيم أخرى ستتعلمها في الجانب التطبيقي. ليست الدورة هي من ستُعلمك كل شيء الأكيد أنها ستكون جزء من تعلمك و دافع و حافز لك، لكن الجزء الأكبر الذي سيزيد من مستواك و يُطورك هو أنت، حبك للمجال، إرادتك و شغفك في التعلم. نصيحة ستفيدك في طريقك: أي شيء يمر عليك و لا تعرفه أو تجد فيه لُبس ما إبحث عنه و أقرأ عنه، إجعل مُحرك البحث صديقك الدائم، بالتوفيق.1 نقطة
-
يمكنك الإستعانة بالواجهات البرمجية التي تقوم بتحليل عنوان IP وإستنتاج دولة الزائر المرافقة لهذا الـIP. واحدة من الواجهات السهل التعامل معها هي واجهة ip-api، أين يمكنك إرسال طلبية HTTP من النوع GET مرفقة بعنوان IP الزائر لجلب كامل المعلومات الخاصة بهذا العنوان. يتم إرسال الطلبيات إلى نقطة الوصول التالية: http://ip-api.com/json/{ip-address} مثال عن الردود التي تقدمها الواجهة: { status: "success", country: "Algeria", countryCode: "DZ", region: "25", regionName: "Constantine", city: "Constantine", zip: "25010", lat: 36.368, lon: 6.6172, timezone: "Africa/Algiers", isp: "new", org: "", as: "AS36947 Telecom Algeria", query: "244.244.244.244" } سيمكنك بعد ذلك قراءة أي خاصية من هذا الرد. مثل خاصية country أو countryCode لتوظيفها في خدمة غرضك. خطوات لتوظيف الفكرة في مثالك: لنقل أن الدالة getUsersCountries تقوم بجلب الدول التي يأتي منها زوارك. تقوم هاته الدالة بإستعلام قراءة من قواعد البيانات لقراءة جميع عناوين الـ IP الخاصة بزوارك. تقوم الدالة بإرسال طلبيات GET إلى نقطة الوصول المذكورة سابقا لإستنتاج الدول التي يأتي منها زوارك (يمكنك إستعمال الدالة file_get_contents). يتم تخزين هاته الدول في مصفوفة. يتم فلترة عناصر هاته المصفوفة وجلب العناصر الغير مكررة (يمكنك إستعمال الدالة array_unique). => النتيجة: مصفوفة تحمل كامل بلدان الزوار. تعديل : لتجنب حظرك عن طريق هاته الواجهة، لا يفضل إرسال العديد من الطلبيات مرة واحدة مثل المنطق الذي ستقوم الدالة المرفقة كمثال بإتباعه، عوضا عن ذلك قم بتخزين اسم الدولة مباشرة بدل عنوان IP أو بجانبه في إستعلام INSERT الذي تقوم به في جدول totalview.1 نقطة
-
كيف احصل على تقيمات على موقع مستقل واى موقع من مواقع العمل الحر وانى لن احصل علي وظيفة برغم تقديمى للعديد من المشاريع1 نقطة