course websites cs201 page link at my website: lecture slides assistant’s information recitations...

22
Course websites CS201 page link at my website: http://myweb.sabanciuniv.edu/gulsend Lecture slides Assistant’s Information Recitations Office Hours Make-up Rules Plagiarism

Upload: nora-lyons

Post on 02-Jan-2016

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Course websites CS201 page link at my website:  Lecture slides Assistant’s Information Recitations Office Hours Make-up

Course websitesCS201 page link at my website:

http://myweb.sabanciuniv.edu/gulsend

Lecture slidesAssistant’s Information

RecitationsOffice Hours

Make-up RulesPlagiarism

Page 2: Course websites CS201 page link at my website:  Lecture slides Assistant’s Information Recitations Office Hours Make-up

Chapter 2Writing and Reading C++ Programs A programming language has syntax and semantics like any

natural languageSyntax is the set of rules like spelling and grammar in natural

languagesEnglish: “syntax” spelled, sentences start with subject

followed by verbC++: “main” spelled, programs start with main() followed by {

Semantics is the meaningEnglish: “water” means H2OC++: “int” means integer, “+” means add

Approaches of learning programming languagesTemplate based

Examine example programs and make analogiesLike a child learns how to speak

First learn syntax and semantics, then start by writing small programs, ...Like learning a foreign language

Which one do you prefer? We will follow the second method

Page 3: Course websites CS201 page link at my website:  Lecture slides Assistant’s Information Recitations Office Hours Make-up

First C++ Program “Hello world” program

#include <iostream>using namespace std;

/* traditional first program */

int main(){cout << "Hello world" << endl; // displayreturn 0;

}

This program must beTyped and saved in a file <name>.cpp (hello.cpp)Compiled (syntax checked): hello.cpp hello.objLinked (combined with iostream library) : hello.obj hello.exeRun (execute) hello.exe

Page 4: Course websites CS201 page link at my website:  Lecture slides Assistant’s Information Recitations Office Hours Make-up

Format of a C++ Program

#include <iostream>using namespace std;

/* traditional first program */

int main(){

cout << "Hello world" << endl; // display

return 0;}

#include statements

comment

int main()

{

C++ statement 0; comment

C++ statement 1;

C++ statement (n-1);

}

Page 5: Course websites CS201 page link at my website:  Lecture slides Assistant’s Information Recitations Office Hours Make-up

Format of a C++ Program#include statements make libraries of classes and

functions available to the programUtility functions and tools that make the programmer’s

life easier are defined in librariesHelps programmers develop code independently in a

standard way and reuse common operationsCompiler needs access to interface (definition), what the

functions look like, but not to the implementation of those functionsThis is in the #included file e.g. #include <iostream>

for input/output functionsall programs that use standard C++ libraries should have

using namespace std;

Page 6: Course websites CS201 page link at my website:  Lecture slides Assistant’s Information Recitations Office Hours Make-up

Format of a C++ Program Comments make programs readable by humans (and by assistants!)

Easier maintenanceTry to use natural language, do not repeat the code!

Bad examplearea = pi * r * r; /* area is pi*r*r */

Better examplearea = pi * r * r; /* calculate area */

Best examplearea = pi * r * r; /* calculate area of a circle

of radius r */Two ways of commenting

Using // make the rest of the line commentarea = pi * r * r; // calculate area

Between /* and *//* Calculate area of a circle of radius r*/area = pi * r * r;

Compiler disregards comments Comments in your homework affect your grades In VC++, comments are in green

Page 7: Course websites CS201 page link at my website:  Lecture slides Assistant’s Information Recitations Office Hours Make-up

Format of a C++ ProgramExecution of the program begins with main Each program must have a main functionExecution of C++ programs is organized as a

sequence of statementsStatements execute sequentially one after another

statement 0, statement 1, …, statement (n-1)Branching, repetition are possible (we will see them later)

The main function returns a value to the operating system or the environment in which it is executedreturn 0Why 0? Because 0 means no problems (errors)

encountered!

Page 8: Course websites CS201 page link at my website:  Lecture slides Assistant’s Information Recitations Office Hours Make-up

Format of a C++ ProgramEach statement ends with a “;” (semicolon)

except #include and function headers like main()Each statement has optional line break after the “;”

int main(){ // This is valid code toocout << "Hello world" << endl; return 0;

}Blanks (spaces) are optional but makes code much

more readable (we will see its rules)cout<<"Hello world"<<endl;

Page 9: Course websites CS201 page link at my website:  Lecture slides Assistant’s Information Recitations Office Hours Make-up

Rules of C++

Now some syntax rules and definitionsABC of C++

What is a “literal”?Reserved words (“keywords”)What is an “identifier”?Variables and basic typesSymbols and compound symbolsWhere to use blanks, line breaks?Basic Input/Output

Page 10: Course websites CS201 page link at my website:  Lecture slides Assistant’s Information Recitations Office Hours Make-up

LiteralsFixed (constant) values

They cannot be changed during program’s executionThey can be output by coutDifferent format for different types:

String literalsSequences of charactersWithin double quotes (quotes are not part of the string)Almost any character is fine (letters, digits, symbols)"Hello world!"" 10 > 22 $&*%? "

Numeric literals Integer3 454 -43 +34

Real3.1415 +45.44 -54.6 1.2334e3

1.2334e3 is 1.2334 times 10 to the power 3 (scientific notation)

Page 11: Course websites CS201 page link at my website:  Lecture slides Assistant’s Information Recitations Office Hours Make-up

IdentifiersNames of programmer defined elements in a program

Names of variables, functions and parametersExamples:

number1 validnumber_1 validmySum validmy_sum_1 valid1number not valid

Syntax (rules):1. Sequence of letters (a .. z, A ..Z), digits (0 ..9) or underscore2. Cannot start with a digit3. Case sensitive (number1 and Number1 are not the same)

Pick meaningful names to improve readability and understandability of your program (be consistent)Hungarian notation

Page 12: Course websites CS201 page link at my website:  Lecture slides Assistant’s Information Recitations Office Hours Make-up

Reserved Words (Keywords)Special and fixed meanings

built-in in C++ languageno need to have libraries to use them

You cannot use a reserved word as a user-defined identifierCannot be changed by programmer

intreturnFull list is Table 2.1 of the textbookFull list also in MSDN:

http://msdn.microsoft.com/en-us/library/aa245310(VS.60).aspx

In MS VC++, reserved words are automatically blue

Page 13: Course websites CS201 page link at my website:  Lecture slides Assistant’s Information Recitations Office Hours Make-up

Variables and TypesVariables are used to store data values that can

change during the programInput (cin) data is stored in variablesResults are stored in variablesNamed memory locations of certain sizesMust be defined before they can be usedOften initialized before use

Syntax:type name; identifier

type name1, name2, …, namek;Common types:

int number1, age, sum;string myName, last_name;float area, distance;

number1 age

Memory

area

distance

myName

sum

last_name

Page 14: Course websites CS201 page link at my website:  Lecture slides Assistant’s Information Recitations Office Hours Make-up

Symbols Non-digit and non-letter characters with special meanings Mostly used as operators (some examples below, full list later)

Symbol Meaning Example

+ addition, sign 12 + 2, +67

- subtraction, minus 37 – 5, -8

* multiplication 3 * 5 * number

/ division 5.2 / 1.5

% modulus/remainder 7 % 2

= assignment sum = x + 5;

Symbol Meaning Example

/* comment start /* calculates

*/ comment end area */

<< stream output cout << "Hello";

>> stream input cin >> number;

== equality comparison number == 0

• Compound symbols (two consecutive symbols – one meaning), examples below, full list later

Page 15: Course websites CS201 page link at my website:  Lecture slides Assistant’s Information Recitations Office Hours Make-up

Arithmetic OperationsOperators: + - * / % Operands: values that operator combines

• variables or literalsCombination of operators and operands is called expression

Syntax and semantics for arithmetic operations:

AdditionSubtraction

Multiplication Division Modulus

23 + 4 23 * 4 21 / 4 is 5 21 % 4 is 1

x + y x * 3.0 21 / 4.0 is 5.25

18 % 2 is 0

d – 14.0 + 23 d * 23.1 * 4 x / 4 x % 4

5 - 3 + 2 5 – 3 * 2 x / y x % y

• See Figure 3.4 in the book.

Page 16: Course websites CS201 page link at my website:  Lecture slides Assistant’s Information Recitations Office Hours Make-up

Assignment Operator Stores a new value in a variable

variable = expression; The value of expression becomes

the value of variableint number;number = 40;number = number + 5;string name;name = "Gulsen";number * 4 = 56; wrong syntax

Previous value of variable is lost Be careful about the types of left and right

hand sidesthey must matchcompiler may or may not warn youint a = 32.6;

Memory

number

45name

nameGulsen

value

Page 17: Course websites CS201 page link at my website:  Lecture slides Assistant’s Information Recitations Office Hours Make-up

Example Program Write a program to calculate the area of a circle

program first input a name and print a greeting input the radius calculate and display area

identify literals, identifiers, keywords, symbols, variables and expressions

#include <iostream>#include <string>using namespace std;

// area calculation program

int main(){int radius;float area;string myname;cout << "Please enter your name: ";

cin >> myname;cout << "Hello " << myname

<< "! Welcome to my area calculation program" << endl;cout << "Please enter the radius of your circle: ";cin >> radius;area = 3.14 * radius * radius;cout << "the area is: " << area << endl;

return 0;}

Page 18: Course websites CS201 page link at my website:  Lecture slides Assistant’s Information Recitations Office Hours Make-up

Issues with the Example Program

What happens if the user enters a real number for radius?wrong resultsolution: real radius

Can we combine?cout << "Hello " << myname

<< "! Welcome to my area calculation program" << endl;cout << "Please enter the radius of your circle: ";

Can we eliminate the variable area?area = 3.14 * radius * radius;cout << "the area is: " << area << endl;

Page 19: Course websites CS201 page link at my website:  Lecture slides Assistant’s Information Recitations Office Hours Make-up

Where to use Blanks (Newline)You must have at least one blank

between two words (identifiers or keywords)e.g. int number;

between a word and numeric literale.g. return 0;

You cannot have a blankwithin a word (e.g. float)within a compound symbol (e.g. <<)within a literal (e.g. 3.145)

except string literals, in string literals blanks are blanksAt all other places

blanks are optional and increases readabilityarea = 3.14*radius * radius;

Several blanks are functionally same as single blankexcept within string literals (e.g. "Hello world")

Newlines can be used whenever blank can be used

Page 20: Course websites CS201 page link at my website:  Lecture slides Assistant’s Information Recitations Office Hours Make-up

Stream Output Output is necessary for our programs Standard output stream cout is the monitor (read “see-out”) cout is implemented in the iostream library Output is sent to stream by the << operator

cout << "Hello world! "; What can be output?

String literals between " ", expressions and variables More than one output could be sent to the streamcout << "Hello" << " world!" << endl;endl means “end of line” causes next output to be displayed in next line

cout << "Hello world" << endl << " and universe" << endl;int sum = 10 + 2;cout << "sum = " << sum << endl;cout << 45 << " km. = "; cout << 45 * 0.62 << " miles" << endl;

Hello worldand universesum = 1245 km. = 27.9 miles

Page 21: Course websites CS201 page link at my website:  Lecture slides Assistant’s Information Recitations Office Hours Make-up

Stream Input Input is also necessary for our programsStandard input stream cin is the keyboard (read “see-in”)cin is also implemented in the iostream libraryYou can input only to variables Input is read from the stream by the >> operator

cin >> number;More than one input could be read from the stream

cin >> variable1 >> variable2 >> variable3 … ;

Data will be read into the variables in the same order they are in the cin statement

int a, b, anynumber;cin >> b >> anynumber >> a;

first the value for b, then the value for anynumber, then the value of a must be entered by the user using the keyboard

Page 22: Course websites CS201 page link at my website:  Lecture slides Assistant’s Information Recitations Office Hours Make-up

Stream InputYou have to have at least one blank between any two input

entryMultiple blanks are OK

You may input values at several lines for a single cin statement

You cannot display something using cin statement

Type match between variable and the corresponding input valueIf mismatch then the input entry fails for the rest of the

programBut the values read up to that point are kept in the variables