لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
المحتوى الأعلى تقييمًا في 08/04/25 في كل الموقع
-
السلام عليكم هل يمكنني استخدام لغة بايثون للتحكم في الأجهزة مثل الحاسوب أو الهاتف المحمول؟ وإن كان ذلك ممكنًا، فما هي أفضل الدورات التعليمية المتوفرة على منصة كورسيرا لتعلّم هذا المجال؟3 نقاط
-
I had a quick question regarding the structure of the class I'm taking. I’ve noticed that the course seems to present a lot of information continuously without breaks or interactive elements like exercises or checkpoint .It feels more like watching a YouTube video rather than an interactive class, and I’m finding it a bit hard to stay engaged and absorb the material effectively ?Are there any plans to include more opportunities for practice or moments to pause and reflect on the content Thank you!1 نقطة
-
1 نقطة
-
لقد انشأت تطبيق ملاحظات الخاص بمسار react في دورة جافا سكريبت لكن استخدمت تايب سكريبت هل كود نظيف او يمكن تحسينه import { useEffect, useState } from "react"; import Note from "./Components/Note"; import Alert from "./Components/Alert"; function App() { interface Notes{ id: number | null; title: string; content: string; } const [notes , setNotes] = useState<Notes[]>(() => { const saveNotes = localStorage.getItem('notes'); return saveNotes ? JSON.parse(saveNotes) : []; }); const [selectedNote , setSelectedNote] = useState<number| null>(null); const [title , setTitle] = useState<string>(''); const [content , setContent] = useState<string >('') const [creating , setCreating] = useState<boolean>(false); const [editing , setEditing] = useState<boolean>(false); const [validationError , setValidationError] = useState<string[]>([]); useEffect(() => { localStorage.setItem('notes' , JSON.stringify(notes)) },[notes]) useEffect(() => { if(validationError.length !==0){ setTimeout(() => { setValidationError([]) },3000) } },[validationError]) const validate = () => { const validationError: string[] = [] let passed = true; if(!title){ validationError.push('الرجاء ادخال عنوان الملاحظة') passed = false } if(!content){ validationError.push('الرجاءادخال محتوى الملاحظة') passed = false } setValidationError(validationError) return passed } const titleChange = (event: React.ChangeEvent<HTMLInputElement>) => { setTitle(event.target.value); } const contentChange = (event: React.ChangeEvent<HTMLTextAreaElement>) => { setContent(event.target.value); } const addToNoteHandler = () => { setCreating(true) setEditing(false); setTitle('') setContent('') } const saveToNoteHandler = () => { if((!validate())) return const note = { id: Date.now(), title: title, content: content } const saveNotes = [...notes , note] setNotes(saveNotes) setSelectedNote(note.id) setCreating(false) setTitle('') setContent('') } const selectNoteHandler = (noteId:number) => { setSelectedNote(noteId) setEditing(false) setCreating(false) } const editNoteHandler = () => { const note = notes.find(note => note.id === selectedNote); setEditing(true) setTitle(note?.title || '') setContent(note?.content || '') } const updateNoteHandler = () => { if((!validate())) return const updateNotes = [...notes]; const noteIndex = updateNotes.findIndex(note => note.id === selectedNote); updateNotes[noteIndex] = { id: selectedNote, title: title, content: content } setNotes(updateNotes); setEditing(false); setTitle('') setContent('') } const deleteNoteHandler = () => { const deleteNotes = [...notes]; const noteIndex = deleteNotes.findIndex(note => note.id === selectedNote); deleteNotes.splice(noteIndex,1) setNotes(deleteNotes) setSelectedNote(null) } const deleteAll = () => { if( window.confirm('هل انت متأكد بحذف جميع الملاحظات')) setNotes([]) setSelectedNote(null) } const getAddNote = () => { return ( <div> <h2>إضافة ملاحظة جديدة</h2> <div> <input type="text" name="title" className="form-input mb-30" placeholder="العنوان" value={title} onChange={titleChange} /> <textarea rows={10} name="content" className="form-input" placeholder="النص" value={content} onChange={contentChange} /> <a href="#" className="button green" onClick={saveToNoteHandler}> حفظ </a> </div> </div> ); }; const getPreview = () => { if(notes.length === 0){ return <h2 className="center">لا يوجد ملاحظة</h2> } else if(!selectedNote){ return <h2 className="center">الرجاء اختيار ملاحظة</h2> } const noteShow = notes.find(note => { return note.id === selectedNote }); let noteDisplay = ( <div> <h2>{noteShow?.title}</h2> <p>{noteShow?.content}</p> </div> ) if(editing){ noteDisplay = ( <div> <h2>تعديل ملاحظة</h2> <div> <input type="text" name="title" className="form-input mb-30" placeholder="العنوان" value={title} onChange={titleChange} /> <textarea rows={10} name="content" className="form-input" placeholder="النص" value={content} onChange={contentChange} /> <a href="#" className="button green" onClick={updateNoteHandler}> تعديل </a> </div> </div> ) } return ( <div> {!editing && <div className="note-operations"> <a href="#" onClick={editNoteHandler}><i className="fa fa-pencil-alt" /> </a> <a href="#" onClick={deleteNoteHandler}><i className="fa fa-trash" /></a> <a href="#" onClick={deleteAll}><i className="fa-solid fa-ban"></i></a> </div> } {noteDisplay} </div> ); }; return ( <div className="App"> <div className="notes-section"> <ul className="notes-list"> {notes.map(note => <Note key={note.id} title={note.title} noteClicked={() => selectNoteHandler(note.id || 0)} active={note.id === selectedNote}/>)} </ul> <button className="add-btn" onClick={addToNoteHandler}>+</button> </div> <div className="preview-section">{creating ? getAddNote() : getPreview()}</div> {validationError.length !==0 && <Alert validationMassge={validationError}/>} </div> ); } export default App;1 نقطة
-
أنا أتعلم دورة واجهات المستخدم، لكن لم أجد فيها عند نظرتي الأولية عليها تعليم (جيت هاب) ولا شرح( لرئاكت) مع أني رأيت في مواقع خارجية أنهم أساسيات لسوق العمل1 نقطة
-
أرجو توضيح ما هي الدورة المقصودة، عامًة يوجد تمارين عملية ولكن ليس في جميع المسارات، وأحيانًا هناك مسارات نظرية لذا لا يوجد بها تمارين بطبيعة الحال، كذلك يوجد مشاريع عملية مباشرًة بعد شرح الأسياسات للتطبيق على ما قمنا بدراسته والتوسع أيضًا في الشرح. وفي حال احتجت إلى تمارين ولم تجدها، تستطيع السؤال أسفل الدروس في التعليقات وسيتم توفيرها لك.1 نقطة
-
بشكل بسيط، في البرمجة الإجرائية التركيز على ما هي الخطوات التي يجب أن تقوم بها، أي البرنامج هو سلسلة من الأوامر، الأمر أشبه بكتابة وصفة طبخ أي تكتب قائمة من التعليمات المرتبة. والبيانات هي كيان سلبي ومنفصل، بمعنى الدوال هي التي تأتي من الخارج وتعمل على تلك البيانات، ويبدأ البرنامج بشكل هرمي بمعنى الدالة الرئيسية تستدعي دوال، وتلك الدوال تستدعي دوال أخرى. والبيانات العامة يمكن الوصول إليها وتعديلها من أي دالة، وذلك يسبب آثارًا جانبية غير متوقعة، كذلك وحالة البرنامج بأكمله محفوظة في متغيرات عامة، مما يجعل تتبع التغييرات صعبًا. للتوضيح: account_balance = 0.0 def deposit(amount): """Procedure to add an amount to the overall balance""" global account_balance account_balance += amount print(f"Deposited {amount}. New balance: {account_balance}") def withdraw(amount): global account_balance if amount <= account_balance: account_balance -= amount print(f"Withdrew {amount}. New balance: {account_balance}") else: print("Error: Insufficient balance.") def show_balance(): print(f"Current balance is: {account_balance}") show_balance() deposit(1000) withdraw(300) show_balance() account_balance = -5000.0 print("Balance manipulated from outside the functions!") show_balance() أما في البرمجاة الكائنية تُعالج ما سبق من خلال التركيز على بناء كائنات رئيسية وكائنات فرعية والتي ترث من الرئيسية، والبيانات والدوال مرتبتطان بشكل وثيق، فالكائن مسؤول عن حماية وإدارة بياناته الخاصة، أي البرنامج يتكون من مجموعة من الكائنات المستقلة التي تتواصل مع بعضها البعض عن طريق استدعاء توابع (الميثودز) بعضها البعض. والغرض من ذلك تطوير نظام معقد بطريقة تجعله سهل الفهم، الصيانة، والتوسيع، وذلك عن طريق مباديء البرمجة الكائنية وهي الوراثة وتعدد الأشكال والتغليف والتجريد. ونفس الكود السابق يُصبح كالتالي: class BankAccount: def __init__(self, initial_balance=0.0): self.balance = initial_balance def deposit(self, amount): if amount > 0: self.balance += amount print(f"Deposited {amount}. New balance: {self.balance}") def withdraw(self, amount): if amount <= self.balance: self.balance -= amount print(f"Withdrew {amount}. New balance: {self.balance}") else: print("Error: Insufficient balance.") def show_balance(self): print(f"Current balance is: {self.balance}") account1 = BankAccount(1000) account2 = BankAccount(5000) account1.show_balance() account1.deposit(200) account1.withdraw(50) account2.show_balance() account2.withdraw(1000) print("Final balance of the first account:") account1.show_balance() print("Final balance of the second account:") account2.show_balance()1 نقطة
-
السلام عليكم محتاج شيء في بايثون يساعدني إني أحمل ملفات "بي دي اف" من مجموعات واتساب، وبعد كده يرسلها إلى مجموعات أخرى في الواتساب .هل فيه مكتبة تساعد في الأمر ده يا ريت اللي يعرف يفيدني بالتفاصيل، وجزاكم اللّه خيرًا1 نقطة
-
الأفضل تعلم أساسيات Git وكيفية استخدام منصة GitHub من الآن، فهي مهارة أساسية لا غنى عنها لأي شخص يعمل في مجال البرمجة، أي اعتد على استخدام Git من الآن، ستجد هنا مصادر: وبخصوص الإختبار، فستقوم بإختباره بشكل يدوي في البداية، وهل يعمل بشكل سليم وفق المطلوب أم لا، وفي حال هناك إدخال من قبل المستخدم فيجب تجربة إدخالات خاطئة ومن المفترض أن يتم التعامل مع تلك الحالات في الكود لديك، أي بدلاً من رقم تُدخل نص وهكذا أو لا تُدخل أي شيء. وكذلك تفقد الأخطاء من خلال الإعتماد على دالة print لطباعة قيم معينة في الكود لتتفقد هل يعمل بشكل سليم أم لا. وبعد فترة ستقوم بتعلم مفهوم Unit testing وهناك مكتبة باسم pytest لذلك.1 نقطة
-
بعد إنجاز أى تطبيق عملي يمكنك إختباره للتأكد من عدم وجود أى أخطاء به . وأيضا يمكنك البحث عن كيفية تطويره وتحسينه وإستخدام تقنيات جديدة فيه و أيضا تحسين أداءه مثل إعادة كتابة الأجزاء المعقدةوالصعبة لتصبح أكثر وضوح وأسهل في الفهم والقراءة ويمكنك مشاركته مع الأشخاص الأخرين لتبادل الأفكار و التقييمات. ونعم بالطبع يجب عليك الإحتفاظ بتلك التطبيقات أولا لأن هذه التطبيقات يمكنك وضعها في السيرة الذاتية الخاصة بك وأيضا لأنك ستحتاجها فيما بعد سواء للمراجعة عليها إذا أردت مراجعة تقنية ما أو خاصية ما يمكنك الرجوع إليها فيما بعد. وأما إذا كنت تقصد التطبيقات العملية في الدورة فنعم هذه التطبيقات مطلوب تسليمها عند التقدم للإختبار لهذا يجب الإحتفاظ بها ورفعها على github.1 نقطة
-
يرجى عدم إرفاق الروابط هنا حاليا . هل قمت بإرسال رسالة إلى مركز المساعدة كما تم التوضيح في الإجابات السابقة ؟ إذا لم تقم بذلك يرجى إرسال رسالة إلى مركز المساعدة من خلال الرابط التالي : https://support.academy.hsoub.com/conversations وقم بتوضيح أنك تريد التقدم للإختبار ويرجى الإنتظار إلى حين الرد عليك حيث من الممكن أن يتأخر الرد قليلا.1 نقطة
-
البرمجة الإجرائية (Procedural Programming) هي نموذج برمجي يعتمد على تنظيم الكود في شكل إجراءات أو دوال منفصلة تستدعى بتسلسل محدد fpde يقوم هذا النموذج على مبدأ "فرµق تسد" حيث يتم تقسيم المشكلة الكبيرة إلى مشاكل أصغر يتم حلها بواسطة دوال منفصلة والبيانات والدوال تكون منفصلة عن بعضها البعض وتمرر البيانات كمعاملات للدوال التي تعالجها وترجع النتائج. التحكم في تدفق البرنامج يتم من خلال استدعاء الدوال بترتيب معين، مع استخدام هياكل التحكم مثل الحلقات والشروط. من أشهر لغات البرمجة الإجرائية: C و Pascal و COBOL و FORTRAN و أجزاء من JavaScript و Python. يمكنك التعرف عليها أكثر من هنا:1 نقطة
-
وعليكم السلام ورحمة الله تعالى وبركاته، البرمجة الإجرائية (Procedural Programming) هي نمط برمجة يعتمد على تقسيم البرنامج إلى مجموعة من الإجراءات أو الدوال (Functions) التي تنفذ سلسلة من الأوامر خطوة بخطوة. وفي هذا النمط يكون التركيز على "ما يجب فعله" من خلال تسلسل منطقي من التعليمات ويتم تنظيم الكود بشكل هرمي حيث تبدأ التعليمات من الأعلى للأسفل ويستخدم التفرع مثل if-else والحلقات مثل for وwhile لتوجيه سير التنفيذ وأما البيانات عادة فتكون منفصلة عن الدوال ولا يتم ربطها مع السلوك كما في البرمجة الكائنية. ومن أبرز خصائص البرمجة الإجرائية سهولة التتبع، وإعادة استخدام الكود عبر الدوال، ولكنها تعاني من صعوبة الصيانة مع كبر حجم المشروع لأن التغييرات قد تؤثر في أجزاء متعددة من البرنامج وتستخدم في لغات مثل C، Pascal، وBASIC وهي تعتبر الأساس الذي بنيت عليه مفاهيم برمجية أخرى مثل البرمجة الكائنية (OOP) كما أنها مناسبة للمشاريع الصغيرة والمتوسطة التي لا تحتاج إلى تصميم معقد أو نماذج بيانات متشابكة.1 نقطة
