الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

التعامل مع المصفوفات

بدأه mr.beshoy في 8 مارس 2010 · 7 رد · 674 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

سلام للجميع

------------------

موضوع بسيط للمبتدئين مثلى

قررت أن أعرض هنا التعامل مع المصفوفات ( أأمل ان نصل إلى تطبيق كامل له واجهة رسومية خاص بالمصفوفات و عمليتها و أشكالها و الوانها - موضوع المحترفين ينفذوه بسرعة أنا عارف)

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

أولاً : مثال بسيط خاص بجمع عناصر مصفوفة واحدة :

--------------------------------------------------------------

[import java.util.Scanner;
public class SumMatric {

    private static int[][] myArray, element;
    private static int numOfRows, numOfCols, result = 0;

    public SumMatric() {
        Scanner scanner = new Scanner(System.in);
        intializeRows(scanner);
        intializeCols(scanner);
        intizlizeMatrics(numOfRows, numOfCols);
        fillMatricsWithElements(scanner);
        displayMatrics(numOfRows, numOfCols);
        sumOfMatrics(numOfRows, numOfCols);
    }

    public static void main(String[] args) {
        System.out.println("Test matrics");
        System.out.println("--------------------");
        new SumMatric();
    }

    private void intializeRows(Scanner scanner) {
        System.out.print("number of rows:");
        numOfRows = Integer.parseInt(scanner.next());
    }

    private void intializeCols(Scanner scanner) {
        System.out.println("number of cols:");
        numOfCols = Integer.parseInt(scanner.next());
    }

    private void intizlizeMatrics(int numOfRows, int numOfCols) {
        myArray = new int[numOfRows][numOfCols];
    }

    private void fillMatricsWithElements(Scanner scanner) {
        System.out.println("Fill matrics with elements:");
        element = new int[numOfRows][numOfCols];
        for (int i = 0; i < numOfRows; ++i) {
            for (int j = 0; j < numOfCols; ++j) {
                element[j] = Integer.parseInt(scanner.next());
                myArray[j] = element[j];
            }
        }
    }

    private void displayMatrics(int numOfRows, int numOfCols) {
        for (int i = 0; i < numOfRows; ++i) {
            for (int j = 0; j < numOfCols; ++j) {
                System.out.print(" " + myArray[j] + " ");
            }
            System.out.println(" ");
        }
    }

    private void sumOfMatrics(int numOfRows, int numOfCols) {
        for (int i = 0; i < numOfRows; ++i) {
            for (int j = 0; j < numOfCols; ++j) {
                result += myArray[j];
            }
        }
        System.out.println("The sum of this matrics is:" + result);
    }
}

<< و من له طريقة برمجة أخرى يفيدنا بها >>

شكراً

تم تعديل هذه المشاركة بواسطة mr.beshoy في 8 مارس 2010 في 23:36

#2

كنا طرحنا ورشة عمل عن المصفوفات يا حج بيشوي

ألقي نظرة عليه

بالمناسبة أظن static method هي الأفضل في الفئة التي تقوم بكتابتها

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#3

بالمناسبة المتغيرات مفيش داعى تكون static أنا كنت بجرب شئ و نسيت أحذف كلمة static مش أكثر

-----------------------------------------------------

تقصد يا مستر علاء أن مفيش داعلى لوضع الدوال داخل ال Constructor و اضعهم فى ال main() مباشرة ؟

لو قصدك كده فعلاً ..... ليه بتقول كده ؟

شكراً

#4

إيه لازمة السطر ده :

        new SumMatric();

من الأحسن لتصمييمك أن تجعل كل الدوال ثابته (static ) و يتم إستدعائها بواسطه داله ثابته أخري إسمها مثلا execute

#5

أقصد الكلام الذي قاله الأخ هويدي

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#6
اقتباس
إيه لازمة السطر ده :

new SumMatric();

لأجل تنفيذ ال !!!!class

----------------------------------------------------

اقتباس
من الأحسن لتصمييمك أن تجعل كل الدوال ثابته (static ) و يتم إستدعائها بواسطه داله ثابته أخري إسمها مثلا execute

لم أفهم قصدك جيداً و لكن لعلك تقصد ما سيكون فى ال code التالى ( جمع مصفوفتين ) - كل الدوال static :

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

فى المثال التالى code خاص بجمع مصفوفتين :

-----------------------------------------------------------

import java.util.Scanner;

public class AddTwoMatrics {

    static int[][] myMatrics, matricsOne, matricsTwo, elementsOne, elementsTwo, result;
    static int numwOfRows, numOfCols;

    public static void main(String[] args) {
        System.out.println("Test of adding two matrics:");
        System.out.println("--------------------------------");
        /////////////////////////////////////////////////////////////
        Scanner scanner = new Scanner(System.in);
        createNumOfRows(scanner);
        createNumeOfCols(scanner);
        createMatricsOne(numwOfRows, numOfCols);
        createMatricsTwo(numwOfRows, numOfCols);
        fillMatricOneWithElements(scanner);
        fillMatricsTwoWithElements(scanner);
        result = new int[numwOfRows][numOfCols];
        addTwoMAtrics(numwOfRows, numOfCols);
    }

    private static void createNumOfRows(Scanner scanner) {
        System.out.println("Enter number of rows:");
        numwOfRows = Integer.parseInt(scanner.next());
    }

    private static void createNumeOfCols(Scanner scanner) {
        System.out.println("Enter number of cols:");
        numOfCols = Integer.parseInt(scanner.next());
    }

    private static void createMatricsOne(int numwOfRows, int numOfCols) {
        matricsOne = new int[numwOfRows][numOfCols];
    }

    private static void createMatricsTwo(int numwOfRows, int numOfCols) {
        matricsTwo = new int[numwOfRows][numOfCols];
    }

    private static void fillMatricOneWithElements(Scanner scanner) {
        System.out.println("Fill 1st matrics with elements:");
        elementsOne = new int[numwOfRows][numOfCols];
        for (int i = 0; i < numwOfRows; i++) {
            for (int j = 0; j < numOfCols; j++) {
                elementsOne[j] = Integer.parseInt(scanner.next());
                matricsOne[j] = elementsOne[j];
            }
        }
        displayMatrics(numwOfRows, numOfCols, matricsOne);
    }

    private static void fillMatricsTwoWithElements(Scanner scanner) {
        System.out.println("Fill 2nd matrics  with elements:");
        elementsTwo = new int[numwOfRows][numOfCols];
        for (int i = 0; i < numwOfRows; i++) {
            for (int j = 0; j < numOfCols; j++) {
                elementsTwo[j] = Integer.parseInt(scanner.next());
                matricsTwo[j] = elementsTwo[j];
            }
        }
        displayMatrics(numwOfRows, numOfCols, matricsTwo);
    }

    private static void displayMatrics(int numOfRows, int numOfCols, int[][] myMatric) {
        for (int i = 0; i < numOfRows; ++i) {
            for (int j = 0; j < numOfCols; ++j) {
                System.out.print(" " + myMatric[j] + " ");
            }
            System.out.println(" ");
        }
    }

    private static void addTwoMAtrics(int numOfRows, int numOfCols) {
        System.out.println("The result of adding two matrics is:");
        for (int i = 0; i < numOfRows; i++) {
            for (int j = 0; j < numOfCols; j++) {
                result[j] += matricsOne[j] + matricsTwo[j];
                System.out.print(" " + result[j] + " ");
            }
            System.out.println(" ");
        }

    }
}

------------------------------------

كالمعتاد : من لديه طرق أخرى يعرضها إن أمكن .

------------

شكراً

تم تعديل هذه المشاركة بواسطة mr.beshoy في 11 مارس 2010 في 19:44

#7
new SumMatric();

يجعلك تحصل على نسخه من الفئه, و ليس لتنفيذ دوال الفئه, أليس صحيح؟

إذا أردت تنفيذ دوال الفئه أمامك 100 طريقه و طريقه, مثل ما أدرجتها بأعلي :)

#8

شكراً

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…