C++ Programming Ch.5 Exercise 5 Solution

Problem: ๋‹ค์Œ Circle ํด๋ž˜์Šค๊ฐ€ ์žˆ๋‹ค. 1 2 3 4 5 6 7 8 class Circle{ int radius; public: Circle(int r) {radius =r;} int getRadius() {return radius;} void setRadius(int r) {radius = r;} void show() {cout << "๋ฐ˜์ง€๋ฆ„์ด " << radius << "์ธ ์›" << endl;} }; Circle ๊ฐ์ฒด b๋ฅผ a์— ๋”ํ•˜์—ฌ a๋ฅผ ํ‚ค์šฐ๊ณ ์ž ๋‹ค์Œ ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•˜์˜€๋‹ค. 1 2 3 4 void increaseBy(Circle a, Circle b) { int r = a.getRadius() + b.getRadius(); a.setRadius(r); } ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด increaseBy() ํ•จ์ˆ˜๋Š” ๋ชฉ์ ๋Œ€๋กœ ์‹คํ–‰๋˜๋Š”๊ฐ€? ...

March 5, 2020 ยท 2 min ยท Sobamemil

C++ Programming Ch.5 Exercise 4 Solution

Problem: ์•„๋ž˜์™€ ๊ฐ™์ด ์›ํ˜•์ด ์ฃผ์–ด์ง„ bigger()๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ 2๊ฐœ์˜ ์ •์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ํฐ ๊ฐ’์„ ์ถœ๋ ฅํ•˜๋Š” main()์„ ์ž‘์„ฑํ•˜๋ผ. bigger()๋Š” ์ธ์ž๋กœ ์ฃผ์–ด์ง„ a, b๊ฐ€ ๊ฐ™์œผ๋ฉด true, ์•„๋‹ˆ๋ฉด false๋ฅผ ๋ฆฌํ„ดํ•˜๊ณ  ํฐ ์ˆ˜๋Š” big์— ์ „๋‹ฌํ•œ๋‹ค. 1 bool bigger(int a, int b, int& big); Execution Result: Objective & Hints: ์ฐธ์กฐ์— ์˜ํ•œ ํ˜ธ์ถœ ์—ฐ์Šต Code: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 #include using namespace std; bool bigger(int a, int b, int& big){ if(a==b) return true; else { if(a>b) big = a; else big = b; return false; } } int main() { int a, b, big; cout << "๋‘๊ฐœ์˜ ์ •์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”>>"; cin >> a >> b; if(!bigger(a, b, big)) cout << "ํฐ ์ˆ˜๋Š” : " << big; else cout << "๋‘ ์ •์ˆ˜๊ฐ€ ๊ฐ™์Šต๋‹ˆ๋‹ค."; } Explanation: ...

March 5, 2020 ยท 1 min ยท Sobamemil

C++ Programming Ch.5 Exercise 3 Solution

Problem: ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘๋™ํ•˜๋„๋ก combine() ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•˜๋ผ. 1 2 3 4 5 6 int main() { string text1("I love you"), text2("very much"); string text3; // ๋น„์–ด์žˆ๋Š” ๋ฌธ์ž์—ด combine(text1, text2, text3); // text1๊ณผ " ", ๊ทธ๋ฆฌ๊ณ  text2๋ฅผ ๋ง๋ถ™์—ฌ text3 ๋งŒ๋“ค๊ธฐ cout << text3; // "I love you very much" ์ถœ๋ ฅ } Execution Result: Objective & Hints: string ํด๋ž˜์Šค์™€ ์ฐธ์กฐ ์‚ฌ์šฉ ์—ฐ์Šต Code: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #include #include using namespace std; void combine(string t1, string t2, string &t3){ t3 = t1 + " " + t2; } int main() { string text1("I love you"), text2("very much"); string text3; // ๋น„์–ด์žˆ๋Š” ๋ฌธ์ž์—ด combine(text1, text2, text3); // text1๊ณผ " ", ๊ทธ๋ฆฌ๊ณ  text2๋ฅผ ๋ง๋ถ™์—ฌ text3 ๋งŒ๋“ค๊ธฐ cout << text3; // "I love you very much" ์ถœ๋ ฅ } Explanation: ...

March 5, 2020 ยท 1 min ยท Sobamemil

C++ Programming Ch.5 Exercise 2 Solution

Problem: ๋‹ค์Œ main() ํ•จ์ˆ˜์™€ Execution Result๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ half() ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•˜๋ผ. 1 2 3 4 5 int main() { double n = 20; half(n); // n์˜ ๋ฐ˜๊ฐ’์„ ๊ตฌํ•ด n์„ ๋ฐ”๊พผ๋‹ค. cout << n; // 10์ด ์ถœ๋ ฅ๋œ๋‹ค. } Execution Result: Objective & Hints: ์ฐธ์กฐ ์—ฐ์Šต Code: 1 2 3 4 5 6 7 8 9 10 11 12 #include using namespace std; half(double &num){ // ์ฐธ์กฐ์— ์˜ํ•œ ํ˜ธ์ถœ num /= 2; // num์œผ๋กœ ๋„˜์–ด์˜จ ๋ณธ๋ž˜์˜ ๊ฐ’์ด ๋ฐ”๋€œ } int main() { double n = 20; half(n); // n์˜ ๋ฐ˜๊ฐ’์„ ๊ตฌํ•ด n์„ ๋ฐ”๊พผ๋‹ค. cout << n; // 10์ด ์ถœ๋ ฅ๋œ๋‹ค. } Explanation: ...

March 5, 2020 ยท 1 min ยท Sobamemil

C++ Programming Ch.5 Exercise 1 Solution

Problem: ๋‘ ๊ฐœ์˜ Circle ๊ฐ์ฒด๋ฅผ ๊ตํ™˜ํ•˜๋Š” swap() ํ•จ์ˆ˜๋ฅผ '์ฐธ์กฐ์— ์˜ํ•œ ํ˜ธ์ถœ'์ด ๋˜๋„๋ก ์ž‘์„ฑํ•˜๊ณ  ํ˜ธ์ถœํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋ผ. Objective & Hints: ์ฐธ์กฐ์— ์˜ํ•œ ํ˜ธ์ถœ ์—ฐ์Šต Execution Result: Code: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 #include using namespace std; class Circle { int num; public: Circle(); Circle(int num) {this->num = num;} void setNum(int num) {this->num = num;} int getNum() {return num;} }; void swap(Circle &a, Circle &b) { int swap; swap = a.getNum(); a.setNum(b.getNum()); b.setNum(swap); } int main() { Circle a(5), b(10); cout << a.getNum() << " " << b.getNum() << endl; swap(a,b); cout << a.getNum() << " " << b.getNum(); } Explanation: ...

March 5, 2020 ยท 1 min ยท Sobamemil

C++ Programming Ch.4 Exercise 14 Solution

Problem: ๊ฒœ๋ธ”๋ง ๊ฒŒ์ž„์„ ๋งŒ๋“ค์–ด๋ณด์ž. ๋‘ ์‚ฌ๋žŒ์ด ๊ฒŒ์ž„์„ ์ง„ํ–‰ํ•˜๋ฉฐ, ์„ ์ˆ˜์˜ ์ด๋ฆ„์„ ์ดˆ๊ธฐ์— ์ž…๋ ฅ ๋ฐ›๋Š”๋‹ค. ์„ ์ˆ˜๊ฐ€ ๋ฒˆ๊ฐˆ์•„ ์ž์‹ ์˜ ์ฐจ๋ก€์—์„œ ํ‚ค๋ฅผ ์น˜๋ฉด ๋žœ๋คํ•œ 3๊ฐœ์˜ ์ˆ˜๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  ๋ชจ๋‘ ๋™์ผํ•œ ์ˆ˜๊ฐ€ ๋‚˜์˜ค๋ฉด ๊ฒŒ์ž„์—์„œ ์ด๊ธฐ๊ฒŒ ๋œ๋‹ค. ์ˆซ์ž์˜ ๋ฒ”์œ„๊ฐ€ ๋„ˆ๋ฌด ํฌ๋ฉด 3๊ฐœ์˜ ์ˆซ์ž๊ฐ€ ์ผ์น˜ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋‚ฎ์•„ ์ˆซ์ž์˜ ๋ฒ”์œ„๋ฅผ 0~2๋กœ ์ œํ•œํ•œ๋‹ค. ๋žœ๋ค ์ •์ˆ˜ ์ƒ์„ฑ์€ ๋ฌธ์ œ 5๋ฒˆ์˜ ํžŒํŠธ๋ฅผ ์ฐธ๊ณ ํ•˜๋ผ. ์„ ์ˆ˜๋Š” Player ํด๋ž˜์Šค๋กœ ์ž‘์„ฑํ•˜๊ณ , 2๋ช…์˜ ์„ ์ˆ˜๋Š” ๋ฐฐ์—ด๋กœ ๊ตฌ์„ฑํ•˜๋ผ. ๊ทธ๋ฆฌ๊ณ  ๊ฒŒ์ž„์€ GamblingGame ํด๋ž˜์Šค๋กœ ์ž‘์„ฑํ•˜๋ผ. 2020/03/04 - [C++/๋ช…ํ’ˆ C++ programming] - ๋ช…ํ’ˆ C++ programming Exercise Problem 4์žฅ 5๋ฒˆ ...

March 4, 2020 ยท 2 min ยท Sobamemil

C++ Programming Ch.4 Exercise 13 Solution

Problem: ์˜๋ฌธ์ž๋กœ ๊ตฌ์„ฑ๋œ ํ…์ŠคํŠธ์— ๋Œ€ํ•ด ๊ฐ ์•ŒํŒŒ๋ฒณ์— ํ•ด๋‹นํ•˜๋Š” ๋ฌธ์ž๊ฐ€ ๋ช‡ ๊ฐœ์ธ์ง€ ์ถœ๋ ฅํ•˜๋Š” ํžˆ์Šคํ† ๊ทธ๋žจ ํด๋ž˜์Šค Histogram์„ ๋งŒ๋“ค์–ด๋ณด์ž. ๋Œ€๋ฌธ์ž๋Š” ๋ชจ๋‘ ์†Œ๋ฌธ์ž๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์ฒ˜๋ฆฌํ•œ๋‹ค. Histogram ํด๋ž˜์Šค๋ฅผ ํ™œ์šฉํ•˜๋Š” ์‚ฌ๋ก€์™€ Execution Result๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 1 2 3 4 5 Histogram elvisHisto("Wise men say, only fools rush in But I can't help, "); elvisHisto.put("falling in love with you"); elvisHisto.putc('-'); elvisHisto.put("Elvis Presley"); elvisHisto.print(); Execution Result: Objective & Hints: ํด๋ž˜์Šค ๋งŒ๋“ค๊ธฐ ์ข…ํ•ฉ ์‘์šฉ Code: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 #include #include using namespace std; class Histogram { string sent; public: Histogram(string sent); void put(string sent); void putc(char c); void print(); }; Histogram::Histogram(string text){ sent = text; cout << sent << endl; } void Histogram::put(string text){ sent += text; cout << text; } void Histogram::putc(char c){ sent += c; cout << c; } void Histogram::print(){ int alpha[26] = { 0 }; int num = 0; for (int i = 0; i < sent.length(); i++) { if(isalpha(sent[i])){ char c = tolower(sent[i]); alpha[c - 'a']++; num++; } } cout << endl << endl; cout << "์ด ์•ŒํŒŒ๋ฒณ ์ˆ˜ " << num; cout << endl << endl; for (int i = 0; i < 26; ++i) { char c = 'a' + i; cout << c << " (" << alpha[i] << ")\t: "; for (int j = 0; j < alpha[i]; ++j) { cout << "*"; } cout << endl; } } int main() { Histogram elvisHisto("Wise men say, only fools rush in But I can't help, "); elvisHisto.put("falling in love with you"); elvisHisto.putc('-'); elvisHisto.put("Elvis Presley"); elvisHisto.print(); } Explanation: ...

March 4, 2020 ยท 2 min ยท Sobamemil

C++ Programming Ch.4 Exercise 12 Solution

Problem: ๋‹ค์Œ์€ ์ด๋ฆ„๊ณผ ๋ฐ˜์ง€๋ฆ„์„ ์†์„ฑ์œผ๋กœ ๊ฐ€์ง„ Circle ํด๋ž˜์Šค์™€ ์ด๋“ค์„ ๋ฐฐ์—ด๋กœ ๊ด€๋ฆฌํ•˜๋Š” CircleManager ํด๋ž˜์Šค์ด๋‹ค. 1 2 3 4 5 6 7 8 class Circle{ int radius; // ์›์˜ ๋ฐ˜์ง€๋ฆ„ ๊ฐ’ string name; // ์›์˜ ์ด๋ฆ„ public: void setCircle(string name, int radius); // ์ด๋ฆ„๊ณผ ๋ฐ˜์ง€๋ฆ„ ์„ค์ • double getArea(); string getName(); }; 1 2 3 4 5 6 7 8 9 class CircleManager { Circle *p; // Circle ๋ฐฐ์—ด์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ int size; // ๋ฐฐ์—ด์˜ ํฌ๊ธฐ public: CircleManager(int size); // size ํฌ๊ธฐ์˜ ๋ฐฐ์—ด์„ ๋™์  ์ƒ์„ฑ. ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ž…๋ ฅ ์™„๋ฃŒ ~CircleManager(); void searchByName(); // ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์›์˜ ์ด๋ฆ„์„ ์ž…๋ ฅ๋ฐ›์•„ ๋ฉด์  ์ถœ๋ ฅ void searchByArea(); // ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ๋ฉด์ ์„ ์ž…๋ ฅ๋ฐ›์•„ ๋ฉด์ ๋ณด๋‹ค ํฐ ์›์˜ ์ด๋ฆ„ ์ถœ๋ ฅ }; ํ‚ค๋ณด๋“œ์—์„œ ์›์˜ ๊ฐœ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›๊ณ , ๊ทธ ๊ฐœ์ˆ˜๋งŒํผ ์›์˜ ์ด๋ฆ„๊ณผ ๋ฐ˜์ง€๋ฆ„์„ ์ž…๋ ฅ๋ฐ›๊ณ , ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‹คํ–‰๋˜๋„๋ก main() ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•˜๋ผ. ...

March 4, 2020 ยท 3 min ยท Sobamemil

C++ Programming Ch.4 Exercise 11 Solution

Problem: ๋‹ค์Œ์€ ์ปคํ”ผ์žํŒ๊ธฐ๋กœ ์ž‘๋™ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๋‘ ํด๋ž˜์Šค์ด๋‹ค. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 class CoffeeVendingMachine { // ์ปคํ”ผ์žํŒ๊ธฐ๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ํด๋ž˜์Šค Container tong[3]; // tong[0]๋Š” ์ปคํ”ผ, tong[1]์€ ๋ฌผ, tong[2]๋Š” ์„คํƒ•ํ†ต์„ ๋‚˜ํƒ€๋ƒ„ void fill(); // 3๊ฐœ์˜ ํ†ต์„ ๋ชจ๋‘ 10์œผ๋กœ ์ฑ„์›€ void selectEspresso(); // ์—์Šคํ”„๋ ˆ์†Œ๋ฅผ ์„ ํƒํ•œ ๊ฒฝ์šฐ, ์ปคํ”ผ 1, ๋ฌผ 1 ์†Œ๋ชจ void selectAmericano(); // ์•„๋ฉ”๋ฆฌ์นด๋…ธ๋ฅผ ์„ ํƒํ•œ ๊ฒฝ์šฐ, ์ปคํ”ผ 1, ๋ฌผ 2 ์†Œ๋ชจ void selectSugarCoffee(); // ์„คํƒ•์ปคํ”ผ๋ฅผ ์„ ํƒํ•œ ๊ฒฝ์šฐ, ์ปคํ”ผ 1, ๋ฌผ 2, ์„คํƒ• 1 ์†Œ๋ชจ void show(); // ํ˜„์žฌ ์ปคํ”ผ, ๋ฌผ, ์„คํƒ•์˜ ์ž”๋Ÿ‰ ์ถœ๋ ฅ public: void run(); // ์ปคํ”ผ ์žํŒ๊ธฐ ์ž‘๋™ }; class Container { // ํ†ต ํ•˜๋‚˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ํด๋ž˜์Šค int size; // ํ˜„์žฌ ์ €์žฅ ๋Ÿ‰, ์ตœ๋Œ€ ์ €์žฅ๋Ÿ‰์€ 10 public: Container() {size = 10;} void fill(); // ์ตœ๋Œ€๋Ÿ‰(10)์œผ๋กœ ์ฑ„์šฐ๊ธฐ void consume(); // 1 ๋งŒํผ ์†Œ๋ชจํ•˜๊ธฐ int getSize(); // ํ˜„์žฌ ํฌ๊ธฐ ๋ฆฌํ„ด }; ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‹คํ–‰๋˜๋„๋ก main() ํ•จ์ˆ˜์™€ CoffeeVendingMachine, Container๋ฅผ ์™„์„ฑํ•˜๋ผ. ...

March 4, 2020 ยท 3 min ยท Sobamemil

C++ Programming Ch.4 Exercise 10 Solution

Problem: ๋‹ค์Œ์—์„œ Person์€ ์‚ฌ๋žŒ์„, Family๋Š” ๊ฐ€์กฑ์„ ์ถ”์ƒํ™”ํ•œ ํด๋ž˜์Šค๋กœ์„œ ์™„์„ฑ๋˜์ง€ ์•Š์€ ํด๋ž˜์Šค์ด๋‹ค. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 class Person { string name; public: Person(string name) { this->name = name;} string getName() { return name;} }; class Family { Person *p; // Person ๋ฐฐ์—ด ํฌ์ธํ„ฐ int size; // Person ๋ฐฐ์—ด์˜ ํฌ๊ธฐ. ๊ฐ€์กฑ ๊ตฌ์„ฑ์› ์ˆ˜ public: Family(string name, int size); // size ๊ฐœ์ˆ˜๋งŒํผ Person ๋ฐฐ์—ด ๋™์  ์ƒ์„ฑ void show(); // ๋ชจ๋“  ๊ฐ€์กฑ ๊ตฌ์„ฑ์› ์ถœ๋ ฅ ~Family(); }; ๋‹ค์Œ main()์ด ์ž‘๋™ํ•˜๋„๋ก Person๊ณผ Family ํด๋ž˜์Šค์— ํ•„์š”ํ•œ ๋ฉค๋ฒ„๋“ค์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์ฝ”๋“œ๋ฅผ ์™„์„ฑํ•˜๋ผ. ...

March 4, 2020 ยท 2 min ยท Sobamemil