Numbers are one of two types: int no decimal point approx range plus or minus 2,000,000,000 double with decimal point accurate to approx 14 digits range approx ten-to-the-power-of plus or minus 308 may be written using "e" to stand for "times ten to the power of", e.g. 1.6e6 means 1600000.0 1.23e-4 means 0.000123 Expressions produce a value generally have no direct effect. consist of numeric constants operators * / high priority + - low priority others to be seen same priority goes left to right. operator given two ints always has int result two doubles gives double result mixture: int converted to double first. ( ) functions e.g. sqrt(2.5) these ones take double inputs and give double results sin, cos, tan, atan, asin, acos, they use radians not degrees. sqrt fabs is absolute value pow(a, b) is a to the power of b exp(a) is e to the power of a log(a) is natural (base e) logarithm of a log10(a) is base 10 logarithm there are many more this one take int inputs and gives int results abs, absolute value statements have a direct effect, generally don't produce results always end with a semicolon. e.g. print(6*3); make_window(400, 600-22); many more kinds, to be seen soon. Names must begin with a letter, and may contain only letters, digits, and _underlines. C++ thinks that cat, Cat, and CAT are three completely different things. Comments are completely ignored and have no effect. They can appear anywhere. The have two forms: // after the symbol // everything up to the end of the line is ignored /* after the symbol /* everything up to the symbol */ is ignored. This sort of comment can cover many many lines. A program consists of a sequence of directives - begin with # #include "library.h" definitions of functions. group of statements given a name void name ( ) { a bunch of statements } other forms will be seen soon. definitions of constants, for example const int hundred = 100; const double pi = acos(-1.0); // this is the most accurate pi.