Equilibrium Posted January 10, 2012 Posted January 10, 2012 I'm starting to learn C++ but I would like to find some problems to practice my skills on. I don't know that much except for the very basic like looping and if-statements (Didn't learn to make a class yet because I'm preoccupied with studying for midterms as of now). So does anyone have something I can work on or a website with things of this sort? Thanks.
timo Posted January 10, 2012 Posted January 10, 2012 (edited) Create a class "Polynomial" that represents functions of the type [math]f(x) = a_0 + a_1 x^2 + a_2 x^2[/math] (hint: constructor) Create a method of that class that prints out pairs of x and f(x) over a specified range and with a specified distance between subsequent x. An output of this would look like x f(x) -1 0.5 -0.8 0.4 -0.6 0.3 -0.4 0.2 (hints: method, std::cout) Do the same but write to a text file rather than the screen (hint: std::ofstream) Not directly C++ related by arguably even more important for a scientist: Plot these data with a program of your choice to visualize the function. Use the program's built-in function parser to verify that the data you were writing out is correct. (hint: gnuplot) Extend the class to handle functions of the type [math]f(x) = a_0 + a_1 x^2 + a_2 x^2 + \dots[/math] (hint: std::vector) Implement an algebra over these objects, i.e. overload operators such than you can add two of these objects ([math] f^{(1)}(x) + f^{(2)}(x) = (a_0^{(1)} + a_0^{(2)}) + (a_1^{(1)} + a_1^{(2)}) x + \dots [/math]) and allows to multiply them with a real ( d * f(x) = d*a0 + d*a1*x + ...) (the term is "operator overloading"). Implement a method that finds the maximum f(x) over a given range [x0; x1] (no hint: there's several ways and the purpose of this task already is to spark your ambition to try out things for yourself). This program should be appropriate for a ambitious beginner, teach some basics of c++, and keep you occupied for some time (so don't worry if you are not finished with all those points after a day). Edited January 10, 2012 by timo
TimeContinuum Posted January 11, 2012 Posted January 11, 2012 Can you program me a 3d model simulation?
Xittenn Posted January 11, 2012 Posted January 11, 2012 Learning to program 3D Animations using DirectX or OpenGL are probably the most amusing projects to help you learn C++ IMO. This also teaches you to work with developed libraries, develops understanding of program structure, and also forces you into using most of the features of the language. Although bone animation can be a little tricky in terms of mathematics and a good understanding of the related matrix mathematics is necessary, learning these can be fairly simple as well. There are a lot of online resources that explain how to do these things, where I'm not so sure the depth of information is covered in other topics like extranet banking transactions.
NotanOriginalName Posted January 19, 2012 Posted January 19, 2012 WAP which prints its own source code.Its rather easy but really interesting for a starter.
khaled Posted January 19, 2012 Posted January 19, 2012 WAP which prints its own source code.Its rather easy but really interesting for a starter. A Quine, a code that prints its own source code. It's not an easy thing, at least for understanding how it's done. .. do you know what is the shortest Quine ? an empty source code
Cap'n Refsmmat Posted January 19, 2012 Posted January 19, 2012 You can play with problems from Project Euler: http://projecteuler.net/
Schrödinger's hat Posted January 19, 2012 Posted January 19, 2012 A Quine, a code that prints its own source code. It's not an easy thing, at least for understanding how it's done. .. do you know what is the shortest Quine ? an empty source code Not always. ~> touch Empty.java ~> javac Empty.java ~> java Empty Error: Could not find or load main class Empty Some compilers/interpreters will choke (giving you output that is not in your source in the form of error messages), or not produce any program output. The latter could be argued to be a Quine, but it all gets rather philosophical. What is the output of a program that does not exist? I'd say it's undefined, rather than nothing. Mysticism aside, I should address the OP. Equilibrium: My own favourite source of problems of this type is project euler http://projecteuler.net/ They're very math oriented, so may or may not be to your liking. Other than that, some 3D programming as has been suggested would be the way to go.
Ben Banana Posted February 2, 2012 Posted February 2, 2012 (edited) Although 3D graphics are extremely interesting (one of my largest interests), you're a beginner and you should start with a more simple and easy to complete project. Way back when I was first learning C++, I made a console-based restaurant tycoon game. It was a relatively easy project and very fun to play with. Like this: Patrick's Food Franchise! Main Menu 1 - New 2 - Load File 3 - Quit [user enters 1] You started a new game. Day 1. $40000, 1 restaurant(s). 1 - I'm ready. Begin a new day. 2 - Manage the HQ office. 3 - Manage a restaurant building. 4 - Build a new restaurant building (COST: $125000). 5 - Save game. 6 - Go to main menu. [user enters 3] Choose the restaurant building you want to manage: 1 - Capital [LEVEL 1] 2 - Cancel etc... That's just an example of how you can do it. You can integrate all kinds of strategic elements, upgrades and research trees (like marketing insight, or special restaurant equipment) etc. Have fun! Edited February 2, 2012 by Ben Bowen
lightburst Posted February 5, 2012 Posted February 5, 2012 One teacher told me to try and make your own implementation of some of the functions of an STL. You could do that for some of the generic algorithms I suppose. Of course this is assuming you're new to programming in general.
Xittenn Posted February 5, 2012 Posted February 5, 2012 One teacher told me to try and make your own implementation of some of the functions of an STL. You could do that for some of the generic algorithms I suppose. Of course this is assuming you're new to programming in general. Emulating STL functionality is a great way to learn to program, I wouldn't say that it presents an appropriate challenge level for a beginner though. I think that one should learn how to use a standard vector<> before learning translation units, memory management, template programming, sorting algorithms, and hashing etc. Just my opinion though, I would approach this as an intermediate programmer.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now