C++ Programming Ch.4 Exercise 9 Solution

Problem: ๋‹ค์Œ๊ณผ ๊ฐ™์€ Person ํด๋ž˜์Šค๊ฐ€ ์žˆ๋‹ค. Person ํด๋ž˜์Šค์™€ main() ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•˜์—ฌ, 3๊ฐœ์˜ Person ๊ฐ์ฒด๋ฅผ ๊ฐ€์ง€๋Š” ๋ฐฐ์—ด์„ ์„ ์–ธํ•˜๊ณ , ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‚ค๋ณด๋“œ์—์„œ ์ด๋ฆ„๊ณผ ์ „ํ™”๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ์ถœ๋ ฅํ•˜๊ณ  ๊ฒ€์ƒ‰ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์™„์„ฑํ•˜๋ผ. 1 2 3 4 5 6 7 8 9 class Person{ string name; string tel; public: Person(); string getName() { return name; } string getTel() { return tel; } void set(string name, string tel); }; Objective & Hints: ๊ฐ์ฒด ๋ฐฐ์—ด๊ณผ string ์‘์šฉ ์—ฐ์Šต ...

March 4, 2020 ยท 2 min ยท Sobamemil

C++ Programming Ch.4 Exercise 8 Solution

Problem: Exercise Problem 7์˜ ๋ฌธ์ œ๋ฅผ ์ˆ˜์ •ํ•ด๋ณด์ž. ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์›์˜ ๊ฐœ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›๊ณ , ์›์˜ ๊ฐœ์ˆ˜๋งŒํผ ๋ฐ˜์ง€๋ฆ„์„ ์ž…๋ ฅ๋ฐ›๋Š” ๋ฐฉ์‹์œผ๋กœ ์ˆ˜์ •ํ•˜๋ผ. ์›์˜ ๊ฐœ์ˆ˜์— ๋”ฐ๋ผ ๋™์ ์œผ๋กœ ๋ฐฐ์—ด์„ ํ• ๋‹น๋ฐ›์•„์•ผ ํ•œ๋‹ค. 2020/03/04 - [C++/๋ช…ํ’ˆ C++ programming] - ๋ช…ํ’ˆ C++ programming Exercise Problem 4์žฅ 7๋ฒˆ [๋ช…ํ’ˆ C++ programming Exercise Problem 4์žฅ 7๋ฒˆ Problem: ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์›์„ ์ถ”์ƒํ™”ํ•œ Circle ํด๋ž˜์Šค๊ฐ€ ์žˆ๋‹ค. Circle ํด๋ž˜์Šค์™€ main() ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•˜๊ณ  3๊ฐœ์˜ Circle ๊ฐ์ฒด๋ฅผ ๊ฐ€์ง„ ๋ฐฐ์—ด์„ ์„ ์–ธํ•˜๊ณ , ๋ฐ˜์ง€๋ฆ„ ๊ฐ’์„ ์ž…๋ ฅ๋ฐ›๊ณ  ๋ฉด์ ์ด 100๋ณด๋‹ค ํฐ ์›์˜ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„.. ...

March 4, 2020 ยท 2 min ยท Sobamemil

C++ Programming Ch.4 Exercise 7 Solution

Problem: ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์›์„ ์ถ”์ƒํ™”ํ•œ Circle ํด๋ž˜์Šค๊ฐ€ ์žˆ๋‹ค. Circle ํด๋ž˜์Šค์™€ main() ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•˜๊ณ  3๊ฐœ์˜ Circle ๊ฐ์ฒด๋ฅผ ๊ฐ€์ง„ ๋ฐฐ์—ด์„ ์„ ์–ธํ•˜๊ณ , ๋ฐ˜์ง€๋ฆ„ ๊ฐ’์„ ์ž…๋ ฅ๋ฐ›๊ณ  ๋ฉด์ ์ด 100๋ณด๋‹ค ํฐ ์›์˜ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์™„์„ฑํ•˜๋ผ. Circle ํด๋ž˜์Šค๋„ ์™„์„ฑํ•˜๋ผ. 1 2 3 4 5 6 class Circle { int radius; // ์›์˜ ๋ฐ˜์ง€๋ฆ„ ๊ฐ’ public: void setRadius(int radius); // ๋ฐ˜์ง€๋ฆ„์„ ์„ค์ •ํ•œ๋‹ค. double getArea(); // ๋ฉด์ ์„ ๋ฆฌํ„ดํ•œ๋‹ค. }; Objective & Hints: ๊ฐ์ฒด ๋ฐฐ์—ด ๋‹ค๋ฃจ๊ธฐ ์—ฐ์Šต ...

March 4, 2020 ยท 1 min ยท Sobamemil

C++ Programming Ch.4 Exercise 6 Solution

Problem: string ํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ์˜๋ฌธ ํ•œ ์ค„์„ ๋ฌธ์ž์—ด๋กœ ์ž…๋ ฅ๋ฐ›๊ณ  ๊ฑฐ๊พธ๋กœ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋ผ. Objective & Hints: string ํด๋ž˜์Šค๋กœ ๋ฌธ์ž์—ด ๋‹ค๋ฃจ๊ธฐ Execution Result: Code: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 #include #include using namespace std; int main() { string str; cout << "์•„๋ž˜ ํ•œ ์ค„์„ ์ž…๋ ฅํ•˜์„ธ์š”.(exit๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค)"; while(true){ cout << endl << ">>"; getline(cin,str); if(str == "exit") break; for(int i = str.length()-1; i>=0; i--) cout << str[i]; } } Explanation: ...

March 4, 2020 ยท 1 min ยท Sobamemil

C++ Programming Ch.4 Exercise 5 Solution

Problem: string ํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ์˜๋ฌธ ํ•œ ์ค„์„ ์ž…๋ ฅ๋ฐ›๊ณ  ๊ธ€์ž ํ•˜๋‚˜๋งŒ ๋žœ๋คํ•˜๊ฒŒ ์ˆ˜์ •ํ•˜์—ฌ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋ผ. Objective & Hints: string ํด๋ž˜์Šค๋กœ ๋ฌธ์ž์—ด ๋‹ค๋ฃจ๊ธฐ ๋žœ๋ค ์ •์ˆ˜๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ๋‹ค์Œ ๋‘ ๋ผ์ธ์˜ ์ฝ”๋“œ๊ฐ€ ํ•„์š”ํ•˜๋ฉฐ, ์™€ ํ—ค๋” ํŒŒ์ผ์„ include ํ•ด์•ผ ํ•œ๋‹ค. 1 2 srand((unsinged)time(0)); // ์‹œ์ž‘ํ•  ๋•Œ๋งˆ๋‹ค, ๋‹ค๋ฅธ ๋žœ๋ค์ˆ˜๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•œ seed ์„ค์ • int n = rand(); // 0์—์„œ RAND_MAX(32767) ์‚ฌ์ด์˜ ๋žœ๋คํ•œ ์ •์ˆ˜ ๋ฐœ์ƒ 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 26 #include #include #include #include using namespace std; int main() { string sent; int n; cout << "์•„๋ž˜ ํ•œ ์ค„์„ ์ž…๋ ฅํ•˜์„ธ์š”.(exit๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค)" ; while(true){ srand((unsigned)time(0)); cout << "\n>>"; getline(cin,sent); if(sent == "exit") break; int length = sent.length(); while(true){ n = rand()%length; if(sent[n]!=' ') break; } int a = rand()%25+95; // ์ž„์˜์˜ ๋ฌธ์ž ํ•˜๋‚˜ ์„ ํƒ sent[n] = (char)a; cout << sent; } } Explanation: ...

March 4, 2020 ยท 1 min ยท Sobamemil

C++ Programming Ch.4 Exercise 4 Solution

Problem: ๋‹ค์Œ๊ณผ ๊ฐ™์€ Sample ํด๋ž˜์Šค๊ฐ€ ์žˆ๋‹ค. 1 2 3 4 5 6 7 8 9 10 11 12 class Sample{ int *p; int size; public: Sample(int n) { // ์ƒ์„ฑ์ž size = n; p = new int [n]; // n๊ฐœ ์ •์ˆ˜ ๋ฐฐ์—ด์˜ ๋™์  ์ƒ์„ฑ } void read(); // ๋™์  ํ• ๋‹น๋ฐ›์€ ์ •์ˆ˜ ๋ฐฐ์—ด p์— ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ •์ˆ˜๋ฅผ ์ž…๋ ฅ ๋ฐ›์Œ void write(); // ์ •์ˆ˜ ๋ฐฐ์—ด์„ ํ™”๋ฉด์— ์ถœ๋ ฅ int big(); // ์ •์ˆ˜ ๋ฐฐ์—ด์—์„œ ๊ฐ€์žฅ ํฐ ์ˆ˜ ๋ฆฌํ„ด ~Sample(); // ์†Œ๋ฉธ์ž }; ๋‹ค์Œ main() ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋˜๋„๋ก Sample ํด๋ž˜์Šค๋ฅผ ์™„์„ฑํ•˜๋ผ. ...

March 4, 2020 ยท 2 min ยท Sobamemil

C++ Programming Ch.4 Exercise 3 Solution

Problem: string ํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•˜์—ฌ ๋นˆ์นธ์„ ํฌํ•จํ•˜๋Š” ๋ฌธ์ž์—ด์„ ์ž…๋ ฅ๋ฐ›๊ณ  ๋ฌธ์ž์—ด์—์„œ 'a'๊ฐ€ ๋ช‡๊ฐœ ์žˆ๋Š”์ง€ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด๋ณด์ž. Objective & Hints: getline(), string ํด๋ž˜์Šค ํ™œ์šฉ Execution Result: Code: (1) ๋ฌธ์ž์—ด์—์„œ 'a'๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด string ํด๋ž˜์Šค์˜ ๋ฉค๋ฒ„ at()๋‚˜ []๋ฅผ ์ด์šฉํ•˜์—ฌ ์ž‘์„ฑํ•˜๋ผ. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #include #include using namespace std; int main() { string str; cout << "๋ฌธ์ž์—ด ์ž…๋ ฅ>>"; getline(cin,str); int length = str.length(); int num = 0; for(int i=0; i<length; i++){ if(str[i] == 'a') num++; } cout << "๋ฌธ์ž a๋Š” " << num << "๊ฐœ ์žˆ์Šต๋‹ˆ๋‹ค." ; } (2) ๋ฌธ์ž์—ด์—์„œ 'a'๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด string ํด๋ž˜์Šค์˜ find() ๋ฉค๋ฒ„ ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ ์ž‘์„ฑํ•˜๋ผ. text.find('a', index);๋Š” text ๋ฌธ์ž์—ด์˜ index ์œ„์น˜๋ถ€ํ„ฐ 'a'๋ฅผ ์ฐพ์•„ ๋ฌธ์ž์—ด ๋‚ด ์ธ๋ฑ์Šค๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค. ...

March 4, 2020 ยท 2 min ยท Sobamemil

C++ Programming Ch.4 Exercise 2 Solution

Problem: ์ •์ˆ˜ ๊ณต๊ฐ„ 5๊ฐœ๋ฅผ ๋ฐฐ์—ด๋กœ ๋™์  ํ• ๋‹น๋ฐ›๊ณ , ์ •์ˆ˜๋ฅผ 5๊ฐœ ์ž…๋ ฅ๋ฐ›์•„ ํ‰๊ท ์„ ๊ตฌํ•˜๊ณ  ์ถœ๋ ฅํ•œ ๋’ค ๋ฐฐ์—ด์„ ์†Œ๋ฉธ์‹œํ‚ค๋„๋ก main() ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•˜๋ผ. Objective & Hints: ๋ฐฐ์—ด์˜ ๋™์  ํ• ๋‹น ๋ฐ ๋ฐ˜ํ™˜ Execution Result: Code: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #include using namespace std; int main() { int *p = new int[5]; double sum = 0; cout << "์ •์ˆ˜ 5๊ฐœ ์ž…๋ ฅ>>"; for(int i=0; i<5; i++) { cin >> p[i]; sum += p[i]; } cout << "ํ‰๊ท  " << sum/5; delete [] p; } Explanation: ...

March 4, 2020 ยท 1 min ยท Sobamemil

C++ Programming Ch.4 Exercise 1 Solution

Problem: ๋‹ค์Œ์€ ์ƒ‰์˜ 3์š”์†Œ์ธ red, green, blue๋กœ ์ƒ‰์„ ์ถ”์ƒํ™”ํ•œ Color ํด๋ž˜์Šค๋ฅผ ์„ ์–ธํ•˜๊ณ  ํ™œ์šฉํ•˜๋Š” ์ฝ”๋“œ์ด๋‹ค. ๋นˆ์นธ์„ ์ฑ„์›Œ๋ผ. red, green, blue๋Š” 0~255์˜ ๊ฐ’๋งŒ ๊ฐ€์ง„๋‹ค. 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 #include using namespace std; class Color { int red, green, blue; public: Color() {red = green = blue = 0;} Color(int r, int g, int b) {red = r; green = g; blue = b;} void setColor(int r, int g, int b) {red = r; green = g; blue = b;} void show() {cout << red << ' ' << green << ' ' << blue << endl;} }; int main() { Color screenColor(255,0,0); // ๋นจ๊ฐ„์ƒ‰์˜ screenColor ๊ฐ์ฒด ์ƒ์„ฑ Color *p; // Color ํƒ€์ž…์˜ ํฌ์ธํ„ฐ ๋ณ€์ˆ˜ p ์„ ์–ธ ๏ผฟ๏ผฟ๏ผฟ๏ผฟ๏ผฟ // (1) p๊ฐ€ screenColor์˜ ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง€๋„๋ก ์ฝ”๋“œ ์ž‘์„ฑ ๏ผฟ๏ผฟ๏ผฟ๏ผฟ๏ผฟ // (2) p์™€ show()๋ฅผ ์ด์šฉํ•˜์—ฌ screenColor ์ƒ‰ ์ถœ๋ ฅ ๏ผฟ๏ผฟ๏ผฟ๏ผฟ๏ผฟ // (3) Color์˜ ์ผ์ฐจ์› ๋ฐฐ์—ด colors ์„ ์–ธ. ์›์†Œ๋Š” 3๊ฐœ ๏ผฟ๏ผฟ๏ผฟ๏ผฟ๏ผฟ // (4) p๊ฐ€ colors ๋ฐฐ์—ด์„ ๊ฐ€๋ฆฌํ‚ค๋„๋ก ์ฝ”๋“œ ์ž‘์„ฑ // (5) p์™€ setColor()๋ฅผ ์ด์šฉํ•˜์—ฌ colors[0], colors[1], colors[2]๊ฐ€ // ๊ฐ๊ฐ ๋นจ๊ฐ•, ์ดˆ๋ก, ํŒŒ๋ž‘์ƒ‰์„ ๊ฐ€์ง€๋„๋ก ์ฝ”๋“œ ์ž‘์„ฑ ๏ผฟ๏ผฟ๏ผฟ๏ผฟ๏ผฟ ๏ผฟ๏ผฟ๏ผฟ๏ผฟ๏ผฟ ๏ผฟ๏ผฟ๏ผฟ๏ผฟ๏ผฟ // (6) p์™€ show()๋ฅผ ์ด์šฉํ•˜์—ฌ colors ๋ฐฐ์—ด์˜ ๋ชจ๋“  ๊ฐ์ฒด์˜ ์ƒ‰ ์ถœ๋ ฅ. for ๋ฌธ ์ด์šฉ ๏ผฟ๏ผฟ๏ผฟ๏ผฟ๏ผฟ ๏ผฟ๏ผฟ๏ผฟ๏ผฟ๏ผฟ ๏ผฟ๏ผฟ๏ผฟ๏ผฟ๏ผฟ } Objective & Hints: ...

March 4, 2020 ยท 3 min ยท Sobamemil

C++ Programming Ch.3 Exercise 12 Solution

Problem: ์ปดํ“จํ„ฐ์˜ ์ฃผ๊ธฐ์–ต์žฅ์น˜๋ฅผ ๋ชจ๋ธ๋งํ•˜๋Š” ํด๋ž˜์Šค์˜ Ram์„ ๊ตฌํ˜„ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. Ram ํด๋ž˜์Šค๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๊ธฐ๋ก๋  ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„๊ณผ ํฌ๊ธฐ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ , ์ฃผ์–ด์ง„ ์ฃผ์†Œ์— ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋กํ•˜๊ณ (write), ์ฃผ์–ด์ง„ ์ฃผ์†Œ๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด ์˜จ๋‹ค(read). Ram ํด๋ž˜์Šค๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ ์–ธ๋œ๋‹ค. 1 2 3 4 5 6 7 8 9 class Ram { char mem[100 * 1024]; // 100KB ๋ฉ”๋ชจ๋ฆฌ. ํ•œ ๋ฒˆ์ง€๋Š” ํ•œ ๋ฐ”์ดํŠธ์ด๋ฏ€๋กœ char ํƒ€์ž… ์‚ฌ์šฉ int size; public: Ram(); // mem ๋ฐฐ์—ด์„ 0์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•˜๊ณ  size๋ฅผ 100*1024๋กœ ์ดˆ๊ธฐํ™” ~Ram(); // "๋ฉ”๋ชจ๋ฆฌ ์ œ๊ฑฐ๋จ" ๋ฌธ์ž์—ด ์ถœ๋ ฅ char read(int address); // address ์ฃผ์†Œ์˜ ๋ฉ”๋ชจ๋ฆฌ ๋ฐ”์ดํŠธ ๋ฆฌํ„ด void write(int address, char value); // address ์ฃผ์†Œ์— ํ•œ ๋ฐ”์ดํŠธ๋กœ value ์ €์žฅ }; ๋‹ค์Œ main() ํ•จ์ˆ˜๋Š” 100 ๋ฒˆ์ง€์— 20์„ ์ €์žฅํ•˜๊ณ , 101 ๋ฒˆ์ง€์— 30์„ ์ €์žฅํ•œ ํ›„, 100 ๋ฒˆ์ง€์™€ 101 ๋ฒˆ์ง€์˜ ๊ฐ’์„ ์ฝ๊ณ  ๋”ํ•˜์—ฌ 102 ๋ฒˆ์ง€์— ์ €์žฅํ•˜๋Š” ์ฝ”๋“œ์ด๋‹ค. ...

March 3, 2020 ยท 3 min ยท Sobamemil