Chapter 3 함수 프로그래밍이라는 문맥에서 함수(function)은 연산을 수행하기 위한 일련의 문장들에 이름을 붙여 놓은 것이다. 함수를 정의할 때는 이름과 문장들 지정해야 한다. 그 다음에 함수를 지정한 이름으로 호출(call) 할 수 있다. 3.1 함수 호출

Size: px
Start display at page:

Download "Chapter 3 함수 프로그래밍이라는 문맥에서 함수(function)은 연산을 수행하기 위한 일련의 문장들에 이름을 붙여 놓은 것이다. 함수를 정의할 때는 이름과 문장들 지정해야 한다. 그 다음에 함수를 지정한 이름으로 호출(call) 할 수 있다. 3.1 함수 호출"

Transcription

1 Chapter 3 함수 프로그래밍이라는 문맥에서 함수(function)은 연산을 수행하기 위한 일련의 문장들에 이름을 붙여 놓은 것이다. 함수를 정의할 때는 이름과 문장들 지정해야 한다. 그 다음에 함수를 지정한 이름으로 호출(call) 할 수 있다. 3.1 함수 호출 우리는 이미 함수 호출(function call)의 예를 보았다: >>> type(42) <class 'int'> 함수의 이름은 type이다. 괄호 안의 표현은 함수의 인자(argument)라고 불린다. 이 함수의 결과 로 인자의 분류를 알려준다. 흔히 함수가 인자를 받아서(take) 결과를 리턴(return) 한다고 말한다. 그리고 함수의 결과를 리턴 값(return value)이라고 부른다. Python은 어떤 값을 한 분류에서 다른 분류로 변환하는 함수들을 제공한다. int 함수는 어떤 값이든 받아서 정수로 변환할 수 있으면 변환하고 그렇지 못하는 경우는 불평을 한다. >>> int('32') 32 >>> int('hello') ValueError: invalid literal for int(): Hello int 함수는 부동 소수점 숫자를 정수로 변환할 수 있지만 반올림을 하지 않는다. 소수점 부분을 잘라 버리기만 한다. >>> int( ) 3 >>> int(-2.3) -2 float 함수는 정수와 문자열을 부동 소수점 숫자로 변환한다. >>> float(32) 32.0 >>> float(' ')

2 Chapter 3. 함수 18 마지막으로 str 함수는 인자를 문자열로 변환한다. >>> str(32) '32' >>> str( ) ' ' 3.2 수학 함수 Python은 대부분의 익숙한 수학 함수들을 포함하는 수학 모듈을 갖고 있다. 모듈(module)은 관련된 함수들을 모아 놓은 파일이다. 모듈에 포함된 함수를 사용하기 전에 import 문으로 읽어들여야 한다. >>> import math 이 문장은 math라고 불리는 모듈 객체(module object)를 생성한다. 모듈 객체를 표시하도록 하면 객체에 관한 정볼르 얻을 수 있다. >>> math <module 'math' (built-in)> 모듈 객체는 모듈에 정의된 함수들과 변수들을 포함하고 있다. 모듈에 포함된 함수를 사용하고 싶 으면 모듈과 사용하기 원하는 함수의 이름을 구두점(닷, dot)으로 구분하여 지정해야 한다. 이와 같은 형식을 닷 표기법(dot notation)이라고 부른다. >>> ratio = signal_power / noise_power >>> decibels = 10 * math.log10(ratio) >>> radians = 0.7 >>> height = math.sin(radians) 첫 예제에서는 math.log10을 사용하여 signal_power 와 noise_power의 변수가 정의되어 있 다고 가정했을 때의 신호대잡음비를 데시벨로 변환한다. 수학 모듈은 밑 수를 e로 하는 log도 제공한다. 두 번째 예제에서는 radians 변수에 대한 사인 값을 계산한다. sin, cos 그리고 tan와 같은 삼각함수와 관련된 함수들의 인자 값은 이 예제에서 사용한 변수 명처럼 라디안을 쓴다. 도를 라디안으로 변환하려면 180으로 나누고 π로 곱하면 된다. >>> degrees = 45 >>> radians = degrees / * math.pi >>> math.sin(radians) math.pi라고 쓰면 pi 변수를 수학 모듈에서 가져온다. 이 값은 소수점 15자리까지 정확한 근사 값이다. 삼각함수 식에 따라 45도의 사인 값은 2분의 루트 2이기 때문에 예제의 결과가 맞는지 비교해 볼 수 있다. >>> math.sqrt(2) /

3 3.3. 구성 구성 지금까지 변수와 수식 그리고 문장이라는 프로그램의 요소들을 독립적으로만 다루었기 때문에 구성 요소들을 화합하여 쓰는 것에 대해서는 다루지 않았다. 프로그래밍 언어의 가장 유익한 기능 중 하나는 작은 단위의 필요한 부분들을 모아서 구성(compose)할 수 있다는 것이다. 예를 들면, 함수의 인자로 산술 연산자들을 포함하는 어떤 수식이라도 다 받을 수 있다. x = math.sin(degrees / * 2 * math.pi) 함수 호출도 할 수 있다. x = math.exp(math.log(x+1)) 거의 모든 곳에 값을 넣을 수 있으며 임의의 수식을 쓸 수 있다. 단, 한 가지 예외가 있다. 할당문의 왼쪽에는 변수의 이름이 있어야 한다. 왼쪽에 다른 어떤 수식이라도 오면 문법 오류가 발생한다 (이것에 대한 예외 상황을 이후에 살펴 보자). >>> minutes = hours * 60 >>> hours * 60 = minutes SyntaxError: can't assign to operator 3.4 # 맞음 # 틀림! 새로운 함수의 추가 지금까지는 Python이 제공하는 함수들만 사용했었는데, 새로운 함수도 추가 할 수 있다. 함수 정 의(function definition)로 새로운 함수에 이름을 부여하고 그 함수를 호출했을 때 실행될 일련의 문장들을 지정할 수 있다. 여기 그 예가 있다. def print_lyrics(): print("i'm a lumberjack, and I'm okay.") print("i sleep all night and I work all day.") def라는 키워드가 함수 정의를 표시한다. 이 함수의 이름은 print_lyrics이다. 함수 이름에 대한 규칙은 변수명에 대한 규칙과 똑같다. 글자와 숫자 그리고 밑줄 표시는 사용 가능하지만 숫 자가 첫 글자로 오면 안된다. 키워드로 예약되어 있는 단어들은 함수명으로 쓸 수 없으며 변수와 함수를 동일한 이름으로 짓는 것은 피해야 한다. 함수명 다음에 빈 괄호를 사용한 것은 이 함수가 아무런 인자도 사용하지 않는다는 것을 뜻한다. 함수 정의의 첫 줄을 헤더(header)라고 부르고 그 나머지 부분을 내용(바디, body)라고 부른다. 헤더의 끝은 콜론이고 내용은 들여쓰기를 해야 한다. 관례적으로 항상 4개의 공백으로 들여쓰기 를 한다. 내용에는 몇 개의 문장이든 포함될 수 있다. print문에 문자열은 큰따옴표로 싸여있다. 작은 따옴표나 큰따옴표나 동일하다. 대부분의 사람 들은 작은 따옴표를 사용하지만, 예외적으로 작은 따옴표(아포스트로피 또는 생략 기호)가 문자 열 중에 포함된 경우에만 큰따옴표를 사용한다. 모든 인용부호(작은 따옴표와 큰따옴표)는 대체적으로 키보드의 엔터 키 옆에 있는 반듯한 인용 부호 를 사용해야 한다. 이 문장에서 쓰고 있는 휘어진 인용부호 는 Python에서 쓸 수 없다. 대화식 모드에서 함수 정의를 입력하면 인터프리터는 함수의 내용 부분에 점(...)을 표시하여 정의가 끝나지 않았다는 것을 표시한다.

4 Chapter 3. 함수 20 >>> def print_lyrics():... print("i'm a lumberjack, and I'm okay.")... print("i sleep all night and I work all day.")... 함수의 정의를 끝내려면 빈 줄을 입력하면 된다. 이렇게 정의된 함수 객체는 function으로 분류 된다. >>> print(print_lyrics) <function print_lyrics at 0xb7e99e9c> >>> type(print_lyrics) <class 'function'> 새로운 함수를 호출하는 문법은 내장된 함수들을 호출하는 방식과 똑같다. >>> print_lyrics() I'm a lumberjack, and I'm okay. I sleep all night and I work all day. 이렇게 정의된 함수는 다른 함수 내에서 사용될 수 있다. 예를 들어 방금 출력한 후렴구를 반복적 으로 호출하도록 repeat_lyrics라는 함수를 작성해 보자 def repeat_lyrics(): print_lyrics() print_lyrics() 그리고 repeat_lyrics을 호출해보자. >>> repeat_lyrics() I'm a lumberjack, and I sleep all night and I'm a lumberjack, and I sleep all night and I'm okay. I work all day. I'm okay. I work all day. 실제 노래가 이렇게 흘러가지는 않는다. 3.5 정의와 활용 이전 절에서 사용한 코드를 다시 가져와 보자. 전체 코드는 다음과 같다. def print_lyrics(): print("i'm a lumberjack, and I'm okay.") print("i sleep all night and I work all day.") def repeat_lyrics(): print_lyrics() print_lyrics() repeat_lyrics() 이 프로그램은 print_lyrics 와 repeat_lyrics라는 두 개의 함수를 정의하고 있다. 함수 정의 는 다른 문장처럼 실행되지만, 실행의 결과로 함수 객체만 생성이 된다. 실제 함수 정의의 내용은 그 함수가 호출되기 전까지는 실행되지 않으며 함수 정의 자체는 어떠한 결과도 출력하지 않는다. 예상한 것처럼, 함수를 생성한 후에야 함수를 실행할 수 있다. 다시 말하면, 함수가 호출되기 이 전에 함수가 정의되어야 한다.

