عالم برمجةوتقنية الحاسوب C. P. W
740 subscribers
496 photos
55 videos
260 files
480 links
عالم الحاسوب برمجه وتقنيه وتطوير شرح كل ما يتطلب في مجال علوم الحاسوب والبرمجة
https://t.me/programming_C_w
قنات الجرافيكس @l_d_gh
#Digitalmarketing
#programming
#AI #CPA
#learn
التواصل معي @Eng_sharaf1
Download Telegram
نطاق المتغيرات في جافا .
المتغيرات في جافا وفي اغلب لغات البرمجة لديها نطاق ، نستطيع استخدام هذه المتغيرات ضمن هذا النطاق فقط ولا يمكن الوصول الى المتغيرات من خارجه .
 int variable = 0;
 System.out.print(variable);
بدون اي مشاكل يمكن طباعه قيمه المتغير لانه بنفس النطاق ، اي بشكل اصح يمكن القول اننا استطعنا الوصول الى المتغير ، لكن لاحظ الكود التالي :
int variable = 0;
System.out.print(variable);
if(true){
    System.out.print(variable);
}
في هذه الامر الذي داخل الشرط يعتبر في نطاق آخر ولكن يمكنه الوصول الى المتغير لان نطاق الشرط هو ضمن النطاق الكلي للمتغير .
الشرط لم يكن مهما ، نحن فقط كنا بحاجه لحجز نطاق جديد ويمكننا الاستغناء عن الشرط وحجز نطاق بدون شرط وسيصبح الكود السابق كالتالي :
int variable = 0;
System.out.print(variable);
{
    System.out.print(variable);
}
حسنا ، متى يكون المتغير لا يمكن الوصول اليه ، لاحظ الكود التالي :
int variable = 0;
System.out.print(variable);
{
    int localVariable = 0;
    System.out.print(localVariable);
}

System.out.print(localVariable);
هذا الكود سيسبب خطا ، والسبب اننا حاولنا الوصول الى المتغير localVariable من خارج نطاقه وهذا امر غير مقبول ، حيث ان نطاقه ينتهي بانتهاء القوس المعكوف } .

حسناً عرفنا الان نطاق المتغيرات ، لكن ما الفائدة من استخدام النطاقات ؟ أليس امراً سيئاً ان اُعَرِف متغير وتنتهي حياته قبل انتهاء البرنامج ؟
حسناً انظر المثال التالي وستغير رأيك
int x = 5;
int y = 10;
{
    int temp = x;
    x = y;
    y = temp;
}
هل استطعت ان تعرف ما وظيفة الكود السابق ؟ لا تكمل القراءة وحاول معرفة ذلك .

نعم احسنت ، الكود يقوم بتبديل قيم المتغيرات x , y ، ولكن ماذا عن المتغير temp ، هنا سيساعدنا هذا المتغير على تبديل القيم ثم بعدها سيتم حذفه من الرام لاننا لم نعد بحاجته ، هكذا يتم الامر مع المتغير الشهير (i) في حلقة التكرار for يموت فور انتهاء الحلقة لاننا لم نعد بحاجته .

اذاً يفضل ان نقوم بقتل المتغيرات اذا لم نعد بحاجتها ، ولا تقلق ، فقتل المتغيرات حلال .
#شرح
البوابات المنطقية وعلاقتها بالبرمجة .
تعرفنا اليوم في احد المقررات على مفهوم البوابات المنطقية في الدوائر الالكترونية ان صح التعبير ، وكانت تتمحور حول ثلاث بوابات رئيسية وهي (not , and , or) واربع بوابات اخرى يمكن اشتقاقها من هذه البوابات .

هذه البوابات من ناحية تسميتها ووظيفتها تشبه الى حد كبير بعض الوظائف في لغات البرمجة ، وهي العمليات المنطقية (&& , || , !) .
والامر الاكثر تشويقاً هو ان هذه العمليات المنطقية تقوم بالتحكم المباشر بالبوابات المنطقية في اللغات منخفظة المستوى ، اما في حلتنا مع جافا فالامور مختلفة قليلاً فلا يوجد تحكم مباشر بالهارد وير ولكن ما زال هناك عمليات منطقية تقوم بنفس العمل  . مثال للتوضيح :
int x = 3;
if(x < 5 && x > 0)
    System.out.print("X between 5 and 0");
