Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSE1222: Lecture 1The Ohio State University1. Computing Basics  Computers CPU, Memory & Input/Output (IO)  Program Sequence of instructions for the.

Similar presentations


Presentation on theme: "CSE1222: Lecture 1The Ohio State University1. Computing Basics  Computers CPU, Memory & Input/Output (IO)  Program Sequence of instructions for the."— Presentation transcript:

1 CSE1222: Lecture 1The Ohio State University1

2 Computing Basics  Computers CPU, Memory & Input/Output (IO)  Program Sequence of instructions for the computer  Operating system (OS) Program which controls all other programs  Compiler Program to convert programs written in C, C++, Java, Fortran, etc. into machine language (i.e., 0’s and 1’s) CSE1222: Lecture 1The Ohio State University2

3 CSE 1222  Operating System: Unix (Linux)  Programming Language: C++  Editor: emacs  Compiler: GNU C++ compiler (g++) CSE1222: Lecture 1The Ohio State University3

4 First C++ Program - helloworld.cpp // This is a comment. The compiler ignores comments. // header information // File iostream contains "cout" and "endl" // Namespace std contains "cout" and "endl" #include using namespace std; int main() { cout << "Hello World!" << endl; cout << "Goodbye World!" << endl; // Exit program. return 0; } CSE1222: Lecture 1The Ohio State University4

5 Syntax and Semantics  A programming language is similar to a human language, e.g. English, French, German, etc.  Syntax is the set of rules for forming “grammatically” correct statements The compiler tells informs you if your program is syntactically correct (or incorrect) So, don’t misspell statements or leave out important symbols  Semantics refers to the meaning associated with syntax For example, cout is the command to display output to your monitor  One of your jobs in this course is to learn the syntax and semantics of the C++ programming language You must study C++ syntax and semantics of C++ closely You will be expected to write correct C++ programs on paper during the Midterm and Final Exams. So, practice writing programs on paper. CSE1222: Lecture 1The Ohio State University5

6 Compiling and running helloworld.cpp > g++ helloworld.cpp > a.out Hello World! Goodbye World! > CSE1222: Lecture 1The Ohio State University6