5 3.6. 실행의 흐름 21 연습을 해보자. 두 번쨰 함수의 마지막 줄을 이 프로그램의 가장 처음으로 옮겨보자. 프로그램을 실행해서 함수 정의보다 먼저 함수 호출 문장이 나타나면 어떤 오류 메시지를 출력하는지 보자. 함수 호출 문장을 원상복귀 한 후, 이번에는 repeat_lyrics 다음에 print_lyrics를 배치해보 자. 이 상태로 프로그램을 실행시키면 어떻게 되나? 3.6 실행의 흐름 함수를 정의한 후에 사용되도록 만들려면 어떤 순서로 문장들이 실행되는지를 알아야 한다. 이를 실행의 흐름(flow of execution)이라고 부른다. 실행의 순서는 언제 프로그램의 첫 문장부터 시작된다. 가장 위에서부터 밑까지 문장은 한 번에 하나씩 실행된다. 함수 정의는 프로그램의 실행의 흐름을 변경시키지 않지만 함수 정의 내의 문장들은 해당 함수가 호출되기 이전에는 실행되지 않는다는 것을 기억해야 한다. 함수 호출은 실행 흐름의 우회로와 같다. 다음 문장을 실행시키는 대신 함수의 내용으로 이동하여 그 안의 문장들을 실행시킨 후 이전에 멈췄던 부분부터 실행한다. 매우 간단하게 들리겠지만, 함수가 또 다른 함수를 호출 할 수 있다는 것을 되새겨 보면 그렇지 않다는 것을 깨달을 것이다. 함수의 중간에서 다른 함수의 문장들을 호출할 수 있다. 그러는 중에 또 다른 함수를 호출할 수도 있다! 다행스러운 것은, Python은 현재 실행 중이던 위치를 파악하는 것에 능숙하다. 함수의 실행이 완료되면 호출했던 함수에서 마지막 실행 중이던 위치를 찾아 계속 진행할 수 있다. 마침내 프로 그램의 끝에 도달하면 종료한다. 정리하면, 프로그램을 읽을 때에는 프로그램의 처음부터 한 줄 씩 읽으려 할 필요가 없다. 오히려 실행의 흐름을 따르는 것이 이해하기 더 쉬울 수 있다. 3.7 매개 변수와 인자값 어떤 함수들은 인자를 사용한다는 것을 보았다. 예를 들어 math.sin을 쓸 때 숫자를 인자로 입 력했었다. 어떤 함수는 하나 이상의 인자를 받기도 한다. math.pow는 밑수와 지수라는 두 개의 인자를 받는다. 함수 내에서는 전달 받은 인자를 매개 변수(파라미터, parameter)라는 변수로 할당된다. 인자를 받는 어떤 함수의 정의를 살펴보자. def print_twice(bruce): print(bruce) print(bruce) 이 함수는 전달 받은 인자를 bruce라는 매개 변수로 할당한다. 함수가 호출되면 그 매개 변수가 무엇이든 간에 두 번 출력하고 있다. 다음의 함수는 출력 가능한 모든 값에 쓸 수 있다. >>> print_twice('spam') Spam Spam >>> print_twice(42)

6 Chapter 3. 함수 >>> print_twice(math.pi) 내장된 함수들에 적용되었던 구성에 관한 규칙들은 프로그래머가 정의한 함수들에도 똑같이 적 용된다. 그러므로, print_twice의 인자 값으로 어떤 수식이라도 쓸 수 있다. >>> print_twice('spam '*4) Spam Spam Spam Spam Spam Spam Spam Spam >>> print_twice(math.cos(math.pi)) 함수가 호출되기 전에 인자 값을 계산한다. 예에서 사용한 'Spam'*4와 math.cos(math.pi)라 는 수식은 한 번씩 계산된다. 변수 역시도 인자로 사용할 수 있다. >>> michael = 'Eric, the half a bee.' >>> print_twice(michael) Eric, the half a bee. Eric, the half a bee. 인자로 전달한 (michael)이라는 병수명은 함수를 정의할 때 사용한 매개 변수(bruce)와는 아무 런 관계가 없다. 호출되기 전 코드(호출자, caller) 어떤 값이었든 상관없다. print_twice 함수 내에서는 bruce라 부른다. 3.8 변수와 매개 변수의 지역성 함수 내에서 변수를 생성하면 지역 또는 로컬(local) 변수라고 부른다. 함수 내에서만 존재하기 때문이다. 예를 들어 보자. def cat_twice(part1, part2): cat = part1 + part2 print_twice(cat) 이 함수는 두 개의 인자를 받아서 연결하고, 그 결과를 두 번 출력한다. 이 함수 정의를 쓰는 예를 살펴 보자. >>> line1 = 'Bing tiddle ' >>> line2 = 'tiddle bang.' >>> cat_twice(line1, line2) Bing tiddle tiddle bang. Bing tiddle tiddle bang. cat_twice 가 종료하면 함수 내에서 사용되었던 변수 cat은 없어진다. 출력해보려고 하면 예외 처리 된다. >>> print(cat) NameError: name 'cat' is not defined 매개 변수도 지역에서만 정의된다. 예를 들어 print_twice 밖에서는 bruce라는 것은 존재하지 않는다.

7 3.9. 스택 상태도 23 main cat_twice print_twice line1 Bing tiddle line2 tiddle bang. part1 Bing tiddle part2 tiddle bang. cat Bing tiddle tiddle bang. bruce Bing tiddle tiddle bang. Figure 3.1: 스택 상태도. 3.9 스택 상태도 각 변수의 사용 범위 파악에 스택 상태도(stack diagram)을 그려보는 것이 도움이 된다. 상태도와 유사하게 스택 상태도는 각 변수의 값을 나타낸다. 추가적으로 각 변수가 어떤 함수에 포함되는 지도 나타낸다. 각 함수는 프레임(frame)이라는 단위로 구분된다. 여기서 프레임은 하나의 상자로 함수의 이름 이 곁에 적혀 있고 상자 내부에는 변수와 매개 변수가 적혀 있다. 앞서 본 예제의 스택 상태도는 그림 3.1에 나타나 있다. 어떤 함수가 어떤 함수를 호출 했는지를 알아 볼 수 있도록 프레임들이 스택에 정리되어 있다. 이 예제에서는 print_twice 함수는 cat_twice 함수에 의해 호출되었으며 cat_twice 함수는 main 에 의해 호출이 되었다. main 라는 함수는 최상위 프레임에게 부여하는 특별한 이 름이다. 함수 밖에서 생성된 변수는 main 함수에 속해 있다. 각 매개 변수는 해당 인자가 갖고 있는 값과 똑같은 값을 갖고 있다. 그렇기 때문에 part1가 같고 있는 값은 line1이 갖고 있는 값고 똑같으며, part2가 같고 있는 값은 line2와 동일하다. 그리고, bruce는 cat과 똑같다. 함수 호출 중에 오류가 발생하면 Python은 함수의 이름과 호출을 시도한 함수명을 출력한다. 그 리고 다시 그 함수를 호출한 상위 프레임의 함수명을 출력한다. 이 과정을 main 에 도달 할 때까지 반복한다. 예를 들어, print_twice 내에서 cat를 접근하려고 시도 한다면 NameError이라는 오류 메시지 를 받을 것이다. Traceback (innermost last): File "test.py", line 13, in main cat_twice(line1, line2) File "test.py", line 5, in cat_twice print_twice(cat) File "test.py", line 9, in print_twice print(cat) NameError: name 'cat' is not defined 이런 식으로 함수의 리스트를 보여주는 것을 추적(트레이스백, traceback)이라고 부른다. 오류 가 발생했을 때 어떤 프로그램 파일에서 오류가 발생했는지 그리고 실행 중이던 함수와 오류를 일으킨 줄 번호에 대한 정보를 보여준다. 그리고 오류를 일으킨 코드도 보여준다. 트레이스백의 함수의 순서는 스택 상태도에서 나타난 프레임의 순서와 똑같다. 현재 실행 중이던 함수가 가장 아래에 표시된다.