هنا لدينا && تقوم بفحص صحة الشرطين .

ملاحظة : في لغات برمجية كثيرة يتم اعتماد القيمة true على انها 1 والقيمة false على انها 0 .
وايضاً في لغات اخرى يمكنك كتابة and بشكل مباشر بدلاً من && و or بدلا من || .

#معلومة
◂ عناوين مهمة جداً في البرمجة، يجب تعلم جزء كبير منها في الزمن الحالي
1. Basics
2. Testing
3. Handling
4. OOP (Object Oriented Programming)
5. Data Structures
6. Algorithms
7. DSA (Data Structures and Algorithms)
8. Database
9. Network
10. OOD (Object Oriented Design)
11. Design Patterns
12. Solid Principles
13. Best Practices

◂ اسماء مواقع لحل المسائل والمشكلات بلغات البرمجة
1. Codeforces
2. LeetCode
3. HackerRank
4. TopCoder
5. AtCoder
6. HackerEarth
7. Codewars
8. W3Schools
9. W3Resource
10. Satr
11. CoderHub
متغيرات باسماء مختلفة !
لدينا انواع كثيرة من المتغيرات ، دعوني اتحدث عن جافا ، في جافا هناك تسميات مختلفة تطلق على المتغيرات لكن متى نستعملها وما الفرق بينها .

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

متغير : هذا المصطلح يمكن ان نطلقه على اي متغير في اي مكان لانه الاسم العام .
باراميتر : هذا المصطلح يطلق على المتغير الذي تستقبله الدالة ، كمثال :
void print(String text){
    System.out.print(text);
}
المتغير text في السطر الاول يسمى باراميتر .

وسيط/وسائط : هذا ليس متغير حقاً ، انما هي قيمة ، وتحديداً القيمة التي تُرسل الى الدالة ، كما في الكود السابق السطر الثاني ، حيث قمنا بارسال قيمة المتغير text الى دالة الطباعة .

خاصية/حقل :  هذه التسمية تطلق على المتغيرات التي تُعرف داخل الفئة ، مثال
class Person{
    String name;
    int age;
}
هنا يمكن تسمية name و age انهما حقلين او خاصيتين للفئة Person .

عضو : هذه التسمية تشمل المتغيرات والدوال ، حيث تعني اي متغير او دالة تابع لفئة معينه كالتالي :
class Person{
    String name;
    int age;
    void setAge(int newAge){
        age = newAge;
    }
}
كلاً من name , age , setAge يعتبر اعضاء للفئة Person .

كما ان هناك تسمية شائعة وهي "طريقة" وتعني دالة كما يمكن تسمية الدالة "وظيفة" .

تجدونها كثيراً في المراجع العربية .
#شرح
لإنشاء واجهة ويب تحتوي على زرين (تسجيل الدخول والتسجيل) ونقل المستخدم إلى الصفحة الرئيسية (Homepage) عند إدخال المدخلات بشكل صحيح، يمكنك استخدام HTML وJavaScript. إليك مثال بسيط على كيفية إنشاء ذلك:

### 1. HTML - واجهة المستخدم

<!DOCTYPE html>
<html lang="ar">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>واجهة المستخدم</title>
<style>
body {
font-family: Arial, sans-serif;
}
.container {
margin: 20px;
}
input {
margin: 10px 0;
display: block;
}
</style>
</head>
<body>
<div class="container">
<h2>تسجيل الدخول أو التسجيل</h2>
<input type="text" id="username" placeholder="اسم المستخدم">
<input type="password" id="password" placeholder="كلمة المرور">
<button onclick="login()">تسجيل الدخول</button>
<button onclick="register()">تسجيل</button>
</div>

