Lecture 1 Introduction sheet Course webpage http://csserver.evansville.edu/~hwang/s11-courses/cs215.html Handouts, assignments Supplemental resources C++, C, Java comparison Basic Unix Syllabus and schedule, textbooks CS Lab and KC-267 Monday, January 10 CS 215 Fundamentals of Programming II - Lecture 1 1 Outline What is Unix? Logging into Linux Basic Unix commands Programming using g++ What is C++? Library headers and namespaces Constants and types Console input and output Monday, January 10 CS 215 Fundamentals of Programming II - Lecture 1 2 What is Unix? Unix is an operating system that is highly configurable Linux is an open-source version of Unix Ubuntu is a distribution of Linux CS Lab and Kc-267 have clients that dual-boot Ubuntu Linux and Windows 7 Linux clients use csserver.evansville.edu for login and home directory service Unix is command-line oriented Monday, January 10 CS 215 Fundamentals of Programming II - Lecture 1 3 Logging into Linux - Console Monday, January 10 CS 215 Fundamentals of Programming II - Lecture 1 4 Logging into Linux - Putty Monday, January 10 CS 215 Fundamentals of Programming II - Lecture 1 5 Basic Unix Commands Changing passwords - old, new, new again yppasswd - on UE client machines passwd - on VirtualBox Creating (sub) directories (i.e., folders) mkdir <dir1> <dir2> … Example: mkdir cs215 Listing directories ls, ls -l, ls -a, ls -la Example: ls ­l cs215 Monday, January 10 CS 215 Fundamentals of Programming II - Lecture 1 6 Basic Unix Commands Changing permissions ("change mode") chmod <mode> <name1> <name2> … Mode is three sets (owner, group, world) of three privileges (read, write, execute) Represented as 9 bits (r,w,x are 1, - is 0) in octal (base 8) Example: rwx­­­­­­ is read, write, execute privileges for owner only becomes 700 Example: chmod 700 cs215 Monday, January 10 CS 215 Fundamentals of Programming II - Lecture 1 7 Basic Unix Commands Changing directories cd - to home directory, cd <dir> Path relative to current directory unless starts with / Examples: cd cs215, cd /etc Also, . ("dot" - current), .. ("dot-dot" - parent), ~ ("tilde" - home) Wildcards * - 0 or more characters, e.g. project1.* ? - exactly 1 character, e.g. project?.cpp Monday, January 10 CS 215 Fundamentals of Programming II - Lecture 1 8 Basic Unix Commands Almost all Unix commands have a "man" (i.e., manual) page accessible by the "man" command. Examples: man ls, man chmod Monday, January 10 CS 215 Fundamentals of Programming II - Lecture 1 9 Programming Using g++ Separate text editor - emacs, vim, gedit C++ source files have extension .cpp User-defined header files still use .h Separate compiler - g++ Command line options: ­Wall, ­o <progname> Example: g++ ­Wall ­o hello hello.cpp ./<progname> is the command to run the program; default program name is a.out Separate build facility - make Monday, January 10 CS 215 Fundamentals of Programming II - Lecture 1 10 What is C++? C++ is a programming language based on C with objects and object-oriented constructs; see on-line comparison document Focus will be on the use of classes to design and implement abstract data types Minor syntactic differences, for example Comments can start with // to end of line Always int main (), never void main () No need for void in parameter list Monday, January 10 CS 215 Fundamentals of Programming II - Lecture 1 11 Library Headers and Namespaces C++ library headers to not have .h extension C libraries have same name prefixed with 'c' Example: #include <iostream> Example: #include <cmath> All library names are in namespace std. Prefix names with namespace. E.g. std::cout Import names with using statements Example: using namespace std; Example: using std::cout; Monday, January 10 CS 215 Fundamentals of Programming II - Lecture 1 12 Constants and types Use const to define constants (not #define) Built-in boolean type bool with literals true and false Example: const int MAX_SIZE = 80; Example: bool done = false; Library string type string defined in <string> has =, relops, +. Example: string word1 = "hot", word2 = "dog"; string word3 = word1 + word2; Monday, January 10 CS 215 Fundamentals of Programming II - Lecture 1 13 Console Input and Output C++ I/O is done using character stream objects Console I/O defined in <iostream> cin - ("see-in") input stream connected to keyboard cout, cerr - ("see-out", "see-err") output streams connected to screen endl - ("end-ell") newline with buffer flushing Monday, January 10 CS 215 Fundamentals of Programming II - Lecture 1 14 Console Input and Output Input streams use extraction operator (>>) <input stream> >> <variable> Skips whitespace Output streams use insertion operator (<<) <output stream> << <expression> Both operators return the left-hand stream operand so that multiple operations may be chained together Monday, January 10 CS 215 Fundamentals of Programming II - Lecture 1 15 Console I/O Example int anInt; double aDouble; cout << "Enter an integer and " << "a double: " cin >> anInt >> aDouble; cout << "You entered " << anInt << " and " << aDouble << endl; Monday, January 10 CS 215 Fundamentals of Programming II - Lecture 1 16 In-class Exercise Write a C++ program that asks for two real numbers and displays which number is the larger one. E.g., (user input in bold) Enter two real numbers: 3.4 ­7.3 The larger number is 3.4 Use a text editor to type in the program and use g++ to compile the program. Test the program. When you are confident that it works, demonstrate it to the instructor. Monday, January 10 CS 215 Fundamentals of Programming II - Lecture 1 17