c++ chap.2 exercise solution


CHAPTER NO.02
SOLUTIONS OF EXERCISE

Q. No.01:- Assuming there are 7.481 gallons in a cubic foot, write a program that asks the user to enter a number of gallons, and then displays the equivalent in cubic feet.
---------------------------------------------------------------------------------------------------------------------
#include<iostream.h>
#include<conio.h>
void main(void)
   {
   clrscr();
   float galons,cubic_foot;
   cout<<"Enter the quantity in galons:";
   cin>> galons;
   cubic_foot=galons/7.481;
   cout<<"Quanity in cubic_foot:"<<cubic_foot;
    }
---------------------------------------------------------------------------------------------------------------------
Q. No.02:- Write a program that generates the following table:
1990 135
1991 7290
1992 11300
1993 16200
Use a single cout statement for all output.
---------------------------------------------------------------------------------------------------------------------
#include<iostream.h>
#include<conio.h>
void main(void)
   {
   clrscr();
   cout<<"1990"<<” "<<"135"<<"\n"<<"1991"<<" "<<"7290"<<"\n"<<"1992"<<"  "<<"11300"<<"\n"<<"1993"<<" "<<"16200"<<"\n";
   }
---------------------------------------------------------------------------------------------------------------------
Q. No.03:- Write a program that generates the following output:
10
20
19
Use an integer constant for the 10, an arithmetic assignment operator to generate the 20,and a decrement operator to generate the 19.
---------------------------------------------------------------------------------------------------------------------
#include<iostream.h>
#include<conio.h>
void main(void)
   {
   clrscr();
   int number=10,number1,number2;
   cout<<number<<"\n";
   number1=number+10;
   cout<<number1<<"\n";
   number2=number1-1;
   cout<<number2;
   }
---------------------------------------------------------------------------------------------------------------------
Q.04:- Write a program that displays your favorite poem. Use an appropriate escape sequence for the line breaks. If you don’t have a favorite poem, you can borrow this one by Ogden Nash:
Candy is dandy,
But liquor is quicker.
Q.No.05:- A library function, islower(), takes a single character (a letter) as an argument and returns a nonzero integer if the letter is lowercase, or zero if it is uppercase. This function requires the header file CTYPE.H. Write a program that allows the user to enter a letter, and then displays either zero or nonzero, depending on whether a lowercase or uppercase letter was entered. (See the SQRT program for clues.)
--------------------------------------------------------------------------------------------------------------------
#include<iostream.h>
#include<conio.h>
#include<ctype.h>
void main(void)
 {
  char ch;
  cout<<"Enter the character:";
  cin>>ch;
  int a=islower(ch);
  cout<<a;
 }