<script>
function login() {
// تحقق من المدخلات
const username = document.getElementById("username").value;
const password = document.getElementById("password").value;

// يمكنك إضافة شروط تحقق للمدخلات هنا إذا لزم الأمر

// إذا كانت المدخلات صحيحة، انتقل إلى الصفحة الرئيسية
if (username && password) {
window.location.href = "homepage.html"; // استبدل بـ الرابط الصحيح
} else {
alert("يرجى إدخال اسم المستخدم وكلمة المرور بشكل صحيح!");
}
}

function register() {
// تحقق من المدخلات أو قراءة المدخلات إذا لزم الأمر
const username = document.getElementById("username").value;
const password = document.getElementById("password").value;

// يمكنك إضافة شروط تحقق للمدخلات هنا إذا لزم الأمر

// إذا كانت المدخلات صحيحة، انتقل إلى الصفحة الرئيسية
if (username && password) {
window.location.href = "homepage.html"; // استبدل بـ الرابط الصحيح
} else {
alert("يرجى إدخال اسم المستخدم وكلمة المرور بشكل صحيح!");
}
}
</script>
</body>
</html>
### 2. الصفحة الرئيسية (homepage.html)

قم بإنشاء ملف جديد باسم homepage.html يحتوي على المحتوى الذي تريده في الصفحة الرئيسية:

<!DOCTYPE html>
<html lang="ar">
<head>
<meta charset="UTF-8">
<title>الصفحة الرئيسية</title>
</head>
<body>
<h1>مرحبًا بك في الصفحة الرئيسية!</h1>
</body>
</html>
### الشرح:

- في الكود أعلاه، قمنا بإنشاء واجهة بسيطة تتضمن حقلين لإدخال اسم المستخدم وكلمة المرور وزرين لتسجيل الدخول والتسجيل.
- عند النقر على زر "تسجيل الدخول" أو "تسجيل"، يتم استدعاء دالة login() أو register()، والتي تتحقق من أن المدخلات ليست فارغة ثم تنقل المستخدم إلى homepage.html.
- تأكد من أن صفحة homepage.html موجودة في نفس المجلد مع الملف الذي يحتوي على واجهة المستخدم.

يمكنك إضافة مزيد من التحقق والشروط حسب احتياجات مشروعك. إذا كان لديك أي استفسارات إضافية، فلا تتردد في طرحها!
العدو الصهيوني احرق ورقة تقنية ارهابية خبيثه كان يخبؤها دون تحقيق الهدف الاكبر الذي بحثوه عنه
لا مفر بعد اليوم من الحرب الشاملة ، حرب وجودية بكل معنى الكلمة
دعواتنا بالشفاء العاجل للجرحى والرحمه للشهداء في تلك الارض التي لم تترك غزة وحيده".
👍2
#معلومة_عالماشي 💻📱💜
Dart
🔴 هي لغة برمجة تعمل على مترجم (JIT) ومصدر مفتوح، تستخدم للبرمجة العامة وبرمجة تطبيقات الويب والهاتف المحمول وسطح المكتب والخوادم.

🔴 صممت لتوفير تجربة بناء جديدة للمبرمجين، بفضل العديد من الميزات الرائعة التي توفرها كالأداء الممتاز والتعددية في الإدارة والمخصصة للأداء.

🔴 تم إنشاؤها من قبل شركة #Google على سبيل المثال للتعامل مع بناء تطبيقات الويب بأداء ممتاز،
وتستخدم أيضاً في تطوير تطبيقات الأجهزة المحمولة مثل نظام التشغيل #Flutter الذي يعتمد عليها. علاوة على ذلك، تستخدم #Dart في تطبيقات الخادم تمامًا مثل Node.js.

🔴تتميز Dart بالعديد من الميزات الرائعة مثل:

1️⃣مترجم JIT يفتح برامج Dexy في ثانية واحدة (leapfrogging).

2️⃣توفير نوع القسطرة (type inference) لإضفاء طابع قوي النوع على اللغة.