8 Chapter 3. 함수 열매가 있는 함수들과 비어 있는 함수 수학 함수들과 같은 우리가 사용해본 함수들은 결과를 리턴한다. 이런 종류의 함수를 구분하는 좋은 이름이 따로 없어서 열매가 있는 함수(fruitful function)이라고 부른다. print_twice와 같은 류의 다른 함수들은 어떤 동작을 하지만 결과 값을 리턴하지는 않는다. 이런 류는 비어 있는 함수(void function)라고 부른다. 열매가 있는 함수를 호출하면 거의 모든 경우에 리턴받은 결과를 활용하기를 원한다. 예를 들어, 그 결과에 변수를 할당하거나 수식의 일부로 사용하기도 한다. x = math.cos(radians) golden = (math.sqrt(5) + 1) / 2 대화식 모드에서 함수를 호출할 때 Python은 결과를 표시한다. >>> math.sqrt(5) 스크립트로 실행했을 때, 열매가 있는 함수를 그 자체로만 호출하면 리턴 받은 결과는 영원히 잃어버리고 만다! math.sqrt(5) 이 스크립트는 루트 5를 계산하지만 결과를 저장하지도 표시하지도 않기 때문에 그렇게 유용하 지는 않다. 비어 있는 함수는 화면에 무언가를 표시하거나 다른 어떤 영향이 있는 것처럼 보이지만 리턴할 결과 값이 없다. 만약 결과 값을 변수에 할당하려고 시도한다면 None이라는 특수한 값을 돌려 받는다. >>> result = print_twice('bing') Bing Bing >>> print(result) None None이라는 값은 'None'이라는 문자열과 같은 것이 아니다. 그 자체가 특수한 값을 같은 또 다른 분류이다. >>> type(none) <class 'NoneType'> 지금까지 우리가 작성한 모든 함수들은 모두 비어 있는 함수들이었다. 이제 앞으로 다룰 장들에서 열매가 있는 함수들을 작성하기 시작할 것이다 왜 함수인가? 프로그램의 내용을 왜 함수들로 나눠야 하는지에 대한 이유가 아직은 명확하지 않을 것이다. 그 럴만한 이유는 많이 있다. 새로운 함수를 생성하면 문장들의 묶음에 이름을 지어줄 수 있다. 그러면 프로그램을 읽거 나 디버깅하기가 쉬워진다. 함수들을 활용하면 반복적인 코드들을 제거할 수 있기 때문에 프로그램의 길이가 짧아진 다. 나중에 반복되는 코드를 수정을 할 일이 생긴다면 한 곳에서만 수정을 하면 된다. 긴 프로그램을 함수들로 나누어 놓으면 한 번에 한 부분씩 디버깅을 할 수 있으며, 디버깅이 완료되면 제대로 동작하는 전체로 다시 모을 수있다. 잘 설계된 함수들은 여러 프로그램들에 유용하게 사용될 수 있다. 하나를 잘 작성해 놓고 디버깅을 해 놓으면 다른 곳에서도 그 부분을 재활용할 수 있다.

9 3.12. 디버깅 디버깅 가장 중요한 기술 중에 하나인 디버깅 기술을 가져야 한다. 좌절스럽게 만들 때도 있지만 디버깅 은 지적으로 풍부하고 도전적고 또한 프로그래밍을 흥미롭게 만드는 것이기도 하다. 디버깅은 어떤 면에서 탐정이 수사를 펼치는 것과 같다. 현재 발생한 결과를 이끌어 낸 과정과 사건들을 유추할 있는 여러 단서들과 만나게 된다. 디버깅은 실험에 기반한 과학과도 같다. 무엇인 잘못된 것 같단 아이디어가 떠 오르면 프로그램 을 수정해보고 다시 시도 해 보면 된다. 가정이 옳다면 수정에 대한 결과를 예측해 볼 수 있게 되고 동작하는 프로그램으로 한 걸음 더 가까이 다가갈 수 있게 된다. 만약 가정이 틀렸다면 다른 방법을 시도해봐야 한다. 셜록 홈즈가 말하듯이 불가능한 것들을 하나씩 제거한 뒤에 남은 것이 아무리 불가능해 보일지라도 그게 사실일 것이다. (A. 코난 도일, 4개의 서명) 어떤 이들에게는 프로그래밍과 디버깅은 똑같은 것이다. 그들에게 프로그래밍이라는 것은 원하 는 동작을 할 때까지 프로그램을 조금씩 디버깅해 나가는 것이다. 동작 가능한 프로그램을 먼저 작성한 후에 조금씩 변형을 만들어 내고 디버깅하는 것이 기본 접근 방식이다. 예를 들어, 리눅스라는 운영체제는 지금은 수 백만 줄의 코드로 이루어져있지만, 최초에는 리누 스 토발즈가 인텔 CPU를 사용하는 간단한 프로그램으로 시작되었다. 래리 그린필드에 의하면 리누스의 초기 프로젝트 중에 하나는 AAAA를 BBBB로 변환하는 프로그램을 만드는 것이었다. 이게 나중에는 발전하여 리눅스가 되었다. (The Linux Users Guide(리눅스 사용자 가이드) 베타 1판) 용어 해설 (function): 이름이 있는 일련의 문장들로 유용한 작업을 수행한다. 함수는 인자를 받을 수도 안 받을 수도 있으며 실행하였을 때 결과 돌려 줄 수도 있고 그렇지 않을 수도 있음 함수 정의(function definition): 새로운 함수를 생성하는 문장으로 함수의 이름과 매개 변수들 을 지정하고 그리고 문장들을 포함함 함수 객체(function object): 함수 정의에 의해 생성되는 값. 함수의 이름이 함수 객체를 가리키 는 변수임 헤더(header): 함수 정의의 첫 줄 내용(바디, body): 함수 정의 내의 일련의 문장들 매개 변수(parameter): 함수 내에서 인자로 전달된 값을 가리키는 이름 함수 호출(function call): 함수를 실행시키는 문장. 함수의 이름과 괄호로 싸여있는 인자들의 목록으로 구성되어 있음 인자(argument): 함수가 호출되었을 때 함수에 제공되는 값. 이 값은 해당 함수에 매개 변수에 할당됨 지역 변수(local variable): 함수 내에서 정의된 변수. 지역 변수는 정의된 함수 내에서만 사용될 수 있음 리턴 값(return value): 함수의 결과. 함수 호출이 수식의 일부로 사용되었다면 리턴 값은 수식이 사용하는 값이 됨 열매가 있는 함수(fruitful function): 결과를 리턴하는 함수

10 Chapter 3. 함수 26 비어 있는 함수(void function): None을 리턴하는 함수 None: 비어 있는 함수가 리턴하는 특수한 값 모듈(module): A file that contains a collection of related functions and other definitions. 읽어들이기 문장(import statement): 모듈 파일을 읽어서 모듈 객체를 생성하는 문장 모듈 객체(module object): import문으로 생성되는 값으로 모듈에서 정의한 값들을 사용할 수 있도록 함 닷 표기법(dot notation): 다른 모듈의 함수를 호출하는 문법으로 모듈의 이름과 함수의 이름을 점(닷, 구두점)으로 연결하는 표기법 구성(composition): 더 큰 수식의 일부로 수식을 쓰거나 더 큰 문장의 일부로 문장을 작성하는 것 실행의 흐름(flow of execution): 문장들의 실행 순서 스택 상태도(stack diagram): 함수가 사용하고 있는 스택의 상태를 그림으로 표기하는 방법으 로 변수와 각 변수가 가리키는 값을 나타나냄 프레임(frame): 스택 상태도의 상자로 함수 호출을 나타냄. 상자는 지역 변수와 함수의 매개 변 수를 포함함. 트레이스백(추적, traceback): 실행 중인 함수들의 목록으로 예외가 발생할 때 출력이 됨 3.14 연습 문제 문제 3.1. right_justify(오른쪽 정렬이라는 의미)라는 이름과 문자열 s를 매개 변수로 사용하 는 함수를 작성하여라. 문자열 앞에 충분한 공백을 두어서 문자열의 마지막 글자가 70번째 열에 보이도록 하라. >>> right_justify('monty') monty 힌트: 문자열 연결과 반복을 사용하라. Python은 len이라는 내장 함수를 갖고 있다. 이 함수는 문자열의 길이를 리턴한다. len('monty')의 값은 5이다. 문제 3.2. 함수 객체는 값이기 때문에 변수에 할당할 수도 있고 인자로 전달할 수도 있다. 예를 들어, do_twice는 함수 객체를 인자로 전달 받아 두 번 호출하는 함수이다. def do_twice(f): f() f() 다음 예제는 do_twice를 사용하여 print_spam라는 함수를 두 번 호출한다. def print_spam(): print('spam') do_twice(print_spam) 1. 이 예제를 스크립트로 작성하여 제대로 동작하는지 확인해보라 2. do_twice를 두 개의 인자를 받도록 수정하여라. 함수 객체와 값을 전달받아 해당 함수는 두 번 호출하고 값은 인자로 전달하도록 만들라.

