Wednesday, February 15, 2017

Getting good at: C++ | #9 - Constants and typedef

#9 - typedef long post

What's goin on everyone, this is FitMC. Today, we're going to learn about constants. Constants are essentially read-only variables, meaning that once you define them, you can't change them later in the program without modifying the value in the constant. You'll see what I mean later on.

There are a couple ways you can define a constant. 

1. Type #define CONSTANTNAME 1, where CONSTANTNAME is the name of your constant, and 1 is the value. You do not have to capitalize your constant name when defining it like this, but I recommend that you do for the sake of readability.

2. In any function, type const int net = 100;. The constant doesn't always have to be an integer. For instance, something like this will work: 
const char when_i_say_go[] ={'b','e','r','e','a','d','y','t','o','t','h','r','o','w'};

^This is not on a different line. It should look something like this:

This may look confusing. You don't have to know this yet, but keep it in mind. 


Now, we're going to look at a statement called typedef. This statement allows you to substitute keywords like int, char, float, double, etc for other words. For example, you could write something like this:

typedef int i;

The int keyword is being substituted by the letter 'i', and everywhere else in the program you can use the letter 'i' to fill in for the keyword int. You don't have to use a single letter to fill in for a keyword. If you really want to, you could write something like this:

You may be wondering why this is useful. In the next post, you'll see why. That's all I have for now. Until then...

Thursday, December 8, 2016

Getting good at: C | #2 - getchar and putchar

2 - putchar('='); putchar(')');

How's it going bros. The next jacksepticeye here. Today, I'm going to show you how to use getchar() and putchar(). These are self explanitory: getchar receives a character, and putchar prints out a character. 

So to use putchar, type putchar(':'); in your main function. You can replace ':' with any character you want, so long as you keep it inside the single quotes. Your program should look like this:

int main()
{
    putchar(':');
    return 0;
}

This should print a colon on the screen.

In order to use getchar, we have to be familiar with another type of variable: char. (Actually, you can get away with using regular variables, but I don't recommend it.) Char is a variable that can only be used for characters. (You can set char variables to equal numeric values, but it'll be translated to ASCII, which will make it a character.) To use it, type char name = ':';, where 'name' is any name you want, and ':' is the character the 'name' is set to. Like regular variables, we can set char name to nothing, but to use getchar, you have to set char name equal to getchar(). Your program should look something like this:

int main()
{
    char name = getchar();
    return 0;
}

This allows the user to input any character. To output this character, just add printf("%c",name);, where "%c" tells printf() that the integer we're passing through is a character. Your program should look something like this:

int main()
{
    char name = getchar();
    printf("%c",memes);
    return 0;
}

This allows the user to input a character and outputs the same character. You can also use getchar() to pause a program. For example:


int main()
{
    int memes;
    memes = 1337;
    printf("memes = %d\nPress any key to continue.\n",memes);
    getchar();
    return 0;

}

This prompts the user to enter a character, and only after that will the program stop.

NOTE: You don't have to do the challenges below, but you can if you want to.

With this newfound knowledge, write a program that properly utilize both getchar() and putchar().

That's all I have for now. Until then...

Friday, December 2, 2016

Getting good at: C | #1 - Integers and printf()

1 - int a = 9

No, that's not a typo. C is a programming language published in 1978 by a company called 'Bell Labs'. (later AT&T)

C and C++ are very similar in syntax (They both look similar), but there are a few differences, a big one being that you can't make a class the same way you could in C++. With that out of the way, let's get right into this.

NOTE: If you have not installed Code::Blocks prior to reading this tutorial, do so now. If you're having trouble installing it, refer to this post.

So before we get started, we need to first make a C project. (Most projects are C++ by default.) 

Step 1: Click on 'Create a new project'.

Step 2: Click on 'Console Application'.

Step 3: Click 'Next >' once.

Step 4: Choose 'C' from the list.

Step 5: Continue as normal.

So after you're done, you should see something like this:

#include <stdio.h>
#include <stdlib.h>

int main()
{
     printf("Hello World\n");
     return 0;
}