3️⃣منهج Async/await المستوحى من #C يتيح للمبرمجين كتابة الأكواد المؤرشفة عديمة الحالة بأسلوب يشبه الأكواد المتزامنة بطريقة أنظف وأكثر وضوحًا.

4️⃣توفير العديد من أدوات التنمية المثيرة للاهتمام مثل واجهة برمجة تطبيقات Eclipse، و Visual Studio Code، و IntelliJ

🔴أخيراً، تعد #Dart لغة شائعة لاستخدامها في تطوير تطبيقات الويب والموبايل وبرمجة الخادم، وتتميز بسهولة التعلم والاستخدام وتوفير العديد من الميزات المناسبة لبناء تطبيقات مثيرة وقوية بشكل لا يصدق.
👍1
🙃#include <iostream>
#include <cmath>

using namespace std;

// هذه الدالة تحسب قيمة الجذر التربيعي لعدد غير سالب
double calculateSquareRoot(double num) {
    if (num >= 0)
        return sqrt(num);
    else
        return -1; // رقم سالب يعني أنه لا يوجد جذر حقيقي
}

// هذه الدالة تقوم بحساب جذري المعادلة الثانية
void calculateQuadraticRoots(double a, double b, double c) {
    double discriminant = b * b - 4 * a * c;
   
    if (discriminant > 0) {
        // لدينا جذرين حقيقيين
        double root1 = (-b + calculateSquareRoot(discriminant)) / (2 * a);
        double root2 = (-b - calculateSquareRoot(discriminant)) / (2 * a);
       
        cout << "لدينا جذرين حقيقيين:" << endl;
        cout << "الجذر الأول: " << root1 << endl;
        cout << "الجذر الثاني: " << root2 << endl;
    } else if (discriminant == 0) {
        // لدينا جذر واحد متكرر
        double root = -b / (2 * a);
       
        cout << "لدينا جذر واحد متكرر:" << endl;
        cout << "الجذر: " << root << endl;
    } else {
        // ليس لدينا أي جذر حقيقي
        cout << "لا يوجد جذر حقيقي للمعادلة." << endl;
    }
}

int main() {
    double a, b, c;
   
    cout << "أدخل قيمة a: ";
    cin >> a;
   
    cout << "أدخل قيمة b: ";
    cin >> b;
   
    cout << "أدخل قيمة c: ";
    cin >> c;
   
    calculateQuadraticRoots(a, b, c);
   
    return 0;
}
#include <iostream>
#include <cstdlib>
#include <ctime>

int main() {
    // ضبط بذرة العشوائية باستخدام الوقت الحالي
    srand(time(0));

    // إنشاء مصفوفة بحجم 10
    const int size = 10;
    int arr[size];

    // ملء المصفوفة بالقيم العشوائية
    for (int i = 0; i < size; i++) {
        arr[i] = rand();
    }

    // طباعة المصفوفة
    std::cout << "المصفوفة: ";
    for (int i = 0; i < size; i++) {
        std::cout << arr[i] << " ";
    }
    std::cout << std::endl;

    return 0;
}
#include <iostream>
#include <algorithm>

int main() {
    // إنشاء مصفوفة بالأعداد
    int arr[] = {2, 5, -1, 4, 100};
    const int size = sizeof(arr) / sizeof(arr[0]);

    // ترتيب المصفوفة
    std::sort(arr, arr + size);

    // طباعة المصفوفة
    std::cout << "المصفوفة المرتبة: ";
    for (int i = 0; i < size; i++) {
        std::cout << arr[i] << " ";
    }
    std::cout << std::endl;

    return 0;
}
#include <iostream>

int main() {
    // إنشاء مصفوفة بالأعداد
    int arr[] = {2, 5, -1, 4, 100};
    const int size = sizeof(arr) / sizeof(arr[0]);

    // طباعة الأعداد الزوجية والفردية
    std::cout << "الأعداد الزوجية: ";
    for (int i = 0; i < size; i++) {
        if (arr[i] % 2 == 0) {
            std::cout << arr[i] << " ";
        }
    }
    std::cout << std::endl;

    std::cout << "الأعداد الفردية: ";
    for (int i = 0; i < size; i++) {
        if (arr[i] % 2 != 0) {
            std::cout << arr[i] << " ";
        }
    }
    std::cout << std::endl;

    return 0;
}
👍1
لقد متنا عدة مرات الآن ولا يسعنا إلا أن نتساءل لماذا لا نزال نهتم.
ب js سابقا كان يستخدمون var لتعريف متغير او object
var a=1

