Thread: NEEDED ASAP!!! 20x20 array in C++

  1. #1
    Registered User
    Join Date
    Mar 2011
    Posts
    1

    NEEDED ASAP!!! 20x20 array in C++

    Write a program that finds the greatest sum of three adjacent numbers in any direction (up, down, left, right, or diagonally) in a 20x20 grid of numbers.

    All input data must be obtained from the stdin prompt. You can feed in the data from a file by using input redirection. The input file will contain the matrix of numbers from the top left to bottom right.

    Example input file:

    input.txt
    Code:
    08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12 50 77 91 08
    49 49 99 40 17 81 18 57 60 87 17 40 98 43 69 48 04 56 62 00
    81 49 31 73 55 79 14 29 93 71 40 67 53 88 30 03 49 13 36 65
    52 70 95 23 04 60 11 42 69 24 68 56 01 32 56 71 37 02 36 91
    22 31 16 71 51 67 63 89 41 92 36 54 22 40 40 28 66 33 13 80
    24 47 32 60 99 03 45 02 44 75 33 53 78 36 84 20 35 17 12 50
    32 98 81 28 64 23 67 10 26 38 40 67 59 54 70 66 18 38 64 70
    67 26 20 68 02 62 12 20 95 63 94 39 63 08 40 91 66 49 94 21
    24 55 58 05 66 73 99 26 97 17 78 78 96 83 14 88 34 89 63 72
    21 36 23 09 75 00 76 44 20 45 35 14 00 61 33 97 34 31 33 95
    78 17 53 28 22 75 31 67 15 94 03 80 04 62 16 14 09 53 56 92
    16 39 05 42 96 35 31 47 55 58 88 24 00 17 54 24 36 29 85 57
    86 56 00 48 35 71 89 07 05 44 44 37 44 60 21 58 51 54 17 58
    19 80 81 68 05 94 47 69 28 73 92 13 86 52 17 77 04 89 55 40
    04 52 08 83 97 35 99 16 07 97 57 32 16 26 26 79 33 27 98 66
    88 36 68 87 57 62 20 72 03 46 33 67 46 55 12 32 63 93 53 69
    04 42 16 73 38 25 39 11 24 94 72 18 08 46 29 32 40 62 76 36
    20 69 36 41 72 30 23 88 34 62 99 69 82 67 59 85 74 04 36 16
    20 73 35 29 78 31 90 01 74 31 49 71 48 86 81 16 23 57 05 54
    01 70 54 71 83 51 54 69 16 92 33 48 61 43 52 01 89 19 67 48
    ---------------------------------------------------------------------------------------------------------

    1) The program should be purely Object Oriented containing a constructor, destructor and other helper functions.
    2) The data members must be private and accessible only through getter and setter functions (accessors and mutators).
    3) No global variables may be used. The 2D data grid must be passed in to a function using pointers.
    4) The program should contain a function to obtain user input (this should not be the constructor), a function to display output, and at least one other function to perform the calculations.

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

    For this program, i have an intArray.h, intArray.cpp, and main.cpp

    This is what I have so far:


    ---------------------------------------------------------------------------------------------------------
    intArray.h
    Code:
    #ifndef INT_ARRAY_H
    #define INT_ARRAY_H
    
    #include <iostream>
    #include <cstdlib>
    
    
    #include <iomanip>
    
    using namespace std;
    
    class intArray{
    //variables
    int size[20][20];
    int* data;
    
    public:
    //constructor and destructor
    intArray();
    ~intArray();
    
    //getters
    int getSize();
    int getValue(int column, int row, int value);
    
    //setters
    //void setValue(int value, int index);
    
    //read&display
    void display();
    void read();
    
    };
    #endif //INT_ARRAY_H
    ---------------------------------------------------------------------------------------------------------
    intArray.cpp

    Code:
    #include <iostream>
    #include "intArray.h"
    
    using namespace std;
    
    //const int num = 20;
    int width = 20;
    int height = 20
    
    
    //constructor
    intArray::intArray(){
    
    int size [height][width];
    data = new int [size];
    
        if (data == NULL){
            cout << "ERROR: Insufficient Memory" << endl;
            exit(1);
        }
        else {
            for(int i = 0; i < height; ++i){
                for(int j = 0; j < weight; ++j){
                    data[i][j] = 0;
                }
            }
        }
    }
    
    //destructor
    intArray::~intArray(){
        if(data != NULL){   
            delete [] data;
        }
    
    }
    
    //display
    void intArray::display(){
        for(int i = 0; i < height; i++){
            for (int j = 0; j < weight; j++){
                cout << size[i][j] << " ";
            }
                cout << endl;
        }
    
    }
    
    //read
    void intArray::read(){
        for(int i = 0; i < height; i++)
            for (int j = 0; j < weight; j++)
                cin >> size[i][j];
    }
    
    //getters
    int intArray::getSize(){
        return(size);
    }
    
    int intArray:: getValue(int column, int row, int value){
            for(i = 0; i < height; ++i){
                for(j = 0; j < weight; ++j){
                   
                }
            }
    }
    ---------------------------------------------------------------------------------------------------------
    main.cpp

    Code:
    #include <iostream>
    #include <fstream>
    
    
    #include "intArray.h"
    
    using namespace std;
    
    int main(int argc, char **argv){
    
    intArray myArray;
    
    ifstream inFile;
    inFile.open("input.txt");
        if (inFile.fail()){
            cout << "ERROR!!! Input file cannot be opened. Please try again." << endl;
            exit(0);
        }
        else{
            cout << "File opened!";
        }
    
    
    
    
    
    cout << endl;
    return(0);
    }
    ---------------------------------------------------------------------------------------------------------

    PLEASE HELP! I don't know what to do for main.cpp.. and also I'm not sure what to type for intArray.cpp. Any help would be much appreciated!
    Last edited by lalala423; 03-30-2011 at 03:00 PM.

  2. #2
    Registered User
    Join Date
    May 2010
    Posts
    4,633
    All input data must be obtained from the stdin prompt.
    Why are you trying to open a file? The instructions say that the input will come from stdin (keyboard).
    4) The program should contain a function to obtain user input (this should not be the constructor)
    You seem to have a read() member function to retrieve the array. Wouldn't it be necessary to call this function somewhere? Maybe in main()?

    Jim

  3. #3
    C++ Junkie Mozza314's Avatar
    Join Date
    Jan 2011
    Location
    Australia
    Posts
    174
    Just some trivia - this problem is based on one of the project euler problems: Problem 11 - Project Euler

    IMO it's a bit silly fussing around with making a class for this, but if your class requires it, I guess you have to.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Code review
    By bennywhere in forum C Programming
    Replies: 16
    Last Post: 10-20-2009, 09:00 PM
  2. warning: excess elements in array initializer
    By redruby147 in forum C Programming
    Replies: 6
    Last Post: 09-30-2009, 06:08 AM
  3. Struct *** initialization
    By Saravanan in forum C Programming
    Replies: 20
    Last Post: 10-09-2003, 12:04 PM
  4. Array Program
    By emmx in forum C Programming
    Replies: 3
    Last Post: 08-31-2003, 12:44 AM
  5. Help needed with a Project. ASAP Thanks
    By Shahram_z in forum C Programming
    Replies: 2
    Last Post: 10-31-2002, 03:12 PM