Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSC 107 – Programming For Science. Announcements.

Similar presentations


Presentation on theme: "CSC 107 – Programming For Science. Announcements."— Presentation transcript:

1 CSC 107 – Programming For Science

2 Announcements

3 History of C  Dennis Ritchie developed C from 1969 – 1973  Based upon B (& other) earlier languages  Since its creation, language grown organically  Tradition of adding features beyond standard as desired

4 History of C++  Bjarne Stroustrup created to add “objects”  Also included many other improvements to language  Name is inside joke: "++" is increment operator in C  Updated for quick growth  2.0 release in 1989  1998 adopted as ISO standard  C++ 201 x in development now

5 C Versus C++ C++ is designed to be as compatible with C as possible, thereby providing a smooth transition from C

6 C Versus C++ C++ C

7 C Versus C++ C

8  Latest definition of C added most C++ features  Not classes & objects, these only found in C++  For this reason, also not a part of CSC 107  Differences now minimal and easily avoided  Once objects removed, C++ just “looser” C  Removes annoying restrictions that had been in C  Since makes life easier, often supported in C anyway

9

10

11

12  Computers have no common-sense do what you tell them to do  They will only do what you tell them to do  NOT what you want them to do  NOT what you want them to do, which often differs

13 Case-Sensitivity  Example of computers being very literal  And language not helping by fixing what you say  main, Main, & MAiN treated as different words  Case of the letters matters, not just the words  Could be different, so C++ won’t change Main to main  Can help prevent easy mistakes from swapping names  With just a little practice, becomes second nature

14 “Whitespace”  One (very small) way C++ actually helps you  C++ treats whitespace equally – spaces, enters, & tabs  Whether 1 or 1000000000000 – all will be ignored  Cannot use in symbol, whitespace splits words  Treats these as different “ : : ” and “ :: ”  Spaces between words needed, but not counted  Wecansplitwordsbutthecomputercannot

15 “Whitespace”  One (very small) way C++ actually helps you  C++ treats whitespace equally – spaces, enters, & tabs  Whether 1 or 1000000000000 – all will be ignored  Cannot use in symbol, whitespace splits words  Treats these as different “ : : ” and “ :: ”  Spaces between words needed, but not counted  Wecansplitwordsbutthecomputercannot

16 Your First C++ Program #include using std::cout; int main() { /* Hi, Mom. This is a comment that goes over 2 line. */ std::cout << “Hello world!”; return 0; // This comment goes to the line’s end }

17 #include Statements #include using std::cout; /* Hi, Mom. This is a comment that goes over 2 line. */ int main() { std::cout << “Hello world!”; return 0; // This comment goes to the line’s end }  Nearly every C++ file begins with this directive  May add more #include to include other files  Contents of included file usable as if it were here  Easy way to copy ideas across multiple files  Programs can use two types of #include statements  Include system file using #include  #include “ filename ” includes a file you wrote

18 Watch Me Pull a Rabbit #include using std::cout; /* Hi, Mom. This is a comment that goes over 2 line. */ int main() { std::cout << “Hello world!”; return 0; // This comment goes to the line’s end }  For now, automatically start each file with this line  Details are unimportant – consider it magic

19 Watch Me Pull a Rabbit #include using std::cout; /* Hi, Mom. This is a comment that goes over 2 line. */ int main() { std::cout << “Hello world!”; return 0; // This comment goes to the line’s end }  For now, automatically start each file with this line  Details are unimportant – consider it magic

20 Your First C++ Program #include using std::cout; int main() { /* Hi, Mom. This is a comment that goes over 2 line. */ std::cout << “Hello world!”; return 0; // This comment goes to the line’s end }

21 Using Commands #include using std::cout; /* Hi, Mom. This is a comment that goes over 2 line. */ int main() { std::cout << “Hello world!”; return 0; // This comment goes to the line’s end }  More “magic”, but using has less important purpose  Tells compiler we are lazy & save some typing  Two types of using statements to choose from  Specify single shortcut with using std::cout  using std; gives you a list of shortcuts to use  Unlike #include statements, using never required  Do not worry about it – will not be using them