بالوقت الحالي يستخدمون const و let والافضل والأكثر استخداما هي const

const a=1
👍1
#معلومة_عالماشي
توضح هذه الصورة مقارنة بين أمان كل من Apple Pay و Google Pay في عملية الدفع الإلكتروني، حيث تشرح الخطوات التي تتبعها كل خدمة لمعالجة الدفعات بطريقة آمنة.

Apple Pay:

1. المعلومات الائتمانية (Credit card info): يتم إدخال معلومات بطاقة الائتمان الخاصة بالمستخدم.


2. تمرير المعلومات إلى الشريحة (Pass credit card info): المعلومات يتم إرسالها إلى شريحة مدمجة في جهاز Apple (ممثلة بالصورة باللون الأسود داخل الهاتف).


3. تخزين المعلومات على الشريحة (Store to chip): يتم تخزين المعلومات على الشريحة وتوليد رقم حساب خاص بالجهاز يُسمى Device Account Number (DAN).


4. إرسال DAN إلى خادم التجارة الإلكترونية (Send DAN to E-commerce server): يتم إرسال DAN إلى الخادم الذي يدير عمليات الشراء (خادم التجارة الإلكترونية).


5. إرسال DAN إلى البنك (Send DAN to bank): يقوم الخادم بإرسال DAN إلى البنك لإتمام عملية الدفع.



Google Pay:

1. المعلومات الائتمانية (Credit card info): يتم إدخال معلومات بطاقة الائتمان الخاصة بالمستخدم.


2. تخزين المعلومات على Google Server (Store info to Google server): يتم تخزين المعلومات على خادم Google.


3. إرسال الرمز المولد (Payment token): يتم توليد رمز دفع (Payment Token) من خلال خادم Google.


4. إرسال رمز الدفع إلى خادم التجارة الإلكترونية (Send Payment Token to E-commerce server): يتم إرسال الرمز إلى خادم التجارة الإلكترونية الذي يدير عملية الشراء.


5. إرسال الرمز إلى البنك (Send payment token to bank): يقوم الخادم بإرسال الرمز إلى البنك لإتمام عملية الدفع.


6. تمرير المعلومات المالية إلى البنك (Send card info to bank): يتم تمرير المعلومات المالية إلى البنك للتحقق وإتمام العملية.



الخلاصة:

Apple Pay يعتمد على استخدام شريحة داخل الجهاز لتخزين البيانات وتوليد رقم حساب خاص بالجهاز (DAN).

Google Pay يعتمد على خوادم Google لتخزين المعلومات وتوليد رموز دفع آمنة يتم استخدامها بدلاً من البيانات الفعلية.


كلتا الخدمتين تسعيان إلى تأمين عمليات الدفع عبر الإنترنت عبر تقنيات مختلفة تضمن الخصوصية ومنع الوصول غير المصرح به إلى معلومات البطاقة.
👍1
لعمل Extension في Visual Studio Code (VSCode) وتقديمه لشخص آخر يستخدم VSCode، يمكنك اتباع الخطوات التالية:

1. إعداد بيئة التطوير

تأكد من أنك قمت بتثبيت Node.js و npm على جهازك.

قم بتثبيت Yeoman و VSCode Extension Generator عبر الأوامر التالية:

npm install -g yo generator-code


2. إنشاء Extension جديد

افتح الـ Terminal (أو موجه الأوامر) ثم قم بتشغيل الأمر التالي لإنشاء Extension جديد:

yo code

ستقوم الأداة بسؤالك عدة أسئلة مثل اسم الامتداد، الوصف، وواجهة البرمجة. يمكنك اختيار نوع الامتداد الذي تريد تطويره (JavaScript أو TypeScript).


