Gaining Familiarity with C++

Today I decided to solidify my familiarity of C++ by creating a couple rather useless, but working programs from scratch.


The first one I created solves for the hypotenuse vector of a right triangle, using the Pythagorean Theorem. This program is rather straightforward, and took little to no time to write.


// Hypotenuse

#include
#include
#include
using namespace std;

int main()
{
    int x;   //position of x-axis
    int y;   //position of y-axis
    int A;   //square A + square B
    float V;   //resultant vector
  
    cout << "Enter in both adjecants." << '\n';
    cin >> x;
    cin >> y;
    A = (x * x) + (y * y);
    V = sqrt ((double) A );
  
    cout<< V << "\n";   //output of resultant vector
    cin.get();
    cin.get();
    return 0;
}


After creating this program in a few minutes, I went on to try something a bit more challenging. This program below took me about two hours to write; a lot of debugging. At first, I tried to write the entire program within the main function, although, that didn’t really challenge me or enhance my abilities in any way, and it was extremely buggy. I decided to seperate each step in the process of matrix multiplication into seperate functions, and create my main function as a do while loop. It turned out producing correct results! Here is the code, keep in mind this only works with 2×2 matrices:


#include
using namespace std;

/*The functions in this program are fired in the order of top to bottom for readability*/

void Readmatrix(int a, int b, int c, int d, int e, int f, intg, int h)
{

/*This function records the integers placed into each matrices’ variable*/

        cout << "Enter in your first matrix (4 integers): ";
        cin >> a;
        cin >> b;
        cin >> c;
        cin >> d;
        cout << "Enter in your second matrix (4 integers): ";
        cin >> e;
        cin >> f;
        cin >> g;
        cin >> h;
      
}

void multiply(int a, int b, int c, int d, int e, int f, intg, int h)
{

/*This is the algorithm for multiplying the matrices together. It is only compatible with 2×2 matrices*/

        int a1, b1, c1, d1 = 0;
      
        a1 = ((a * e) + (b * g));
        b1 = ((a * f) + (b * h));
        c1 = ((c * e) + (d * g));
        d1 = ((c * f) + (d * h));
      
        a = a1;
        b = b1;
        c = c1;
        d = d1;

}

void Displaymatrix(int a, int b, int c, int d)
{

/*The functions simply displays the 2×2 matrix product*/

        cout << a << " " << b << '\n' << c << " " << d;
}

int main()
{

/*The functions is my main loop, which calls all the above functions*/

        char rawr;
      
        do
        {
                int a, b, c, d, e, f, g, h = 0;

                Readmatrix(a, b, c, d, e, f, g, h);
                multiply(a, b, c, d, e, f, g, h);
                Displaymatrix(a, b, c, d);
                cout << endl;
              
                cout <<"Would you like to do another matrix (y/n)? ";
                cin >> rawr;
                cout << endl;
        } while ((rawr == ‘y’) || (rawr == ‘Y’));

        return(0);
}


I feel like I’m getting a little better each day I do this! Tomorrow, I plan to write out a program that will add, subtract, and reduce fractions. I will be using a reference source code, found here: http://cplusplus.com/files/fraction.zip

I can’t wait to start moving onto programs using windows coding! I plan to become accustomed to using arrays, functions, structures, pointers, and dynamic memory before I move onto more advanced concepts though. If I can write simple programs using the tools I just listed, I’ll have some fundamental skills to use for those more advanced concepts.
TwitterRedditFacebookShare

4 thoughts on “Gaining Familiarity with C++

  1. CecilSunkure

    Hey thanks! Follow along with me if you want :D

    Once I hit college, I’ll be posting what I learn here on this blog. Might be cool to follow along with me till then, so we can all start at the same level.

    Reply
  2. Patrick

    “This took me about 2 hours to complete, and about 25 minutes to write. Yep, that means I sat there and debugged the program for over an hour and a half. Sheesh, I hope this isn’t what programming is always like ;)”

    If you think half an hour of debugging is a lot, you’re in for a nasy surprise. I’ve been known to a week working on a single bug, multiple hours a day. :P

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *