Programming Exercises
(C++ Primer Plus 6th, pp.129-130.)
1. Write a short program that asks for your height in integer inches and then converts your height to feet and inches. Have the program use the underscore character to
indicate where to type the response. Also use a const symbolic constant to represent
the conversion factor.
키를 정수형 인치 단위로 묻고 그 값을 피트와 인치 단위로 변환하는 짧은 프로그램을 작성하라. 입력해야 할 곳을 사용자에게 지시하기 위해 밑줄 문자를 사용하고 환산 인수로 const 기호 상수를 사용하라.
Answer.
#include <iostream>
using namespace std;
int main(){
const int FEET {12}; // 1 foot = 12 inches
int height;
cout << "Height : \b\b\b";
cin >> height;
cout << "Your Height is" << endl;
cout << height / FEET << " feet" << endl;
cout << height % FEET << " inch" << endl;
return 0;
}
2. Write a short program that asks for your height in feet and inches and your weight
in pounds. (Use three variables to store the information.) Have the program report
your body mass index (BMI).To calculate the BMI, first convert your height in feet
and inches to your height in inches (1 foot = 12 inches).Then convert your height
in inches to your height in meters by multiplying by 0.0254.Then convert your
weight in pounds into your mass in kilograms by dividing by 2.2. Finally, compute
your BMI by dividing your mass in kilograms by the square of your height in
meters. Use symbolic constants to represent the various conversion factors.
키를 피트와 인치 단위로 묻고, 체중을 파운드 단위로 묻는 짧은 프로그램을 작성하라. (세 개의 변수를 이용하여 정보를 저장하라.) 프로그램은 BMI를 보고해야 한다. BMI를 계산하려면 먼저 피트와 인치 단위로 주어진 키를 인치 단위의 키로 변환한다. (1 foot = 12 inches) 그리고 0.0254를 곱하여 키를 미터 단위로 변환한다. 그런 후 파운드 단위의 체중에 2.2를 곱하여 체중을 킬로그램 단위로 변환한다. 마지막으로 킬로그램 단위의 무게를 미터 단위의 키의 제곱으로 나누어 BMI를 계산한다. 여러 가지 환산 인수를 나타내기 위해 기호 상수를 사용하라.
Answer.
#include <iostream>
using namespace std;
int main(){
const double FEET = 12; // 1 foot = 12 inch
const double KG = 2.2; // 1 Kg = 2.2 Pound
const double METER = 0.0254; // 1 inch = 0.0254 m
double Height_F; // [Feet]
double Height_I; // [Inch]
double Weight_P; // [Pound]
cout << "I'll ask your height and weight!" << endl;
cout << "You should tell me height in feet and inch likes bellow example!" << endl;
cout << "Example) Height : 5 ft 11 inches" << endl << endl;
cout << "Heght (Feet) = ";
cin >> Height_F;
cout << "Height (Inch) = ";
cin >> Height_I;
cout << "Weight (Pound) = ";
cin >> Weight_P;
double BMI_height = (Height_F * FEET + Height_I) * METER;
double BMI_weight = Weight_P * KG;
cout << "BMI = " << BMI_weight / (BMI_height * BMI_height) << endl;
return 0;
}
3. Write a program that asks the user to enter a latitude in degrees, minutes, and seconds
and that then displays the latitude in decimal format.There are 60 seconds of
arc to a minute and 60 minutes of arc to a degree; represent these values with symbolic
constants.You should use a separate variable for each input value.A sample
run should look like this:
위도를 도각, 분각, 초각 단위로 요청하여, 10진수 형식으로 출력하는 프로그램을 작성하라. 1분각은 60초각이다. 1도각은 60분각이다. 이들을 기호 상수로 표현하라. 각각의 입력값을 위해 별개의 변수를 사용해야 한다. 실행 예시는 다음과 같다:
Enter a latitude in degrees, minutes, and seconds:
First, enter the degrees: 37
Next, enter the minutes of arc: 51
Finally, enter the seconds of arc: 19
37 degrees, 51 minutes, 19 seconds = 37.8553 degrees
Answer.
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
const double MINUTES = 60;
const double SECONDS = 60;
int main()
{
int degree, minute, second;
cout << "Enter a latitude in degrees, minutes, and seconds:\n";
cout << "First, enter the degrees: ";
cin >> degree;
cout << "Next, enter the minutes of arc:";
cin >> minute;
cout << "Finally, enter the seconds of arc:";
cin >> second;
double latitude = degree + (minute/MINUTES) + (second/SECONDS/MINUTES);
cout << degree << " degrees, " << minute << " minutes, " << second << " seconds = ";
cout << latitude << " degrees" << endl;
return EXIT_SUCCESS;
}
4. Write a program that asks the user to enter the number of seconds as an integer
value (use type long, or, if available, long long) and that then displays the equivalent
time in days, hours, minutes, and seconds. Use symbolic constants to represent
the number of hours in the day, the number of minutes in an hour, and the number
of seconds in a minute.The output should look like this:
초 수를 정수 값(long 또는 long long형 이용)으로 요청하고, 그에 상응하는 시간을 일, 시, 분, 초로 출력하는 프로그램을 작성하라. 1일의 시간, 분, 초는 기호 상수를 사용하여 표현하라. 출력은 다음과 같다:
Enter the number of seconds: 31600000
31600000 seconds = 365 days, 17 hours, 46 minutes, 40 seconds
Answer.
#include <iostream>
using namespace std;
int main(){
const int HOUR = 24;
const int MINUTE = 60;
const int SECOND = 60;
int time;
cout << "Enter the number of seconds: ";
cin >> time;
int days = time/(HOUR*MINUTE*SECOND);
int hours = (time - (days*HOUR*MINUTE*SECOND)) / (MINUTE*SECOND);
int minutes = (time - (days*HOUR*MINUTE*SECOND) - (hours*MINUTE*SECOND)) / SECOND;
int seconds = time - (days*HOUR*MINUTE*SECOND) - (hours*MINUTE*SECOND) - (minutes*SECOND);
cout << time << " seconds = " << days << " days, " << hours << " hours, "
<< minutes << " minutes, " << seconds << " seconds" << endl;
return 0;
}
5. Write a program that requests the user to enter the current world population and
the current population of the U.S. (or of some other nation of your choice). Store
the information in variables of type long long. Have the program display the percent
that the U.S. (or other nation’s) population is of the world’s population.The
output should look something like this:
세계 인구와 미국(또는 당신이 원하는 국가)의 현재 인구수를 요구하는 프로그램을 작성하라. 작성한 정보를 long long형 변수에 저장하라. 전 세계 인구에서 미국(또는 당신이 원하는 국가) 인구수가 차지하는 비중을 나타내 보아라. 출력은 다음과 같다:
Enter the world's population: 6898758899
Enter the population of the US: 310783781
The population of the US is 4.50492% of the world population.
Answer.
#include <iostream>
using namespace std;
int main(){
long long Pop_World, Pop_US;
cout << "Enter the world`s population: ";
cin >> Pop_World;
cout << "Enter the population of the US: ";
cin >> Pop_US;
cout << "The population of the US is " << double(Pop_US)/double(Pop_World) * 100
<< "% of the world population." << endl;
return 0;
}
6. Write a program that asks how many miles you have driven and how many gallons
of gasoline you have used and then reports the miles per gallon your car has gotten.
Or, if you prefer, the program can request distance in kilometers and petrol in liters
and then report the result European style, in liters per 100 kilometers.
주행한 거리를 마일 단위로, 소비한 휘발유의 양을 갤런 단위로 묻고, 갤런당 마일 수를 보고하는 프로그램을 작성하라. 또는 주행한 거리를 킬로미터 단위로, 소비한 휘발유의 양을 리터 단위로 묻고, 유럽식으로 100킬로미터당 리터수를 보고하는 프로그램을 작성하라.
Answer.
#include <iostream>
using namespace std;
int main(){
cout << "----Imperial System----" << endl << endl;
double distance_I {0};
double gas_I {0};
cout << "Drive distance [mile] : ";
cin >> distance_I;
cout << "Consumed fuel [gal] : ";
cin >> gas_I;
cout << "Your fuel efficiencty : " << distance_I/gas_I << " mile/gal" << endl << endl;
cout << "----Metric System----" << endl << endl;
double distance_M {0};
double gas_M {0};
cout << "Drive distance [km] : ";
cin >> distance_M;
cout << "Consumed fuel [L] : ";
cin >> gas_M;
cout << "Your fuel efficiencty : " << (gas_M/distance_M) * 100 << " L/100km" << endl << endl;
return 0;
}
7. Write a program that asks you to enter an automobile gasoline consumption figure
in the European style (liters per 100 kilometers) and converts to the U.S. style of
miles per gallon. Note that in addition to using different units of measurement, the
U.S. approach (distance / fuel) is the inverse of the European approach (fuel / distance).
Note that 100 kilometers is 62.14 miles, and 1 gallon is 3.875 liters.Thus, 19
mpg is about 12.4 l/100 km, and 27 mpg is about 8.7 l/100 km.
휘발유 소비량을 유럽식(100km 당 리터 수)로 묻고, 미국식(1 gal 당 마일 수)으로 변환하는 프로그램을 작성하라. 두 방식은 측정 단위가 서로 다를뿐 아니라, 미국식(거리/연료)은 유럽식(연료/거리)의 역수이다. 여기서 100 km = 62.14 mile이고, 1 gal = 3.875 L 이다. 그러므로 19 mpg(miles per gallon) = 약 12.4L/100km 이고, 27mpg = 약 8.7 L/100km 이다.
Answer.
#include <iostream>
using namespace std;
int main(){
double gas_E;
cout << "Fuel efficiency in European style [L/100km] : ";
cin >> gas_E;
double gas_U = (1/gas_E) * (62.14 * 3.875);
cout << gas_E << " L/100km = " << gas_U << "mpg" << endl;
return 0;
}