------------------------------------------------------------------------------------------------------------------
Q. No.06:- On a certain day the British pound was equivalent to $1.487 U.S., the French franc was $0.172, the German deutschemark was $0.584, and the Japanese yen was $0.00955.Write a program that allows the user to enter an amount in dollars, and then displays this value converted to these four other monetary units.
--------------------------------------------------------------------------------------------------------------------
#include<iostream.h>
#include<conio.h>
void main(void)
{
   clrscr();
   float British,French,German,Japanies,US;
    cout<<"enter your amount in US dollar..";
    cin>>US;
    British=US/1.487;
    French=US/1.72;
    German=US/.584;
    Japanese=US/.00955;
    cout<<British<<" "<<French<<"  "<<German<<"  "<<Japanese;
}
---------------------------------------------------------------------------------------------------------------------
Q.No.07:- You can convert temperature from degrees Celsius to degrees Fahrenheit by multiplying by 9/5 and adding 32. Write a program that allows the user to enter a floating-point number representing degrees Celsius, and then displays the corresponding degrees Fahrenheit.
---------------------------------------------------------------------------------------------------------------------
#include<iostream.h>
#include<conio.h>
void main(void)
{
  clrscr();
  float Fahrenheit,Celsius;
  cout<<"enter the degree in Celsius:";
  cin>>Celsius;
  Fahrenheit =((Celsius+32)*5/9);
  cout<<"Degree in Fahrenheit:"<<Fahrenheit;
}
---------------------------------------------------------------------------------------------------------------------
Q.No.08:- When a value is smaller than a field specified with setw(), the unused locations are, by default, filled in with spaces. The manipulator setfill() takes a single character as an argument and causes this character to be substituted for spaces in the empty parts of a field. Rewrite the WIDTH program so that the characters on each line between the location name and the population number are filled in with periods instead of spaces, as in
Portcity.....2425785
---------------------------------------------------------------------------------------------------------------------
#include<iostream.h>
#include<conio.h>
#include<iomanip.h>
void main(void)
{
   clrscr();
   long population=2425785;
  cout<<"Portcity";
  char x='-';
  cout<<setw(12);
  cout<<setfill(x);
  cout<<population;
}
---------------------------------------------------------------------------------------------------------------------
Q.No.09:- If you have two fractions, a/b and c/d, their sum can be obtained from the formula
a       c       a*d + b*c
--- + ---  = --------------
b      d          b*d
For example, 1/4 plus 2/3 is
1       2      1*3 + 4*2   3 + 8    11
--- + --- = ----------- = ------- = ----
4       3      4*3            12          12
Write a program that encourages the user to enter two fractions, and then displays their
sum in fractional form. (You don’t need to reduce it to lowest terms.) The interaction
with the user might look like this:
Enter first fraction: 1/2
Enter second fraction: 2/5
Sum = 9/10
You can take advantage of the fact that the extraction operator (>>) can be chained to read in more than one quantity at once: cin >> a >> dummychar >> b;
---------------------------------------------------------------------------------------------------------------------
#include<iostream.h>
#include<conio.h>
#include<conio.h>
void main(void)
  {
 clrscr();
 int a,b,c,d;
 char ch;
 int result,result1,result2;
 cout<<"Enter the first fraction:"<<"\n";
 cin>>a;cout<<"/"<<"\n";cin>>b;
 cout<<"Enter the first fraction:"<<"\n";
 cin>>c;cout<<"/"<<"\n";cin>>d;
 result=a*d;
 result1=b*c;
 result2=b*d;
 cout<<"Result:"<<result+result1<<"/"<<result2;
  }
---------------------------------------------------------------------------------------------------------------------
Q.No.10:- In the heyday of the British empire, Great Britain used a monetary system based on pounds, shillings, and pence. There were 20 shillings to a pound, and 12 pence to a shilling. The notation for this old system used the pound sign, £, and two decimal points, so that,  for example, £5.2.8 meant 5 pounds, 2 shillings, and 8 pence. (Pence is the plural of penny.) The new monetary system, introduced in the 1950s, consists of only pounds and pence, with 100 pence to a pound (like U.S. dollars and cents). We’ll call this new system decimal pounds. Thus £5.2.8 in the old notation is £5.13 in decimal pounds (actually £5.1333333). Write a program to convert the old pounds-shillings-pence format to decimal pounds. An example of the user’s interaction with the program would be
Enter pounds: 7
Enter shillings: 17
Enter pence: 9
Decimal pounds = £7.89
In most compilers you can use the decimal number 156 (hex character constant ‘\x9c’) to represent the pound sign (£). In some compilers, you can put the pound sign into your program directly by pasting it from the Windows Character Map accessory.
--------------------------------------------------------------------------------------------------------------------


