Presentation is loading. Please wait.

Presentation is loading. Please wait.

PHY 107 – Programming For Science. Announcements  Slides, activities, & solutions always posted to D2L  Note-taking versions before class, for those.

Similar presentations


Presentation on theme: "PHY 107 – Programming For Science. Announcements  Slides, activities, & solutions always posted to D2L  Note-taking versions before class, for those."— Presentation transcript:

1 PHY 107 – Programming For Science

2 Announcements  Slides, activities, & solutions always posted to D2L  Note-taking versions before class, for those who want  Do get updated after class with any needed updates  Use them in labs, weekly assignments, and projects  There are also many other resources available  Links on D2L to a few useful websites  Library’s closed reserve has textbook & other books

3 Your First C Program

4 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

5 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 “good style”

6 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); printf(MY_NAME); printf(DUMB_EXAMPLE);

7 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); printf(MY_NAME); printf(DUMB_EXAMPLE);

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

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

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

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

12 What The Compiler Sees double area = 3.1415962 * (r * r); printf(“Matthew Hertz)”; printf(“Matthew Hertz)”;

13 What The Compiler Sees double area = 3.1415962 * (r * r); printf(“Matthew Hertz)”; printf(“Matthew Hertz)”;

14 Symbolic Constants  Value copied where it is used

15 Symbolic Constants

16

17 Variables  Variable  Variable gives name to address where data stored  When variable created, its initial value is unknown  Assignments update memory location with new value  Locations in memory updated by assignment ONLY  When variable is used in program…  …uses current value at that memory location  Just about everything (interesting) uses variables

18 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

19 Variable Names  Begin with letter or underscore ( _ )  Then use any letters, numbers, or underscore  C/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  Reserved words includes void, unsigned, class

20 Variable Name Conventions  Usually names begin with lowercase letter  Helps clarify variables & symbolic constants  Best if name specifies datum 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 grandparent, priest, boss…

21 Variable Name Conventions

22 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

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

24 ASCII Table

25 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

26 Writing Variable Declarations

27  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';

28 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';

29 Constants

30 Variables, Constants, & More General CasesExamples Variable Declaration dataType name; dataType name = value; dataType name, anotherName; dataType name = value, anotherName; int count; bool monkey = true; char help,letter; char a=‘a’,letter; Constant Declaration const dataType NAME= value; const double PI=3.1; Symbolic Constant #define NAME value #define AGE 34

31 Your Turn  Work on activity in groups until 11:45  Each group will submit 1 copy at end of class  Professor chooses the copy; so must work together

32 For Next Lecture  Read pages 37 - 45 for Wed.  What operations exist for us to use with variables?  What can we use these variable to do anything?  Why do data types matter in computations?  What do we mean by order of operations?  Week #1 weekly assignment due Tuesday  Problems available on D2L & should be doable  If problem takes more than 10 minutes, TALK TO ME!


Download ppt "PHY 107 – Programming For Science. Announcements  Slides, activities, & solutions always posted to D2L  Note-taking versions before class, for those."

Similar presentations


Ads by Google