11 3.14. 연습 문제 이 장의 처음에 다뤘던 print_twice 함수의 정의를 복사하여 스크립트에 포함시켜라 4. 수정한 do_twice 함수를 사용하여 print_twice를 두 번 호출하여라. 이 때, print_twice 함수의 인자는 'spam'을 사용하여라. 5. 함수 객체와 값을 전달 받아 해당 함수를 4번 호출하고 값은 매개 변수로 사용하는 do_four 라는 새로운 함수를 정의하여라. 이 함수의 내용에는 네 개가 아니라 두 개의 문장만 있어야 한다. 해답: http: // thinkpython2. com/ code/ do_ four. py. 문제 3.3. 메모: 이 연습 문제는 지금까지 우리가 배운 문장들과 기능들만을 사용하여 해결해야 한다. 1. 아래와 같은 격자 무늬를 만드는 함수를 작성하라: 힌트: 한 줄에 하나 이상의 값을 출력하려면 값을 쉼표로 구분지으면 된다. print('+', '-') 기본적으로 print는 출력이 끝나면 다음 줄로 넘어간다. 이 같은 동작을 수정하려면 다음 과 같은 방법으로 동작을 변경할 수 있다. print('+', end=' ') print('-') 이 문장들의 결과는 '+ -'이다. print문에 인자가 없다면 현재 출력 중이던 줄을 종료하고 다음 줄로 넘어간다. 2. 네 개의 행과 열이 있는 격자 무늬를 그리는 함수를 작성하여라. 해답: http: // thinkpython2. com/ code/ grid. py. 출처: 이 예제는 스티브 오우알린의 (Practical C Programming, 3판, 오라일리 출판사, 1997), 연습 문제를 기초로 하였다.

3장 함수

3장 함수 3 장함수 박창이 서울시립대학교통계학과 박창이 ( 서울시립대학교통계학과 ) 3 장함수 1 / 20 학습내용 함수호출타입변환함수수학함수사용자정의함수파라미터와인자변수와파라미터의범위함수의구분함수를사용하는이유 from을이용한가져오기디버깅변수의범위재귀함수 박창이 ( 서울시립대학교통계학과 ) 3 장함수 2 / 20 함수호출 함수는어떤연산을수행하는일련의명령문들로함수이름으로호출

More information

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx #include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의

More information

Chapter 2 변수와 수식 그리고 문장 프로그래밍 언어의 가장 강력한 기능 중 하나는 변수(variable)가 조작 가능하다는 것이다. 변수 는 값에 부여하는 이름이다. 2.1 할당문 할당문(assignment statement)은 새로운 변수를 생성하고 값을 부여

Chapter 2 변수와 수식 그리고 문장 프로그래밍 언어의 가장 강력한 기능 중 하나는 변수(variable)가 조작 가능하다는 것이다. 변수 는 값에 부여하는 이름이다. 2.1 할당문 할당문(assignment statement)은 새로운 변수를 생성하고 값을 부여 Chapter 2 변수와 수식 그리고 문장 프로그래밍 언어의 가장 강력한 기능 중 하나는 변수(variable)가 조작 가능하다는 것이다. 변수 는 값에 부여하는 이름이다. 2.1 할당문 할당문(assignment statement)은 새로운 변수를 생성하고 값을 부여한다. >>> message = 'And now for something completely

More information

Chapter 5 조건문과 재귀문 프로그램의 상태에 따라 다른 코드를 실행하는 if문이 이 장의 핵심 주제이다. 그 전에 내림 나눗 셈 연산자와 나머지 연산자를 살펴보자. 5.1 내림 나눗셈과 나머지 연산자 내림 나눗셈 연산자 //는 두 수를 나누어 얻은 결과 값의 정

Chapter 5 조건문과 재귀문 프로그램의 상태에 따라 다른 코드를 실행하는 if문이 이 장의 핵심 주제이다. 그 전에 내림 나눗 셈 연산자와 나머지 연산자를 살펴보자. 5.1 내림 나눗셈과 나머지 연산자 내림 나눗셈 연산자 //는 두 수를 나누어 얻은 결과 값의 정 Chapter 5 조건문과 재귀문 프로그램의 상태에 따라 다른 코드를 실행하는 if문이 이 장의 핵심 주제이다. 그 전에 내림 나눗 셈 연산자와 나머지 연산자를 살펴보자. 5.1 내림 나눗셈과 나머지 연산자 내림 나눗셈 연산자 //는 두 수를 나누어 얻은 결과 값의 정수 값을 취한다. 예를 들어, 105분 길이의 영화가 있다고 했을 때 몇 시간 짜리 영화인지

More information

17장 클래스와 메소드

17장 클래스와 메소드 17 장클래스와메소드 박창이 서울시립대학교통계학과 박창이 ( 서울시립대학교통계학과 ) 17 장클래스와메소드 1 / 18 학습내용 객체지향특징들객체출력 init 메소드 str 메소드연산자재정의타입기반의버전다형성 (polymorphism) 박창이 ( 서울시립대학교통계학과 ) 17 장클래스와메소드 2 / 18 객체지향특징들 객체지향프로그래밍의특징 프로그램은객체와함수정의로구성되며대부분의계산은객체에대한연산으로표현됨객체의정의는

More information

Microsoft PowerPoint - chap03-변수와데이터형.pptx

Microsoft PowerPoint - chap03-변수와데이터형.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num %d\n", num); return 0; } 1 학습목표 의 개념에 대해 알아본다.

More information

4. #include <stdio.h> #include <stdlib.h> int main() { functiona(); } void functiona() { printf("hihi\n"); } warning: conflicting types for functiona

4. #include <stdio.h> #include <stdlib.h> int main() { functiona(); } void functiona() { printf(hihi\n); } warning: conflicting types for functiona 이름 : 학번 : A. True or False: 각각항목마다 True 인지 False 인지적으세요. 1. (Python:) randint 함수를사용하려면, random 모듈을 import 해야한다. 2. (Python:) '' (single quote) 는한글자를표현할때, (double quote) 는문자열을표현할때사용한다. B. 다음에러를수정하는방법을적으세요.

More information

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770> 연습문제해답 5 4 3 2 1 0 함수의반환값 =15 5 4 3 2 1 0 함수의반환값 =95 10 7 4 1-2 함수의반환값 =3 1 2 3 4 5 연습문제해답 1. C 언어에서의배열에대하여다음중맞는것은? (1) 3차원이상의배열은불가능하다. (2) 배열의이름은포인터와같은역할을한다. (3) 배열의인덱스는 1에서부터시작한다. (4) 선언한다음, 실행도중에배열의크기를변경하는것이가능하다.

More information

Microsoft PowerPoint - chap04-연산자.pptx

Microsoft PowerPoint - chap04-연산자.pptx int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); } 1 학습목표 수식의 개념과 연산자, 피연산자에 대해서 알아본다. C의 를 알아본다. 연산자의 우선 순위와 결합 방향에

More information

untitled

untitled 시스템소프트웨어 : 운영체제, 컴파일러, 어셈블러, 링커, 로더, 프로그래밍도구등 소프트웨어 응용소프트웨어 : 워드프로세서, 스프레드쉬트, 그래픽프로그램, 미디어재생기등 1 n ( x + x +... + ) 1 2 x n 00001111 10111111 01000101 11111000 00001111 10111111 01001101 11111000

More information

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 (   ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각 JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 두근두근 파이썬수업 4 장자료의종류에는어떤것들이있나요? 이번장에서만들프로그램 (1) 터틀그래픽의거북이와인사하는프로그램을작성해보자. Run Python (2) 여러개의색상을리스트에저장하였다가하나씩꺼내서원들을그려보자 Run Python 파이썬에서사용할수있는자료의종류 파이썬과자료형 변수에어떤종류의자료도저장할수있다 x = 10 print("x =", x) x = 3.14

More information

금오공대 컴퓨터공학전공 강의자료

금오공대 컴퓨터공학전공 강의자료 C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include

More information

C# Programming Guide - Types

C# Programming Guide - Types C# Programming Guide - Types 최도경 lifeisforu@wemade.com 이문서는 MSDN 의 Types 를요약하고보충한것입니다. http://msdn.microsoft.com/enus/library/ms173104(v=vs.100).aspx Types, Variables, and Values C# 은 type 에민감한언어이다. 모든

More information

Microsoft PowerPoint - chap05-제어문.pptx

Microsoft PowerPoint - chap05-제어문.pptx int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); 1 학습목표 제어문인,, 분기문에 대해 알아본다. 인 if와 switch의 사용 방법과 사용시 주의사항에 대해 알아본다.

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 클래스, 객체, 메소드 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 필드만있는클래스 텔레비젼 2 예제 1. 필드만있는클래스 3 예제 2. 여러개의객체생성하기 4 5 예제 3. 메소드가추가된클래스 public class Television { int channel; // 채널번호 int volume; // 볼륨 boolean

More information

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Function) 1. 함수의개념 입력에대해적절한출력을발생시켜주는것 내가 ( 프로그래머 ) 작성한명령문을연산, 처리, 실행해주는부분 ( 모듈 ) 자체적으로실행되지않으며,

More information

8장 문자열

8장 문자열 8 장문자열 박창이 서울시립대학교통계학과 박창이 ( 서울시립대학교통계학과 ) 8 장문자열 1 / 24 학습내용 문자열 (string) 훑기 (traversal) 부분추출 (slicing) print 함수불변성 (immutablity) 검색 (search) 세기 (count) Method in 연산자비교 박창이 ( 서울시립대학교통계학과 ) 8 장문자열 2 /

More information

Microsoft PowerPoint - [2009] 02.pptx

