220 likes | 226 Views
This announcement provides important information about upcoming homework assignments and exams for the course. It includes details about homework submission, late penalties, plagiarism policy, and exam dates.
E N D
Announcements • HW1will be assigned this week at SUCourse • Due October 7 Wednesday at 17:00 • For homework assignments and submissions, we are using SUCourse • Homework will be explained in recitations • Moreover, there will be important explanations about the homework submission procedure in recitations • Submission is a tricky process, please do attend the recitations in order not to make a mistake • No late homework without penalty • One late day is allowed at cost of 10% of full grade • Plagiarism is not tolerated • Homeworks are to be done personally • we use software tools to detect plagiarized homework • first case –100 (minus hundred), second fails the course! • detailed policy is on the web site of the course • Two Midterm Exams + Final Exam • Midterm 1: November 7th Saturday 14:00 – 16:00 • Midterm 2: December 5th Saturday 10:00 – 12:00
Chapter 2Writing and Reading C++ Programs • A programming language has syntax and semantics like any natural language • Syntax is the set of rules like spelling and grammar in natural languages • English: “syntax” spelled, sentences start with subject followed by verb • C++: “main” spelled, programs start with main() followed by { • Semantics is the meaning • English: “water” means H2O • C++: “int” means integer, “+” means add • Approaches of learning programming languages • Template based • Examine example programs and make analogies • Like 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
First C++ Program • “Hello world” program #include <iostream> using namespace std; /* traditional first program */ int main() { cout << "Hello world" << endl; // display return 0; } • This program must be • Typed and saved in a file <name>.cpp (hello.cpp) • Compiled (syntax checked): hello.cpp hello.obj • Linked (combined with iostream library) : hello.obj hello.exe • Run (execute) hello.exe
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); }
Format of a C++ Program • #include statements make libraries of classes and functions available to the program • Utility functions and tools that make the programmer’s life easier are defined in libraries • Helps programmers develop code independently in a standard way and reuse common operations • Compiler needs access to interface (definition), what the functions look like, but not to the implementation of those functions • This is in the #included file • e.g. #include <iostream> for input/output functions • all programs that use standard C++ libraries should have using namespace std;
Format of a C++ Program • Comments make programs readable by humans (and by assistants!) • Easier maintenance • Try to use natural language, do not repeat the code! • Bad example area = pi * r * r; /* area is pi*r*r */ • Better example area = pi * r * r; /* calculate area */ • Best example area = pi * r * r; /* calculate area of a circle of radius r */ • Two ways of commenting • Using // make the rest of the line comment area = 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
Format of a C++ Program • Execution of the program begins with main • Each program must have a main function • Execution of C++ programs is organized as a sequence of statements • Statements 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 executed • return 0 • Why 0? Because 0 means no problems (errors) encountered!
Format of a C++ Program • Each 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 too cout << "Hello world" << endl; return 0; } • Blanks (spaces) are optional but makes code much more readable (we will see its rules) cout<<"Hello world"<<endl;
Rules of C++ • Now some syntax rules and definitions • ABC of C++ • What is a “literal”? • Reserved words (“keywords”) • What is an “identifier”? • Variables and basic types • Symbols and compound symbols • Where to use blanks, line breaks? • Basic Input/Output
Literals • Fixed (constant) values • They cannot be changed during program’s execution • They can be output by cout • Different format for different types: • String literals • Sequences of characters • Within double quotes (quotes are not part of the string) • Almost any character is fine (letters, digits, symbols) "Hello world!" " 10 > 22 $&*%? " • Numeric literals • Integer 3 454 -43 +34 • Real 3.1415 +45.44 -54.6 1.2334e3 1.2334e3 is 1.2334 times 10 to the power 3 (scientific notation)
Identifiers • Names of programmer defined elements in a program • Names of variables, functions and parameters • Examples: number1 valid number_1 valid mySum valid my_sum_1 valid 1number not valid • Syntax (rules): • Sequence of letters (a .. z, A ..Z), digits (0 ..9)or underscore • Cannot start with a digit • Case sensitive (number1 and Number1 are not the same) • Pick meaningful names to improve readability and understandability of your program (be consistent) • Hungarian notation
Reserved Words (Keywords) • Special and fixed meanings • built-in in C++ language • no need to have libraries to use them • You cannot use a reserved word as a user-defined identifier • Cannot be changed by programmer • int • return • Full list is Table 2.1 of the textbook • Full list also in MSDN: http://msdn.microsoft.com/en-us/library/aa245310(VS.60).aspx • In MS VC++, reserved words are automatically blue
Variables and Types • Variables are used to store data values that can change during the program • Input (cin) data is stored in variables • Results are stored in variables • Named memory locations of certain sizes • Must be defined before they can be used • Often initialized before use • Syntax: type name;identifier type name1, name2, …, namek; • Common types: • int number1, age, sum; • string myName, last_name; • float area, distance; Memory age number1 sum myName last_name area distance
Symbols • Non-digit and non-letter characters with special meanings • Mostly used as operators (some examples below, full list later) • Compound symbols (two consecutive symbols – one meaning), • examples below, full list later
Arithmetic Operations • Operators: + - * / % • Operands: values that operator combines • variables or literals • Combination of operators and operands is called expression • Syntax and semantics for arithmetic operations: • See Figure 3.4 in the book.
Assignment Operator Memory • Stores a new value in a variable variable = expression; • The value of expression becomes the value of variable int 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 sides • they must match • compiler may or may not warn you • int a = 32.6; number name 45 value name Gulsen
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; }
Issues with the Example Program • What happens if the user enters a real number for radius? • wrong result • solution: 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;
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 literal • e.g. return 0; • You cannot have a blank • within 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 blanks • At all other places • blanks are optional and increases readability area = 3.14*radius * radius; • Several blanks are functionally same as single blank • except within string literals (e.g. "Hello world") • Newlines can be used whenever blank can be used
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 stream cout << "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 world and universe sum = 12 45 km. = 27.9miles
Stream Input • Input is also necessary for our programs • Standard input stream cin is the keyboard (read “see-in”) • cin is also implemented in the iostream library • You 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
Stream Input • You have to have at least one blank between any two input entry • Multiple 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 value • If mismatch then the input entry fails for the rest of the program • But the values read up to that point are kept in the variables