نصائح و استشارات برمجية
Open in Telegram
• نصائح واستشارات برمجية متعلقة باسئلة تم طرحها • لطرح استفسار او سؤال: @m4md24
Show more1 448
Subscribers
No data24 hours
+17 days
+1430 days
Posts Archive
ملف ال html مش بيشتغل كدا
عندك طريقتين
1. اما بتفتح ملف ال html بشكل مباشر
2. او تنزل اضافة اسمها live server و لما تنتهي من تثبيتها داخل visual studio code تقوم ضاغط ضغطة يمين بالماوس على صفحة ال اكواد ال html و تختار open in live server
Repost from برمجة
/*
دي roadmap للِ حابب يتخصص تطوير برامج اندرويد native باختصار، من محمد سعداوي (@M3MD69) مهندس البرمجيات، متخصص تطوير برامج اندرويد native ⬇️💙
■ تتعلم java و تطبق عليها
- Basics
- OOP
- Data Structure
- Algorithms
• الواجب:
- CRUDS System
■ و تتعلم xml و تطبق عليه
- Basics
■ بعدها تتعلم andriod studio بلغة java و xml و تطبق عليهم، بعدها تتعلم تنشئ مشاريع صغيرة
- Basics
- Room
- NoSQL
- MySQL
- Online Realtime Database
• الواجب:
- CRUDS System
■ بعدها تتعلم kotlin و تطبق عليها
- Basics
- OOP
- Data Structure
- Algorithms
• الواجب:
- CRUDS System
- بعدها تتعلم andriod studio بلغة kotlin و xml و تطبق عليهم ، بعدها تتعلم تنشئ مشاريع صغيرة
- Basics
- Room
- NoSQL
- MySQL
- Online Realtime Database
• الواجب:
- CRUDS System
- بعدها تتعلم ازاي تستخدم لغة java و kotlin مع بعض في android studio لعمل مشاريع، و بعدها تنشئ مشاريع سواء كانت بلغة java او kotlin و بعدها تجمع افكار عشان تطور مشاريع وحدك بعد ما تتعلم تطوير مشاريع و تبدأ حياتك في مرحلة التدريب الذاتي
- بعدها خلاص نقدر كدا نقول انك بقيت Junior 🤝🏻💙
*/
Repost from نصائح و استشارات برمجية
• مجال التطبيقات مجال واسع بيضم نوعين:
- Native
- Cross-Platform
دي مقارنة بسيطة بينهم ⬇️
t.me/Software_Consulting/644
طبعا كل شئ و له استخدامة
• تطبيقات ال Cross-Platform بتضم الاتي ⬇️
- Flutter, Dart
- MAUI, C#
- React Native, JavaScript
- Xamarin, C#
للمعلومة، React Native من نوع Cross-Platform، كلمة native هى مجرد شئ تابع للاسم فقط لا اكثر ولا يمد لنوع ال Native بأي صلة
• تطبيقات ال Native بتضم الاتي ⬇️
• Android:
- Android Studio, Java, Kotlin, XML
• IOS:
- (UIKit || SwiftUI), Swift, Objective C
• Desktop:
- Windows Form, C#
- WPS, C#
◆ طبعاً مش شرط يكون دول بس هما كل الانواع، انا ذكرت اشهر التقنيات الخاصة بالمجالات اللي تم ذكرها فقط.
تعرفون برامج تساعد لانشاء تطبيق>عندي مشروع تخرج ومشروعي انشاء تطبيق اللي يعرف ياليت يفيديني
طالب منك تجيبي عدد ايام كل شهر لانه طبعا الاشهر عدد ايامهم بيختلفوا في اشهر بيكونوا 30 يوم و في اشهر بيكونوا 31 و في اشهر بيكونوا 28 و 29 يوم فا طالب منك لما المستخدم يدخل شهر معين تطلع النتيجة و تكون مستخدم switch
// دالة main تحتوي على القائمة الرئيسية للتفاعل مع المستخدم
int main()
{
while (true)
{
// عرض الخيارات الممكنة للمستخدم
cout << "Choose operation:\n"
<< "1. Append\n"
<< "2. Prepend\n"
<< "3. Insert After\n"
<< "4. Delete from Front\n"
<< "5. Delete from End\n"
<< "6. Delete After\n"
<< "7. Display\n"
<< "8. Exit\n";
int choice, value, key;
cin >> choice;
// تنفيذ العملية المختارة
switch (choice)
{
case 1:
cout << "Enter value to append: ";
cin >> value;
insert_from_back(value);
break;
case 2:
cout << "Enter value to prepend: ";
cin >> value;
insert_from_back(value);
break;
case 3:
cout << "Enter key after which to insert: ";
cin >> key;
cout << "Enter value to insert: ";
cin >> value;
insertpos(key, value);
break;
case 4:
delete_front();
break;
case 5:
delete_back();
break;
case 6:
cout << "Enter key after which to delete: ";
cin >> key;
deletpos(key);
break;
case 7:
display();
break;
case 8:
return 0;
default:
cout << "Invalid choice\n";
}
}
}• دا الشرح مع تصحيح الخطأ و حذف التعليق ↓
#include <iostream>
#include <cmath>
#include <string>
#include <algorithm>
#include <fstream>
#include <utility>
#include <vector>
#include <iterator>
using namespace std;
// تعريف هيكل العقدة
struct node
{
int item;
node *next;
};
// متغير لتتبع عدد العقد في القائمة المرتبطة
int counter = 0;
// إعلان عقدة الرأس
node *head;
// إدراج عقدة من الجهة الأمامية للقائمة
void insert_from_front(int item)
{
// إنشاء عقدة جديدة
node *newnode = new node;
newnode->item = item;
newnode->next = NULL;
// إذا كانت القائمة فارغة، قم بتعيين العقدة الجديدة كرأس
if (head == NULL)
{
head = newnode;
}
else
{
// إذا لم تكن القائمة فارغة، ضع العقدة الجديدة في الجهة الأمامية وقم بتحديث الرأس
newnode->next = head;
head = newnode;
}
counter++;
}
// إدراج عقدة من الجهة الخلفية للقائمة
void insert_from_back(int item)
{
// إنشاء عقدة جديدة
node *newnode = new node;
newnode->item = item;
newnode->next = NULL;
// إذا كانت القائمة فارغة، قم بتعيين العقدة الجديدة كرأس
if (head == NULL)
{
head = newnode;
}
else
{
// إذا لم تكن القائمة فارغة، ابحث عن العقدة الأخيرة وضع العقدة الجديدة بعد العقدة الأخيرة
node *t = head;
while (t->next != NULL)
{
t = t->next;
}
t->next = newnode;
newnode->next = NULL;
}
counter++;
}
// إدراج عقدة في موقع محدد
void insertpos(int pos, int element)
{
// إذا كان الموقع هو الجهة الأمامية، قم بإدراج من الجهة الأمامية
if (pos == 1)
{
insert_from_front(element);
}
// إذا كان الموقع غير الجهة الأمامية، ابحث عن الموقع وقم بإدراج العقدة في هذا الموقع
else if (pos > 1)
{
node *newnode = new node;
newnode->item = element;
node *f = head;
node *p = f;
int i = 1;
while (i < pos)
{
p = f;
f = f->next;
i++;
}
p->next = newnode;
newnode->next = f;
counter++;
}
}
// حذف العقدة من الجهة الأمامية
void delete_front()
{
// إذا كانت القائمة فارغة، قم بطباعة رسالة خطأ
if (head == NULL)
{
cout << "linked list under flow\n";
}
// إذا كانت هناك عقدة واحدة فقط، قم بحذفها وقم بتحديث الرأس
else if (counter == 1)
{
delete head;
head = NULL;
counter--;
}
// إذا كانت هناك أكثر من عقدة، قم بحذف العقدة الجديدة من الجهة الأمامية وقم بتحديث الرأس
else
{
node *temp = head;
head = head->next;
delete temp;
counter--;
}
}
// حذف العقدة من الجهة الخلفية
void delete_back()
{
// إذا كانت القائمة فارغة، قم بطباعة رسالة خطأ
if (head == NULL)
{
cout << "linked list under flow\n";
}
// إذا كانت هناك عقدة واحدة فقط، قم بحذفها وقم بتحديث الرأس
else if (counter == 1)
{
delete head;
head = NULL;
counter--;
}
// إذا كانت هناك أكثر من عقدة، قم بالبحث عن العقدة قبل العقدة الأخيرة وحذف العقدة الأخيرة وقم بتحديث الرأس
else
{
node *f = head;
node *p = f->next;
while (p->next != NULL)
{
f = p;
p = p->next;
}
f->next = NULL;
delete p;
counter--;
}
}
// حذف العقدة من موقع محدد
void deletpos(int pos)
{
// إذا كان الموقع هو الجهة الأمامية، قم بحذف من الجهة الأمامية
if (pos == 1)
{
delete_front();
}
// إذا كان الموقع غير الجهة الأمامية، ابحث عن الموقع وقم بحذف العقدة في هذا الموقع
else if (pos > 1 && pos <= counter)
{
node *f = head;
node *p = f;
int i = 1;
while (i < pos)
{
p = f;
f = f->next;
i++;
}
p->next = f->next;
delete f;
counter--;
}
}
// عرض محتوى القائمة المرتبطة
void display()
{
node *cur = head;
while (cur != NULL)
{
cout << cur->item << " ";
cur = cur->next;
}
cout << "\n";
}
Available now! Telegram Research 2025 — the year's key insights 