Microsoft PowerPoint - [2009] 02.pptx 원시데이터유형과연산 원시데이터유형과연산 원시데이터유형과연산 숫자데이터유형 - 숫자데이터유형 원시데이터유형과연산 표준입출력함수 - printf 문 가장기본적인출력함수. (stdio.h) 문법 ) printf( Test printf. a = %d \n, a); printf( %d, %f, %c \n, a, b, c); #include #include

More information

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt 변수와상수 1 변수란무엇인가? 변수 : 정보 (data) 를저장하는컴퓨터내의특정위치 ( 임시저장공간 ) 메모리, register 메모리주소 101 번지 102 번지 변수의크기에따라 주로 byte 단위 메모리 2 기본적인변수형및변수의크기 변수의크기 해당컴퓨터에서는항상일정 컴퓨터마다다를수있음 short

More information

슬라이드 1

슬라이드 1 -Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역

More information

PowerPoint Presentation

PowerPoint Presentation Package Class 3 Heeseung Jo 목차 section 1 패키지개요와패키지의사용 section 2 java.lang 패키지의개요 section 3 Object 클래스 section 4 포장 (Wrapper) 클래스 section 5 문자열의개요 section 6 String 클래스 section 7 StringBuffer 클래스 section

More information

슬라이드 1

슬라이드 1 Pairwise Tool & Pairwise Test NuSRS 200511305 김성규 200511306 김성훈 200614164 김효석 200611124 유성배 200518036 곡진화 2 PICT Pairwise Tool - PICT Microsoft 의 Command-line 기반의 Free Software www.pairwise.org 에서다운로드후설치

More information

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조 - Part2- 제 2 장다차원배열이란무엇인가 학습목차 2.1 다차원배열이란 2. 2 2 차원배열의주소와값의참조 2.1 다차원배열이란 2.1 다차원배열이란 (1/14) 다차원배열 : 2 차원이상의배열을의미 1 차원배열과다차원배열의비교 1 차원배열 int array [12] 행 2 차원배열 int array [4][3] 행 열 3 차원배열 int array [2][2][3]

More information

10 강. 쉘스크립트 l 쉘스크립트 Ÿ 쉘은명령어들을연속적으로실행하는인터프리터환경을제공 Ÿ 쉘스크립트는제어문과변수선언등이가능하며프로그래밍언어와유사 Ÿ 프로그래밍언어와스크립트언어 -프로그래밍언어를사용하는경우소스코드를컴파일하여실행가능한파일로만들어야함 -일반적으로실행파일은다

10 강. 쉘스크립트 l 쉘스크립트 Ÿ 쉘은명령어들을연속적으로실행하는인터프리터환경을제공 Ÿ 쉘스크립트는제어문과변수선언등이가능하며프로그래밍언어와유사 Ÿ 프로그래밍언어와스크립트언어 -프로그래밍언어를사용하는경우소스코드를컴파일하여실행가능한파일로만들어야함 -일반적으로실행파일은다 10 강. 쉘스크립트 쉘스크립트 쉘은명령어들을연속적으로실행하는인터프리터환경을제공 쉘스크립트는제어문과변수선언등이가능하며프로그래밍언어와유사 프로그래밍언어와스크립트언어 -프로그래밍언어를사용하는경우소스코드를컴파일하여실행가능한파일로만들어야함 -일반적으로실행파일은다른운영체제로이식되지않음 -스크립트언어를사용하면컴파일과정이없고인터프리터가소스파일에서명령문을판독하여각각의명령을수행

More information

Microsoft PowerPoint - ch07 - 포인터 pm0415

Microsoft PowerPoint - ch07 - 포인터 pm0415 2015-1 프로그래밍언어 7. 포인터 (Pointer), 동적메모리할당 2015 년 4 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 포인터 (pointer) 란? 간접참조연산자

More information

OCW_C언어 기초

OCW_C언어 기초 초보프로그래머를위한 C 언어기초 4 장 : 연산자 2012 년 이은주 학습목표 수식의개념과연산자및피연산자에대한학습 C 의알아보기 연산자의우선순위와결합방향에대하여알아보기 2 목차 연산자의기본개념 수식 연산자와피연산자 산술연산자 / 증감연산자 관계연산자 / 논리연산자 비트연산자 / 대입연산자연산자의우선순위와결합방향 조건연산자 / 형변환연산자 연산자의우선순위 연산자의결합방향

More information

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning C Programming Practice (II) Contents 배열 문자와문자열 구조체 포인터와메모리관리 구조체 2/17 배열 (Array) (1/2) 배열 동일한자료형을가지고있으며같은이름으로참조되는변수들의집합 배열의크기는반드시상수이어야한다. type var_name[size]; 예 ) int myarray[5] 배열의원소는원소의번호를 0 부터시작하는색인을사용

More information

쉽게

쉽게 Power Java 제 4 장자바프로그래밍기초 이번장에서학습할내용 자바프로그램에대한기초사항을학습 자세한내용들은추후에. Hello.java 프로그램 주석 주석 (comment): 프로그램에대한설명을적어넣은것 3 가지타입의주석 클래스 클래스 (class): 객체를만드는설계도 ( 추후에학습 ) 자바프로그램은클래스들로구성된다. 그림 4-1. 자바프로그램의구조 클래스정의

More information

Microsoft PowerPoint - chap01-C언어개요.pptx

Microsoft PowerPoint - chap01-C언어개요.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 프로그래밍의 기본 개념을

More information

C++ Programming

C++ Programming C++ Programming 연산자다중정의 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 연산자다중정의 C++ 스타일의문자열 2 연산자다중정의 연산자다중정의 단항연산자다중정의 이항연산자다중정의 cin, cout 그리고 endl C++ 스타일의문자열 3 연산자다중정의 연산자다중정의 (Operator

More information

@ p a g e c o n te n tt y p e = " te x t/ h tm l;c h a rs e t= u tf- 8 " fo r (in t i= 0 ; i< = 1 0 ; i+ + ) { o u t.p rin tln (" H e llo W o rld " + i + " < b r/> " ); = re s u lt + re s u lts u m ()

More information

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

Microsoft PowerPoint 자바-기본문법(Ch2).pptx 자바기본문법 1. 기본사항 2. 자료형 3. 변수와상수 4. 연산자 1 주석 (Comments) 이해를돕기위한설명문 종류 // /* */ /** */ 활용예 javadoc HelloApplication.java 2 주석 (Comments) /* File name: HelloApplication.java Created by: Jung Created on: March

More information

C 프로그램의 기본

C 프로그램의 기본 C 프로그램의기본 목차 C 프로그램의구성요소 주석 main 함수 출력 C 언어의입력과출력 변수 printf 함수 scanf 함수 2 예제 2-1 : 첫번째 C 프로그램 3 2.1.1 주석 주석의용도 프로그램에대한설명 프로그램전체에대한대략적인정보를제공 프로그램수행에영향을미치지않는요소 4 2.1.1 주석 주석사용방법 /* 과 */ 을이용한여러줄주석 // 을이용한한줄주석

More information

KNK_C_05_Pointers_Arrays_structures_summary_v02

KNK_C_05_Pointers_Arrays_structures_summary_v02 Pointers and Arrays Structures adopted from KNK C Programming : A Modern Approach 요약 2 Pointers and Arrays 3 배열의주소 #include int main(){ int c[] = {1, 2, 3, 4}; printf("c\t%p\n", c); printf("&c\t%p\n",

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 제 5 장생성자와접근제어 1. 객체지향기법을이해한다. 2. 클래스를작성할수있다. 3. 클래스에서객체를생성할수있다. 4. 생성자를이용하여객체를초기화할수 있다. 5. 접근자와설정자를사용할수있다. 이번장에서만들어볼프로그램 생성자 생성자 (constructor) 는초기화를담당하는함수 생성자가필요한이유 #include using namespace

More information

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D> 리눅스 오류처리하기 2007. 11. 28 안효창 라이브러리함수의오류번호얻기 errno 변수기능오류번호를저장한다. 기본형 extern int errno; 헤더파일 라이브러리함수호출에실패했을때함수예 정수값을반환하는함수 -1 반환 open 함수 포인터를반환하는함수 NULL 반환 fopen 함수 2 유닉스 / 리눅스 라이브러리함수의오류번호얻기 19-1

More information

JVM 메모리구조

JVM 메모리구조 조명이정도면괜찮조! 주제 JVM 메모리구조 설미라자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조장. 최지성자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조원 이용열자료조사, 자료작성, PPT 작성, 보고서작성. 이윤경 자료조사, 자료작성, PPT작성, 보고서작성. 이수은 자료조사, 자료작성, PPT작성, 보고서작성. 발표일 2013. 05.

More information

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2 학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2 6.1 함수프로시저 6.2 서브프로시저 6.3 매개변수의전달방식 6.4 함수를이용한프로그래밍 3 프로시저 (Procedure) 프로시저 (Procedure) 란무엇인가? 논리적으로묶여있는하나의처리단위 내장프로시저 이벤트프로시저, 속성프로시저, 메서드, 비주얼베이직내장함수등

More information

Microsoft PowerPoint - chap11-포인터의활용.pptx

Microsoft PowerPoint - chap11-포인터의활용.pptx #include int main(void) int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; 1 학습목표 포인터를 사용하는 다양한 방법에

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 5 강. 배열, 포인터, 참조목차 배열 포인터 C++ 메모리구조 주소연산자 포인터 포인터연산 배열과포인터 메모리동적할당 문자열 참조 1 /20 5 강. 배열, 포인터, 참조배열 배열 같은타입의변수여러개를하나의변수명으로처리 int Ary[10]; 총 10 개의변수 : Ary[0]~Ary[9]

More information

C 언어 프로그래밊 과제 풀이

C 언어 프로그래밊 과제 풀이 과제풀이 (1) 홀수 / 짝수판정 (1) /* 20094123 홍길동 20100324 */ /* even_or_odd.c */ /* 정수를입력받아홀수인지짝수인지판정하는프로그램 */ int number; printf(" 정수를입력하시오 => "); scanf("%d", &number); 확인 주석문 가필요한이유 printf 와 scanf 쌍

More information

C 프로그래밍 언어 입문 C 프로그래밍 언어 입문 김명호저 숭실대학교 출판국 머리말..... C, C++, Java, Fortran, Python, Ruby,.. C. C 1972. 40 C.. C. 1999 C99. C99. C. C. C., kmh ssu.ac.kr.. ,. 2013 12 Contents 1장 프로그래밍 시작 1.1 C 10 1.2 12

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 6 강. 함수와배열, 포인터, 참조목차 함수와포인터 주소값의매개변수전달 주소의반환 함수와배열 배열의매개변수전달 함수와참조 참조에의한매개변수전달 참조의반환 프로그래밍연습 1 /15 6 강. 함수와배열, 포인터, 참조함수와포인터 C++ 매개변수전달방법 값에의한전달 : 변수값,

More information

Microsoft PowerPoint - chap10-함수의활용.pptx

Microsoft PowerPoint - chap10-함수의활용.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 중 값에 의한 전달 방법과

More information

Microsoft PowerPoint - C++ 5 .pptx

Microsoft PowerPoint - C++ 5 .pptx C++ 언어프로그래밍 한밭대학교전자. 제어공학과이승호교수 연산자중복 (operator overloading) 이란? 2 1. 연산자중복이란? 1) 기존에미리정의되어있는연산자 (+, -, /, * 등 ) 들을프로그래머의의도에맞도록새롭게정의하여사용할수있도록지원하는기능 2) 연산자를특정한기능을수행하도록재정의하여사용하면여러가지이점을가질수있음 3) 하나의기능이프로그래머의의도에따라바뀌어동작하는다형성