---------------------------------------------------------------------------------------------------------------------
Q.No.11:- By default, output is right-justified in its field. You can left-justify text output using the manipulator setiosflags (ios::left). (For now, don’t worry about what this new notation means.) Use this manipulator, along with setw(), to help generate the following output:
Last name     First name    Street    address    Town        State
---------------------------------------------------------------------------
Jones              Bernard       109        Pine Lane   Littletown MI
O’Brian         Coleen         42 E.      99th Ave.   Bigcity      NY
Wong            Harry          121-A     Alabama St. Lakeville  IL
--------------------------------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------------------------------
Q. No.12:- Write the inverse of Exercise 10, so that the user enters an amount in Great Britain’s new decimal-pounds notation (pounds and pence), and the program converts it to the old pounds-shillings-pence notation. An example of interaction with the program might be
Enter decimal pounds: 3.51
Equivalent in old notation = £3.10.2.
Make use of the fact that if you assign a floating-point value (say 12.34) to an integer variable, the decimal fraction (0.34) is lost; the integer value is simply 12. Use a cast to avoid a compiler warning. You can use statements like float decpounds; // input from user (new-style pounds) int pounds; // old-style (integer) pounds float decfrac; // decimal fraction (smaller than 1.0) pounds = static cast<int>(decpounds); // remove decimal fraction decfrac = decpounds - pounds; // regain decimal fraction You can then multiply decfrac by 20 to find shillings. A similar operation obtains pence.

C++ chap.3 exercise solution


Exercise. No:03
(Solutions of Exercise Questions)

Q.1. Assume that you want to generate a table of multiples of any given number. Write a program that allows the user to enter the number and then generates the table, formatting it into 10 columns and 20 lines. Interaction with the program should look like this (only the first three lines are shown):
Enter a number: 7
    7    14    21   28   35    42   49   56   63   70
  77    84   91    98  105 112 119 126 133 140
147  154 161 168  175 182 189 196  203 210
------------------------------------------------------------------------------------------------------------
#include<iostream.h>
#include<conio.h>
#include<iomanip.h>
void main(void)
                 {
                 clrscr();
                 int a,b;
                 cout<<"Enter the number:";
                 cin>>a;
                 for(b=1;b<=100;b=b+1)
                 {
                 cout<<setw(4)<<a*b;
                 if(b%10==0)
                 cout<<endl;
                 }
                 }
------------------------------------------------------------------------------------------------------------
Q.2. Write a temperature-conversion program that gives the user the option of converting Fahrenheit to Celsius or Celsius to Fahrenheit. Then carry out the conversion. Use floating-point numbers. Interaction with the program might look like this:
Type 1 to convert Fahrenheit to Celsius,
2 to convert Celsius to Fahrenheit: 1
Enter temperature in Fahrenheit: 70
In Celsius that’s 21.111111
------------------------------------------------------------------------------------------------------------
#include<iostream.h>
#include<conio.h>
#include<iomanip.h>
void main(void)
                 {
                 clrscr();
                 float farenheit,celsuis,choice;
                 cout<<"Enter 1 to Convert Farenheit to Celsuis:"<<endl;
                 cout<<"Enter 2 to Convert Celsuis to Farenheit:";
                 cin>>choice;
                 if(choice==1)
                         {
                         cout<<"Enter temperarure in Farenheit:";cin>>farenheit;
                         celsuis=(farenheit-32)*5/9;
                         cout<<"In Celsuis that's:"<<celsuis;
                         }
                 else
                         {
                         cout<<"Enter temperarure in Farenheit:";cin>>celsuis;
                         farenheit=(celsuis+32)*9/5;
                         cout<<"In Farenheit that's:"<<farenheit;
                         }
                 }
------------------------------------------------------------------------------------------------------------
Q.3. Operators such as >>, which read input from the keyboard, must be able to convert a series of digits into a number. Write a program that does the same thing. It should allow the user to type up to six digits, and then display the resulting number as a type long integer. The digits should be read individually, as characters, using getche (). Constructing the number involves multiplying the existing value by 10 and then adding the new digit. (Hint: Subtract 48 or ‘0’ to go from ASCII to a numerical digit.)
Here’s some sample interaction:
Enter a number: 123456
Number is: 123456
---------------------------------------------------------------------------------------------------------------------
#include <iostream.h>
#include <conio.h>
void main(void)
 {
  clrscr();
  char ch;
  unsigned long total = 0;
  cout <<"\nEnter a number:" ;
  while( (ch=getche()) != '\r' )
  total = total*10 + ch-'0';
  cout << "\nNumber is:"  << total << endl;
 }
