Wael Aljamal

مرحبا، أنا وائل الجمل مهندس برمجيات وطالب ماجستير علوم الويب. سعيد بتقديم الحل لمختلف الأسئلة البرمجية في مختلف لغات البرمجة و أطر العمل. يمكنك توظيفي من موقع مستقل.

127 نقاط السمعة
عضو منذ

المشكلة تكمن في عدم تعرف نظام ويندوز على الأمر pip وهو مدير الحزم البرمجية في بايثون.

لحل المشكلة عليك أن تضيف مساره متغيرات النظام

add pip to system variables

ويمكن تنفيذ تعليمة مباشرة في cmd بعد تشغيلع كمسؤول setx PATH "%PATH%;C:\Python34\Scripts" لاحظ أننا نحتاج هنا للمسار مكان تثبيت بايثون و ربما يختلف في حاسوبك

يمكن أنك لم تقم بتثبيتها بالأصل مع تثبيت بايثون .. عليك اختيار pip أثناء التثبيت .. ربما عليك إعادة التثبيت لبايثون

هكذا بشكل افتراضي سيتم إضافتها لمسار متغيرات النظام

قم بإعادة التثبيت وأرجو تشغيل المثبت بوضعية الأدمن التشغيل كمسؤول run as administrator

  • خطوات إضافة مسار برنامج ما لمتغيرات النظام:

ابحث عن edit system variables في قائمة start ثم توجه حسب الصور.. تحتاج لإضافة مسار script من بايثون

إن تعلم الفوتوشوب هو أمر إيجابي لمطور Front End فقد تحتاج مثلا لتعديل الصور قبل إضافتها للموقع.. نقل و برمجة تصاميم موجودة كقوالب فوتوشوب و استخراج الألوان و الأبعاد و القياسات منها..

بالنسبة ل Back End فتعلمه بتعمق ليس ضروري.. حاول تعلم كيفية التعامل مع API أي كيفية استدعاء الروابط و جلب البيانات لعرضها في الواجهة لديك و كيفية التعامل مع Form و إرسال البيانات للمخدم.

إن تعلمك ل Bootstrap ستفيدك في التصميم. و تعلم jQuery + Ajax سيجعل صفحاتك ديناميكية و سريعة.

@khaledhtml‍ 

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

عند وضع مسار الصورة بهذا الشكل، هذا يعني أن ملف html و الصورة هما في نفس المسار أي نفس المجلد أيضا.

يمكنك ملاحظة أن ملف html لديك في مجلد documents و الصورة في desktop ولهذا لا يجد المتصفح الصورة .. إما تنقلهم لنفس المجلد أو تضع مسار كامل للصورة.

عليك تخزين الوقت البدائي الذي سوف تعتبره بداية للثلاث دقائق و قبل إعادة الرابط نضع شرط مرور وقت أقل من 3 دقائق.

كيف تقوم بتخزين هذا الوقت؟

ومتى تبدأ حساب ال 3 دقائق؟ هل بعد تسليم للرابط ام بعد انتهاء تحميل الملف.

يمكنك الاستفادة من firebase بعمل تسجيل الدخول عن طريقها.

التوثيق الرسمي بجميع الخطوات من هنا:

يتضمن الخطوات التالية بشكل رئيسي:

1- تضمين بعض المكتبات لعمل authentication - firebase-auth

2- عمل تطبيق في firebase من الموقع المرفق في التوثيق

و من ثم تفعيل خيار تسجيل الدخول عن طريق الرقم

نسخ ملف google-services لمشروع الأندرويد..

وإكمال خطوات التوثيق و تحوي بعض الشيفرات البرمجية المساعدة.

أنت قمت بتعريفها لـ sum أولا على أنها سلسلة نصية من نوع string

string name = wael
name[0] = 'w'
name[1] = 'a'

تطبيق هذه الخطوة ليس ضروري إنما ما قصدته في حال إدخال " +" فهذه لا تساوي "+" لوجود الفراغ فنقرأ فقط أول محرف من السلسلة والذي يمكن الوصول له عن طريق الدليل (رقم العنصر) بين الأقواس المربعة

