PDA

View Full Version : ایجاد آرایه و تغییر در برنامه



sarakhanom
یک شنبه 19 آذر 1391, 17:20 عصر
با سلام
کمک فوری:اشتباه:
من باید در net beans با زبان جاوا برنامه ای بنویسم که در آن آرایه ای را ایجاد و مقداردهی کند عددی از ورودی دریافت و بر عنصر وسط آرایه تقسیم کند اگر عنصر وسط صفر بود بر عنصر بعد از آن تا پایان آرایه در پایان اگر تما عناصر نیمه دوم آرایه صفر بود پیغامی چاپ کند و اگر تقسیم را انجام داد نیز پیغامی مناسب چاپ کند.
من برنامه را نوشتم ولی اشکالاتی دارد. لطفا ایرادات آن را اصلاح کنید.
طریقه ی ایجاد آرایه و مقداردهی آن را به صورتی که در قسمت run انجام دهم را نیز بگویید.
با تشکر

maktoom
یک شنبه 19 آذر 1391, 19:16 عصر
سلام
این برنامه شماست:
package arayeh;
import java.util.Scanner;
public class array {


public static void main(String[] args) {
Scanner a=new Scanner(System.in);
int i,mid;
int m[]={1,2,7,8,0};

int j=0,k=4;
float divi;
for(i=0;i<5;i++)
System.out.print(m[i]+" ");
System.out.print("\n");
System.out.print("number=");
int n=a.nextInt();
mid=j+k/2;

i=mid;
if(m[i]!=0)
{
divi=n/m[i];
i++;

System.out.println("division");
}
else

System.out.println(" all number is zero");


}
}

و در واقع شما می تونستید با C هم این برنامه رو بنویسید. چرا که بدون استفاده از کلاس و شی گرایی نوشتید.
من برنامه شما رو به این شکل بازنویسی کردم.
توش از عنصر رندوم هم استفاده کردم تا بشه ورودی های بالا هم داد. مثلا 1000 عدد.
import java.util.Random;
import java.util.Scanner;

public class array {

public static void main(String[] args) {
System.out.println("how many nums you would?");
Scanner kb = new Scanner(System.in);
// int n = kb.nextInt();
// Random rand = new Random();
// int array[] = new int[n];
// for (int i = 0; i < n; i++) {
// array[i] = rand.nextInt(3);
// }
int array[] = {1, 0, 0, 0, 0, 5};
int n = array.length;
System.out.print("your nums are here:\n");
for (int i : array) {
System.out.printf("%5s", i);
}
int mid = n / 2;
while (array[mid] == 0 && mid < array.length) {
mid++;
if (mid == array.length) {
System.out.println("");
System.out.println("there is no num else");
System.exit(0);
}
}
System.out.println("");
System.out.println("Ok! divisable. plz enter you num for division:");
int fig = kb.nextInt();
System.out.println("answer is=> " + fig / array[mid]);
}
}
توضیحات:
*سطرهایی که کامنت شدن قابلیت رندوم رو به برنامه می دن. شما میتونید با فعال کردن این قسمت و کامنت کردن دو خط زیر اونها این قابلیت رو اضافه کنید.
*در این سطر:
for (int i = 0; i < n; i++) {
array[i] = rand.nextInt(3);
}
یعنی از 0 تا 2 تعدادی عدد صحیح بصورت رندوم بوجود بیاد.
* در این سطر:
int array[] = {1, 0, 0, 0, 0, 5};
شما میتونید با تغییر عدد به 5 به 0 برنامه رو چک کنید.
خب امیدوارم متوجه شده باشید.
سوالی هست بفرمایید.

maktoom
یک شنبه 19 آذر 1391, 19:41 عصر
برنامه رو به این شکل تغییر دادم تا قدری از رنگ و لعاب جاوا توش دیده بشه!
این کلاس Main هستش:
import java.util.Random;
import java.util.Scanner;


public class main {
public static void main(String[] args) {
System.out.println("how many nums you would?");
Scanner kb = new Scanner(System.in);
// int n = kb.nextInt();
// Random rand = new Random();
// int array[] = new int[n];
// for (int i = 0; i < n; i++) {
// array[i] = rand.nextInt(3);
// }
int array[] = {1, 0, 0, 0, 0, 0};
int n = array.length;
System.out.print("your nums are here:\n");
for (int i : array) {
System.out.printf("%5s", i);
}
try {
divClass test=new divClass(array);
System.out.println("Ok!plz enter you num for division:");
int result=test.doDiv(kb.nextInt());
System.out.println("answer is=> " + result);
} catch (EmptyException e) {
System.err.println("array is empty");
}catch (ZeroDivException e){
System.err.println("zero division!");
}

}

}
و این هم کلاس عملیات تقسیم و غیره :
public class divClass {

private int array[];
private int mid;

public divClass() {
}

public divClass(int[] array) throws EmptyException {
if (array.length == 0) {
throw new EmptyException();
}
this.array = array;
}

public int doDiv(int fig) throws ZeroDivException {
int mid = array.length / 2;
while (array[mid] == 0 && mid < array.length) {
mid++;
if (mid == array.length) {
throw new ZeroDivException();
}
}
return fig / array[mid];
}
}
دو تا کلاس خالی هم واسه استثنائات:
public class EmptyException extends Exception {

}
و:
public class ZeroDivException extends Exception {

}
موفق باشید./

maktoom
یک شنبه 19 آذر 1391, 22:27 عصر
طریقه ی ایجاد آرایه و مقداردهی آن را به صورتی که در قسمت run انجام دهم را نیز بگویید.
برای انجام این قسمت لازمه با آرگومانهای خط فرمان کار کنید.
اگر منبعی دارید به این مبحث مراجعه کنید.
در غیر اینصورت با کمی جستجو می تونید برنامه رو به طریقی انجام بدید که تعداد اعضای آرایه و اعداد داخل آرایه و عددی که باید بر عدد وسط تقسیم بشه رو در خط فرمان وارد کنید.
حتما می دونید که برای این کار لازمه مسیر رو داخل environment تعیین کرده باشید تا بتونید تحت کامند هم کامپایلر جاوا رو اجرا کنید.

sarakhanom
شنبه 25 آذر 1391, 23:11 عصر
با سلام و تشکر فراوان از شما کاربر گرامی :تشویق:
اگر لطف کنید و در مورد این خط توضیحی بدهید ممنون میشم
System.exit (0)
لطفا من را راهنمایی کنید:ناراحت:
گر ممکن است برنامه ای میخوام که صف وپشته را با زبان جاوا پیاده سازی کند.

M0TR!X
دوشنبه 27 آذر 1391, 20:53 عصر
دستور :

System.exit (0)

خروج از برنامه یا همون exit

sarakhanom
دوشنبه 27 آذر 1391, 23:32 عصر
لطفا بگویید آیا همیشه باید در exit عدد صفر گذاشت؟
آیا کار exit مانند break است؟

Hybrid
شنبه 02 دی 1391, 11:31 صبح
لطفا بگویید آیا همیشه باید در exit عدد صفر گذاشت؟

اون پارامتر فقط نحوه ی خروج از JVM رو نشون میده ، 0 به معنی Normal Termination و هر عدد غیر صفر بیانگر abNormal Termination یا همون خروج غیر طبیعی.