---------------------------------------------------------------------------------------------------------------------
Q.4. Create the equivalent of a four-function calculator. The program should ask the user to enter a number, an operator, and another number. (Use floating point.) It should then carry out the specified arithmetical operation: adding, subtracting, multiplying, or dividing the two numbers. Use a switch statement to select the operation. Finally, display the result. When it finishes the calculation, the program should ask whether the user wants to do another calculation. The response can be ‘y’ or ‘n’. Some sample interaction with the program might look like this:
Enter first number, operator, second number: 10 / 3
Answer = 3.333333
Do another (y/n)? y
Enter first number, operator, second number: 12 + 100
Answer = 112
Do another (y/n)? n
---------------------------------------------------------------------------------------------------------------------
#include<iostream.h>
#include<conio.h>
#include<iomanip.h>
void main(void)
                 {
                 clrscr();
                 float number1,number2,result;
                 char choice;
                 do
                 {
          cout<<"Enter first number, operator,second number:";cin>>number1>>choice>>number2;
                 switch(choice)
                               {
                               case '+':
                                         result=number1+number2;
                                         cout<<"Answer = "<<result;
                                         break;
                               case '-':
                                         result=number1-number2;
                                         cout<<"Answer = "<<result;
                                         break;
                               case '*':
                                         result=number1*number2;
                                         cout<<"Answer = "<<result;
                                         break;
                               case '/':
                                         result=number1/number2;
                                         cout<<"Answer = "<<result;
                                         break;
                               }
                 cout<<"\nDo another (y/n) ? ";
                 cin>>choice;
                 }
                 while(choice=='y');
                         }
---------------------------------------------------------------------------------------------------------------------
Q.5. Use for loops to construct a program that displays a pyramid of Xs on the screen. The
pyramid should look like this
X
XXX
XXXXX
XXXXXXX
XXXXXXXXX
except that it should be 20 lines high, instead of the 5 lines shown here. One way to do this is to nest two inner loops, one to print spaces and one to print Xs, inside an outer loop that steps down the screen from line to line.
Q.6. Modify the FACTOR program in this chapter so that it repeatedly asks for a number and calculates its factorial, until the user enters 0, at which point it terminates. You can enclose the relevant statements in FACTOR in a while loop or a do loop to achieve this effect.
---------------------------------------------------------------------------------------------------------------------
#include<iostream.h>
#include<conio.h>
#include<iomanip.h>
void main(void)
                 {
                 clrscr();
                 int number1,factorial=1,choice,a;
                 do
                 {
                 cout<<"Enter the number:";cin>>number1;
                 for(a=number1;a>0;a=a-1)
                 {
                 factorial=factorial*a;
                 }
                 cout<<"Factorial is:"<<factorial;
                 cout<<"\nDo another (y/n) ? ";
                 cin>>choice;
                 }
                 while(choice!=0);
                         }
---------------------------------------------------------------------------------------------------------------------
Q.7. Write a program that calculates how much money you’ll end up with if you invest an amount of money at a fixed interest rate, compounded yearly. Have the user furnish the initial amount, the number of years, and the yearly interest rate in percent. Some interaction with the program might look like this:
Enter initial amount: 3000
Enter number of years: 10
Enter interest rate (percent per year): 5.5
At the end of 10 years, you will have 5124.43 dollars.
At the end of the first year you have 3000 + (3000 * 0.055), which is 3165. At the end of the second year you have 3165 + (3165 * 0.055), which is 3339.08. Do this as many times as there are years. A for loop makes the calculation easy.
---------------------------------------------------------------------------------------------------------------------#include<iostream.h>
#include<conio.h>
#include<iomanip.h>
void main(void)
                 {
                 clrscr();
                 int amount,year,a;
                 float interest_rate,amount1;
                 cout<<"Enter the initial amount:";cin>>amount;
                 cout<<"Enter the number of year:";cin>>year;
                 cout<<"Enter the interest rate:";cin>>interest_rate;
                 for(a=1;a<=year;a=a+1)
                 {
                 amount1=amount+(amount*(interest_rate/100));
                 cout<<"At the end of "<< a<< " year:"<<amount1<<" dollar "<<"\n";
                 amount=amount1;
                  }
                   cout<<"At the end of "<<year<<" year"<<",you will have " <<amount1<<" dollars";
                 }