22 Your First C++ Program #include using std::cout; int main() { /* Hi, Mom. This is a comment that goes over 2 line. */ std::cout << “Hello world!”; return 0; // This comment goes to the line’s end }

23 main Function #include using std::cout; int main() { /* Hi, Mom. This is a comment that goes over 2 line. */ std::cout << “Hello world!”; return 0; // This comment goes to the line’s end }  All C++ programs contain function called main  Tells computer where to start running program  Code inside the braces will be what is executed  For the moment, consider this more “magic”

24 main Function #include using std::cout; int main() { /* Hi, Mom. This is a comment that goes over 2 line. */ std::cout << “Hello world!”; return 0; // This comment goes to the line’s end }  All C++ programs contain function called main  Tells computer where to start running program  Code inside the braces will be what is executed  For the moment, consider this more “magic”

25 Comments  Vital  Vital for writing and maintaining any program  Not required to run program - only for human eyes  Computer simply ignores anything in a comment  Use to describe code in simple English  Sie konnen auch auf Deutsch screiben  o U c%d wrte n txt msg  Should be used liberally  I add comments where cannot see what code does  Impossible to have too many comments, if readable

26 Comments in C++  Double slash comments continue to line’s end a = a – 4; // Hi, Mom! // This entire line is a comment!  /* … */ comments can be on one or more lines a = a - /* Hi, Mom! */ 4; /* This comment takes an entire line. */ /* This is a really long comment that * goes on to multiple lines. The stars on * lines 2 and on are optional, but * makes things easier to read. */

27 Pre-processor Directives  Code “pre-processed” before compilation  No need to request it --- automatically occurs  Easier-to-read code results from this process  Just like using comments -- notice a recurring theme?  Pre-processor directives start with #  One directive per line & nothing else on the line  Directives should not span multiple lines

28 Symbolic Constants  Directive can be used to name a constant  Any/all lines BELOW directive can use this constant  Pre-processor replaces name with value  Compiler sees value as if that were written there  When reading the code, programmer sees name  Makes code much easier to read, write, debug  Names traditionally in all CAPITAL letters  THIS IS NOT REQUIRED  THIS IS NOT REQUIRED, but common convention

29 What You Write And Work With #define PI 3.1415962 #define AVOGADRO 6.022E23 #define MY_NAME “Matthew Hertz” #define DUMB_EXAMPLE MY_NAME double area = PI * (r * r); cout << MY_NAME; cout << DUMB_EXAMPLE;

30 What The Compiler Sees #define PI 3.1415962 #define AVOGADRO 6.022E23 #define MY_NAME “Matthew Hertz” #define DUMB_EXAMPLE MY_NAME double area = PI * (r * r); cout << MY_NAME; cout << DUMB_EXAMPLE;

31 What The Compiler Sees #define AVOGADRO 6.022E23 #define MY_NAME “Matthew Hertz” #define DUMB_EXAMPLE MY_NAME double area = 3.1415962 * (r * r); cout << MY_NAME; cout << DUMB_EXAMPLE;

32 What The Compiler Sees #define AVOGADRO 6.022E23 #define MY_NAME “Matthew Hertz” #define DUMB_EXAMPLE MY_NAME double area = 3.1415962 * (r * r); cout << MY_NAME; cout << DUMB_EXAMPLE;

33 What The Compiler Sees #define MY_NAME “Matthew Hertz” #define DUMB_EXAMPLE MY_NAME double area = 3.1415962 * (r * r); cout << MY_NAME; cout << DUMB_EXAMPLE;

34 What The Compiler Sees #define DUMB_EXAMPLE “Matthew Hertz” double area = 3.1415962 * (r * r); cout << “Matthew Hertz”; cout << DUMB_EXAMPLE;

35 What The Compiler Sees double area = 3.1415962 * (r * r); cout << “Matthew Hertz”; cout << “Matthew Hertz”;

