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

تخزين ملف يحتوي على أرقام داخل مصفوفة ثم ط

بدأه sasar في 23 أبريل 2009 · 5 رد · 952 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاتة

لو سمحتم شباب ممكن مساعدة

الكود شغال تمام مافية اي خطا

الكود يقوم بقراء اسماء من ملف خارجي ثم يقوم بتخزين الاسماء في مصفوفة ثم يقوم بطباعة الاسماء

المشكلة في التعامل مع الارقام الكود بعد التعديل في اسفل الصفحة

/*
* Class Description: 
*	This is the initial draft of a class to represent a sequence of names.
*
*/
	public class Names {

	  final int DEFAULT = 8;
	  int capacity = DEFAULT;


	  int nextIndex = 0;
	  String[] A;

	   public Names() {
		 A = new String[capacity];
	  }

	   public Names(int Capacity) {
		 if(Capacity < 0) {
			Capacity = DEFAULT;
		 }
		 capacity = Capacity;
		 A = new String[capacity];
	  }

	   boolean Add(String Name) {
		 boolean result = false;
		 if(nextIndex < capacity) {
			A[nextIndex] = Name;
			nextIndex = nextIndex + 1;
			result = true;
		 }
		 return result;
	  }

	   int indexOf(String Name) {
		 int result = -1;
		 for( int index=0;  (result == -1) && (index < nextIndex);  index++) {
			if(A[index].equals(Name)) {
			   result = index;
			}
		 }
		 return result;
	  }

	   public String toString() {
		 String result = "";
		 for(int index=0; index < nextIndex; index++) {
		 	result = result + A[index];
				if((index+1) < nextIndex) {
					result = result + ", ";
				}
		 }
		 return result;
	  }

   }

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

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

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
 import java.io.IOException;

public class ScannerReadFile {
   public static void main(String[] args) throws IOException { 
		 //double a = 84.75;	 

		// Create an instance of File for data.txt file.
			  File file = new File("C:\\UnderOver.dat");

		try {
			//
			// Create a new Scanner object which will read the data from the 
			// file passed in. To check if there are more line to read from it
			// we check by calling the scanner.hasNextLine() method. We then
			// read line one by one till all line is read.
			//

			Scanner scanner = new Scanner(file);

			Names N = new Names(22);
			while (scanner.hasNext()) {
			N.Add(scanner.nextLine().trim());

				}
				System.out.println(N);

		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}

	}
}

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

هذا الكود بعد التعديل

 public class Numbers {

	  final int DEFAULT = 8;
	  int capacity = DEFAULT;


	  int nextIndex = 0;
	  double[] A;

	   public Numbers() {
		 A = new double[capacity];
	  }

	   public Numbers(int Capacity) {
		 if(Capacity < 0) {
			Capacity = DEFAULT;
		 }
		 capacity = Capacity;
		 A = new double[capacity];
	  }

	   boolean Add(double Numb) {
		 boolean result = false;
		 if(nextIndex < capacity) {
			A[nextIndex] = Numb;
			nextIndex = nextIndex + 1;
			result = true;
		 }
		 return result;
	  }

	   int indexOf(double Numb) {
		 int result = -1;
		 for( int index=0;  (result == -1) && (index < nextIndex);  index++) {
			if(A[index].equals(Numb)) {
			   result = index;
			}
		 }
		 return result;
	  }

	   public String toString() {
		 String result = "";
		 for(int index=0; index < nextIndex; index++) {
		 	result = result + A[index];
				if((index+1) < nextIndex) {
					result = result + ", ";
				}
		 }
		 return result;
	  }

   }

المشكلة في التعامل مع الارقام

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

الرسالة التي تضهر عند التنفيذ

1 Error

Numbers.java:35: double cannot be dereferenced