3. تطوير Extension

بعد إنشاء المشروع، سيتم إنشاء مجموعة من الملفات الأساسية تلقائيًا. قم بفتح المشروع في VSCode لبدء التعديل على الملفات.

الملف الرئيسي الذي ستعمل عليه هو extension.js أو extension.ts حسب اختيارك.

أضف الأكواد التي تريدها لتخصيص الامتداد.


4. تشغيل واختبار الـ Extension

لاختبار الامتداد الذي قمت بإنشائه، يمكنك فتح command palette في VSCode (اضغط Ctrl+Shift+P)، ثم اكتب Run Extension لتشغيله في نافذة جديدة.


5. تجميع ونشر الـ Extension

بعد الانتهاء من التطوير والاختبار، يمكنك نشره ليكون متاحًا لشخص آخر أو على متجر VSCode.


نشر الامتداد محليًا:

إذا كنت تريد إرسال الـ extension مباشرة لشخص آخر دون نشره في متجر، قم بإنشاء vsix (ملف الامتداد) باستخدام الأمر التالي داخل مجلد المشروع:

vsce package

سيقوم الأمر بإنشاء ملف .vsix. يمكنك إرسال هذا الملف للشخص الآخر، ويمكنه تثبيته محليًا عبر:

1. فتح command palette في VSCode.


2. كتابة Extensions: Install from VSIX....


3. اختيار ملف الـ .vsix الذي تم إرساله.




نشر على متجر VSCode:

لإنشاء حساب ونشر الامتداد على VSCode Marketplace، يجب أن تقوم بإعداد حسابك على Visual Studio Marketplace.

ثم استخدم الأمر:

vsce publish


الخلاصة

بتطوير Extension في VSCode، يمكنك إنشاء أدوات مفيدة لمساعدتك ومساعدة الآخرين. إذا كنت ترغب في توزيعه يدويًا، يمكن للشخص الآخر تثبيته بسهولة باستخدام ملفات .vsix. أما إذا كنت تريد أن يكون متاحًا على مستوى أوسع، يمكنك نشره في VSCode Marketplace.
👍1
لربط ملف CSS بملف HTML في Visual Studio Code (VS Code)، يمكنك اتباع الخطوات التالية:

1. إنشاء ملف HTML وملف CSS:
- افتح VS Code وأنشئ ملف HTML جديد (مثل index.html) وملف CSS جديد (مثل styles.css).

2. إضافة رابط CSS إلى ملف HTML:
- في ملف HTML، استخدم وسم <link> في قسم <head> لربط ملف CSS. يجب أن يكون الشكل كالتالي:

<!DOCTYPE html>
<html lang="ar">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>صفحة تجريبية</title>
<link rel="stylesheet" href="styles.css"> <!-- ربط ملف CSS هنا -->
</head>
<body>
<h1>مرحباً بك في صفحة التجربة!</h1>
</body>
</html>


3. كتابة أكواد CSS:
- افتح ملف styles.css وابدأ بكتابة أنماط CSS. على سبيل المثال:

body {
background-color: lightblue;
font-family: Arial, sans-serif;
}

h1 {
color: darkblue;
text-align: center;
}


4. فتح ملف HTML في متصفح:
- يمكنك فتح ملف index.html في متصفح الويب لرؤية التغييرات. يمكنك القيام بذلك عن طريق النقر بزر الفأرة الأيمن على الملف واختيار "Open with Live Server" إذا كان لديك هذا الامتداد مثبتًا، أو يمكنك فتحه مباشرةً من المتصفح.

بهذا الشكل، سيكون لديك ملف HTML مرتبط بشكل صحيح بملف CSS، وستتمكن من رؤية الأنماط المطبقة على العناصر الموجودة في الصفحة. إذا كان لديك أي استفسارات أخرى، فلا تتردد في طرحها!
👍2
يا الله نبدأ على بركة الله باساسيات الجافا اللي تحتاجونها حاليًا وهي

scanner

if

