|
Thread Rules 1. This is not a "do my homework for me" thread. If you have specific questions, ask, but don't post an assignment or homework problem and expect an exact solution. 2. No recruiting for your cockamamie projects (you won't replace facebook with 3 dudes you found on the internet and $20) 3. If you can't articulate why a language is bad, don't start slinging shit about it. Just remember that nothing is worse than making CSS IE6 compatible. 4. Use [code] tags to format code blocks. |
On July 11 2010 13:59 Divinek wrote:Show nested quote +On July 11 2010 13:41 LuckyLuke43 wrote:Hehe, I'm probably gonna get kicked out of this whole thread but.. When I was like 12, me and a friend decided to learn how to make homepages! HTML was 'the shit' back then - atleast that was the only thing we'd heard of ;P. So we started with that, and I knew some basic shit(I could make a webpage with buttons and links and whatnot; yaaaay) by the end of that whole phase. Anyways, I kinda drifted from the whole programming thing(scripting, we called it, haha), but my friend continued. Some months later, my friend showed me on his computer how far he'd come. He had studied Java(I think?), and was now done with webpages - that was too boring!. Instead he was doing programs. He did calculators etc. Then some months after that, he had learned how to use C++, and was now doing all sorts of games and cool apps;P like Snake(the game). Fun little story I wanted to share ![](/mirror/smilies/smile.gif) Anyways, I'm a _TOTAL_ newbie, I have no knowledge at all about programming. Where should I start? I've looked at some code, and I understand nAdA. C++ might aswell be korean characters. Any ideas? Should I start with HTML like my friend did and slowly evolve? starting with java or c++ is perfectly fine, any language really isnt that hard. You certainly dont have to start with html if that doesnt interest you most. You can find tons and tons of online tutorials for the stuff, plus the links in the op are really nice
Sounds good. I already hit up some stuff on youtube. Some guy did like 6 tutorials on basic C++, and I did 'em all. Sadly, after watching and doing all 6, I felt like I just had copy/pasted his work, without actually learning why, what, where or how ;P Thanks tho, I think I'm gonna try and study this some in the near future Programming is fun! Even if it's just on a mindblowingly newbie level, tee-hee.
|
Get QtCreator and Qt4 if you are on Linux.
Or get Visual C# express if you are on Windows.
The newbie stuff is incredibly boring after you understand all the basics. Better just get stuck into it and make some thing in winform e.g. a usage tracker for your isp etc or an Alarm clock.
Both shouldn't be too hard.
|
If you're starting with C++ and don't have OOP practice yet, here's a few tips from someone who didn't go the easy way (because I didn't know better):
All the online tutorials I found so far don't really teach you C++. They teach you C style coding in C++ and a few things about classes. Those tutorials might help you learn the syntax, but you will lack a deeper understanding of the language. That's a decent way to start, but it's not enough. You should not stop at that point. Once you feel confident with the syntax (i.e. you only have to look up syntax every now and then), read this for some pointers to which subjects you should read about (that FAQ also has a lot of good information in it though you don't have to understand it all if you're new to C++). If you really want to get good at C++ I suggest that you get a few books on it. For casual use that won't be necessary. Knowledge from other languages can be carried over too.
Two things about C++ that I would consider very important and that aren't taught in most tutorials:
1) Don't use C-Style casts:
char c ; // C style no.1 int a = (int)c;
// C style no.2 int b = int(c); Use C++ casts instead:
char c ; // C++ int a = static_cast<int>(x);
// there also is: // reinterpret_cast<T>(x) // const_cast<T>(x)
The reason behind this is that casting in general should be avoided, and clearly visible when it's actually done. The C++ casts are ugly so you don't even want to use them, and they are much more visible than a pair of brackets. You should read up on those later on when you can't avoid casting.
2) Read about the STL (standard template library) and use it. It'll make your life so much easier. You can code some stuff that is part of the STL as coding practice, but for other code you should use the STL classes most of the time.
|
I think this thread is like some sort of crazy savior or something. It makes me wish it wasn't 4:40AM and I need sleep.
Basically, I'm going into my 3rd year of Computer Science, and I'm moving a bit slower than I should. While I'm getting a good grasp on OOP, I'm just not getting the algorithms part of it, and Computer Organization (where we started to go over lower level details such as data paths) confused the hell out of me. I still have my textbook though, and I may go back into reading it.
This thread is kind of inspirational. I think I need to just sit down and write some stuff, which I don't do often but I want to, I just lack motivation. It was my goal to work on some game design this summer, but I feel like I shouldn't go so far yet. Any basic ideas for smaller scale projects that are higher level? My only language experience is C#, Objective C, Java, JavaScript, some MIPS assembly, and Python and I'm not the best at coming up with my own ideas. If anyone can just throw ideas my way, I'd appreciate it. I have a couple in mind I'll try here soon, such as a calculator (more than just addition, subtraction, multiplication, division, etc.) and maybe sorting programs.
|
On July 11 2010 17:11 spinesheath wrote:If you're starting with C++ and don't have OOP practice yet, here's a few tips from someone who didn't go the easy way (because I didn't know better): All the online tutorials I found so far don't really teach you C++. They teach you C style coding in C++ and a few things about classes. Those tutorials might help you learn the syntax, but you will lack a deeper understanding of the language. That's a decent way to start, but it's not enough. You should not stop at that point. Once you feel confident with the syntax (i.e. you only have to look up syntax every now and then), read this for some pointers to which subjects you should read about (that FAQ also has a lot of good information in it though you don't have to understand it all if you're new to C++). If you really want to get good at C++ I suggest that you get a few books on it. For casual use that won't be necessary. Knowledge from other languages can be carried over too. Two things about C++ that I would consider very important and that aren't taught in most tutorials: 1) Don't use C-Style casts: char c ; // C style no.1 int a = (int)c;
// C style no.2 int b = int(c); Use C++ casts instead: char c ; // C++ int a = static_cast<int>(x);
// there also is: // reinterpret_cast<T>(x) // const_cast<T>(x)
The reason behind this is that casting in general should be avoided, and clearly visible when it's actually done. The C++ casts are ugly so you don't even want to use them, and they are much more visible than a pair of brackets. You should read up on those later on when you can't avoid casting. 2) Read about the STL (standard template library) and use it. It'll make your life so much easier. You can code some stuff that is part of the STL as coding practice, but for other code you should use the STL classes most of the time.
Thanks, I'll look into that!
Also, I found a "Learning C++" that some guy wrote: http://www.isotton.com/devel/docs/lcpp/ I've around 30pages until now, and I just got my first 4 assignments, but I've been sitting here for 30 minutes trying to figure out how the hell to do #1 lol.
+ Show Spoiler +
1. Write a program asking for an integer number and saying whether it is positive or not. (Zero is not positive). This is what I've come up with so far, lol:
#include <iostream> using namespace std;
int main() { cout << "Tell me a number, and I will tell you if it is positive or not!\n"; int choice; cin >> choice;
system("PAUSE"); // I finally got the damn window to STAY up and not instaclose lol }
The thing I don't really get is WHAT is the damn integer number? Okay so an integer number is basically just any number without a decimal, got it. Still I have no idea how to go about this one *sigh*
EDIT: I think I got it!! *in spoiler tag below*
+ Show Spoiler + #include <iostream> using namespace std;
int main() { cout << "Tell me a number, and I will tell you if it is positive or negative!\n"; int number; cin >> number;
if (number > 0) cout << "The number you have chosen is positive.\n"; else cout << "The number you have chosen is not positive.\n;
system("PAUSE"); }
Sidenote: I'm using Dev-C++ right now, but I don't really like how it forces me to set up my code in a certain way. It doesn't look as organized as it could, in my eyes. *fume*
|
On July 11 2010 18:15 LuckyLuke43 wrote: Sidenote: I'm using Dev-C++ right now, but I don't really like how it forces me to set up my code in a certain way. It doesn't look as organized as it could, in my eyes. *fume* I think you'd be better off with Code::Blocks, or if you're on Windows I would just use Visual C++ 2010 Express.
|
On July 11 2010 09:19 tofucake wrote: I've done plenty with sockets in just about every language I've worked with. Anyway, what's your aim? Writing a website that does fancy loading without reloading is totally different from writing, say, a Battle.net bot.
Well, let's say I want to be able to pull data from websites, to find the temperature for today, or something to that effect. Or mayhaps build a bot, that would probably be fun. I'm talking about interacting with the websites, not building fancy websites in php/java/etc.
|
On July 11 2010 18:15 LuckyLuke43 wrote:Show nested quote +On July 11 2010 17:11 spinesheath wrote:If you're starting with C++ and don't have OOP practice yet, here's a few tips from someone who didn't go the easy way (because I didn't know better): All the online tutorials I found so far don't really teach you C++. They teach you C style coding in C++ and a few things about classes. Those tutorials might help you learn the syntax, but you will lack a deeper understanding of the language. That's a decent way to start, but it's not enough. You should not stop at that point. Once you feel confident with the syntax (i.e. you only have to look up syntax every now and then), read this for some pointers to which subjects you should read about (that FAQ also has a lot of good information in it though you don't have to understand it all if you're new to C++). If you really want to get good at C++ I suggest that you get a few books on it. For casual use that won't be necessary. Knowledge from other languages can be carried over too. Two things about C++ that I would consider very important and that aren't taught in most tutorials: 1) Don't use C-Style casts: char c ; // C style no.1 int a = (int)c;
// C style no.2 int b = int(c); Use C++ casts instead: char c ; // C++ int a = static_cast<int>(x);
// there also is: // reinterpret_cast<T>(x) // const_cast<T>(x)
The reason behind this is that casting in general should be avoided, and clearly visible when it's actually done. The C++ casts are ugly so you don't even want to use them, and they are much more visible than a pair of brackets. You should read up on those later on when you can't avoid casting. 2) Read about the STL (standard template library) and use it. It'll make your life so much easier. You can code some stuff that is part of the STL as coding practice, but for other code you should use the STL classes most of the time. Thanks, I'll look into that! Also, I found a "Learning C++" that some guy wrote: http://www.isotton.com/devel/docs/lcpp/I've around 30pages until now, and I just got my first 4 assignments, but I've been sitting here for 30 minutes trying to figure out how the hell to do #1 lol. + Show Spoiler +
1. Write a program asking for an integer number and saying whether it is positive or not. (Zero is not positive). This is what I've come up with so far, lol:
#include <iostream> using namespace std;
int main() { cout << "Tell me a number, and I will tell you if it is positive or not!\n"; int choice; cin >> choice;
system("PAUSE"); // I finally got the damn window to STAY up and not instaclose lol }
The thing I don't really get is WHAT is the damn integer number? Okay so an integer number is basically just any number without a decimal, got it. Still I have no idea how to go about this one *sigh*EDIT: I think I got it!! *in spoiler tag below* + Show Spoiler + #include <iostream> using namespace std;
int main() { cout << "Tell me a number, and I will tell you if it is positive or negative!\n"; int number; cin >> number;
if (number > 0) cout << "The number you have chosen is positive.\n"; else cout << "The number you have chosen is not positive.\n;
system("PAUSE"); }
Sidenote: I'm using Dev-C++ right now, but I don't really like how it forces me to set up my code in a certain way. It doesn't look as organized as it could, in my eyes. *fume*
Some notes: First of all, for the love of coding, download MS VC++ 2010. Dev-C++ is horribly outdated. Now for some things on your code:
system("PAUSE"); is bad practice. Everything system() is usually regarded as bad practice, it's windows only and very slow, and can cause all kinds of hell, you don't need to know exactly why, and neither do I. So some alternatives:
#include <iostream> using namespace std; cout << "Press any key to continue."; cin.get();
#include <conio.h> using namespace std; cout << "Press any key to continue."; _getch();
Out of these two I believe the first one is more commonly used. Oh and you could also run the program from command line.
Now about coding style, there are 2 common ways to use the curly brackets;
int main() { return 0; }
int main() { return 0; }
Chances are your code just uses one style because it's all from the same author, but be aware of both of them. I personally find the second option a lot more easier on the eye... Or something.
For your if statement, while it works, you should try to always use curly brackets. Example:
Let's say you have this:
if (number > 0) cout << "The number you have chosen is positive.\n"; else cout << "The number you have chosen is not positive.\n;
Now let's say you want to do something additionally to just printing if it's > or < 0, like counting every time it's a positive number.
if (number > 0) cout << "The number you have chosen is positive.\n"; counter++; else cout << "The number you have chosen is not positive.\n;
RUH ROH, now the counter isn't actually included inside the if, you'll probably get a compile error(?) because the else isn't directly after the if, what you have in fact got is
if (number > 0) cout << "The number you have chosen is positive.\n";
counter++; else cout << "The number you have chosen is not positive.\n;
While you probably knew this, it's still better practice to always use curly brackets. While it's not a concern for you right now, you want your code to be as readable as possible to other coders. Also it makes it easier to expand on your code.
And lastly, remember to return your main function like this return(0); at the very end of it. I believe it doesn't matter because the compiler actually takes care of it for you, but I could be wrong. Just do it anyways, better practice.
Goddamn this post is long.
|
On July 11 2010 19:11 Adeny wrote:And lastly, remember to return your main function like this return(0); at the very end of it. I believe it doesn't matter because the compiler actually takes care of it for you, but I could be wrong. Just do it anyways, better practice. It's not necessary, but it doesn't hurt either. You also don't need the brackets, but again, it's a style choice.
|
Some notes: First of all, for the love of coding, download MS VC++ 2010. Dev-C++ is horribly outdated.
It's almost downloaded! ;D;D Sry, I have no idea what's outdated and not, I'm a total newbie in the full sense of the word!
Now for some things on your code:
system("PAUSE"); is bad practice. Everything system() is usually regarded as bad practice, it's windows only and very slow, and can cause all kinds of hell, you don't need to know exactly why, and neither do I.
I actually had no idea.. thanks, I will get rid of this nonsense at once! *rawr*
#include <iostream.h> using namespace std; cout << "Press any key to continue." cin.get()
#include <conio.h> using namespace std; cout << "Press any key to continue." _getch();
Out of these two I believe the first one is more commonly used. Oh and you could also run the program from command line. Now about coding style, there are 2 common ways to use the curly brackets; int main() { return 0; }
int main() { return 0; }
Chances are your code just uses one style because it's all from the same author, but be aware of both of them. I personally find the second option a lot more easier on the eye... Or something. For your if statement, while it works, you should try to always use curly brackets. Example: Let's say you have this:
if (number > 0) cout << "The number you have chosen is positive.\n"; else cout << "The number you have chosen is not positive.\n;
Now let's say you want to do something additionally to just printing if it's > or < 0, like counting every time it's a positive number.
if (number > 0) cout << "The number you have chosen is positive.\n"; counter++; else cout << "The number you have chosen is not positive.\n;
RUH ROH, now the counter isn't actually included inside the if, you'll probably get a compile error(?) because the else isn't directly after the if, what you have in fact got is
if (number > 0) cout << "The number you have chosen is positive.\n";
counter++; else cout << "The number you have chosen is not positive.\n;
While you probably knew this, it's still better practice to always use curly brackets. While it's not a concern for you right now, you want your code to be as readable as possible to other coders. Also it makes it easier to expand on your code. And lastly, remember to return your main function like this return(0); at the very end of it. I believe it doesn't matter because the compiler actually takes care of it for you, but I could be wrong. Just do it anyways, better practice. Goddamn this post is long.
Don't worry about it being long, it's well appreciated! [Indent] About these things tho, they mean nothing to me at the moment... however, after I'm done with this 'c++ for dummies' thingy, I'll def get back to this post and try to implement it in my coding! - Thanks alot for the help.
Oh yes, and I noticed the brackets and the return right after posting *blush*. also, I've been using -> return 0; is return (0); better or does it not matter?
Once again thanks<3
|
Oops, my appoligies, I meant return 0; as you didn't have that originally. My bad!
|
Ha! owned *tickle* ![](/mirror/smilies/smile.gif)
Btw I finished assigment 1. Second assignment is much worse lol.
2. Modify the previous program so that it says whether the number is positive, negative or zero. - EEEEEK =((
Will this work?
if (choice > 0) { cout << "The number you have chosen is positive.\n"; }
else if (choice < 0) { cout << "The number you have chosen is negative\n"; }
else { cout << "The number you have chosen is zero.\n"; }
or something like that.. I'm guessing no, but ;P
|
That looks exactly right. Also I accidently said #include <iostream.h> further up, it's obviously supposed to be #include <iostream>. Typos, typos everywhere.
|
\n is a character literal, for the sake of platform sanity.
use cout << YourString << endl; format
fixed..
|
For the sake of my curiosity, which platform doesn't accept \n? I haven't come across one yet.
|
On July 11 2010 19:54 Adeny wrote: That looks exactly right. Also I accidently said #include <iostream.h> further up, it's obviously supposed to be #include <iostream>. Typos, typos everywhere.
Awesome! Now I just have to find out how the heck to compile from MS visual lol. Yeah I was wondering about the .h thingy. Might've been essential for all I knew tho ![](/mirror/smilies/smile.gif)
On July 11 2010 19:55 haduken wrote: \n is a character literal, for the sake of platform sanity.
use cout << YourString << endl format;
Oh god. Okay, the first person that tried to help me said do it like this: cout << "blabla" << endl;
Then someone came along and went: nono, see it's like this -> cout << "blabla\n";
And now this! eeek.
Okay. So.
cout << MyString << endl format; or cout << MyString << endl; ?
|
On July 11 2010 19:55 haduken wrote: \n is a character literal, for the sake of platform sanity.
use cout << YourString << endl format;
Actually '\n' is portable in C++, it will become the platform's equivalent new line character(s). So that's not the purpose of std::endl.
std::endl is for inserting a newline and flushing the stream's buffer, which isn't necessarily what you always want to do. For instance, if you're writing to a buffered file stream then arbitrarily flushing on every new line might take a lot longer than allowing it to buffer naturally. If the file is a debugger's log then you might want to flush more often in case your program crashes before it gets a chance to flush the log stream, but then it's probably best to use an unbuffered stream anyway.
|
That would be yet another typo LuckyLuke. There's no endl format; what he meant was endl; format. For now I don't think you should really bother about the difference between \n and endl.
|
On July 11 2010 20:07 Adeny wrote: That would be yet another typo LuckyLuke. There's no endl format; what he meant was endl; format. For now I don't think you should really bother about the difference between \n and endl.
Yeah, I agree *blush*. When I get to a higher level of skill/knowledge, I'm guessing I will look back and go: "jesus freakin' christ I can't believe I actually asked 3(!!) times about that... *facepalm*" lol.
|
On July 11 2010 20:04 dvide wrote:Show nested quote +On July 11 2010 19:55 haduken wrote: \n is a character literal, for the sake of platform sanity.
use cout << YourString << endl format;
Actually '\n' is portable in C++, it will become the platform's equivalent new line character(s). So that's not the purpose of std::endl. std::endl is for inserting a newline and flushing the stream's buffer, which isn't necessarily what you always want to do. For instance, if you're writing to a buffered file stream then arbitrarily flushing on every new line might take a lot longer than allowing it to buffer naturally. If the file is a debugger's log then you might want to flush more often in case your program crashes before it gets a chance to flush the log stream, but then it's probably best to use an unbuffered stream anyway.
I thought that would depend on the particular compiler. (It's being a while, so I will give you the benefit of the doubt). I remembered my Lecturer going on about \n being mapped to different ASCII codes on different platforms...
I certainly had trouble with Windows files feed with \n in codes and reading them in Linux and vice versa but that was pretty raw C.
|
|
|
|