A First Program in C++ Goals

A First Program in C++ Goals

Hello world! A first program in C++ Goals ● By the end of this lesson you will be able to: – Log on to a remote server from your computer – Enter basic Linux commands – Use a text editor in Linux – Write a computer program – Compile and execute a computer program Beginning ● A little bit of everything at once – Terminal emulation – Linux usage – Text editors – Compilers – Execution – Debugging Terminal emulation ● Terminal emulator: program to connect from your computer to a terminal (command line or shell) ● CS department has Linux servers that will be used for programming and submitting assignments ● PuTTY is a popular terminal emulator for Windows, while you can connect from the terminal in OS X Server access ● CS server is bobby.cs.unlv.edu ● You can connect via the secure shell (SSH) protocol ● If you do not have an account, visit tux.cs.unlv.edu for more information PuTTY installation ● To install PuTTY, visit putty.org and download & run the 32-bit or 64-bit MSI installer ● Run PuTTY, then enter the following data: – Host Name: bobby.cs.unlv.edu – Connection type: SSH (this should modify the port to 22) – Saved Sessions: bobby – In Connection: ● Seconds between keepalives: 30 – In Connection → Data: ● Auto-login username: your username ● Go back to the Session screen, hit Save, select your bobby saved session, and click open ● You will get a warning message about security and keys, but just accept it Connecting via macOS ● Open a terminal by going to Finder → Applications → Utilities → Terminal ● Type ssh [email protected] ● You may get a message about keys, security, etc. – just type yes – this will only happen the first time Transferring files ● You may want to transfer files between the server and your computer, including for printing purposes ● For Windows, I recommend WinSCP (use SFTP or SCP) ● For macOS, I recommend Cyberduck ● Download and install, enter server information, and pick either SCP or SFTP as your protocol Why use CS department servers? ● Familiarity with Linux shells is a very useful skill to have ● Future courses and future jobs will utilize Linux ● You can log in from almost anywhere you have an Internet connection, including UNLV lab computers ● To submit your programs ● To access my shared programs and data ● It provides a common familiar platform to use/discuss all necessary things related to programming Using Linux ● Linux can be graphical in the same way that Windows is, but when logging in to a terminal everything is text-based ● You will interact with the server by typing various commands ● Some examples: – ls – to view a list of the files in the current directory – nano – to open a text editor to write a program in – g++ – to compile a program that you have written Text editors ● Text editor: a program that allows you to view/edit text ● We will use a text editor to write programs ● Common Linux text editors for programming: – nano – vim – emacs ● These editors have features that make programming easier Compiling & executing ● Compiler: A program that turns a program that you write into something that the computer can run ● The compiler will either successfully compile or produce an error with details ● Upon successful compilation, the program can be executed ● The standard Linux compiler for C++ is called g++ Steps for writing your first program 0) Download a terminal emulator (PuTTY) 1) Log on to a server (bobby) 2) Open a text editor (nano) 3) Type in a program 4) Save & exit text editor 5) Compile program (g++) 6) Execute program What is “Hello world!”? ● “Hello world!” refers to a very basic program that prints out a simple message to the screen that says Hello world! ● For both experienced and beginner programmers, such a program illustrates: – Basic syntax – Basic style – The bare minimum needed to write a program that does something useful ● You do not need to fully understand the what and why of every part of the program right now Hello world! Line Program number 1 #include <iostream> 2 3 using namespace std; 4 5 int main() 6 { 7 cout << "Hello world!" << endl; 8 9 return 0; 10 } ● Line 1: – A preprocessor directive that includes things from the iostream (input/output stream) library – needed for cout on line 7 Hello world! Line Program number 1 #include <iostream> 2 3 using namespace std; 4 5 int main() 6 { 7 cout << "Hello world!" << endl; 8 9 return 0; 10 } ● Lines 2, 4, and 8: – Blank lines – not required, but for complicated programs having blank lines are considered whitespace and a component of good style Hello world! Line Program number 1 #include <iostream> 2 3 using namespace std; 4 5 int main() 6 { 7 cout << "Hello world!" << endl; 8 9 return 0; 10 } ● Line 3: – Tells the compiler we will be using the std (standard) namespace. This is not required, but if we did not include it then when we use cout / endl on line 7, we would have to use std::cout / std::endl – The semicolon ; at the end is commonly used to end many statements Hello world! Line Program number 1 #include <iostream> 2 3 using namespace std; 4 5 int main() 6 { 7 cout << "Hello world!" << endl; 8 9 return 0; 10 } ● Line 5: – Every C++ program has a main function (a.k.a. main body) – Eventually you will write other functions, but the program always starts executing in main() – The int before main indicates that this function returns an integer (see line 9) Hello world! Line Program number 1 #include <iostream> 2 3 using namespace std; 4 5 int main() 6 { 7 cout << "Hello world!" << endl; 8 9 return 0; 10 } ● Lines 6 and 10: – An open brace { and a close brace } enclose a block of statements, in this case the main body – The lines between the braces are indented – another component of good style Hello world! Line Program number 1 #include <iostream> 2 3 using namespace std; 4 5 int main() 6 { 7 cout << "Hello world!" << endl; 8 9 return 0; 10 } ● Line 7: – cout is an object and is used to output things to the standard output stream (the screen) – << is the insertion operator and is used to insert things into the stream – "Hello world!" is a string that is to be output – endl is used for a blank line and to flush the bufer Hello world! Line Program number 1 #include <iostream> 2 3 using namespace std; 4 5 int main() 6 { 7 cout << "Hello world!" << endl; 8 9 return 0; 10 } ● Line 9 – Corresponding to the int in line 5, this line exits the main body (thus ending the program) and returns a value of 0 to the operating system Compiling the program ● After you have typed the program into a text editor, save the file ● When writing C++ programs it is standard, though not required, to name your files with a .cpp extension: – hello.cpp – assignment_1.cpp – 1.cpp ● Suppose you named your file hello.cpp – to compile you will type g++ hello.cpp Compiling the program ● If compilation was successful then there will be no output – the next thing you see will be your shell prompt ● If there was a problem with the program the compiler will display an error message ● If you get an error message, double check everything – you may have misspelled something (e.g. cuot instead of cout) or left out a semicolon Running the program ● If the program compiles successfully, the compiler will produce an executable file called a.out ● You can execute a.out by typing ./a.out ● You should see the text Hello world! displayed on the terminal Exploration ● What happens if you type diferent things between the quotes? ● What happens if you add/remove certain lines or characters? ● What happens if you add/remove spaces or blank lines?.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    25 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us