This is a program that prints 'Hello World' on the screen. This is how it works:

#include - This tells the compiler to include a header file, usually stdio.h

int main() -  This is your main function. You can put statements like 'printf()' in it. 

NOTE: Don't forget to include this function in your program, or else it won't compile.

printf("words") - This statement prints words, values, or other stuff on the screen.

return 0 - When a program runs successfully, it returns a value of '0' to the system, telling it that the program ran without errors.

NOTE: Don't forget to put semi-colons at the end of your statements. Otherwise, you'll 
T R I G G E R your compiler.

To make a variable in C, you type 'int ' (without the quotes) and then your variable name. Then set it equal to something. (The bold letters signify that it was typed recently. You don't have to copy and paste the entire function to write a new statement.) It should look like this:

#include <stdio.h>

int main()
{
     int a = 2;
     return 0;
}

After that's done, press 'enter' and type 'printf("")' (without the ' quotes). In the " quotes, type %d . Outside the " quotes but still in the parentheses, put a comma, and then your variable name, in this case it's a. It should look like this:

#include <stdio.h>

int main()
{
     int a = 2;
     printf("%d", a);
     return 0;
}

After you're done, you should see something like this:

2
Process returned 0 (0x0)
Press any key to continue.


homework

You don't have to do these, but you can if you want to. I highly recommend you do so, because they will make learning programming languages a lot easier.

Exercise 1-1: Write a program that prints 5 on the screen, but make a variable and pass it to printf() rather than doing something like 'printf("5");'.


That's all I've got for today.

Wednesday, November 23, 2016

Why I haven't been posting.

dead blog

So I haven't been posting at all this week and you may be wondering why.Well first of all, I'm lazy, and second, I'm starting to learn other programming languages such as C (Not C++), Java, and C# so I can make a series on those later on. On top of that, i started experimenting with an operating system called "ReactOS", and if you don't know what ReactOS is, check out this page. That's all I've got for now.

Tuesday, November 15, 2016

Getting good at: C++ | #8 - while and do-while loops

8 - inception

Hey guys. The next pewdiepie here. Today, I'm going to show you how to make 'while' and 'do-while' loops. So a while loop is a type of loop that occurs when a conditional is true. If we make a variable named 'conditi0nal', and set it equal to 100, then we can write something like:

while(conditi0nal<=200)
{
     cout << "memes" << endl;
     conditi0nal++;
}

So as long as 'conditi0nal' is less than or equal to 200, it will print out "memes" and increase the value of 'conditi0nal' by one until it reaches 200.

A do-while loop is similar to the while loop, except that it does that body of code regardless if the conditional is true or false. So something like this:

do{
     cout << "memes" << endl;
     conditi0nal++;
}while(conditi0nal<=200);

This version of the while loop isn't used very often, so you don't have to worry about it too much.

While loops can also be used for user-defined variables. For example:

int answer;
cout >> "Is Control Alt Defeat best YouTuber?\n1. Yes\n2. No\n";
cin >> input;

while (input!=1)
{
     cout << "wrong answer" << endl;
     cin >> input;
}

cout << "thats right" << endl;

So in this program, we created a variable, and made the user input a value of 1 or 2. If the variable is set to 1 (it better not be), it will keep going until you set it to 2, in which case it will end the program.

That's all for now. 

Tuesday, November 8, 2016

Something seems fishy about this...

rigged

I was growing weary of my daily Study Hall occupations (looking up sub $200 graphics cards on Amazon) and saw my friend taking an online IQ test. I didn't have anything better to do (I couldn't watch YouTube because the network sniffers are like hawks) so i decided to give it a shot...



and here are my results:

Originally it was 142, but I didn't have the screenshot, so I had to redo it. 

Notice the unrealistic IQ score. Keep in mind that the entire test is only 20 questions long. They aren't even hard. How do you get an IQ of 164 from answering 20 questions? 

