Entesar ElBanna

الأعضاء
  • المساهمات

    16
  • تاريخ الانضمام

  • تاريخ آخر زيارة

  • Days Won

    1

السُّمعة بالموقع

5 Neutral

2 متابعين

  1. أهلا هدى، الخوارزمية العامة لتبديل قيمة أي متغيّرين أو عنصرين لمصفوفة بأي نوع؛ فنحن بحاجة دائماً إلى متغير ثالث نستخدمه بشكل مؤقت حتى نتم من خلاله عملية التبديل. الآن، سنستخدم متغير ثالث إسمه temp لنتم من خلاله عملية التبديل. إذاً المتغير temp سيكون مجرد وسيط في عملية التبادل. كود جافا لخوارزمية التبديل العامة int A = 5; int B = 10; int temp; temp = B; // و التي تساوي 10 temp في المتغير B هنا وضعنا قيمة المتغير B = A; // و التي تساوي 5 B في المتغير A هنا وضعنا قيمة المتغير A = temp; // و التي تساوي 10 A في المتغير temp هنا وضعنا قيمة المتغير مرفق شرح الكود السابق كود جافا لتبديل قيم العنصرين الخامس والثالث بمصفوفة أحادية البعد class Replace { public static void main(String[] args) { int[] myArray = { 10, 20, 30, 40, 50 }; System.out.println ("العنصر الثالث قبل التبديل:" +myArray[2]+"\nالعنصرالخامس قبل ا لتبديل:" +myArray[4]); int temp = myArray[2]; myArray[2] = myArray[4]; myArray[4] = temp; System.out.println ("العنصر الثالث بعد التبديل:" +myArray[2]+"\nالعنصر الخامس بعد التبديل:" +myArray[4]); } } مصدر موقع هرماش بالتوفيق ...
  2. أهلا يزن تقريبا مساقات المستويين الثالث والرابع في تخصص هندسة البرمجيات هي هذة المساقات: -- في المستوى الثالث: الأتمتة والأسمبلي والشبكات وأنظمة التشغيل وجرافيك حاسوب وتحليل وتصميم الأنظمة ونظم قواعد البيانات وهندسة متطلبات البرمجيات والخوارزميات والجبر خطي -- وفي المستوى الرابع: إدارة البرمجيات وأمن المعلومات وتطوير ونمذجة البرمجيات وتصميم المترجمات واختبار البرمجيات بغض النظر عن طريقة سير الخطة الدراسية لهذة السنة والتي تليها، إلا إنك ستجد هنا مراجع لأغلب المساقات التي ذكرتها في الأعلى ... منها كتب ومنها مواقع ... Automation theory Assembly1 Assembly2 Operating systems Analysis and design of systems Database systems Software Requirements Engineering Software Management Information Security Software Testing1 Software Testing2 أتمنى أن تفيدك! ونفضل أيضاً أن تحدد لنا المساقات التي تريد أن تتقوى بها بالتحديد. بالتوفيق ...
  3. وعليكم السلام، يمكن أن تجعل لكل frame كلاس منفصلة وعند الضغط على زر Signup من خلال كلاس SignupFrame يتم إنشاء new object من كلاس LoginFrame. العملية ستتم من خلال إضافة ActionListener وبالعربية "مستمع الحدث" للزر المراد إجراء أحداث من خلالة كإظهار صفحة أخرى أو تنفيذ عملية حسابية أو استدعاء دالة أو حفظ معلومات بقاعدة البيانات أو أي شيئ تريد القيام به عند الضغط على هذا الزر. إذا أردت شرح ActionListener وطريقة إضافته للزر في Java GUI فستجده في هذا الفيديو بالعربية هنا المثال الذي طلبته مطبقاً باللطريقة السابقة import javax.swing.*; import javax.swing.table.DefaultTableModel; import java.awt.*; import java.awt.event.*; import java.util.*; class LoginFrame extends JFrame { private JTextField user,pass; private JLabel userL,passL; private JButton ok,cancel; public LoginFrame(){ super("Login"); setBounds(515,210,280,175); setLayout(null); user = new JTextField(); pass = new JTextField(); userL = new JLabel("User Name"); passL = new JLabel("Password"); ok = new JButton("Login"); cancel = new JButton("Cancel"); ok.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { System.exit(0); } }); cancel.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { System.exit(0); } }); add(user); add(pass); add(userL); add(passL); add(ok); add(cancel); userL.setBounds(20, 10, 120,30); user.setBounds(140, 10, 120,30); passL.setBounds(20, 60, 120,30); pass.setBounds(140, 60, 120,30); ok.setBounds(30, 110, 100,30); cancel.setBounds(150, 110, 100,30); setVisible(true); } public static void main (String[] args) { new SignUpFrame(); } } class SignUpFrame extends JFrame implements ActionListener{ JLabel title, idLabel, nameLabel, genderLabel, addressLabel, contactLabel; JTextField idField, nameField, genderField, addressField, contactField; JButton registerButton, exitButton; JRadioButton male, female; ButtonGroup bg; JPanel panel; String gender = ""; DefaultTableModel model; SignUpFrame() { setSize(300, 360); setLayout(null); title = new JLabel("Registration Form"); title.setBounds(60, 7, 200, 30); idLabel = new JLabel("ID"); idLabel.setBounds(30, 50, 60, 30); nameLabel = new JLabel("Name"); nameLabel.setBounds(30, 85, 60, 30); genderLabel =new JLabel("Gender"); genderLabel.setBounds(30, 120, 60, 30); addressLabel = new JLabel("Address"); addressLabel.setBounds(30, 155, 60, 30); contactLabel = new JLabel("Contact"); contactLabel.setBounds(30, 190, 60, 30); idField = new JTextField(); idField.setBounds(95, 50, 100, 30); nameField = new JTextField(); nameField.setBounds(95, 85, 100, 30); male = new JRadioButton("Male"); male.setBounds(95, 120, 60, 30); male.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { gender= "Male"; } }); female = new JRadioButton("Female"); female.setBounds(155,120, 70, 30); female.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { gender ="Female"; } }); bg = new ButtonGroup(); bg.add(male); bg.add(female); addressField = new JTextField(); addressField.setBounds(95, 155, 100, 30); contactField = new JTextField(); contactField.setBounds(95, 190, 100, 30); exitButton = new JButton("Exit"); exitButton.setBounds(25, 230, 80, 30); exitButton.addActionListener(this); registerButton = new JButton("Register"); registerButton.setBounds(110, 230, 100, 30); registerButton.addActionListener(this); add(title); add(idLabel); add(nameLabel); add(genderLabel); add(addressLabel); add(contactLabel); add(idField); add(nameField); add(male); add(female); add(addressField); add(contactField); add(exitButton); add(registerButton); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setResizable(false); setVisible(true); } public void actionPerformed(ActionEvent ae) { if(ae.getSource()==registerButton)new LoginFrame(); else System.exit(0); } } بالتوفيق...
  4. أهلا بك، عندما تقوم بعرض بيانات مكتوبة باللغة العربية من قاعدة البيانات MySQL وتتفاجأ بظهور رموز و علامات استفهام، المشكلة في هذه الحالة هو عدم تعرف المتصفح على نوعية الترميز أو أن هذه البيانات لم يتم حفظها بطريقة صحيحة في قاعدة البيانات، والحل هو جعل قاعدة البيانات بترميز عام. لتفادي هذا المشكل منذ البداية، يجب علينا أن نتصرف على هذا النحو: عند الدخول على واجهة تدبير قاعدة البيانات، تأكد من أن الترميز لدى السيرفر هو ترميز عام utf8_general_ci. عند إنشاء قاعدة بيانات أيضا، اختر الترميز العام utf8_general_ci. يمكنك كذلك إنشائها من خلال الاستعلام SQL: CREATE DATABASE database_name DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; هكذا يطبق الترميز العام على الجداول والحقول فيصبح الترميز بالنسبة للجداول و الحقول عاما utf8_general_ci. ولتعديل ترميز قاعدة بيانات موجودة مسبقا: لتغيير ترميز قاعدة البيانات: ALTER DATABASE database_name CHARACTER SET utf8 COLLATE utf8_general_ci; لتغيير ترميز الجداول: ALTER TABLE table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci; لتغيير ترميز الحقول: ALTER TABLE table_name MODIFY column_name VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci; هذا من جهة قاعدة البيانات لكن بقيت خطوة أخيرة يتم فيها تحديد الترميز الخاص بمعالجة بيانات الاتصال، وهي أن نضيف بعض الاستعلامات SQL إلى ملف الإتصال بهذا الشكل: $srv = 'localhost'; $db = 'test'; $user = 'root'; $pwd = ''; try { $bdd = new PDO('mysql:host='.$srv.';dbname='.$db,$user,$pwd); //تحديد الترميز الخاص بمعالجة بيانات الاتصال $bdd->query("SET NAMES utf8"); $bdd->query("SET CHARACTER SET utf8"); } catch (Exception $e) { die('error !'.$e->getMessage()); } أنصح بتحديد الترميز utf8_general_ci لحظة إنشاء قاعدة البيانات، لكي يطبق الترميز العام على كل الجداول وحقولها فترث بذلك الترميز من قاعدة البيانات. بالتوفيق ...
  5. أهلا إبتهال، لا يجب عليكي أبداً تعلم رفع التصميم على تطبيق الموبايل ولا تطبيق الديسكتوب ولا تطبيق الويب. لأنة في الأساس المبرمجين يتعاملون مع برامج مختلفة تماما عن برامج منسقي واجهات المستخدم ... فلا يرفع التصميم على التطبيقات وإنما ينفذ بلغة البرمجة المناسبة لإنشاء واجههات مماثلة تماما لما تم تصميمة تربط مباشرة مع الأكواد البرمجية المكونة للتطبيق. ما يحصل فعليا وما هو متعارف علية أن يقوم مصمم UI بتنسيق جميع واجهات التطبيق ثم يعرضه للمبرمج كما هو أو يقطعه كصور منفردة ليسهل على مطور التطبيق أن يبرمج هذا التصميم صورة صورة، ويمكن إدراج أحد الصور إن لزم داخل التطبيق بحيث تكون بامتداد صورة لا أن يتم تركيب التصميم كاملا مع enteractions الخاصة ب UI . بالتوفيق...
  6. أهلا بك، فيما يلي أحد طرق بناء دالة تقوم بطباعة أرقام العدد بالمعكوس. public int ReverseInt(int num) { int result=0; while (num>0) { result = result*10 + num%10; num /= 10; } Console.Write("Number in reverse order: " + result); return result; } لاحظ في البداية أن الأسهل إستخدام حلقة التكرار من نوع while وليس for لكن إذا أردت التغيير فلن تحتاج إلا لاستبدال جملة while فقط بجملة for for(int i=0;num>0;i++) في كلا الحالتين لهذة الطريقة سيطبع الناتج خارج حلقة التكرار. أبسط طريقة لفهم الدالة السابقة هي أن نجربها على عدد إفتراضي، لنفترض أننا سندخل العدد 123، المتوقع من الدالة أن تطبع العدد بالمعكوس 321. من خلال التتبع ستلاحظ أن عدد مرات التكرار سيكون نفس عدد الأرقام التي يتكون منها num في الوضع البتدائي: num=123 result=0 الشرط لعبور حلقة التكرار صحيح ومتحقق لحلقة التكرار الأولى: result=0*10+123%10 result=3 num=123/10 num=12 لحلقة التكرار الثانية: result=3*10+12%10 result=32 num=12/10 num=1 لحلقة التكرار الثالثة: result=32*10+1%10 result=321 num=1/10 num=0 النواتج: num=0 result=321 الشرط لدخول حلقة التكرار غير متحقق بهذا نكون قد حصلنا على العدد معكوساً من خلال استخراج أحاده ثم تقليص خاناته واستخراج خانه الأحاد الجديدة وبحلقة تكرار للخوارزمية البسيطة تحصل على الرقم المعكوس. بالتوفيق
  7. أهلا بك، البرنامج التالي سيساعدك لطباعة مربع من النجوم بالطول الذي يدخله المستخدم وبحلقة لوب for واحدة فقط. دعني أذكر التوضيح لكل مجموعة من الأسطر على حده ثم أعيد البرنامج كاملا في النهاية. في البداية نتحقق أن الطول المدخل ليس صفر أو عدد سالب، وإن حدث سنتجاهل الأمر ونطبع نصاً فارغاً، وفي حين كان الطول المخل هو 1 سنطبع نجمة واحد كناتج للبرنامج، ماعدا ذلك نستطيع أن نعتبر الأطوال المدخلة هي أطوال قابلة أن تكون ضلعاً لمربعٍ من النجوم. إذن الأن هدف البرنامج هو استقبال طول ضلع المربع من المستخدم ورسمه على الشاشة باستخدام النجوم. public static string CreateASCIISquare(int squareSideLength, char c = '*') { if (squareSideLength < 1) return ""; if (squareSideLength == 1) return c.ToString(); الفكرة هي أن تتم الطباعة سطر سطر وعدد السطور سيكون نفس الطول المدخل، سنجعل السطر الأول والأخير(الضلعان العلوي والسفلي للمربع)يحتويان على نجوم بعدد الطول المدخل (ليتحقق شرط الأعمدة تساوي الطول المدخل وتساوي عدد السطور) ، والأسطر الداخلية ستحتوي على نجمتين فقط على كل طرف نجمة واحدة بينهما فراغ، وبتكرار طباعة الأسطر الداخلية بهذا الترتيب عدد معين من المرات ستحصل على فراغ في النتصف وحدوده نجوم بشكل مربع تماما أي الطول والعرض متساويان وسيكون عدد الصفوف مساوياً لعدد الأعمدة. var horizontalOuterRow = new String(c, squareSideLength); var horizontalInnerRow = $"{c}{new string(' ', squareSideLength - 2)}{c}"; var squareBuilder = new StringBuilder(); سنبدأ بالطباعة على الشاشة وإظهار السطر الأول كما حددناه squareBuilder.AppendLine(horizontalOuterRow); يلزم الأن حلقة التكرار for لطباعة الأسطر الداخلية بالطريقة التي ذكرناها، لكن لاحظ أن الحلقة ستستمر بعدد الأسطر الداخلية فقط حيث أننا في النهاية سنضيف السطر الأخير تماما كما أضفنا السطر الأول بشكل منفصل عن حلقة التكرار إذن الحلقة ستتكر بعدد أقل من عدد السطور الكلي(طول الضلع)بمقدار 2 وهذا النقصان سببه الضلعان العلوي والسفلى الذان يضافان على الشاشة بدون تدخل من حلقة التكرار for (int i = 0; i < squareSideLength - 2; i++) { squareBuilder.AppendLine(horizontalInnerRow); } سنضيف الأن الضلع السفلي بشكل منفصل كما اتفقنا في إضافة الضلع العلوي squareBuilder.Append(horizontalOuterRow); إنتهت عملية الطباعة وسنرجع ناتج الدالة return squareBuilder.ToString(); } البرنامج كاملا public static string CreateASCIISquare(int squareSideLength, char c = '*') { if (squareSideLength < 1) return ""; if (squareSideLength == 1) return c.ToString(); var horizontalOuterRow = new String(c, squareSideLength); var horizontalInnerRow = $"{c}{new string(' ', squareSideLength - 2)}{c}"; var squareBuilder = new StringBuilder(); squareBuilder.AppendLine(horizontalOuterRow); for (int i = 0; i < squareSideLength - 2; i++) { squareBuilder.AppendLine(horizontalInnerRow); } squareBuilder.Append(horizontalOuterRow); return squareBuilder.ToString(); } بالتوفيق...
  8. أهلا بك، للبدء في عالم البرمجة يجب معرفة الهدف من تعلمها أولاً لأنها وسيلة لتقديم حلول لمشاكل موجودة عبر الأجهزة والتقنيات التي نستخدمها وستلاحظ ذلك بعد تطوير الأفكار وتحويلها إلى تطبيق يمكن الإستفادة منه لحل مشكلة للمستخدم. أنت اخترت البدئ بلغة c++ وهذا خيار ممتاز حيث أنها مدخل للغة الجافا ولغات أخرى في حال أردت لاحقا التخصص في مجال الديسكتوب أو الأندرويد. بشكل عام وهذا ما ينطبق على لغة ++C فإن أفضل الطرق لتعلم البرمجة هي بناء برامج و مشاريع شخصية بسيطة ثم تطويرها على مراحل، وعن طريق حل تمارين برمجية (يمكن البحث عنها عبر جوجل "Programming Exercises" هناك تمارين حسب كل لغة)، يمكنك مثلا البدئ بحل تمارين تمني تفكيرك البرمجي بشكل كبير من خلال مستويات متسلسلة للأسئلة باللغة التي تختارها عبر موقع codewars.com فبعد إنتهائك من تعلم نقطة جديدة تتمرن على كيفية مواجهتها واقعيا وبذلك تقوى في كل جانب جديد من لغة c++ تتعلمة، قد تجد صعوبة في البداية لكن تطبيق هذه الطريقة مفيد وممتع في نفس الوقت فمع الممارسة ستجد الأمر سهل. الوثائق Documentation هي المرجع الرئيسي للغة البرمجة أو التقنية التي ستتعلمها لذا لا يمكن الإستغناء عنها إلا في حالة إن كانت طريقة تنظيم الوثائق سيئة وتصميمها سيء، في هذه الحالة أنصحك بالإعتماد على كتاب تعليمي مناسب يمكن إتخاذه كمرجع للغة ولك أن تختار أي مرجع أو توثيق يريحك بالطبيعة التي تعتاد عليها أو تستفيد من تجربة أخيك في إختيار مرجع التعلم طبعا ستحتاج للتطبيق العملي المستمر لكل جملة برمجية جديدة تتعلمها وتخطر ببالك من خلال برنامج سطح مكتب سهل الإستخدام والتحكم كبرنامج ++Dev C ويمكنك متابعة فيديو بطريقة تنزيل وتثبيت هذا البرنامج جميع من تميز في مجالات البرمجة المختلفة كان بالبداية لا يعرف شيئ وبدون أي خلفية عن أي لغة برمجة، فهذا شعور طبيعي كمبتدئ! لكن خلال وقت وجيز من التعلم ستصبح قادر على إنشاء برامج بسيطة ثم متقدمة ثم احترافية... بالتوفيق.
  9. العفو، تحياتي لك محمد
  10. أهلا بك في البداية، سأوضح ما تعنيه الخوارزميات ومدى ارتباطها بلغات البرمجة. تعرف الخوارزمية على أنها مجموعة محدودة من القواعد والطرق التي تعطي سلسلة من العمليات لحل نوع معين من المشاكل خطوة بخطوة بواسطة جهاز الكمبيوتر. قد تتضمن خطوات تعريف الخوارزمية التشعب أو التكرار بناءً على المشكلة التي يتم تطوير الخوارزمية لها. في حين يتم تعريف خطوات الخوارزمية بلغة بشرية مفهومة ومستقلة عن أي لغة برمجة فيمكننا تنفيذها بعد ذلك بأي لغة برمجة من اختيارنا. إلى جانب كونها مجرد مجموعة محدودة من القواعد التي تعطي سلسلة من العمليات لحل نوع معين من المشاكل ، فإن الخوارزمية المحددة جيدا تحتوي على خمس ميزات مهمة: -- المحدودية. يجب دائمًا إنهاء الخوارزمية بعد عدد محدد من الخطوات. -- الوضوح. يجب تحديد كل خطوة من الخوارزمية بدقة؛ يجب أن يتم تحديد الإجراءات التي يجب تنفيذها بدقة وبشكل لا لبس فيه لكل حالة. -- المدخال. الخوارزمية تحتوي على صفر أو أكثر من المدخلات، أي الكميات التي تعطى لها في البداية قبل أن تبدأ الخوارزمية. -- المخرج. تحتوي الخوارزمية على مخرج أو أكثر، أي الكميات التي لها علاقة محددة بالمدخلات. -- الفعالية. ومن المتوقع عمومًا أن تكون الخوارزمية فعالة أيضًا. وهذا يعني أن جميع العمليات التي يتعين إجراؤها في الخوارزمية يجب أن تكون أساسية بشكل كاف بحيث يمكن من حيث المبدأ أن تتم بالضبط وفي فترة زمنية محدودة. هل ترى أي علاقة؟ نعم، هناك علاقة، الخوارزمية ليست سوى فكرة لحل مشكلة بمساعدة لغة برمجة. الخوارزميات مفيدة لتعلم البرمجة بشكل عام وهي جيدة لأي مطور معرفة. لكن صحيح أنه يجب أن تتعلم الخوارزميات لتجعلك مبرمجًا عامًا بشكل أفضل، إلا أنها لن تساعد بشكل وثيق في استخدام جافا سكريبت ، باستثناء بعض الحالات الخاصة. JavaScript هي لغة مخصصة للعمليات غير المتزامنة التي تستند إلى الأحداث مثل جلب البيانات ومعالجة DOM، إنها ليست لغة حسابات بحته فليس من الضروري جدا أن تتعلم خوارزميات قبل تعلم جافا سكريبت. هناك كتب تتحدث عن تنفيذ الخوارزميات بلغات محددة ومنهم من ينفذ علم الخوارزميات مع جافا سكريبت. لكن مع ذلك، أنت لا تحتاج حقًا إلى استخدام الخوارزميات لبرمجة جافا سكريبت في معظم الأوقات. دورة تطوير واجهات المستخدم من أكاديمية حسوب تحولك لمطوّر واجهات مستخدم دون الحاجة لامتلاك معرفة سابقة بالبرمجة، ولا حتى معرفة سابقة بتفاصيل الخوارزميات، فبها ستتمكن من تعلّم تطوير واجهات المستخدم خطوة بخطوة اعتمادًا على التجربة العملية والمادة العلمية التي يتفاعل معها الطالب. كل التوفيق...
  11. أهلا بك، إليك هذين الكتابين وعدد صفحاتهم حوالي 50 صفحة لكل كتاب: كتاب بايثون بلمسة للمبتدئين و كتاب احترف البايثون أنصحك أيضاً بمراجعة موسوعة حسوب؛ إذ تحتوي على توثيق شامل للغة Python بالتوفيق...
  12. أهلا محمد، سأذكر أمثلة لعدة برامج بلغة ++C لطباعة شكل هرمي متكامل من النجوم وهرم متكامل مقلوب وأيضا شكل نصف هرم نصف هرم مقلوب: 1- برنامج لطباعة نصف هرم #include <iostream> using namespace std; int main() { int rows; cout << "Enter number of rows: "; cin >> rows; for(int i = 1; i <= rows; ++i) { for(int j = 1; j <= i; ++j) { cout << "* "; } cout << "\n"; } return 0; } 2- برامج لطباعة نصف الهرم المقلوب #include <iostream> using namespace std; int main() { int rows; cout << "Enter number of rows: "; cin >> rows; for(int i = rows; i >= 1; --i) { for(int j = 1; j <= i; ++j) { cout << "* "; } cout << endl; } return 0; } 3- برامج لعرض الهرم المتكامل #include <iostream> using namespace std; int main() { int space, rows; cout <<"Enter number of rows: "; cin >> rows; for(int i = 1, k = 0; i <= rows; ++i, k = 0) { for(space = 1; space <= rows-i; ++space) { cout <<" "; } while(k != 2*i-1) { cout << "* "; ++k; } cout << endl; } return 0; } 4- برنامج لعرض هرم كامل مقلوب #include <iostream> using namespace std; int main() { int rows; cout << "Enter number of rows: "; cin >> rows; for(int i = rows; i >= 1; --i) { for(int space = 0; space < rows-i; ++space) cout << " "; for(int j = i; j <= 2*i-1; ++j) cout << "* "; for(int j = 0; j < i-1; ++j) cout << "* "; cout << endl; } return 0; } بالتوفيق...
  13. أهلا عبد الحميد، أنصحك أيضا بمراجعة موسوعة حسوب؛ إذ تحتوي توثيق شامل للغة Python بشرح مبسط مع أمثلة
  14. أهلاً أيمن، البرنامج التالي يقوم بالإعلان عن مصفوفة تحتوي 10 قيم صحيحة ويجد مجموع هذة القيم ومتوسطها #include <stdio.h> #include <conio.h> int main{ int i, sum=0; int marks[10]={94,99,95,80,70,65,93,88,75,83}; for(i=0;i<10;i++) sum+=marks[i]; printf("The sum=%d\n",sum); printf("The average=%f\n",1.0*sum/10); getch(); return 0; } لعلك لاحظت أن الإجابة في مجملها بسيطة، لكن ربما تتساءل عن سبب ضرب القيمة 1.0 في المجموع قبل قسمته على عدد العناصر عند حساب متوسط القيم! أردت أن أجعل الإشارة ( / ) تعمل كإشارة القسمة الطبيعية ( ÷ ) بدلاً من أن تنتج الجزء الصحيح فقط من القسمة، لكن هذا غير متاح في لغة ++c إلا للقيم العشرية؛ لذلك قمت بتحويل القيمة العددية الصحيحة لعشرية من خلال الضرب في 1.0، وهذة أبسط الطرق الكثيرة لتحويلها. بالتوفيق...
  15. أهلا أحمد، الجافا هي لغة برمجة موجهة للكائنات، ابتُكرت لإستخدامها بمثابة العقل المفكر المستخدم لتشغيل الأجهزة التطبيقية الذكية، وهي بالأصل تطويراً للغة ++C. لا يوجد أنواع للغة الجافا وإنما هنالك عدة إصدارات وفرتها الشركات المطورة للغة وهي: 1- Java SE: الإصدار القياسي من الجافا بالإنجليزية (Java Standard Edition) هو الجزء الخاص ببرمجة برامج سطح المكتب (StandAlone applications). 2- Java EE: اصدار الإنتربرايس بالإنجليزية (Java Enterprise Edition)هو يختلف عن الإصدار القياسي في أنه خاص ببرمجة الخوادم والتطبيقات الموزعة وبرمجة الويب. 3- Java ME: اصدار المايكرو بالإنجليزية (Java Micro Edition) وهو إصدار خاص بالبرمجة على الهواتف المحمولة والأجهزة المحدودة في المصادر عموما وتعتبر الخيار الأول لمبرمجي ألعاب الهواتف المحمولة. 4- Java Fx: تقنيّة أخرى اصدرتها صن ميكروسيستمز لتطوير تطبيقات من نوع "RIA" أي "Rich Internet Applications". بالتوفيق ...