1 / 22

Announcements

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.

hopem
Download Presentation

Announcements

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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  

  2. 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

  3. 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

  4. 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); }

  5. 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;

  6. 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

  7. 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!

  8. 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;

  9. 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

  10. 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)

  11. 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

  12. 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

  13. 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

  14. 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

  15. 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.

  16. 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

  17. 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; }

  18. 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;

  19. 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

  20. 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

  21. 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

  22. 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

More Related