7 The main Function  The main() function is where your programs will start execution You will always need one of these  It tells the other modules in what order to execute. In a way, it “drives” your program CSE1222: Lecture 1The Ohio State University7 int main() { // program statements here return 0; }

8 include  #include is known a preprocessor directive  It attaches the file, iostream, at the head of the program before it is compiled  “iostream” is needed to use the cout object  Note that preprocessor directives do not end with a semicolon CSE1222: Lecture 1The Ohio State University8

9 namespace  using namespace std; Tells the compiler to look in the namespace std (standard namespace) for objects (functions, classes, etc.) – more on this later  cout is in the namespace std CSE1222: Lecture 1The Ohio State University9

10 Outputting with cout  cout allows us to easily output data to the standard output display (your monitor) Its name comes from “Console OUTput”.  In cout ’s context, << is known as the insertion operator  Any literal (character string) that is to be output must be in between double quotes The quotes delimit the text so the computer knows it is not an instruction CSE1222: Lecture 1The Ohio State University10 … cout << "Hello World!" << endl; cout << "Goodbye World!" << endl; …

11 helloworld2.cpp #include using namespace std; int main() { // statements can be on multiple lines cout << "Hello World!" << endl; cout << "Goodbye World!" << endl; // comments can be here return 0; // exit program } CSE1222: Lecture 1The Ohio State University11

12 Program Errors  Syntax Errors You probably misspelled something, forget a symbol(s), or added an erroneous symbol(s) Also called compiler errors ○ The job of the compiler is to deal with the syntactical correctness of your program The following examples contain syntax errors  Logic and Run-Time Errors These errors occur after the compiler has accepted your program as syntactically correct These errors occur during the execution of your program CSE1222: Lecture 1The Ohio State University12

13 helloworldNoInclude.cpp 1. // Example of compiler (syntax) error. 2. 3. // Forgot "#include " 4. using namespace std; 5. 6. int main() 7. { 8. cout << "Hello World!" << endl; 9. cout << "Goodbye World!" << endl; 10. 11. return 0; // exit program 12. } CSE1222: Lecture 1The Ohio State University13

14 > g++ helloworldNoInclude.cpp helloworldNoInclude.cpp: In function ’int main()’: helloworldNoInclude.cpp:8: ’cout' undeclared (first use this function) helloworldNoInclude.cpp:8: (Each undeclared identifier is reported only once for each function it appears in.) helloworldNoInclude.cpp:8: ‘endl' undeclared (first use this function) CSE1222: Lecture 1The Ohio State University14 1.// Example of compiler(syntax) error. 2. 3.// Forgot "#include " 4.using namespace std; 5. 6.int main() 7.{ 8. cout << "Hello World!" << endl; 9. cout << "Goodbye World!" << endl; 10. 11. return 0; // exit program 12.}

15 helloworldNoNamespace.cpp 1. // Example of compiler (syntax) error. 2. 3. #include 4. // Forgot "using namespace std;" 5. 6. int main() 7. { 8. cout << "Hello World!" << endl; 9. cout << "Goodbye World!" << endl; 10. 11. return 0; // exit program 12. } CSE1222: Lecture 1The Ohio State University15

16 > g++ helloworldNoInclude.cpp helloworldNoInclude.cpp: In function ’int main()’: helloworldNoInclude.cpp:8: ’cout’ undeclared (first use this function) helloworldNoInclude.cpp:8: (Each undeclared identifier is reported only once for each function it appears in.) helloworldNoInclude.cpp:8: ’endl’ undeclared (first use this function) CSE1222: Lecture 1The Ohio State University16 1.// Example of compiler (syntax) error. 2. 3.#include 4.// Forgot "using namespace std;" 5. 6.int main() 7.{ 8. cout << "Hello World!" << endl; 9. cout << "Goodbye World!" << endl; 10. 11. return 0; // exit program 12.}

17 helloworldError1.cpp 1. // Example of compiler (syntax) error. 2. 3. #include 4. using namespace std; 5. 6. int main() 7. { 8. cout << Hello World! << endl; 9. cout << Goodbye World! << endl; 10. 11. return 0; // exit program 12. } CSE1222: Lecture 1The Ohio State University17

18 > g++ helloworldError1.cpp helloworldError1.cpp: In function `int main()’: helloworldError1.cpp:8: ’Hello' undeclared (first use this function) helloworldError1.cpp:8: (Each undeclared identifier is reported only once for each function it appears in.) helloworldError1.cpp:8: parse error before ’!' token helloworldError1.cpp:9: ’Goodbye' undeclared (first use this function) helloworldError1.cpp:9: parse error before ’!' token CSE1222: Lecture 1The Ohio State University18 1.// Example of compiler (syntax) error. 2. 3.#include 4.using namespace std; 5. 6.int main() 7.{ 8. cout << Hello World! << endl; 9. cout << Goodbye World! << endl; 10. 11. return 0; // exit program 12.}

19 helloworldError2.cpp 1. // Example of compiler (syntax) error. 2. 3. #include 4. using namespace std; 5. 6. int main() 7. { 8. cout < "Hello World!" < endl; 9. cout < "Goodbye World!" < endl; 10. 11. return 0; // exit program 12. } CSE1222: Lecture 1The Ohio State University19

20 > g++ helloworldError2.cpp helloworldError2.cpp: In function ’int main()': helloworldError2.cpp:8: no match for ’std::ostream& < const char[13]' operator helloworldError2.cpp:8: candidates are: operator helloworldError2.cpp:8: operator helloworldError2.cpp:9: no match for ’std::ostream& < const char[15]' operator helloworldError2.cpp:9: candidates are: operator helloworldError2.cpp:9: operator CSE1222: Lecture 1The Ohio State University20 1.// Example of compiler (syntax) error. 2. 3.#include 4.using namespace std; 5. 6.int main() 7.{ 8. cout < "Hello World!" < endl; 9. cout < "Goodbye World!" < endl; 10. 11. return 0; // exit program 12.}

21 helloworldError3.cpp 1. // Example of compiler (syntax) error. 2. 3. #include 4. using namespace std 5. 6. int main() 7. { 8. cout << "Hello World!" << endl; 9. cout << "Goodbye World!" << endl; 10. 11. return 0; // exit program 12. } CSE1222: Lecture 1The Ohio State University21

22 > g++ helloworldError3.cpp helloworldError3.cpp:6: parse error before ’int' helloworldError3.cpp:9: syntax error before ’<<' token /usr/local/include/g++-v3/bits/stl_algobase.h: In function ’const _Tp& std::min(const _Tp&, const _Tp&) [with _Tp = size_t]': /usr/local/include/g++-v3/bits/stl_algobase.h:643: instantiated from here /usr/local/include/g++-v3/bits/stl_algobase.h:134: ’__b' undeclared (first use this function) /usr/local/include/g++-v3/bits/stl_algobase.h:134: (Each undeclared identifier is reported only once for each function it appears in.) /usr/local/include/g++-v3/bits/stl_algobase.h:134: ’__a' undeclared (first use this function)... CSE1222: Lecture 1The Ohio State University22 … 3.#include 4.using namespace std 5. 6.int main() 7.{ 8. cout << "Hello World!" << endl; …

23 helloworldError4.cpp 1. // Example of compiler warning. 2. 3. #include ; 4. using namespace std; 5. 6. int main() 7. { 8. cout << "Hello World!" << endl; 9. cout << "Goodbye World!" << endl; 10. 11. return 0; // exit program 12. } CSE1222: Lecture 1The Ohio State University23

24 > g++ helloworldError4.cpp helloworldError4.cpp:3:20: warning: extra tokens at end of #include directive > a.out Hello World! Goodbye World! > CSE1222: Lecture 1The Ohio State University24 1.// Example of compiler error. 2. 3.#include ; 4.using namespace std; 5. 6.int main() 7.{ 8. cout << "Hello World!" << endl; 9. cout << "Goodbye World!" << endl; 10. 11. return 0; // exit program 12.}

25 helloworldError5.cpp 1. // Example of compile error 2. 3. #include 4. using namespace std; 5. 6. int main() 7. { 8. cout << "Hello World!" << endl 9. cout << "Goodbye World!" << endl 10. 11. return 0; // exit program 12. } CSE1222: Lecture 1The Ohio State University25

26 > g++ helloworldError5.cpp helloworldError5.cpp: In function ’int main()': helloworldError5.cpp:9: parse error before ’<<' token > CSE1222: Lecture 1The Ohio State University26 1.// Example of compile error 2. 3.#include 4.using namespace std; 5. 6.int main() 7.{ 8. cout << "Hello World!" << endl 9. cout << "Goodbye World!" << endl 10. 11. return 0; // exit program 12.}

27 helloworldError6.cpp 1. // Example of compile error 2. 3. #include 4. using namespace std; 5. 6. int main() 7. { 8. cout << 'Hello World!' << endl; 9. cout << 'Goodbye World!' << endl; 10. 11. return 0; // exit program 12. } CSE1222: Lecture 1The Ohio State University27

28 > g++ helloworldError6.cpp helloworldError6.cpp: In function ’int main()': helloworldError6.cpp:8: character constant too long helloworldError6.cpp:9: character constant too long > CSE1222: Lecture 1The Ohio State University28 1.// Example of compile error 2. 3.#include 4.using namespace std; 5. 6.int main() 7.{ 8. cout << 'Hello World!' << endl; 9. cout << 'Goodbye World!' << endl; 10. 11. return 0; // exit program 12.}

29 Program Errors  Syntax Errors You are expected to recognize and remember common Compiler errors You may be asked to identify these on an exam  Logic Errors Your program made it past the compiler, i.e. is syntactically correct Your program successfully completed execution But, it gave you a wrong answer! If your program executes and outputs “2 + 2 = 5”, then your program has a logical error  Run-time error Your program made it past the compiler, i.e. is syntactically correct An error occurred during the execution of your program that made it prematurely end before it could finish CSE1222: Lecture 1The Ohio State University29

30 helloworldError7.cpp 1. // Example of logical error 2. 3. #include 4. using namespace std; 5. 6. int main() 7. { 8. cout << "Hello World!"; 9. cout << "Goodbye World!"; 10. 11. return 0; // exit program 12. } CSE1222: Lecture 1The Ohio State University30

31 > g++ helloworldError7.cpp > a.out Hello World!Goodbye World! > CSE1222: Lecture 1The Ohio State University31 1. // Example of logical error 2. 3.#include 4.using namespace std; 5. 6.int main() 7.{ 8. cout << "Hello World!"; 9. cout << "Goodbye World!"; 10. 11. return 0; // exit program 12.}

32 helloworld3.cpp /* This is also a comment. The compiler ignores comments. */ /* This is a multiline comment. The compiler ignores comments. */ #include using namespace std; int main() { /* These statements use '\n' for newline in place of "<< endl" */ cout << "Hello World!\n"; cout << "Goodbye World!\n"; return 0; /* exit program */ } CSE1222: Lecture 1The Ohio State University32

33 mathExample1.cpp // math example #include #include /* File cmath contains math functions: sqrt, exp, sin, cos,... */ using namespace std;/* cout, endl, sqrt, exp are in the namespace std */ int main() { cout << "1+2+3+4+5+6 = " << 1+2+3+4+5+6 << endl; cout << "The average of 1,2,3,4,5,6 is “ << (1.0+2.0+3.0+4.0+5.0+6.0)/6.0 << endl; cout << "The reciprocal of 1+2+3+4+5+6 is “ << 1.0/(1.0+2.0+3.0+4.0+5.0+6.0) << endl; cout << "The square root of 1+2+3+4+5+6 is “ << sqrt(1.0+2.0+3.0+4.0+5.0+6.0) << endl; cout << "e^(1+2+3+4+5+6) = " << exp(1.0+2.0+3.0+4.0+5.0+6.0) << endl; return 0; // exit program } CSE1222: Lecture 1The Ohio State University33

34 Compiling and running mathExample1.cpp > g++ mathExample1.cpp > a.out 1+2+3+4+5+6 = 21 The average of 1,2,3,4,5,6 is 3.5 The reciprocal of 1+2+3+4+5+6 is 0.047619 The square root of 1+2+3+4+5+6 is 4.58258 e^(1+2+3+4+5+6) = 1.31882e+09 > CSE1222: Lecture 1The Ohio State University34

35 mathExample1.cpp (2)  Multiple objects can be inserted into cout.  Objects that should not be taken literally should not be enclosed by double quotes. Here, we actually want to compute the expression 1+2+3+4+5+6. CSE1222: Lecture 1The Ohio State University35 … cout << "1+2+3+4+5+6 = " << 1+2+3+4+5+6 << endl; …

36 mathError1.cpp // math error #include using namespace std; int main() { // These statements are incorrect cout << "The average of 1,2,3,4,5,6 = “ << (1+2+3+4+5+6)/6 << endl; // WRONG! cout << "The reciprocal of 1+2+3+4+5+6 is “ << 1/(1+2+3+4+5+6) << endl; // WRONG! return 0; // exit program } CSE1222: Lecture 1The Ohio State University36

37 > g++ mathError1.cpp > mathError1 The average of 1,2,3,4,5,6 = 3 The reciprocal of 1+2+3+4+5+6 is 0 > CSE1222: Lecture 1The Ohio State University37 … int main() { // These statements are incorrect cout << "The average of 1,2,3,4,5,6 = “ << (1+2+3+4+5+6)/6 << endl; // WRONG! cout << "The reciprocal of 1+2+3+4+5+6 is “ << 1/(1+2+3+4+5+6) << endl; // WRONG! return 0; // exit program }

38 C++ Program Template (for now) #include using namespace std; int main() { // program statements here return 0; // exit program } CSE1222: Lecture 1The Ohio State University38

39 C++ Program Template (with Math) #include using namespace std; int main() { // program statements here return 0; // exit program } CSE1222: Lecture 1The Ohio State University39

40 Comments and Programming Style  Good programming style The readability of your program by other C++ programmers is very important This is required in your assignments  Pay attention to: Indent when appropriate. You will develop a feel for this as you see more programs. Place comments to help explain your code. Use them to describe what the program does, to put your name on the program, to describe a function, etc. //... is for single line comments /*... */ are for multi-line comments Comments are treated as white-space, and are unseen by the compiler CSE1222: Lecture 1The Ohio State University40

41 Textbook Readings  Now go home and start your assigned reading for Chapters 1 and 2 in your text CSE1222: Lecture 1The Ohio State University41


Download ppt "CSE1222: Lecture 1The Ohio State University1. Computing Basics  Computers CPU, Memory & Input/Output (IO)  Program Sequence of instructions for the."

Similar presentations


Ads by Google