My theory is that the people who wrote this webpage made a variable (iqscore) and set it equal to zero, and made the user input an answer. The answer input would be linked to a variable, and when they input their answer, it sets this variable to a value, and this value is linked to a switch(){case} statement (Or Javascript/HTML equivalent), and depending on whether or not the user is right, will do something like iqscore = iqscore + 24, and repeats this 20 times. Once you reach the end, it will print iqscore on the screen.

I can see where they were going with this, but at the same time, I can see how this would cause some problems. It's kind of like when nVidia made the Tegra X1 and noticed that it had less power than the average sub $300 PC, so instead of doing it right and calculating the performance in FP32, they covered up their mistake by calculating it in FP16 (those sly dogs). 

Now this is a theory, so don't go after the people who wrote this test. Just know that some online IQ tests can be inaccurate. 

TL;DR: don't believe everything you see.

Website: free-iqtest.net

Picture: "https://www.pcper.com/files/imagecache/article_max_width/news/2015-02-16/Burned_laptop_secumem_11.jpg"; Perspective, PC; 8 November, 1782.


Wednesday, October 26, 2016

Getting good at: C++ | #7 - Objects and Classes

#7 - ricky reed is best gem

How's it goin bros, Virgil Rhino here. Today, we're gonna discuss classes. Classes are similar to int main because they both use curly braces. The difference is that classes don't require a set of parameters, and int main doesn't require access specifiers (public:, protected:, and private:). Keep in mind, however, that classes are not functions, but they can contain functions. Say for instance, you create a class. For this example, we're going to call it 'kek'. Our class is going to have the public access specifier:

class kek
{
public:
     
}

And it's here that we're going to create our function. We're going to create a void function, because unlike an int function, void returns nothing, so we don't have to type 'return 0;' at the end.

class kek
{
public:
     void dAnK()
          {
               cout << "kek" << endl;
          }
}

Functions inside of a class are called class member functions.

Now, we're going to use this class member function by creating an object. An object contains all the functions and variables contained on our class, which is how we can use that class member function. To make an object, go to int main() and type 'kek kekObj;', where 'kek' is our class name, and 'kekObj' is our object name. Below that, type 'kekObj.dAnK();'. This tells our object to use the class member function, titled dAnK(), which outputs 'kek'. When you're done, your program should look like this:

class kek
{
public:
     void dAnK()
     {
          cout << "kek" << endl;
     }
}

int main()
{
     kek kekObj;
     kekObj.dAnK();
     return 0;
}

And your result should look like this:



This is how not to create a class. You don't make a class file without including private:, and you definitely don't use it to output text. That's a waste of a class file. I left this in here to help you avoid this.

To properly set up a class file, we first need to erase everything in our class and int main. It should look like this:

class kek
{
     
}

int main()
{
     return 0;
}

Now, we add our public and private access specifiers:

class kek
{
public:
     
private:
     
}

And inside the private: access specifier, we add a variable and set it equal to any value. For this example, I'm going to set it to 40:

class kek
{
     public:
     
     private:
     int dank = 40;
}

int main()
{
     return 0;
}

Now in our public: access specifier, we add what are called Accessors and Mutators. These are self-explanatory. Accessors and Mutators are both class member functions that deal with the integer (also called 'data members') in the private: access specifier. 
Mutators set the private: data member to something, and Accessors read from the private: data member. 

Mutators are typically void functions because they're supposed to set the private: data member to something and return nothing. Accessors are usually int functions because they're only supposed to return the private: data member. 

Something like this:

class kek
{
     public:
     void setDank(int x)
     {
          dank = x;
     }
     int getDank()
     {
          return dank;
     }
     private:
     int dank = 40;
}

int main()
{
     return 0;
}


And now we add our objects:

class kek
{
     public:
     void setDank(int x)
     {
          dank = x;
     }
     int getDank()
     {
          return dank;
     }
     private:
     int dank = 40;
}

int main()
{
     kek kekObj;
     cout << kekObj.getDank();
     return 0;
}

Note that you don't need to add cout <<, I'm just adding it as proof that our public: class member functions (Our 'getters and setters') did what they were supposed to. 

Your result should look like this:



That's all for this post. In the next tutorial, we'll be going over objects and classes. Until then....