for
وراح اسوي شرح على طريقة المقارنة ويَّ c++ علمود تسهللكم باحسن الطرق الممكنة

طبعا بالc++ اذا جنتم تريدون تسوون input, output فتحتاجون المكتبة الثابتة iostream اللي اظن ماكو برنامج العام سويتوه العام اذا ماجان اله علاقة بالمكتبة هاي
for example:
#include<iostream>
using namespace std;

int main()
{
cout << "bya bya c++!" << endl;
return 0;
}
اما بالجافا الوضع مختلف الoutput مايحتاج استدعاء تعلميات او مثل ما انتم تعرفونها "مكتبة"
"هنا مراح تعتبر مكتبة وانما شوي تختلف عنها بس بعدين يتوضح كل شيء"

المهم الoutput مباشرة تكدر تسوونه مثل

public class Main {
public static void main(String[] args) {
System.out.println("Ah, Here we go again");
}
}
ولكن هنالك شيء اسمه سكانر اللي تكدرون تكولون حاليًا انه الinput مالت الجافا فهاي لازم تستدعا قبل البرنامج مثل ماتستدعي المكتبة بc++

فيكون استدعائها هكذا
for example:
import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("What's your name?");
String name = scanner.nextLine();
System.out.println("Hello " + name);
}
}
👍1
هنا اول شيء استدعينا تعليمة السكانر
** الS لازم كابتل غيرها البرنامج راح ينفجر ويكلك شجاي تسوي
انوب اذا تدخل للبرنامج راح نلكا

Scanner scanner = new Scanner(System.in);
اولا الScanner الاولى هاي تعتبر class وثابته مايمكنك تغيرها ولا تعدلها ولا شيء لانها مخصصة للقراءة والبرنامج من يشوفها يكول
حلو هذا جاي يطلب قراءة شيء ما

الScanner الثانية اللي بالحقل هي اختيارية حتة تكدر تسميها
Car
Animal
Human
Students
Blah blah blah...
وهو اسم متغير الكائن الجاي تشتغله


الnew scanner هاي تعليمة كلش مهمة وحلوة
مثال توضيحي

import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);

System.out.println("How old are you?");
int age = scanner.nextInt();

System.out.println("What's your name?");
String name = scanner.next();

System.out.println("Hello " + name + ", you are " + age + " years old.");

scanner.close();
}
}
لحد ينظرله انه كود مطول بس تقراونه راح تشوفوه كلش بسيط ومجرد برنامج يقوم بقراءة الاسم والعمر ومابيه شيء
لكن بالتركيز من قرات المتغير الصحيح حطيت
int age = scanner.nextInt();
ومن قرات متغير string حطيت
String name = scanner.next();
فهنالك فروق بسيطة ولكن ممكن تخرب كودكم فركزوا عليها...
طبعا ال nextInt للinteger
int number = scanner.nextInt();
والnextLine للstring
String line = scanner.nextLine();
والnextDouble للdouble (البوينتات)
double decimalNumber = scanner.nextDouble();
والnext لوحدها للstring ايضا
String word = scanner.next();
والnextBoolean لل T, F(0,1)

boolean flag = scanner.nextBoolean();
for example:

import java.util.Scanner;

public class InputExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);

System.out.println("Enter an integer:");
int number = scanner.nextInt();
scanner.nextLine();

System.out.println("Enter a text:");
String text = scanner.nextLine();

System.out.println("Enter a decimal number:");
double decimalNumber = scanner.nextDouble();

System.out.println("Integer: " + number);
System.out.println("Text: " + text);
System.out.println("Decimal number: " + decimalNumber);

scanner.close();
}
}
اسف بس هذا شيء لازم تحفظونه
👍1
الخنزير يقول : اما نحن واما انتم
نقول له : نحن ثم نحن ونحن وستنتصر المقاومة يانيتناهو مهما طالت مدة الحرب ومهما توسعت ووصلت صدى المعارك والمواجهات
فنحن المستقبل وانتم ومشروعكم مع عملائكم سينتهي ويصبح فعل من الماضي باذن الله".