if(A[index].equals(Numb)) {

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

أرجو المساعدة

تم تعديل هذه المشاركة بواسطة sasar في 23 أبريل 2009 في 08:06

#2

برجاء توضيح السؤال بشكل أكبر

أين المشكلة بالضبط؟؟

واشرح المشكلة بشكل جيد

تحياتي

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

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

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

728x90.png

#3

المطلوب كتابة برنامج يقوم بقراءة ارقام من ملف Txt file ثم يقوم البرنامج بتخزينها داخل المصفوفة ثم طباعتها

كتب البرنامج ونجحت في التنفيذ

في البداية الكود الي في اعلى الصفحة

اسم البرنامج Names يقوم بقراءة ملف بداخلة اكثر من عشرة اسماء ثم يقوم بتخزين الاسماء داخل المصفوفة من نوع String ثم طباعتها

البرنامج اشتغل ونفذ بشكل صحيح

حولت مرة اخرى تغير اسم البرنامج من Names إلى Numbers ثم غيرت جميع المتغيرات الى double

عند تنفيذ برنامج Numbers يقوم البرنامج بعرض رسالة خطأ

"يعني بدل مايقرأ اسماء يقر ارقام ويخزنها داخل المصفوفة من نوع Double ثم يقوم بطباعة الارقام

الرسالة:

1 Error

Numbers.java:35: double cannot be dereferenced

الخطأ في هذا الكود

if(A[index].equals(Numb)) {

تم تعديل هذه المشاركة بواسطة sasar في 23 أبريل 2009 في 09:13

#4

لا تستطيع أن تستدعي أي دوال من خلال متغير double

لأن double ليس كائن وإنما بيانات أولية primitive type

تحياتي

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

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

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

728x90.png

#5

الله يعطيك العافية ماقصرت

الكود شغال تمام

بس عندي سؤال اخير

حاولت اكثر من مرة اكتب شرط IF

مثال تعريف متغير من نوع double واعطائة القيمة التالية = 84.75

كتبت هذ الكود البسيط وتمت الطباعة بشكل صحيح

public class InitArray 
	{
		public static void main( String args[] )
		{
			double array[] = { 79.84, 77.64, 98.24, 98.84, 96.24, 97.84, 82.20, 93.88, 80.84, 59.60, 92.88, 81.00, 83.64, 78.44, 76.20, 60.80, 80.20, 80.88, 99.88, 82.84, 83.08, 99.68};

;
			double a=84.75;
				System.out.println("these values are < 84.75");
			for (int i = 0; i < array.length; i++) {

				if(a>=array){
				  System.out.println( array);
						}	  
				}
		   	System.out.println("these values are > 84.75");
			for (int i = 0; i < array.length; i++) {

				if(a<array){
				  System.out.println( array);
				  }
			}



			}
}

الناتج عند تنفيذ البرنامج:

these values are < 84.75

79.84

77.64

82.2

80.84

59.6

81.0

83.64

78.44

76.2

60.8

80.2

80.88

82.84

83.08

these values are > 84.75

98.24

98.84

96.24

97.84

93.88

92.88

99.88

99.68

----jGRASP: operation complete.

المشكلة الوحيدة اني حاول كم مرة اطبق نفس الحركة على الكود التالي بس ما نجت محاولتي

هذا البرنامج اسمة ScannerReadFile

يقوم يقو البرنامج بقراء من ملف اسمة UnderOver.dat الملف يحتوي على نفس الارقام الموجودة في المثال السابق ثم يقوم البرنامج بتخزين الارقام في المصفوفة "المصفوفة موجودة في الكلاس Numbers " ثم طباعتها

الي حاولت اسوية كتابة شرط IF مثل المثال السابق لكن لم تنجح العملية عند التنفيذ

الرحاء المساعدة في كتابة شرط IF

الكود

Class Numbers

 public class Numbers {

	  final int DEFAULT = 8;
	  int capacity = DEFAULT;


	  int nextIndex = 0;
	  double[] A;

	   public Numbers() {
		 A = new double[capacity];
	  }

	   public Numbers(int Capacity) {
		 if(Capacity < 0) {
			Capacity = DEFAULT;
		 }
		 capacity = Capacity;
		 A = new double[capacity];
	  }

	   boolean Add(double Numb) {
		 boolean result = false;
		 if(nextIndex < capacity) {
			A[nextIndex] = Numb;
			nextIndex = nextIndex + 1;
			result = true;
		 }
		 return result;
	  }

	   int indexOf(double Numb) {
		 int result = -1;
		 for( int index=0;  (result == -1) && (index < nextIndex);  index++) {
			if(A[index]==(Numb)) {
			   result = index;
			}
		 }
		 return result;
	  }

	   public String toString() {
		 String result = "";
		 for(int index=0; index < nextIndex; index++) {
		 	result = result + A[index];
				if((index+1) < nextIndex) {
					result = result +  "| "+"\n";
				}
		 }
		 return result;
	  }

   }

Class ScannerReadFile

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
 import java.io.IOException;

public class ScannerReadFile {
   public static void main(String[] args) throws IOException { 
		 double aa1 = 84.75;	 

		// Create an instance of File for data.txt file.
			  File file = new File("C:\\UnderOver.dat");

		try {
			//
			// Create a new Scanner object which will read the data from the 
			// file passed in. To check if there are more line to read from it
			// we check by calling the scanner.hasNextLine() method. We then
			// read line one by one till all line is read.
			//

			Scanner scanner = new Scanner(file);

			Numbers N = new Numbers(22);
			while (scanner.hasNext()) {

			N.Add(scanner.nextDouble());

				}

				  System.out.println(N);


		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}

	}
}

تم تعديل هذه المشاركة بواسطة sasar في 23 أبريل 2009 في 19:45

#6

يا أخي بالله عليك اختصر ووضح مشكلتك أين بالضبط

وحاول أخي أن تقرأ ما تكتب لأن أخطاءك الإملائية تجعلني أعاني عند القراءة

لا أقصد الإهانة

تحياتي

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

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

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

728x90.png

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

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

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

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

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