خذ نظرة عن المصفوفات arrays - string في cpp
else if (operation == " / ") {
    if (b != 0) {
        division(a,b);
    }else {
        cout << "لا يمكن للمقام أن يكون 0"
    }
}
  • وبالنسبة لحالة القسمه عدلت الشرط بحيث اذا ادخل رقم صفر للمتغيرين a او b يطلع له خطأ

يمكن للبسط أن يكون 0 في عملية القسمة الشرط فقط للمقام.

بالنسبة لقراءة إشارة العملية :

cin >> operation;
// اختبار الشرط على المحرف الأول من السلسلة 
if (opreation[0] == '+') ...

تمام البرنامج سليم بنسبة كبيرة

بعض الملاحظات:

  • cout << "Enter Value To sum:\n";

هنا أرجو تبديل sum مع المتغير الخاص بها بكلمة operation مثلا لأنها لا تقتصر على الجمع فنقوم بتسمية متغير

ليدل على عمله.

  • عند القسمة نتأكد أن المقسوم عليه y لا يساوي الصفر قبل القسمة لأن القسمة على 0 غير ممكنة (دائما عليك وضع هذا الشرط)

  • إذا واجهتك مشكلة في قراءة المتغير + - * / يمكنك قراءة السلسلة النصية بأول محرف منها operation[0]

لأن إدخال سلسلة تحوي فراغ بعد الرمز لن يتم قرائتها مثل " *"

  • يمكن إعاد القيم مباشرة بدون تعريف متغير جديد ضمن الدالة بدون داعِ له مثل return x + y مباشرة

وجدت مشروع على GitHub يقوم بعمل Backup لهذا النوع من الأنظمة يمكنك تجربته من هنا:

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

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

ربما التصميم سيكون أفضل باستعمال جافاسكربت لاستخدام تقنيات الويب HTML - CSS في التصميم

ولكن سيكون هنالك صعوبة في التعامل مع Hardware - لا يمكن الوصول لخصائص النظام - متصفح الملفات ..الأداء و دعم المكتبات..

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

بعض الشركات التي تبنت الموضوع:

Adobe = Adobe Air, Mozilla = Prism . Google also = Google Gears.

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

يوجد العديد من أطر العمل التي تتعامل مع GUI واجهات المستخدم في بايثون و أشهرها Tinker وغيرها

PyQT GUI - KIVY GUI. WxPython GUI - PySide GUI. PySimpleGUI. PyGUI. Pyforms GUI.

بالنسبة لإمكانيات كل واحدة أقترح تصفح تطبيقات و أمثلة عملية ومن ثم المقارنة بينهم بما يحقق متطلباتك ومن ثم تختار منهم وربما تعمل به.

إن لغة جافا هي لغة برمجة غرضية التوجه object oriented programming language مشهورة جدا و قوية في جميع مجالات البرمجة تستخدم في برامج سطح المكتب و المخدمات و >برمجة تطبيقات أندرويد(لم تعد اللغة الأساسية حاليا)< أصبحت كوتلن.

أما بالحديث عن C++ يمكنك قراءة التعليق التالي: وقم بمقارنتها مع جافاسكربت

جافاسكربت فيها حلول أكثر من كلا اللغتين.

الفرق بينهما كبير ليس فقط في السرعة.

تعتبر ++C من أسرع لغات البرمجية لأن الشيفرة المصدرية الخاصة بها يتم ترجمتها بطريقة optimized عن طريق compilers للغة Assemble و من ثم إلى لغة الآلة ويصدر عنها برنامج معالج أفضل من الشيفرة المكتوبة أما جافا سكربت لا يتم تنفيذها بنفس الطريقة فلا يتم ترجمتها عن طريق compiler إنما عن طريق مفسر interpreter أي يتم تنفيذ كل تعليمة بدورها حسب تسلسل تنفيذها.

بشكل عام تستخدم ++C لبرمجة نظم التشغيل والتخاطب مع البرامج منخفضة المستوى مثل Hardware + Drivers..