More information

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - chap06-2pointer.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.

More information

특징 찾아보기 열쇠 없이 문을 열 수 있어요! 비밀번호 및 RF카드로도 문을 열 수 있습니다. 또한 비밀번호가 외부인에게 알려질 위험에 대비, 통제번호까지 입력해 둘 수 있어 더욱 안심하고 사용할 수 있습니다. 나만의 비밀번호 및 RF카드를 가질 수 있어요! 다수의 가

특징 찾아보기 열쇠 없이 문을 열 수 있어요! 비밀번호 및 RF카드로도 문을 열 수 있습니다. 또한 비밀번호가 외부인에게 알려질 위험에 대비, 통제번호까지 입력해 둘 수 있어 더욱 안심하고 사용할 수 있습니다. 나만의 비밀번호 및 RF카드를 가질 수 있어요! 다수의 가 www.kdnetwork.com 특징 찾아보기 열쇠 없이 문을 열 수 있어요! 비밀번호 및 RF카드로도 문을 열 수 있습니다. 또한 비밀번호가 외부인에게 알려질 위험에 대비, 통제번호까지 입력해 둘 수 있어 더욱 안심하고 사용할 수 있습니다. 나만의 비밀번호 및 RF카드를 가질 수 있어요! 다수의 가능할 삭제할 건전지 사용자를 위한 개별 비밀번호 및 RF카드

More information

11장 포인터

11장 포인터 누구나즐기는 C 언어콘서트 제 9 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 메모리의구조 변수는메모리에저장된다. 메모리는바이트단위로액세스된다. 첫번째바이트의주소는 0, 두번째바이트는 1, 변수와메모리

More information

PowerPoint Presentation

PowerPoint Presentation 자바프로그래밍 1 배열 손시운 ssw5176@kangwon.ac.kr 배열이필요한이유 예를들어서학생이 10 명이있고성적의평균을계산한다고가정하자. 학생 이 10 명이므로 10 개의변수가필요하다. int s0, s1, s2, s3, s4, s5, s6, s7, s8, s9; 하지만만약학생이 100 명이라면어떻게해야하는가? int s0, s1, s2, s3, s4,

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Chapter 06 반복문 01 반복문의필요성 02 for문 03 while문 04 do~while문 05 기타제어문 반복문의의미와필요성을이해한다. 대표적인반복문인 for 문, while 문, do~while 문의작성법을 알아본다. 1.1 반복문의필요성 반복문 동일한내용을반복하거나일정한규칙으로반복하는일을수행할때사용 프로그램을좀더간결하고실제적으로작성할수있음.

More information

Vector Differential: 벡터 미분 Yonghee Lee October 17, 벡터미분의 표기 스칼라미분 벡터미분(Vector diffrential) 또는 행렬미분(Matrix differential)은 벡터와 행렬의 미분식에 대 한 표

