C++ Programming Ch.6 Exercise 8 Solution
Problem: ๋๋ฒ๊น ์ ํ์ํ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ Trace ํด๋์ค๋ฅผ ๋ง๋ค์ด๋ณด์. ์ ์์ ๊ฒฝํ์ ์ํ๋ฉด, ๋ฉํฐํ์คํฌ ํ๋ก๊ทธ๋จ์ ๊ฐ๋ฐํ๊ฑฐ๋ ํน๋ณํ ํ๊ฒฝ์์ ์์ ํ ๋, Visual Studio์ ๋๋ฒ๊ฑฐ์ ๊ฐ์ ์์ค ๋ ๋ฒจ ๋๋ฒ๊ฑฐ๋ฅผ ์ฌ์ฉํ์ง ๋ชปํ๋ ๊ฒฝ์ฐ๊ฐ ๋๋ฌ ์์๊ณ , ์ด๋ ์คํ ๋์ค ์ ๋ณด๋ฅผ ์ ์ฅํ๊ธฐ ์ํด Trace ํด๋์ค๋ฅผ ๋ง๋ค์ด ์ฌ์ฉํ์๋ค. Trace ํด๋์ค๋ฅผ ํ์ฉํ๋ ๋ค์ ํ๋ก๊ทธ๋จ๊ณผ ๊ฒฐ๊ณผ๋ฅผ ์ฐธ๊ณ ํ์ฌ Trace ํด๋์ค๋ฅผ ์์ฑํ๊ณ ์ ์ฒด ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ผ. ๋๋ฒ๊น ์ ๋ณด๋ 100๊ฐ๋ก ์ ํํ๋ค. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 void f() { int a, b, c; cout << "๋ ๊ฐ์ ์ ์๋ฅผ ์ ๋ ฅํ์ธ์>>"; cin >> a >> b; Trace::put("f()", "์ ์๋ฅผ ์ ๋ ฅ ๋ฐ์์"); // ๋๋ฒ๊น ์ ๋ณด ์ ์ฅ c = a + b; Trace::put("f()", "ํฉ ๊ณ์ฐ"); // ๋๋ฒ๊น ์ ๋ณด ์ ์ฅ cout << "ํฉ์ " << c << endl; } int main() { Trace::put("main()", "ํ๋ก๊ทธ๋จ์ ์์ํฉ๋๋ค"); // ๋๋ฒ๊น ์ ๋ณด ์ ์ฅ f(); Trace::put("main()", "์ข ๋ฃ"); // put()์ ์ฒซ ๋ฒ์งธ ๋งค๊ฐ ๋ณ์๋ ํ๊ทธ์ด๊ณ // ๋ ๋ฒ์งธ ๋งค๊ฐ ๋ณ์๋ ๋๋ฒ๊น ์ ๋ณด์ด๋ค. Trace::print("f()"); // "f()" ํ๊ทธ๋ฅผ ๊ฐ์ง ๋๋ฒ๊น ์ ๋ณด๋ฅผ ๋ชจ๋ ์ถ๋ ฅํ๋ค. Trace::print(); // ๋ชจ๋ ๋๋ฒ๊น ์ ๋ณด๋ฅผ ์ถ๋ ฅํ๋ค. } Execution Result: ...