PHY 107 – Programming For Science. History of C Dennis Ritchie developed C from 1969 – 1973 ...

Post on 02-Jan-2016

212 views 0 download

Transcript of PHY 107 – Programming For Science. History of C Dennis Ritchie developed C from 1969 – 1973 ...

LECTURE 2:PROGRAMMING BASICS

PHY 107 – Programming For Science

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

History of C++

Bjarne Stroustrup created to add “objects” Also included many other improvements to

language Name is inside joke: "++" increases value

by 1 in C Updated for quick growth

ISO standard adopted in 1998 Recently updated to C++ 201x

C Versus C++

C++ is designed to be as compatible with C as

possible, thereby providing a

smooth transition from C

C Versus C++

C++

C

C Versus C++

C

C Versus C++

Latest definition of C added most C++ features Classes & objects excepted, these only

found in C++ For this reason, also not a part of PHY 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

Computers are VERY, VERY stupid

Computers have no common-sense They will only do what you tell them to

do NOT what you want them to do, which

often differs

Computers have no common-sense They will only do what you tell them to

do NOT what you want them to do, which

often differs

Computers have no common-sense They will only do what you tell them to do NOT what you want them to do, which

often differs

While this is true for everything computer does Programming highlights exactly how this

happens As you will see, C/C++ does nothing to

prevent mistakes

Case-Sensitivity

Example of computers being very literal And language not helping by fixing what you

say

main, Main, & MAiN treated as totally different Case of the letters matters, not just the

words Might want difference; C won’t change Main

to main Can help prevent easy mistakes from

swapping names With just a little practice, becomes second

nature

“Whitespace”

One (very small) way C/C++ actually helps you Treats all 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

“Whitespace”

One (very small) way C/C++ actually helps you Treats all 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

Your First C Program

#include <stdio.h>#include <stdlib.h>

int main() { /* Hi, Mom. This is a comment

that goes over 2 line. */ printf(“Hello world!”); return 0; // This comment goes to the line’s end}

#include Statements

#include <stdio.h>#include <stdlib.h>

int main() { /* Hi, Mom. This is a comment

that goes over 2 line. */ printf(“Hello world!”); return 0; // This comment goes to the line’s end}

Nearly every C file begins with these lines 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 <filename>

#include “filename” includes a file you wrote

Watch Me Pull a Rabbit

#include <stdio.h>#include <stdlib.h>

int main() { /* Hi, Mom. This is a comment

that goes over 2 line. */ printf(“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

Watch Me Pull a Rabbit

#include <stdio.h>#include <stdlib.h>

int main() { /* Hi, Mom. This is a comment

that goes over 2 line. */ printf(“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

Your First C Program

#include <stdio.h>#include <stdlib.h>

int main() { /* Hi, Mom. This is a comment

that goes over 2 line. */ printf(“Hello world!”); return 0; // This comment goes to the line’s end}

main Function

#include <stdio.h>#include <stdlib.h>

int main() { /* Hi, Mom. This is a comment

that goes over 2 line. */ printf(“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”

main Function

#include <stdio.h>#include <stdlib.h>

int main() { /* Hi, Mom. This is a comment

that goes over 2 line. */ printf(“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”

Comments

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 schreiben 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

Comments in C/C++

Double slash comments continue to line’s enda = a – 4; // Hi, Mom!// This entire line is a comment!

/* … */ comments can be on one or more linesa = 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. */

Your Turn

Work on activity in groups until 11:45 Each group will submit 1 copy at end Professor chooses the copy; so must work

together

For Next Lecture

Will have lab tomorrow, so bring flash drive Have not done much, but we can start to see system

Read pages 34-37, 57-59, 242-243 for Friday What is a data type? What are variables? How do variables differ from numbers and letters?

Week #1 assignment on D2L & due Tuesday This week different – relies on tomorrow’s lab