Write a program that Prompts the user to enter the number of

Write a program that:

Prompts the user to enter the number of cells C.
Declares an integer array cell[] with C elements.
Prompts the user to enter the number of time steps N.
Prompts the user to enter the list of indices of cells that contain 1

(enter negative index to nish).
Print a “ruler” line with C digits, 0 through 9, repeated

(see sample output below for clari cation).
Run the cellular automaton for N time steps, using the rules de ned above. On each time step, display the cells on one line,

printing a ‘#’ if the cell contains a 1, or a space if the cell contains a 0.

Your program\'s output should match the sample runs

public static void main(String[] args){

}

The data[] array contains data.length cells, with each cell containing either 1 or 0. displayCells() prints each cell of the data[] array on the same line, displaying a ‘#’ if the cell contains a 1, a space if the cell contains a 0.

The data[] array contains data.length cells, either 1 or 0. updateCells() updates each cell in the data[] array, according to the rules de ned earlier in this handout, for one step. (Hint: you will need to create a temporary array in updateCells(), make the updates into the temporary array, and copy the temporary array to the data[] array before the method returns.)

Solution

#include 002 #include 003 using namespace std; 004 005 void setupRow(); 006 void printRow(); 007 void updateRow(); 008 int findNextCellState(int left_neighbor, int cell, int right_neighbor); 009 010 const int WIDTH = 80; 011 int row[WIDTH]; 012 int i = 0; 013 int temp[WIDTH]; 014 015 int main() 016 { 017     setupRow(); 018     printRow(); 019 020     for (int i = 0; i < 100; i++) 021     { 022         updateRow(); 023         printRow(); 024     } 025 026     return 0; 027 } 028 029 // The setupRow function creates an initial state for the cellular autonoma 030 void setupRow() 031 { 032     for(i = 0; i < 80; ++i) 033     { 034         if(i != 39) 035             row[i] = 0; 036 037         if(i == 39) 038             row[i] = 1; 039     } 040 } 041 042 // The printRow function outputs the state of the row to the user. For all 043 // cells that are 0, it outputs a space (\" \"), for all cells that are 1, it 044 // outputs a star (\"*\") 045 void printRow() 046 { 047     for(i = 0; i < 80; ++i) 048     { 049         if(row[i] == 0) 050         { 051             cout << \" \"; 052         } 053 054         if(row[i] == 1) 055         { 056             cout << \"*\"; 057         } 058     } 059 } 060 061 // The updateRow function updates the contents of the row after calculating 062 // the next states using the findNextCellState function 063 void updateRow() 064 { 065     temp[WIDTH] = findNextCellState(0, row[0], row[1]); 066       067     for(i = 0; i < 80; ++i) 068     { 069         temp[i] = findNextCellState(row[i-1], row[0], row[i+1]); 070         row[i] = temp[i]; 071     } 072       073 } 074 075 // The states for this are: 076 // 077 // 111 110 101 100 011 010 001 000 078 // 0   0   0   1   1   1   1   0 079 080 int findNextCellState(int left_neighbor, int cell, int right_neighbor) 081 { 082     if (0 == cell) 083     { 084         if (1 == (left_neighbor + right_neighbor)) 085         { 086             return 1; 087         } 088         else 089         { 090             return 0; 091         } 092     } 093     else 094     { 095         if (1 == left_neighbor + right_neighbor) 096         { 097             return 0; 098         } 099         else 100         { 101             return 1; 102         } 103     } 104 }
Write a program that: Prompts the user to enter the number of cells C. Declares an integer array cell[] with C elements. Prompts the user to enter the number of

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site