---------------------------------------------------------------------------------------------------------------------
Q.8. Write a program that repeatedly asks the user to enter two money amounts expressed in old-style British currency: pounds, shillings, and pence. (See Exercises 10 and 12 in Chapter 2, “C++ Programming Basics.”) The program should then add the two amounts and display the answer, again in pounds, shillings, and pence. Use a do loop that asks the user whether the program should be terminated. Typical interaction might be
Enter first amount: £5.10.6
Enter second amount: £3.2.6
Total is £8.13.0
Do you wish to continue (y/n)?
To add the two amounts, you’ll need to carry 1 shilling when the pence value is greater than 11, and carry 1 pound when there are more than 19 shillings.
Q.9. Suppose you give a dinner party for six guests, but your table seats only four. In how many ways can four of the six guests arrange themselves at the table? Any of the six guests can sit in the first chair. Any of the remaining five can sit in the second chair. Any of the remaining four can sit in the third chair, and any of the remaining three can sit in the fourth chair. (The last two will have to stand.) So the number of possible arrangements of six guests in four chairs is 6*5*4*3, which is 360. Write a program that calculates the number of possible arrangements for any number of guests and any number of chairs. (Assume there will never be fewer guests than chairs.) Don’t let this get too complicated. A simple for loop should do it.
Q.10. Write another version of the program from Exercise 7 so that, instead of finding the final amount of your investment, you tell the program the final amount and it figures out how many years it will take, at a fixed rate of interest compounded yearly, to reach this amount. What sort of loop is appropriate for this problem? (Don’t worry about fractional years; use an integer value for the year.)
---------------------------------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------------------------------
Q.11. Create a three-function calculator for old-style English currency, where money amounts are specified in pounds, shillings, and pence. (See Exercises 10 and 12 in Chapter 2.) The calculator should allow the user to add or subtract two money amounts, or to multiply a money amount by a floating-point number. (It doesn’t make sense to multiply two money amounts; there is no such thing as square money. We’ll ignore division. Use the general style of the ordinary four-function calculator in Exercise 4 in this chapter.)
---------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------
Q.12. Create a four-function calculator for fractions. (See Exercise 9 in Chapter 2, and
Exercise 4 in this chapter.) Here are the formulas for the four arithmetic operations
applied to fractions:
Addition:         a/b + c/d = (a*d + b*c) / (b*d)
Subtraction:     a/b - c/d  = (a*d - b*c) / (b*d)
Multiplication: a/b * c/d = (a*c) / (b*d)
Division:          a/b / c/d  = (a*d) / (b*c)
The user should type the first fraction, an operator, and a second fraction. The program
should then display the result and ask whether the user wants to continue.
---------------------------------------------------------------------------------------------------------------------#include<iostream.h>
#include<conio.h>
#include<iomanip.h>
void main(void)
                 {
                 clrscr();
                 int a,b,c,d;
                 float answer;
                 char choice,ch;
                 do
                 {
                 cout<<"Enter the first fraction:\n"; cin>>a;cout<<"/";cin>>b;cout<<endl;
                 cout<<"Enter the first fraction:\n";cin>>c; cout<<"/";cin>>d;
                 cout<<"Enter your choice :";
                 cin>>choice;
                        switch(choice)
                                      {
                                      case '+':
                                      answer=(a*d+b*c)/(b*d);
                                      cout<<"Answer :"<<answer;
                                      break;
                                      case '-':
                                      answer=(a*d-b*c)/(b*d);
                                      cout<<"Answer :"<<answer;
                                      break;
                                      case '*':
                                      answer=(a*c)/(b*d);
                                      cout<<"Answer :"<<answer;
                                      break;
                                      case '/':
                                      answer=(a*d)/(b*d);
                                      cout<<"Answer :"<<answer;
                                      break;
                                     }
                  cout<<"\n Do another (y/n) ?";
                  ch=getche();
                  }
                  while(ch!='n');
                  }
---------------------------------------------------------------------------------------------------------------------