1. Welcome to TechPowerUp Forums, Guest! Please check out our forum guidelines for info related to our community.

C++ small tutorial

Discussion in 'Programming & Webmastering' started by Aleksander, Jan 11, 2012.

  1. Aleksander

    Joined:
    Dec 2, 2009
    Messages:
    3,254 (1.76/day)
    Thanks Received:
    304
    I was reading a book and went through a problem of mine.
    In November i tried to make a formula in math, but the number was way too huge and
    i couldn't hope anymore in my skills in math. I just found the square power of it,
    but not the cube. So now i remember it all, and i was thinking...
    What about this one: 2^2^2 ?
    And made it even more interesting finding a new programming method like this:
    pow(2, pow(2, 2));
    from this:
    pow(2, 2);
    This means that you can call same function inside the function!
    Well i didn't use it and didn't think of it till now...
    So let's hope someone else will find a use of it and here is all the program:
    Code:
    #include <iostream>
    #include <cmath>
    
    using namespace std;
    
    int main()
    {
        cout << pow(2, pow(2, 2));
        cin.get();
    }
    
     
  2. brandonwh64

    brandonwh64 Addicted to Bacon and StarCrunches!!!

    Joined:
    Sep 6, 2009
    Messages:
    18,778 (9.70/day)
    Thanks Received:
    6,238
    Location:
    Chatsworth, GA
    ALEK you are going to be my hero! I am currently in a C++ class and I am struggling bad :( Hope if you dont mind, I could ask you some questions soon?


    *EDIT*

    I tried to use your code and got an error, it would not compile

    [​IMG]
     
    Crunching for Team TPU
  3. Aleksander

    Joined:
    Dec 2, 2009
    Messages:
    3,254 (1.76/day)
    Thanks Received:
    304
    Actually you are using the microsoft VC++ which is a different compiler from the gcc
    In order to compile my program, you need to download codeblocks as an ide with its mingw
    compiler:
    http://sourceforge.net/projects/cod...10.05/Windows/codeblocks-10.05mingw-setup.exe

    If you want to go advanced you can download only the mingw compiler and write the program on a notepad and save it as program.cpp, than open cmd, find the file path and than type in gcc program.cpp.
    Here is the MinGW:
    http://sourceforge.net/projects/mingw/files/MinGW/

    Another way is to link the libraries with your visual studio, but that would take more thinking time to link cuz there are 2 libraries.
    (and i don't know if this one works)

    Last, but not least:
    http://msdn.microsoft.com/en-us/library/dt5dakze(v=vs.71).aspx

    This is for your compiler and i don't know the VC++, i cannot help you there!

    EDIT: I remember reading from the book that instead of:
    #include <iostream>
    #include <cmath>

    Some old compilers have it:
    #include <iostream.h>
    #include <math.h>

    Maybe it is worth a try
     
    Last edited: Jan 12, 2012
  4. brandonwh64

    brandonwh64 Addicted to Bacon and StarCrunches!!!

    Joined:
    Sep 6, 2009
    Messages:
    18,778 (9.70/day)
    Thanks Received:
    6,238
    Location:
    Chatsworth, GA
    Ahhh ok, We have to use this in class :(
     
    Crunching for Team TPU
  5. Kreij

    Kreij Senior Monkey Moderator Staff Member

    Joined:
    Feb 6, 2007
    Messages:
    13,881 (4.82/day)
    Thanks Received:
    5,619
    Location:
    Cheeseland (Wisconsin, USA)
    In VC++ the math function POW is overloaded to accept a double, float and long double.
    By giving the POW function two integers the compiler cannot figure out what you want it to use.

    Try this ...
    Code:
    cout << Pow((double)2, Pow((double)2, 2));
    
    Given the overloads a standard ANSI C++ compiler must give this error. VC++ has attempted to adhere to ANSI standard C++ compiler as much as possible.

    As a side note, you are not calling a function within a function. You are telling the compiler to call the Pow function and use it as input to another function (in this case also Pow). This is very common in programming.

    You are really doing this ...
    Code:
    int a = Pow((double)2, 2);
    cout << Pow((double)2, a);
    
    The difference with placing the function inline as an input paramter is that the compiler is creating an unnamed variable at runtime instead of you explicitely creating one at design time.
     
  6. brandonwh64

    brandonwh64 Addicted to Bacon and StarCrunches!!!

    Joined:
    Sep 6, 2009
    Messages:
    18,778 (9.70/day)
    Thanks Received:
    6,238
    Location:
    Chatsworth, GA
    Nope I just copied and pasted his that he made. Im a novice with only 1 week of hands on C++

    I just need the basics explained to me instead of what my teacher did and give me 2 chapters to read that I couldn't understand a damn thing LOL
     
    Crunching for Team TPU
  7. Steevo

    Steevo

    Joined:
    Nov 4, 2005
    Messages:
    8,562 (2.56/day)
    Thanks Received:
    1,318
    by creating a unnamed parameter you may also find that the contents read from whatever junk leftover in that block of system ram will create issues.
     
    10 Million points folded for TPU
  8. brandonwh64

    brandonwh64 Addicted to Bacon and StarCrunches!!!

    Joined:
    Sep 6, 2009
    Messages:
    18,778 (9.70/day)
    Thanks Received:
    6,238
    Location:
    Chatsworth, GA
    I still get errors when I use your code kreji
     
    Crunching for Team TPU
  9. Kreij

    Kreij Senior Monkey Moderator Staff Member

    Joined:
    Feb 6, 2007
    Messages:
    13,881 (4.82/day)
    Thanks Received:
    5,619
    Location:
    Cheeseland (Wisconsin, USA)
    Feel free to start your own thread with C++ questions Brandon.

    Okay, I didn't test in in the compiler and just spewed from memory. :D
    Back in a few minutes.
     
  10. brandonwh64

    brandonwh64 Addicted to Bacon and StarCrunches!!!

    Joined:
    Sep 6, 2009
    Messages:
    18,778 (9.70/day)
    Thanks Received:
    6,238
    Location:
    Chatsworth, GA
    Oh, I thought this was a C++ Tutorial thread? Im sorry kreji :( Just trying to get a better understanding of this stuff and by watching the masters (You guys here at TPU) I may catch on.
     
    Crunching for Team TPU
  11. Kreij

    Kreij Senior Monkey Moderator Staff Member

    Joined:
    Feb 6, 2007
    Messages:
    13,881 (4.82/day)
    Thanks Received:
    5,619
    Location:
    Cheeseland (Wisconsin, USA)
    Sorry Brandon, I did not mean to imply you could not ask question here, just that you could start your own thread if you want. :toast:

    VC++ is fussing still. Have to get back to you on that as I''m out of time tonight. :(


    Got it ... here you go ...
    Code:
    #include "stdafx.h"
    #include "iostream"
    #include "cmath"
    
    using namespace System;
    
    int main(array<System::String ^> ^args)
    {
        using namespace std;
        cout << pow((double)2, pow((double)2, 2));
        return 0;
    }
    
    Sorry, I'm a little rusty at C++. DOH !!
     
  12. Aleksander

    Joined:
    Dec 2, 2009
    Messages:
    3,254 (1.76/day)
    Thanks Received:
    304
    If you make it at school, than the best tutorial is the book in school
    The teacher wont give anything outside the book
    We made C++ and Java without a book and it was extremely difficult to understand
     
  13. Kreij

    Kreij Senior Monkey Moderator Staff Member

    Joined:
    Feb 6, 2007
    Messages:
    13,881 (4.82/day)
    Thanks Received:
    5,619
    Location:
    Cheeseland (Wisconsin, USA)
    When I first learned C++ years ago, I found the hardest part to be the transition from working in a functional programming language (C, Pascal, etc.) to an object oriented language. After writing code for years with a functional mindset, the abstract concepts of OOP were quite foriegn and almost seems superfluous at the time. Of course, once I really understood OOP, there was no looking back as it's advantages and benefits became readily apparant.

    Learning the new syntax of different language is really the easy part, as once you get some code working you basically won't forget how to use the syntax for any given example, or at least know where to find it in a programming reference.

    IMHO, the best thing anyone could possible do is to find themselves a mentor who is willing to answer all the questions that you will have on the undelying concepts of a given programming paradigm, and hopefully one who has a great deal of patience and the ability to present things from different angles when something is just not sinking in. Thankfully, I was blessed with a mentor who besides being a coding god, had both of those traits, and to this day is a very good friend. He has since moved into higher management levels at GE and I now code more than he does, but I still pick his brain on the rare occasion when I have questions on really low level code.

    When I was learning to code, the internet as we know it did not exist, so the new coders have a great advantage as there are many fine coders here on TPU who are willing to share their knowledge and experience simply for the asking, and who remember what it was like to be a coding n00b with more questions than answers. :D
     
  14. Horrux

    Horrux

    Joined:
    Jun 2, 2011
    Messages:
    735 (0.56/day)
    Thanks Received:
    124
    As a self-taught C programmer of decent skill back in the DOS days, teaching myself C++ failed miserably.

    Also, what is "cout"?
     
  15. Kreij

    Kreij Senior Monkey Moderator Staff Member

    Joined:
    Feb 6, 2007
    Messages:
    13,881 (4.82/day)
    Thanks Received:
    5,619
    Location:
    Cheeseland (Wisconsin, USA)
    It's the command to send output to the console.
     
  16. Horrux

    Horrux

    Joined:
    Jun 2, 2011
    Messages:
    735 (0.56/day)
    Thanks Received:
    124
    Damn where are the days when things were at least a little bit self-explanatory LOL. :eek:
     
  17. Aleksander

    Joined:
    Dec 2, 2009
    Messages:
    3,254 (1.76/day)
    Thanks Received:
    304
    Your post is really motivating and i hoped to have your chances too in C++.
    Unfortunately my mentor rejected me of being part of a project with Ogre3D for 9 months and accepted a girl who doesn't know how many bytes takes an int. That made me "VERY ANGRY" :mad: and i made the project using XNA in a single day. Now i know he was not a
    mentor. He was a fool trying to tell us that call of duty black ops uses the best vertex shaders ever made. I didn't lose my patience with him and went on programming myself.
    What is worse i have a lot of people arguing very bad about me and they don't want me to
    study programming, but i didn't hear anything and went on reading a 1200 pages book.
     
  18. razaron

    razaron

    Joined:
    Apr 26, 2008
    Messages:
    1,107 (0.45/day)
    Thanks Received:
    177
    Location:
    london
    When making a DnD dice roller a couple of months ago I remember using several math.min functions inside each other to work out 4d6 minus the lowest roll.
     
  19. ctrain New Member

    Joined:
    Jan 12, 2010
    Messages:
    393 (0.22/day)
    Thanks Received:
    72
    it doesn't have to be the same function.

    the return is used for the argument.

    this is C++/CLI (.NET), not native C++
     
    Last edited: Jan 13, 2012
  20. Kreij

    Kreij Senior Monkey Moderator Staff Member

    Joined:
    Feb 6, 2007
    Messages:
    13,881 (4.82/day)
    Thanks Received:
    5,619
    Location:
    Cheeseland (Wisconsin, USA)
    I know, ctrain ... that is because Brandon said he had to use VC++ in his uni classes.
     
  21. Aleksander

    Joined:
    Dec 2, 2009
    Messages:
    3,254 (1.76/day)
    Thanks Received:
    304
    Just found your problem.
    I tried it on visual studio 2010 it didn't work
    It will work if you add a
    file -> new project -> visual C++ -> win32 -> win32 console application -> empty project
    Copy paste it and it will work. It worked on my pc
    If you have trouble just post your problem or watch the steps again
    :toast:
     
  22. brandonwh64

    brandonwh64 Addicted to Bacon and StarCrunches!!!

    Joined:
    Sep 6, 2009
    Messages:
    18,778 (9.70/day)
    Thanks Received:
    6,238
    Location:
    Chatsworth, GA
    This is what I first tried and it errored when I compiled it
     
    Crunching for Team TPU
  23. Aleksander

    Joined:
    Dec 2, 2009
    Messages:
    3,254 (1.76/day)
    Thanks Received:
    304
    I know this thread is old, but to help out:
    I fixed the error in Visual Studio 2010 using math.h header instead of cmath.
    You should also remove the precompiled headers when starting a new empty project.
    In Visual Studio 2012, it works perfect since it has the new headers and C++11.
     
  24. MrSeanKon

    MrSeanKon New Member

    Joined:
    Nov 14, 2006
    Messages:
    267 (0.09/day)
    Thanks Received:
    69
    Location:
    Athens in love with Anna :)
    This is called recursion or not? :rolleyes:
    Because I remember now the recursive algorithm of Fibonacci formula.
     

Currently Active Users Viewing This Thread: 1 (0 members and 1 guest)

Share This Page