36 What The Compiler Sees double area = 3.1415962 * (r * r); cout << “Matthew Hertz”; cout << “Matthew Hertz”;

37 Variables  Variable names location to store data  Memory location's initial value is unknown  Assignments update memory location with new value  Memory location updated by assignment ONLY  When variable is used in program…  …uses current value at that memory location  Just about everything (interesting) uses variables

38 Variable Declarations  Variables must be declared before can be used  Way of getting computer to make space for variable  States how to interpret memory in future uses  Allows the compiler to check if uses are legal  Declarations must include two pieces:  Each variable must have legal, unique name  Type of data that the variable stores

39 Variable Names  Begin with letter or underscore ( _ )  Then use any letters, numbers, or underscore  C++ case-sensitive when naming variables  Will treat as different Mass, mass, & masS  Unique name * needed for each variable  Computer wouldn't know which of 1,000 bob s to use  Reserved words are… reserved and can't be used  Includes all type names on p. 83 of book  void, unsigned, class also reserved words

40 Variable Name Conventions  Usually names begin with lowercase letter  Helps clarify variables & symbolic constants  Provide good idea of what variable stores  Split multiple uses into multiple variables  Some things always make for bad names  tmp, b, l (lowercase letter L)  Anything would not say to parents and/or priest

41 Variable Name Conventions

42 Data Types  Each variable also has data type  How program treats variable’s value defined by this  Single true or false value held by bool  C/C++ defines 7 numeric data types  Integer types: short, int, long, long long  Decimal types: float, double, long double not really standardized  Ranges for each type is not really standardized  Non-negative versions using unsigned ______  char data type can hold a character

43 Representing Text  Most computers you find follow ASCII standard  American Standard Code for Information Interchange  256 (= 2 8 ) possible characters in extended definition  Since computers are stupid, need to set fixed size  Only use 0 s & 1 s within computer – all it knows  Number still stored, but character is displayed  For number 97, a is printed  Prints & for number 38  For number 55, 7 is printed

44 ASCII Table

45 There Is No Character  For computer, there are no characters  Add to actual number just like normal addition: ’M’ + 3 = 77 + 3 = 80 (’P’) ’0’ + 5 = 48 + 5 = 53 (’5’) 9 + ’1’ = 49 + 9 = 58 (’:’) ’1’+’0’ = 49 + 48= 97 (’a’)  Can also use to subtract, divide, any other operation

46 Writing Variable Declarations  Single variable declared as: type name; double goodNameExample; short bad;  Can also declare multiple variables at once: int i, j; long double k, l, m, n, o, p; float thisIsAReallyLongName, thisIsAnotherLongName;

47 Writing Variable Declarations  Could also specify initial value for variable  Variable, constant, literal, or expression can be used int i = 0.0; long j = -1; long double k = -0.000232847812; long l = j, many, minusJ = -j; char c = ‘i’; char newLine = ‘\n’; char tab = ‘\t’;

48 Writing Variable Declarations  Could also specify initial value for variable  Variable, constant, literal, or expression can be used int i = 0.0; long j = -1; long double k = -0.000232847812; long l = j, many, minusJ = -j; char c = ‘i’; char newLine = ‘\n’; char tab = ‘\t’;

49 Constants  Constants very similar to variables  Must be declared with a data type and unique name  const data_type var_name declares variable  Value of constant fixed when declared, however  Variables & constants treated and used similarly

50 Your Turn  Get in groups & work on following activity

51 For Next Lecture  Read sections 5.1 – 5.4 & 5.6, 6.1 – 6.6 for Tues.  What is this cout thing, anyway?  Can we read in input from the keyboard?  What operations exist for us to use with variables?  What do we mean by order of operations?  Week #1 weekly assignment due Tuesday  Problems available on Angel – covered 1 st two already  If problem takes more than 10 minutes, TALK TO ME!


Download ppt "CSC 107 – Programming For Science. Announcements."

Similar presentations


Ads by Google