Download presentation
Presentation is loading. Please wait.
Published byBrett Townsend Modified over 9 years ago
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.