2016-11-18 2 views
0

Hey Leute so meine Hausaufgaben waren: 1), um den Benutzer dazu auffordern, die Anzahl der Zellen C
2) festzustellen, eine ganze Zahl Arrayzelle [] mit C Elementen
3) Prompt eingeben der Benutzer, um die Anzahl der Zeitschritte einzugeben N
3) Den Benutzer auffordern, den Index der Zellen einzugeben, die 1 enthalten (negativen Index eingeben)
4) Führen Sie den zellularen Automaten für N Zeitschritte unter Verwendung der definierten Regeln aus über
5) Zeigen Sie bei jedem Zeitschritt die Zellen an und drucken Sie ein '#', wenn die Zelle ein 1, Leerzeichen enthält, wenn die Zelle 0Java (nicht so) Einfache Formatierung

enthält

Eine gewünschte Ausgabe wäre:

Enter number of cells (<= 80): 10 
Enter number of time steps: 10 
Enter the index of occupied cells (negative index to end): 4 6 -1 


    # # 
    #### 
    ## # 
### ## 
# #### 
### # 
# # ## 
###### 
# # 
# ## 
# ### 

Mein Code so weit ist dies:

import java.util.Scanner; 

class P7{ 
    public static void main(String[] args){ 
     int i, N, C, index; 
     Scanner in = new Scanner(System.in); 

     System.out.println("Enter number of cells(<=80):"); 
     C = in.nextInt(); 
     int[] cell = new int[C]; 
     System.out.println("Enter number of time steps:"); 
     N = in.nextInt(); 
     System.out.println("Enter the index of occupied cells(-num to end):"); 
     for(i = 0; i < C; i++){ 
      cell[i] = 0; 
     } 
     while(true){ 
      index = in.nextInt(); 

      if(index < 0){ 
      break; 
      } 
      cell[index] = 1; 
     } 
     for(i = 0; i < N; i++) 
      updateCells(cell); 
      displayCells(cell); 
    } 


    public static void updateCells(int array[]){ 
     int i; 
     int[] temp = new int[array.length]; 
     for(i = 1; i < array.length - 1; i++){ 
      if(array[i]==1 && array[i-1]==1 && array[i+1]==1) 
      temp[i] = 0; 
      else if(array[i]==1 && array[i-1]==1 && array[i+1]==0) 
      temp[i] = 1; 
      else if(array[i]==0 && array[i-1]==1 && array[i+1]==1) 
      temp[i] = 1; 
      else if(array[i]==0 && array[i-1]==1 && array[i+1]==0) 
      temp[i] = 0; 
      else if(array[i]==1 && array[i-1]==0 && array[i+1]==1) 
      temp[i] = 1; 
      else if(array[i]==1 && array[i-1]==0 && array[i+1]==0) 
      temp[i] = 1; 
      else if(array[i]==0 && array[i-1]==0 && array[i+1]==1) 
      temp[i] = 1; 
      else if(array[i]==0 && array[i-1]==0 && array[i+1]==0) 
      temp[i] = 0; 
     } 
     for(i = 0; i < array.length; i++){ 
      array[i] = temp[i]; 
     } 
} 
public static void displayCells(int data[]){ 
     int i; 
     for(i=0;i < data.length; i++){ 
      if(data[i] == 1) 
      System.out.println("#"); 
      else if(data[i] == 0) 
      System.out.println(" "); 
     } 
    } 
} 

Dies ist meine aktuelle Ausgabe:

Enter number of cells(<=80): 10 
Enter number of time steps: 3 
Enter the index of occupied cells(-num to end): 
1 
2 
3 
4 
-1 

# 
# 
# 
# 

Jedwedes Hilfe versteht sich, : D

+1

'println' lesen Sie die Dokumentation für diese Funktion. Während Sie dort sind, schauen Sie sich auch die Funktion 'print' an – njzk2

Antwort

0

Ich verstehe eigentlich nicht, was Sie versuchen, dies zu versuchen wenn das helfen könnte. Wenn Sie die Frage schriftlich oder als pdf haben, dann kann ich es wahrscheinlich sagen. Am besten

import java.util.Scanner; 

public class P7{ 
    public static void main(String[] args){ 
     int i, N, C, index; 
     Scanner in = new Scanner(System.in); 

     System.out.println("Enter number of cells(<=80):"); 
     C = in.nextInt(); 
     int[] cell = new int[C]; 
     System.out.println("Enter number of time steps:"); 
     N = in.nextInt(); 
     System.out.println("Enter the index of occupied cells(-num to end):"); 
     for(i = 0; i < N; i++){ 
      cell[i] = 0; 
     } 
     while(true){ 
      index = in.nextInt(); 

      if(index < 0){ 
      break; 
      } 
      cell[index] = 1; 
     } 
     for(i = 0; i < N; i++) 
      updateCells(cell); 
      displayCells(cell); 
    } 
    public static void updateCells(int cell[]){ 
     int i; 
     int[] temp = new int[cell.length]; 
     for(i = 1; i < cell.length - 1; i++){ 
      if(cell[i]==1 && cell[i-1]==1 && cell[i+1]==1) 
      temp[i] = 0; 
      else if(cell[i]==1 && cell[i-1]==1 && cell[i+1]==0) 
      temp[i] = 1; 
      else if(cell[i]==0 && cell[i-1]==1 && cell[i+1]==1) 
      temp[i] = 1; 
      else if(cell[i]==0 && cell[i-1]==1 && cell[i+1]==0) 
      temp[i] = 0; 
      else if(cell[i]==1 && cell[i-1]==0 && cell[i+1]==1) 
      temp[i] = 1; 
      else if(cell[i]==1 && cell[i-1]==0 && cell[i+1]==0) 
      temp[i] = 1; 
      else if(cell[i]==0 && cell[i-1]==0 && cell[i+1]==1) 
      temp[i] = 1; 
      else if(cell[i]==0 && cell[i-1]==0 && cell[i+1]==0) 
      temp[i] = 0; 
     } 
     for(i = 0; i < cell.length; i++){ 
      cell[i] = temp[i]; 
     } 
} 
public static void displayCells(int cell[]){ 
     int i; 
     for(i=0;i < cell.length; i++){ 
      if(cell[i] == 1) 
      System.out.print("#"); 
      else if(cell[i] == 0) 
      System.out.print(" "); 
     } 
    } 
}`enter code here`