Csc 107 programming for science
This presentation is the property of its rightful owner.
Sponsored Links
1 / 51

Lecture 2: Programming Basics & Variables PowerPoint PPT Presentation


  • 53 Views
  • Uploaded on
  • Presentation posted in: General

CSC 107 – Programming For Science. Lecture 2: Programming Basics & Variables. Announcements. Initial set of slides had wrong day for midterm Correct date on syllabus and in Angel Midterm is on October 21 Class time is not 60 minutes, but 75 minutes

Download Presentation

Lecture 2: Programming Basics & Variables

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Csc 107 programming for science

CSC 107 – Programming For Science

Lecture 2:Programming Basics & Variables


Announcements

Announcements

  • Initial set of slides had wrong day for midterm

    • Correct date on syllabus and in Angel

      Midterm is on October 21

  • Class time is not 60 minutes, but 75 minutes

    • I screwed this up on Tuesday and wanted to apologize

    • If time permits, still have Tuesday’s actual activity(otherwise I will post it & solution to Angel)


History of c

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 c1

History of C++

  • BjarneStroustrup 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++ 201xin development now


C versus c

C Versus C++

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


C versus c1

C Versus C++

C++

C


C versus c2

C Versus C++

C


C versus c3

C Versus C++

  • 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


Lecture 2 programming basics variables

Computers are VERY, VERY stupid


Lecture 2 programming basics variables

  • 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 every computer does

    • Programming highlights exactly how this happens

    • As you will see, C++ does nothing to prevent issues


Lecture 2 programming basics variables

  • 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


Case sensitivity

Case-Sensitivity

  • Example of computers being very literal

    • And language not helping by fixing what you say

  • main, Main, & MAiNtreated 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


Whitespace

“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


Whitespace1

“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


Your first c program

Your First C++ Program

#include <iostream>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}


Include statements

#include Statements

#include <iostream>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 #includeto 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 fileusing#include <filename>

    • #include “filename”includes a file you wrote


Watch me pull a rabbit

Watch Me Pull a Rabbit

#include <iostream>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, automaticallystart each file with this line

    • Details are unimportant – consider it magic


Watch me pull a rabbit1

Watch Me Pull a Rabbit

#include <iostream>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, automaticallystart each file with this line

    • Details are unimportant – consider it magic


Your first c program1

Your First C++ Program

#include <iostream>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}


Using commands

Using Commands

#include <iostream>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 usinghas less important purpose

    • Tells compiler we are lazy & save some typing

  • Two types of using statements to choose from

    • Specify single shortcutwith using std::cout

    • using std;gives you a list of shortcuts to use

  • Unlike #include statements, usingnever required

    • Do not worry about it – will not be using them


Your first c program2

Your First C++ Program

#include <iostream>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}


Main function

main Function

#include <iostream>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”


Main function1

main Function

#include <iosteam>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”


Comments

Comments

  • Vitalfor 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

    • Siekonnenauchauf Deutsch screiben

    • o U c%dwrte 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

Comments in 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. */


Pre processor directives

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


Symbolic constants

Symbolic Constants

  • Directive can be used to name a constant

    • Any/all lines BELOWdirective 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, but common convention


What you write and work with

What You Write And Work With

#define PI 3.1415962#define AVOGADRO 6.022E23 #define MY_NAME “Matthew Hertz”#define DUMB_EXAMPLE MY_NAMEdouble area = PI * (r * r);cout << MY_NAME;cout << DUMB_EXAMPLE;


What the compiler sees

What The Compiler Sees

#define PI 3.1415962#define AVOGADRO 6.022E23 #define MY_NAME “Matthew Hertz”#define DUMB_EXAMPLE MY_NAMEdouble area = PI * (r * r);cout << MY_NAME;cout << DUMB_EXAMPLE;


What the compiler sees1

What The Compiler Sees

#define AVOGADRO 6.022E23 #define MY_NAME “Matthew Hertz”#define DUMB_EXAMPLE MY_NAMEdouble area = 3.1415962 * (r * r);cout << MY_NAME;cout << DUMB_EXAMPLE;


What the compiler sees2

What The Compiler Sees

#define AVOGADRO 6.022E23 #define MY_NAME “Matthew Hertz”#define DUMB_EXAMPLE MY_NAMEdouble area = 3.1415962 * (r * r);cout << MY_NAME;cout << DUMB_EXAMPLE;


What the compiler sees3

What The Compiler Sees

#define MY_NAME “Matthew Hertz”#define DUMB_EXAMPLE MY_NAMEdouble area = 3.1415962 * (r * r);cout << MY_NAME;cout << DUMB_EXAMPLE;


What the compiler sees4

What The Compiler Sees

#define DUMB_EXAMPLE “Matthew Hertz”double area = 3.1415962 * (r * r);cout << “Matthew Hertz”;cout << DUMB_EXAMPLE;


What the compiler sees5

What The Compiler Sees

double area = 3.1415962 * (r * r);cout << “Matthew Hertz”;cout << “Matthew Hertz”;


What the compiler sees6

What The Compiler Sees

double area = 3.1415962 * (r * r);cout << “Matthew Hertz”;cout << “Matthew Hertz”;


Variables

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


Variable declarations

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


Variable names

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


Variable name conventions

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


Variable name conventions1

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 sayto parents and/or priest


Data types

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++ defines7 numeric data types

    • Integer types: short, int, long, long long

    • Decimal types: float, double, long double

    • Ranges for each type is not really standardized

    • Non-negative versions using unsigned ______

  • chardata type can hold a character


Representing text

Representing Text

  • Most computers you find follow ASCII standard

    • American Standard Code for Information Interchange

    • 256 (= 28) possible characters in extended definition

    • Since computers are stupid,need to set fixed size

  • Only use 0s & 1s within computer – all it knows

    • Number still stored, but character is displayed

    • For number 97,ais printed

    • Prints & for number 38

    • For number 55,7is printed


Ascii table

ASCII Table


There is no character

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


Writing variable declarations

Writing Variable Declarations

  • Single variable declared as: typename;double goodNameExample;short bad;

  • Can also declare multiple variables at once:inti, j;long doublek,l,m,n,o,p;float thisIsAReallyLongName,thisIsAnotherLongName;


Writing variable declarations1

Writing Variable Declarations

  • Could also specify initial value for variable

    • Variable, constant, literal, or expression can be used

      inti = 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’;


Writing variable declarations2

Writing Variable Declarations

  • Could also specify initial value for variable

    • Variable, constant, literal, or expression can be used

      inti = 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’;


Constants

Constants

  • Constants very similar to variables

    • Must be declared with a data type and unique name

    • const data_typevar_namedeclares variable

    • Value of constant fixed when declared, however

    • Variables & constants treated and used similarly


Your turn

Your Turn

  • Get in groups & work on following activity


For next lecture

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 1st two already

    • If problem takes more than 10 minutes, TALK TO ME!


  • Login