Vector Differential: 벡터 미분 Yonghee Lee October 17, 벡터미분의 표기 스칼라미분 벡터미분(Vector diffrential) 또는 행렬미분(Matrix differential)은 벡터와 행렬의 미분식에 대 한 표 Vector Differential: 벡터 미분 Yonhee Lee October 7, 08 벡터미분의 표기 스칼라미분 벡터미분(Vector diffrential) 또는 행렬미분(Matrix differential)은 벡터와 행렬의 미분식에 대 한 표기법을 정의하는 방법이다 보통 스칼라(scalar)에 대한 미분은 일분수 함수 f : < < 또는 다변수 함수(function

More information

Microsoft PowerPoint 웹 연동 기술.pptx

Microsoft PowerPoint 웹 연동 기술.pptx 웹프로그래밍및실습 ( g & Practice) 문양세강원대학교 IT 대학컴퓨터과학전공 URL 분석 (1/2) URL (Uniform Resource Locator) 프로토콜, 호스트, 포트, 경로, 비밀번호, User 등의정보를포함 예. http://kim:3759@www.hostname.com:80/doc/index.html URL 을속성별로분리하고자할경우

More information

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2 비트연산자 1 1 비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2 진수법! 2, 10, 16, 8! 2 : 0~1 ( )! 10 : 0~9 ( )! 16 : 0~9, 9 a, b,

More information

5장. JSP와 Servlet 프로그래밍을 위한 기본 문법(완성-0421).hwp

5장. JSP와 Servlet 프로그래밍을 위한 기본 문법(완성-0421).hwp 1 0 1.7 6 5 'A ' '/ u 4 4 2 2 ' " JS P 프로그래밍 " A ', 'b ', ' 한 ', 9, \ u d 6 5 4 ' c h a r a = 'A '; 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 < % @ p a g e c o n te n

More information

슬라이드 1

슬라이드 1 3 장. 선행자료 어휘원소, 연산자와 C 시스템 박종혁교수 UCS Lab Tel: 970-6702 Email: jhpark1@seoultech.ac.kr SeoulTech 2019-1 st 프로그래밍입문 (1) 2 목차 1.1 문자와어휘원소 1.2 구문법칙 1.3 주석 1.4 키워드 (Keyword) 1.5 식별자 (Identifier) 1.6 상수 (Integer,

More information

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서 커알못의 커널 탐방기 2015.12 이 세상의 모든 커알못을 위해서 개정 이력 버전/릴리스 0.1 작성일자 2015년 11월 30일 개요 최초 작성 0.2 2015년 12월 1일 보고서 구성 순서 변경 0.3 2015년 12월 3일 오탈자 수정 및 글자 교정 1.0 2015년 12월 7일 내용 추가 1.1 2015년 12월 10일 POC 코드 삽입 및 코드

More information

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3 Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3 Example 3.1 Files 3.2 Source code 3.3 Exploit flow

More information

Microsoft PowerPoint - gnu-w09-c-chap

Microsoft PowerPoint - gnu-w09-c-chap 어서와 C 언어는처음이지 제 1 장 컴퓨터 컴퓨터는생각만큼똑똑한물건이아니다. 컴퓨터는스스로자신이수행할작업을결정할수없다. 프로그램 우리가컴퓨터에게아주자세한명령어를주어야한다. 컴퓨터에게특정한작업을수행하게하는자세한명령어의리스트를프로그램 (program) 이라고한다. 1. 정수를읽는다. 2. 합을계산한다. 3. 합을화면에출력한다. 작성해야하는프로그램 일반적인프로그램은구입하거나다운로드받을수있다.

More information

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2 제 8 장. 포인터 목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2 포인터의개요 포인터란? 주소를변수로다루기위한주소변수 메모리의기억공간을변수로써사용하는것 포인터변수란데이터변수가저장되는주소의값을 변수로취급하기위한변수 C 3 포인터의개요 포인터변수및초기화 * 변수데이터의데이터형과같은데이터형을포인터 변수의데이터형으로선언 일반변수와포인터변수를구별하기위해

More information

04 Çмú_±â¼ú±â»ç

04 Çмú_±â¼ú±â»ç 42 s p x f p (x) f (x) VOL. 46 NO. 12 2013. 12 43 p j (x) r j n c f max f min v max, j j c j (x) j f (x) v j (x) f (x) v(x) f d (x) f (x) f (x) v(x) v(x) r f 44 r f X(x) Y (x) (x, y) (x, y) f (x, y) VOL.

More information

<4D F736F F F696E74202D20C1A632C0E520C7C1B7CEB1D7B7A5B0B3B9DFB0FAC1A4>

<4D F736F F F696E74202D20C1A632C0E520C7C1B7CEB1D7B7A5B0B3B9DFB0FAC1A4> 쉽게풀어쓴 C 언어 Express 제 2 장프로그램개발과정 통합개발환경 통합개발환경 (IDE: integrated development environment) 에디터 + 컴파일러 + 디버거 Visual C++: 이클립스 (eclipse): Dev-C++: 마이크로소프트제작 오픈소스프로젝트 오픈소스프로젝트 통합개발환경의종류 비주얼 C++(Visual C++)

More information

윤성우의 열혈 TCP/IP 소켓 프로그래밍

윤성우의 열혈 TCP/IP 소켓 프로그래밍 C 프로그래밍프로젝트 Chap 22. 구조체와사용자정의자료형 1 2013.10.10. 오병우 컴퓨터공학과 구조체의정의 (Structure) 구조체 하나이상의기본자료형을기반으로사용자정의자료형 (User Defined Data Type) 을만들수있는문법요소 배열 vs. 구조체 배열 : 한가지자료형의집합 구조체 : 여러가지자료형의집합 사용자정의자료형 struct

More information

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

Microsoft PowerPoint - chap13-입출력라이브러리.pptx #include int main(void) int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; 1 학습목표 스트림의 기본 개념을 알아보고,

More information

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures 단일연결리스트 (Singly Linked List) 신찬수 연결리스트 (linked list)? tail 서울부산수원용인 null item next 구조체복습 struct name_card { char name[20]; int date; } struct name_card a; // 구조체변수 a 선언 a.name 또는 a.date // 구조체 a의멤버접근 struct

More information

OCW_C언어 기초

OCW_C언어 기초 초보프로그래머를위한 C 언어기초 2 장 : C 프로그램시작하기 2012 년 이은주 학습목표 을작성하면서 C 프로그램의구성요소 주석 (comment) 이란무엇인지알아보고, 주석을만드는방법 함수란무엇인지알아보고, C 프로그램에반드시필요한 main 함수 C 프로그램에서출력에사용되는 printf 함수 변수의개념과변수의값을입력받는데사용되는 scanf 함수 2 목차 프로그램코드

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Chapter 10 포인터 01 포인터의기본 02 인자전달방법 03 포인터와배열 04 포인터와문자열 변수의주소를저장하는포인터에대해알아본다. 함수의인자를값과주소로전달하는방법을알아본다. 포인터와배열의관계를알아본다. 포인터와문자열의관계를알아본다. 1.1 포인터선언 포인터선언방법 자료형 * 변수명 ; int * ptr; * 연산자가하나이면 1 차원포인터 1 차원포인터는일반변수의주소를값으로가짐

More information

제 3강 역함수의 미분과 로피탈의 정리

제 3강 역함수의 미분과 로피탈의 정리 제 3 강역함수의미분과로피탈의정리 역함수의미분 : 두실수 a b 와폐구갂 [ ab, ] 에서 -이고연속인함수 f 가 ( a, b) 미분가능하다고가정하자. 만일 f '( ) 0 이면역함수 f 은실수 f( ) 에서미분가능하고 ( f )'( f ( )) 이다. f '( ) 에서 증명 : 폐구갂 [ ab, ] 에서 -이고연속인함수 f 는증가함수이거나감소함수이다 (

More information

<342EBAAFBCF620B9D720B9D9C0CEB5F92E687770>

<342EBAAFBCF620B9D720B9D9C0CEB5F92E687770> 예약어(reserved word) : 프로그래밍 언어에서 특별한 용도로 사용하고자 미리 지정한 단어 - 프로그램의 구성요소를 구별하게 해주는 역할 => 라벨, 서브 프로그램 이름, 변수에 연관되어 다른 변수나 서브 프로그램 등과 구별 - 식별자의 최대길이는 언어마다 각각 다르며 허용길이를 넘어서면 나머지 문자열은 무시됨 - FORTRAN, COBOL, HTML

More information

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher( 실행할페이지.jsp); 다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp"); dispatcher.forward(request, response); - 위의예에서와같이 RequestDispatcher

More information

Microsoft PowerPoint - chap-03.pptx

Microsoft PowerPoint - chap-03.pptx 쉽게풀어쓴 C 언어 Express 제 3 장 C 프로그램구성요소 컴퓨터프로그래밍기초 이번장에서학습할내용 * 주석 * 변수, 상수 * 함수 * 문장 * 출력함수 printf() * 입력함수 scanf() * 산술연산 * 대입연산 이번장에서는 C프로그램을이루는구성요소들을살펴봅니다. 컴퓨터프로그래밍기초 2 일반적인프로그램의형태 데이터를받아서 ( 입력단계 ), 데이터를처리한후에

More information

02장.배열과 클래스

02장.배열과 클래스 ---------------- DATA STRUCTURES USING C ---------------- CHAPTER 배열과구조체 1/20 많은자료의처리? 배열 (array), 구조체 (struct) 성적처리프로그램에서 45 명의성적을저장하는방법 주소록프로그램에서친구들의다양한정보 ( 이름, 전화번호, 주소, 이메일등 ) 를통합하여저장하는방법 홍길동 이름 :

More information

슬라이드 1

슬라이드 1 기초 PYTHON 프로그래밍 14. 함수 - 1 1. 함수 2. 파이썬내장함수 3. 사용자정의함수 4. 함수의인수와반환값 5. 함수의위치와 main 작성하기 1. 함수 블랙박스 (black box) 함수는입력과출력을갖는 black box이다. 주어진입력에대해서어떤과정을거쳐출력이나오는지가숨겨져있다. >>> print('hello world') Hello world

More information

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 System call table and linkage v Ref. http://www.ibm.com/developerworks/linux/library/l-system-calls/ - 2 - Young-Jin Kim SYSCALL_DEFINE 함수

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 실습 1 배효철 th1g@nate.com 1 목차 조건문 반복문 System.out 구구단 모양만들기 Up & Down 2 조건문 조건문의종류 If, switch If 문 조건식결과따라중괄호 { 블록을실행할지여부결정할때사용 조건식 true 또는 false값을산출할수있는연산식 boolean 변수 조건식이 true이면블록실행하고 false 이면블록실행하지않음 3

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 Power Java 제 7 장클래스와객체 이번장에서학습할내용 객체지향이란? 객체 메시지 클래스 객체지향의장점 String 클래스 객체지향개념을완벽하게이해해야만객체지향설계의이점을활용할수있다. 실제세계는객체로이루어진다. 객체지향이란? 실제세계를모델링하여소프트웨어를개발하는방법 절차지향과객체지향 절차지향프로그래밍 (procedural programming): 문제를해결하는절차를중요하게생각하는방법

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Lecture 02 프로그램구조및문법 Kwang-Man Ko kkmam@sangji.ac.kr, compiler.sangji.ac.kr Department of Computer Engineering Sang Ji University 2018 자바프로그램기본구조 Hello 프로그램구조 sec01/hello.java 2/40 자바프로그램기본구조 Hello 프로그램구조

More information

Microsoft PowerPoint - Java7.pptx

Microsoft PowerPoint - Java7.pptx HPC & OT Lab. 1 HPC & OT Lab. 2 실습 7 주차 Jin-Ho, Jang M.S. Hanyang Univ. HPC&OT Lab. jinhoyo@nate.com HPC & OT Lab. 3 Component Structure 객체 (object) 생성개념을이해한다. 외부클래스에대한접근방법을이해한다. 접근제어자 (public & private)

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소

More information

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상 Android 용 Brother Image Viewer 설명서 버전 0 KOR 아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상표입니다. Android는

More information

PowerPoint Presentation

PowerPoint Presentation #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을작성하면서 C 프로그램의구성요소에대하여알아본다.

More information

강의 개요

강의 개요 DDL TABLE 을만들자 웹데이터베이스 TABLE 자료가저장되는공간 문자자료의경우 DB 생성시지정한 Character Set 대로저장 Table 생성시 Table 의구조를결정짓는열속성지정 열 (Clumn, Attribute) 은이름과자료형을갖는다. 자료형 : http://dev.mysql.cm/dc/refman/5.1/en/data-types.html TABLE

More information

Python과 함께 배우는 신호 해석 제 5 강. 복소수 연산 및 Python을 이용한 복소수 연산 (제 2 장. 복소수 기초)

Python과 함께 배우는 신호 해석 제 5 강. 복소수 연산 및 Python을 이용한 복소수 연산      (제 2 장. 복소수 기초) 제 5 강. 복소수연산및 을이용한복소수연산 ( 제 2 장. 복소수기초 ) 한림대학교전자공학과 한림대학교 제 5 강. 복소수연산및 을이용한복소수연산 1 배울내용 복소수의기본개념복소수의표현오일러 (Euler) 공식복소수의대수연산 1의 N 승근 한림대학교 제 5 강. 복소수연산및 을이용한복소수연산 2 복소수의 4 칙연산 복소수의덧셈과뺄셈에는직각좌표계표현을사용하고,

More information

예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = B = >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = >> tf = (A==B) % A

예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = B = >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = >> tf = (A==B) % A 예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = 1 2 3 4 5 6 7 8 9 B = 8 7 6 5 4 3 2 1 0 >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = 0 0 0 0 1 1 1 1 1 >> tf = (A==B) % A 의원소와 B 의원소가똑같은경우를찾을때 tf = 0 0 0 0 0 0 0 0 0 >> tf

More information

JUNIT 실습및발표

JUNIT 실습및발표 JUNIT 실습및발표 JUNIT 접속 www.junit.org DownLoad JUnit JavaDoc API Document 를참조 JUNIT 4.8.1 다운로드 설치파일 (jar 파일 ) 을다운로드 CLASSPATH 를설정 환경변수에서설정 실행할클래스에서 import JUnit 설치하기 테스트실행주석 @Test Test 를실행할 method 앞에붙임 expected

More information

Microsoft PowerPoint Predicates and Quantifiers.ppt

Microsoft PowerPoint Predicates and Quantifiers.ppt 이산수학 () 1.3 술어와한정기호 (Predicates and Quantifiers) 2006 년봄학기 문양세강원대학교컴퓨터과학과 술어 (Predicate), 명제함수 (Propositional Function) x is greater than 3. 변수 (variable) = x 술어 (predicate) = P 명제함수 (propositional function)

More information

01_피부과Part-01

01_피부과Part-01 PART 1 CHAPTER 01 3 PART 4 C H A P T E R 5 PART CHAPTER 02 6 C H A P T E R CHAPTER 03 7 PART 8 C H A P T E R 9 PART 10 C H A P T E R 11 PART 12 C H A P T E R 13 PART 14 C H A P T E R TIP 15 PART TIP TIP

More information

<B3EDB9AEC0DBBCBAB9FD2E687770>

<B3EDB9AEC0DBBCBAB9FD2E687770> (1) 주제 의식의 원칙 논문은 주제 의식이 잘 드러나야 한다. 주제 의식은 논문을 쓰는 사람의 의도나 글의 목적 과 밀접한 관련이 있다. (2) 협력의 원칙 독자는 필자를 이해하려고 마음먹은 사람이다. 따라서 필자는 독자가 이해할 수 있는 말이 나 표현을 사용하여 독자의 노력에 협력해야 한다는 것이다. (3) 논리적 엄격성의 원칙 감정이나 독단적인 선언이

More information

Microsoft PowerPoint - chap-02.pptx

Microsoft PowerPoint - chap-02.pptx 쉽게풀어쓴 C 언어 Express 제 2 장프로그램개발과정 컴퓨터프로그래밍기초 프로그램작성과정 에디터 (editer) 컴파일러 (compiler) 링커 (linker) 로더 (loader) 소스파일 test.c 오브젝트파일 test.obj 실행파일 test.exe 통합개발환경 (IDE) 컴퓨터프로그래밍기초 2 프로그램작성단계 편집 (edit) 에디터를이용하여원하는작업의내용을기술하여소스코드작성

More information

Microsoft PowerPoint - additional01.ppt [호환 모드]

Microsoft PowerPoint - additional01.ppt [호환 모드] 1.C 기반의 C++ part 1 함수 오버로딩 (overloading) 디폴트매개변수 (default parameter) 인-라인함수 (in-line function) 이름공간 (namespace) Jong Hyuk Park 함수 Jong Hyuk Park 함수오버로딩 (overloading) 함수오버로딩 (function overloading) C++ 언어에서는같은이름을가진여러개의함수를정의가능

More information

API 매뉴얼

API 매뉴얼 PCI-DIO12 API Programming (Rev 1.0) Windows, Windows2000, Windows NT and Windows XP are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations mentioned

More information

= ``...(2011), , (.)''

= ``...(2011), , (.)'' Finance Lecture Note Series 사회과학과 수학 제2강. 미분 조 승 모2 영남대학교 경제금융학부 학습목표. 미분의 개념: 미분과 도함수의 개념에 대해 알아본다. : 실제로 미분을 어떻게 하는지 알아본다. : 극값의 개념을 알아보고 미분을 통해 어떻게 구하는지 알아본다. 4. 미분과 극한: 미분을 이용하여 극한값을 구하는 방법에 대해 알아본다.

More information

1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a

1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a 6 장복사생성자 객체의생성과대입객체의값에의한전달복사생성자디폴트복사생성자복사생성자의재정의객체의값에의한반환임시객체 C++ 프로그래밍입문 1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y;

More information

Web Scraper in 30 Minutes 강철

Web Scraper in 30 Minutes 강철 Web Scraper in 30 Minutes 강철 발표자 소개 KAIST 전산학과 2015년부터 G사에서 일합니다. 에서 대한민국 정치의 모든 것을 개발하고 있습니다. 목표 웹 스크래퍼를 프레임웍 없이 처음부터 작성해 본다. 목표 웹 스크래퍼를 프레임웍 없이 처음부터 작성해 본다. 스크래퍼/크롤러의 작동 원리를 이해한다. 목표

More information

adfasdfasfdasfasfadf

adfasdfasfdasfasfadf C 4.5 Source code Pt.3 ISL / 강한솔 2019-04-10 Index Tree structure Build.h Tree.h St-thresh.h 2 Tree structure *Concpets : Node, Branch, Leaf, Subtree, Attribute, Attribute Value, Class Play, Don't Play.

More information

중간고사

중간고사 중간고사 예제 1 사용자로부터받은두개의숫자 x, y 중에서큰수를찾는알고리즘을의사코드로작성하시오. Step 1: Input x, y Step 2: if (x > y) then MAX

More information

1.2 자료형 (data type) 프로그램에서다루는값의형태로변수나함수를정의할때주로사용하며, 컴퓨터는선언된 자료형만큼의메모리를확보하여프로그래머에게제공한다 정수 (integer) 1) int(4 bytes) 연산범위 : (-2 31 ) ~ (2 31 /2)-

1.2 자료형 (data type) 프로그램에서다루는값의형태로변수나함수를정의할때주로사용하며, 컴퓨터는선언된 자료형만큼의메모리를확보하여프로그래머에게제공한다 정수 (integer) 1) int(4 bytes) 연산범위 : (-2 31 ) ~ (2 31 /2)- 1.2 자료형 (data type) 프로그램에서다루는값의형태로변수나함수를정의할때주로사용하며, 컴퓨터는선언된 자료형만큼의메모리를확보하여프로그래머에게제공한다. 1.2.1 정수 (integer) 1) int(4 bytes) 연산범위 : (-2 31 ) ~ (2 31 /2)-1 연산범위이유 : 00000000 00000000 00000000 00000000의 32

More information

1 경영학을 위한 수학 Final Exam 2015/12/12(토) 13:00-15:00 풀이과정을 모두 명시하시오. 정리를 사용할 경우 명시하시오. 1. (각 6점) 다음 적분을 구하시오 Z 1 4 Z 1 (x + 1) dx (a) 1 (x 1)4 dx 1 Solut

1 경영학을 위한 수학 Final Exam 2015/12/12(토) 13:00-15:00 풀이과정을 모두 명시하시오. 정리를 사용할 경우 명시하시오. 1. (각 6점) 다음 적분을 구하시오 Z 1 4 Z 1 (x + 1) dx (a) 1 (x 1)4 dx 1 Solut 경영학을 위한 수학 Fial Eam 5//(토) :-5: 풀이과정을 모두 명시하시오. 정리를 사용할 경우 명시하시오.. (각 6점) 다음 적분을 구하시오 4 ( ) (a) ( )4 8 8 (b) d이 성립한다. d C C log log (c) 이다. 양변에 적분을 취하면 log C (d) 라 하자. 그러면 d 4이다. 9 9 4 / si (e) cos si

More information

Microsoft Word - FunctionCall

Microsoft Word - FunctionCall Function all Mechanism /* Simple Program */ #define get_int() IN KEYOARD #define put_int(val) LD A val \ OUT MONITOR int add_two(int a, int b) { int tmp; tmp = a+b; return tmp; } local auto variable stack

More information

Tcl의 문법

Tcl의 문법 월, 01/28/2008-20:50 admin 은 상당히 단순하고, 커맨드의 인자를 스페이스(공백)로 단락을 짓고 나열하는 정도입니다. command arg1 arg2 arg3... 한행에 여러개의 커맨드를 나열할때는, 세미콜론( ; )으로 구분을 짓습니다. command arg1 arg2 arg3... ; command arg1 arg2 arg3... 한행이

More information