Lecture 2: Programming Basics & Variables - PowerPoint PPT Presentation

Csc 107 programming for science
Download
1 / 51

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

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

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