أما جافاسكربت تعمل في المتصفح وهي اللغة الأساسية في برمجة Front End أي واجهات المواقع الالكترونية كما يمكن استخدامها كمخدم عن طريق NodeJS و بالإضافة لذلك يمكن برمجة تطبيقات الهواتف الذكية عن طريق React Native.

المحصلة: فرص العمل في جافاسكربت أكثر وهي أفصل للعمل

يمكنك استخدام هذه الدالة:

<?php

// PHP program to count number

// of words in a string

// Function to count the words

function get_num_of_words($string) {

    $string = preg_replace('/\s+/', ' ', trim($string));

    $words = explode(" ", $string);

    return count($words);

}

$str = " Geeks for Geeks ";

// Function call

$len = get_num_of_words($str);

// Printing the result

echo $len;

?>

أرجو محاولة تشغيل cmd مع صلاحيات الأدمن والتجريب (يحاول التثبيت في مسار المستخدم وأعتقد أن المشكلة في الصلاحيات)

الفكرة في تحميل الصفحة لديك في متغير جافاسكربت ثم قراءة القيم منها

الخطأ يقول أن دليل المصفوفة REQUEST الذي تستخدمه action غير معروف أي لم تضع قيمة فيه مسبقا.

إن action في form الصفخ يدل على اسم ملف php الذي سوف يستجيب للطلبية.

أما في حالتك أعتقد أنك تبحث عن طريقة التخاطب مع المخدم و التي هي method في HTTP والتي نضعها في Form.

if ($_SERVER["REQUEST_METHOD"] == "POST")

أما من REQUEST نقرأ قيم حقول هذا ال FORM

$_REQUEST['name']

هل يمكنك مشاركة ملف هذه الصفحة من فضلك؟

لضبط التنسيق ضع 4 فراغات بجانب السطر وهي تعادل الضغط Tab للوحة المفاتيح ضمن محرر الأكواد .

حدد النص كاملا ثم Tab ثم نسخ و لصق هنا

يمكنك استخدام الشيفرة التالية: جافاسكربت

قراءة محتويات الصفحة ومن ثم استخدام التعبير المنتظم العد حسب الفراغات

var body = top.document.body;

if(body) {

    var content = document.body[('innerText' in document.body) ? 'innerText' : 'textContent'];

    content = noscript(content);

    alert(content.match(/\S+/g).length);

}

أقترح عليك تعلم jQuery و Ajax،

إن jQuery هي مكتبة جافاسكربت واستخدامها سهل و توفر الكثير من الدوال المساعدة للتعامل مع الصفحة و العناصر و التحميل و الأحداث..

Ajax هي طريقة تقنية إرسال طلبات غير متزامة لتحميل البيانات من المخدم و تسرع عمل الصفحات و استخدامها مع جيكويري سهل.

المثال التالي يستخدم التقنيتين لتحميل صفحة ويب و الوصول للقيم منها:

تضع رابط الصفحة المرد تحميلها و النتيجة تكون جسم الصفحة، بعدها تبحث عن id أو class العنصر المطلوب و تستخلص منه البيانات.

$.get("anotherPage.html", {}, function(results){

  alert(results); // will show the HTML from anotherPage.html

  alert($(results).find("div.scores").html()); // show "scores" div in results

});

لتضمين أجاكس مع جيكويري سمكنك تضمين الرابط التالي: (احذف الفراغات منه)

<script src="https : // ajax .googleapis . com/ ajax/libs/jquery/1.11.1/jquery.min.js"></script>

ربما باختلاف نسخة MySQL بين المخدم المحلي و مخدم الاستضافة.

أرجو تغيير محرف الاقتباس الذي تستخدمه للحقل E و تأكد من تداخل محارف الاقتباس " ' ` بشكل جيد و استخدم escape letter \ بطريقة مناسبة.

يفضل استخدام backtick (“`”) لأسماء الحقول لتستطيع MySQL تمييزها.

التوثيق: