INTRODUCTION TO C++ PROGRAMMING
- Differences Between C and C++ Programming
- Compiler
- C++ IDE
- Creating and running C++ Program
- Variables
- Scope of variables
Explanations to week content
A computer can process a program in one of the following ways: in sequence; selectively,
by making a choice, which is also called a branch;repetitively, by executing a statement
over and over, using a structure called a loop; or by calling a function. The figure below illustrates the first three types of program flow.
If Statement
The if statement is in this format:
if(condition is true){
Run this block of codes
}
If a block of code(s) needs to be run if the condition is false, the else is included as shown below:
if(condition is true){
Run this block of codes
}else{
Run this block of codes
}
Examples
1. if (score is greater than or equal to 90)
grade is A
2. if (hours worked are less than or equal to 40)
wages = rate *hours
otherwise
wages = (rate *40) + 1.5 *(rate *(hours – 40))
3. if (temperature is greater than 70 degrees and it is not
raining)
Go golfing!
Relational Operators
Operator | Description |
---|---|
== | Equal to (NB: is two equal to signs) |
!= | Not equal to |
> | Greater than |
>= | Greater than or equal to |
< | Less than |
<= | Less than or equal to |
Code Examples
Write a program that grades students in a class as either “Pass” or “Fail”. The pass mark is 70%.
The program should ask the user to enter the percentage mark.
Sample Code
#include <iostream>
using namespace std;
int main()
{
float score;
cout<< "Please enter the percentage score"<<endl;
cin>>score;
if(score>=70){
cout<<"Grade:Pass"<<endl;
}else{
cout<<"Grade:Fail"<<endl;
}
return 0;
}
Alternative
The condition statement could also be written as
if(score<70){
cout<< "Grade:Fail"<<endl;
}else{
cout<< "Grade:Pass"<<endl;
}
Write a program which determines whether an integer entered is an even number or not
Sample Code
Concept.
An even number is a number divisible by 2 without are remainder. The operator for calculating a remainder of a number divided by another number is modulus (%) as stated in week 2 lesson. If the remainder is 0, then it means the number is an even number. Hence the sample code below.
#include <iostream>
using namespace std;
int main()
{
int number;
cout<< "Please enter an integer number"<<endl;
cin>>number;
if(number%2== 0){
cout<< number<<" is an even number"<<endl;
}else{
cout << number<<" is not an even number"<<endl;
}
return 0;
}
Conditions and Meaning
Condition | Meaning |
---|---|
Condition 1 && Condition 2 e.g int a = 2; int b = 3; if((a%2==0)&&(b>=3)){ ………….. } If((!(a%2==0))&&(!(b%2==0))){ …………… } | && means and If both condition 1 and condition 2 are true, the Boolean will be true, else if at least one of the conditions is false, the Boolean will be false. This if statement will be true because a%2 =0 and b is equal to 3. Since both conditions are true, the Boolean of the if statement will be true. NOTE: ! means not. Hence !(a%2==0) means a modulus 2 not equal to 0. This conditional statement will be false since a is 2 and 2%2 is 0. !(b%2==0) means b modulus 2 not equal to 0. This conditional statement will be true since b is 3 and 3%2 is 1 which is not equal to 0. But since one of the condition is false in the && operation, the entire if statement will be false. |
Condition 1 || condition 2 e.g int a = 2; int b = 3; if((a%2==0)||(b>=3)){ ………….. } If((!(a%2==0))||(!(b%2==0))){ …………… } | || means or This means if Condition 1 is true or Condition 2 is true. In this case if any of the conditions is true, the Boolean will be true. The Boolean will be true because at least one of the conditions is true. Since a = 2 and b =3, 2%2 is 0 and 3 is equal to 3. Both statements are true. The Boolean for (!(a%2==0)) will be false. The Boolean for (!(b%2==0)) will be true. Since one of the conditions is true, the Boolean for the if statement will also be true for the || operation. |
Else if
The else if is used for multiple if statements. It is written in the following format.
if(statement 1 is true){
run this block of code
}else if(statement 1 is false and statement 2 is true){
run this block of code
}else if(statement 2 is false and statement 3 is true){
run this block of code.
}
.
.
.
else if(statement n-1 is false and statement n is true){
run this block of code.
}else{
if none of the above statements is true, run this block of code
}
Example
The following is the grading system in a school.
90 – 100 | A |
---|---|
80 – 89…. | B |
50 – 79… | C |
0 – 49…. | FAIL |
Write a program to take the percentage score and output the grade to a user.
Sample Code
#include <iostream>
using namespace std;
int main()
{
float score;
cout<<"Please enter the exam score"<<endl;
cin >>score;
if(score>=90){ // 90 and above is A
cout<<"Grade A"<<endl;
}elseif(score>=80){ // If less than 90 but greater than or equal to 80, grade is B
cout<<"Grade B"<<endl;
}elseif(score>=50){ // If less than 80 but greater than or equal to 50, grade is C
cout<<"Grade C"<<endl;
}else{//Anything else is Fail
cout<<"Fail"<<endl;
}
return 0;
}
Switch
Recall
that there are two selection, or branch, structures in C++. The first selection structure,which is implemented with if and if. . .else statements, usually requires the evaluation of a (logical) expression. The second selection structure, which does not require the evaluation of a logical expression, is called the switch structure. C++’s switch structure gives the computer the power to choose from among many alternatives.
A general syntax of the switch statement is:
switch(expression)
{
case value1:
statements1
break;
case value2:
statements2
break;
.
.
.
case valuen:
statementsn
break;
default:
statements
}
In C++, switch, case, break, and default are reserved words. The default statement is run when none of the case values is the expression.
The switch statement executes according to the following rules:
1.
When the value of the expression is matched against a case value(also called a label), the statements execute until either a break statement is found or the end of the switch structure is reached.
2.
If the value of the expression does not match any of the case values, the statements following the default label execute. If the switch
structure has no default label and if the value of the expression does not match any of the case values, the entire switch statement is
skipped.
3.
A break statement causes an immediate exit from the switch structure.
This is illustrated in the figure below.
Example
The following are games played by students in a class base on their genders.
Male | Football, Volleyball, Tennis Ball |
---|---|
Female | Ampe, Ludo |
Write a program that takes the gender of a student in that class (M for male and F for female) and outputs the possible game played by that student.
Sample Code
#include <iostream>
using namespace std;
int main()
{
char gender;
cout<<"Please enter your gender. M for male and F for female."<<endl;
cin >>gender;
switch(gender){
case 'M':
cout<< "You play any of these games: Football, Volleyball, Tennis Ball"<<endl;
break;
case 'F':
cout<< "You play any of these games: Ampe, Ludo"<<endl;
break;
default:
cout<< "Please entered letter for gender is incorrect."<<endl;
}
return 0;
}
The switch expression can be statement such as score/10,age >=18 etc
The result of the expression is what is used to analyze if the case is true or false.
Examples
Write a program which takes the integer age of a user and output if the user is an adult ornot. The adult age is 18 and above.
Sample Code
#include <iostream>
using namespace std;
int main()
{
int age;
cout<<"Please enter your integer age"<<endl;
cin >>age;
switch(age>=18){ // Any age which is equal to or greater than 18 will be true, else the expression will be false
case true:
cout<< "You are an adult"<<endl;
break;
case false:
cout<< "You are not an adult"<<endl;
break;
}
return 0;
}
Write a program that ask a user to enter an integer value. The program then check if the entered integer is an even number or not.
Sample Code
#include <iostream>
using namespace std;
int main()
{
int number;
cout<<"Please enter an integer"<<endl;
cin >>number;
switch(number%2){ // If number is an integer, number%2 will be 0
case 0:
cout<< "You entered an integer number"<<endl;
break;
default:
cout<< "The entered number is not an integer"<<endl;
}
return 0;
}
Nested If
When one control statement is located within another, it is said to be nested.
Nested if is therefore an if statement in another if statement.
Example
Write a program that determine if a number is an even or not and if even, determine whether is divisible by 10 or not.
Sample Code Using Nested If
#include <iostream>
using namespace std;
int main()
{
int number;
cout<<"Please enter an integer"<<endl;
cin >>number;
if(number%2==0){
if(number%10==0){ // Nested if
cout<<number<<" is an even and divisible by 10"<<endl;
}else{
cout<<number<<" is an even and but not divisible by 10"<<endl;
}
}else{
cout<< number<<" is not an even number"<<endl;
}
return 0;
}
Conditional Operator (?:)
Certain if. . .else statements can be written in a more concise way by using C++’s conditional operator. The conditional operator, written as ?:, is a ternary operator, which means that it takes three arguments. The syntax for using the conditional operator is:
expression1 ? expression2 : expression3
This type of statement is called a conditional expression. The conditional expression is evaluated as follows:
If expression1 evaluates to a nonzero integer (that is, to true), the result of the conditional expression is expression2. Otherwise, the result of the conditional expression is expression3.
Consider the following statements:
if (a >= b)
max= a;
else
max= b;
The above code could be simplified using a conditional operator as follows:
max = (a >= b) ? a : b;
Sample code
#include <iostream>
using namespace std;
int main()
{
int max,a,b;
a = 2;
b = 3;
max =(a>=b)?a:b;
cout<<"The maximum value of a="<<a<<"and "<<b<<" is "<<max;
return 0;
}
Explanation
if a>=b is true, the value of max will be a(the second expression, the expression before the : ) but if a>=b is false,the value of max will be b(the third expression, the expression after the : )
Practical Application
Write a simple login application which asks user to enter the username and password. If username is root and password is 123456,grant user access. In actual program, the password is fetched from a database using the username and is compared to the entered password by the user.
But this simple application has fixed username and password.
Sample Code
#include <iostream>
#include <string>
using namespace std;
int main()
{
//Declare thestring variables
stringusername,password;
//Get thevariables
cout<<"Please enter your username"<<endl;
cin>>username;
cout<<"Please enter your password"<<endl;
cin>>password;
//if usernameis root and password is 123456, then grant the user access
if((username=="root")&&(password=="123456")){
cout<<"Accress granted"<<endl;
}else{
cout<<"Incorrectusername or password"<<endl;
}
return 0;
}
NOTE: Before you can use the string variable type, you need to add the string library by including this line of code #include <string> as shown in the code above.
String will be considered in more detail in week 7.
Assignment
Write a program that calculates the area for multiple shapes. You first ask the user the shape he/she wants to calculate the area for. Once the shape is entered, take the necessary inputs from the user and display the area.