DOUG 로이드 : 좋아.
그래서 지금의이를 해결하자 정말 큰 주제, 기능.
지금까지의 과정에서, 모든 우리가 쓰고있어 프로그램
주 안에 작성되었습니다.
그들은 아주 간단한 프로그램입니다.
당신은 모든을 할 필요가 없습니다 지점과 일들이 일어나고.
우리는 모두 들어갈 수 메인의 안쪽과
정말 압도적되지 않습니다.
하지만 코스에 간다하고 당신은 프로그램을 개발하기 시작
독립적으로, 그들은 아마거야 (10)보다 훨씬 더 많은 것을 얻을 시작
15 라인.
당신은 수백 또는 수천을 얻을 수 있습니다 또는 수십 줄의 코드 수천.
그리고 그것은 정말 아니다 생각이 미친.
따라서, 그것은 아마 좋은 생각이 아니다 주요 내부의 모든 것을 유지합니다.
그것은 찾기 위해 조금 어려운 얻을 수 있습니다 당신이 당신이 할 경우를 찾고 있습니다.
>> 다행스럽게도, C, 그래도 꽤 많은 다른 모든 프로그래밍 언어 그
함께 작동 할 수 있습니다, 수 우리는 함수를 작성합니다.
그리고 난 그냥 갈거야 옆으로 여기에 빠른을
기능이 있음을 언급 컴퓨터 과학의 한 영역.
그리고 당신은에 그들 중 많은 더 볼 수 있습니다 과정 전반에 걸쳐 다양한 지점
당신은 계속합니다.
어디서 많이가있다 같은 단어의 동의어.
그래서 우리는 함수를 호출.
그러나 당신은 또한 그들에게들을 수 절차라고도
또는 방법, 특히, 당신이했습니다 경우 이제까지 어떤 객체 지향 프로그래밍을 수행
before--과 걱정하지 마세요 당신은하지하지 않은 경우
큰 deal-- 만에 감사 지향 언어
자주 호출 방법이다.
때때로 그들은 서브 루틴을 호출하고 있습니다.
하지만 그들은 정말 모두 참조 동일한 기본적인 아이디어이다.
>> 이제 그 생각이 무엇인지 살펴 보자.
기능은 무엇입니까?
음 기능은 정말 블랙 박스에 지나지 않습니다.
0의 세트가 블랙 박스 더 입력과 하나의 출력 또는.
그래서 예를 들어, 함수가 될 수 있습니다.
이 FUNC라는 기능입니다.
그리고 3 개의 입력 A, B, 및 C 걸린다.
그리고 그 검은 상자 안에, 우리 이 수행 정확히 모른다,
그러나 입력을 처리 어떤 식 으로든 후
이 경우 단일 출력, Z를 제공한다.
이제 좀 만들려면 적은 추상, 우리
우리는 어쩌면 말할 수 라는 기능을 가지고
즉 3 개의 입력 A, B를 취 추가 C와 어떤 방식으로 출력을 처리
블랙 박스에 내부 하나의 출력을 생성합니다.
이 경우, 그렇게 추가 3, 6, 7 걸린다.
어딘가에 내 함수를 추가, 우리는 것
기대 그들을 함께 추가 할 출력을 생성 할
3 플러스 6 플러스 7 또는 16입니다.
>> 마찬가지로라는 기능을 가지고 두 개의 입력 A와 B를 취 MULT,
어떤 방법으로 이러한에게로 처리 그 함수의 출력
두 입력의 제품이다.
두개의 입력은 함께 곱해.
도 4 및도 5는, MULT에 전달되고 뭔가, 우리가 기대하는 출력을 발생
20입니다.
왜 우리는 블랙 박스 부릅니까?
그런데 우리가 작성되지 않은 경우 자신을 기능을하는
우리는 꽤 지금까지 CS50 완료했습니다.
우리는, 예를 들어, 인쇄 F를 본 적이있는 우리가 작성하지 않은 기능입니다
자신은, 그러나 우리는 모든 시간을 사용합니까.
우리가 작성되지 않은 경우 기능을 우리 자신,
그것이 얼마나 우리가 정말 알아야 할 필요가 없습니다 실제로 후드 아래에 구현했습니다.
>> 그래서 예를 들어 블랙 박스의 I 다만, 곱셈을 설명했다
를 배수, B가 될 수있다 defined--이 단지입니다
일부 pseudocode--이 될 수있다 출력 시간을 B로 정의.
그 말이 바로.
우리라는 함수가있는 경우 두 개의 입력을합니다 MULT.
우리는 기대 출력 것이라고 수 개의 입력은 함께 곱해
배 나.
그러나 멀티 포트도 될 수있다 이런 식으로 구현,
우리는 카운터 변수가 0 멀티 포트 안에 설정하자.
그리고 우리는이 과정을 반복 B 번 카운터를 추가합니다.
예를 들어, 우리가 (3A)를 곱하면 5B, 우리가 0으로 카운터 설정 말할 수 있습니다,
5 회를 반복 카운터에 3을 추가합니다.
그래서 우리는 0에서 시작하고 우리가 할 이 다섯 번 3, 6, 9, 12, 15.
동일한 결과이다. 우리 아직 도착 3 시간 5 단지
구현은 상이하다.
>> 즉, 우리가 무엇을 의미하는지에 관해이다 우리는 블랙 박스를 말할 때.
그것은 단지 우리가 정말 상관 없어 의미 그것은 후드 아래에 구현 어떻게
한 출력이 우리가 기대 때문이다.
사실, 그 계약의 일부 특히, 함수를 사용하여
다른 사람이 쓰기 기능.
동작은 항상 것입니다 예측할 수없는, 전형적인 될
함수의 이름에 따라.
그것이 정말 이유입니다 중요 당신은 함수를 작성할 때
하거나 다른 사람이 쓰기 당신이 사용할 수있는 기능,
이러한 기능은 가지고 분명, 상대적으로 분명한 이름,
잘 설명되어 있습니다.
어떤 확실히의 경우 인쇄 F와 같은 기능을합니다.
>> 그런데 왜 우리는 기능을 사용합니까?
그럼 우리가 작성하는 경우, 이전에 말했듯이 주요 사물의 내부에 우리의 모든 코드
정말 성가신 얻을 수 있습니다 정말 복잡.
기능은 우리에게 능력을 허용 물건을 정리하고 헤어
매우 복잡한 문제에 더 많은 관리 하위 부품.
기능은 또한 우리를 수 코딩 프로세스를 단순화.
그것은 (10)를 디버깅하는 많은 쉽게 100 라인 대 라인 기능
함수 또는 1,000 선 기능.
우리는 디버깅이있는 경우 한 번에 작은 조각,
또는, 시간에 작은 조각 쓰기 그것은 그 프로그래밍 경험이 있습니다
훨씬 더.
그 하나 날 믿어.
>> 마지막으로, 우리는 함수를 작성하는 경우 우리 그 다양한 부분을 다시 사용할 수 있습니다.
기능 재활용 할 수 있습니다.
이들은 사용될 수있다 하나의 프로그램 또는 다른.
당신은 이미 작성했습니다 기능, 모든 당신이
그 프로그램을 알려하는 것입니다 필요 어디 그 기능을 찾을 수 있습니다.
우리는 재활용하고 사용하고 40 년 f를 인쇄 할 수 있습니다.
하지만 한 번만 작성되었습니다.
꽤 유용합니다, 좋아.
괜찮아.
그래서 기능은 중대하다.
우리는 알고있다.
이제 그것들을 쓰기 시작하자.
의 점점 시작하자 그들을 우리의 프로그램에.
위해서는, 먼저 그렇게 우리가 할 일은 함수를 선언합니다.
당신은 함수를 선언 할 때 당신이 기본적으로하고있는
컴파일러를 말하고, 이봐, 당신이 알고있는 바로 있도록,
나는 기록 될 것입니다 나중에 함수
여기에이처럼 무슨이다.
그 이유는 컴파일러 수 있기 때문에
경우 몇 가지 이상한 일을 그들은 기호 세트를 참조
그들은 익숙하지 않은 것이다.
그래서 우리는 단지 컴파일러를 제공 이끌고, 나는 함수를 만드는거야
그리고이 작업을 수행 할 것입니다.
함수 선언 일반적 경우 당신은 방법으로 코드를 구성하고
다른 사람은 할 수있을 것으로 이해 및 활용,
당신은 일반적으로 모두를 데려 가고 싶다는 함수 선언
코드의 맨 위에 마우스 오른쪽 당신은 주요 쓰기 시작하기 전에.
편리하게, 거기에 매우 표준 양식
모든 함수 선언이 따른다.
그들은 모두 꽤 많이는 다음과 같습니다.
세 부분은 함수에있다 선언, 반환 형식, 이름,
및 인수 목록.
>> 이제 반환 유형은 어떤 종류의 변수 함수가 출력됩니다.
그래서 예를 들어, 우리는 다시 생각한다 두 승산에 분 전
번호 기능, 우리는 경우에 무엇을 기대 우리는 정수로 정수를 곱
출력이 될 것입니다 아마 정수, 맞아.
곱 두 개의 정수 함께, 당신은 정수를 얻을.
그것의 반환 형식 그래서 기능은 INT 것입니다.
이름은 당신이 원하는 무엇인가 함수를 호출합니다.
이것은 아마 가장 중요하다 함수 선언의 일부,
기능과 관련하여.
그러나 실제로 아마 하나입니다 가장 중요한 부분 중
측면에서 함수 선언의 알 함수 실제로 무엇
않습니다.
당신이 당신의 함수 f 또는 G의 이름을 경우 또는 h 또는 신비 또는 같은,
당신은 아마받을거야 약간의 노력까지 넘어
이러한 기능이 무엇을 기억한다.
그래서 제공하는 것이 중요합니다 당신의 함수의 의미있는 이름.
>> 마지막으로, 인수 목록입니다 쉼표로 구분 된 목록
함수에 대한 모든 입력, 이는 각각의 유형과 이름을 갖는다.
그래서뿐만 아니라 당신이해야합니까 변수의 유형을 지정합니다
함수가 출력, 당신은 또한 지정하려면
어떤 타입의 변수 유형 함수는 입력으로 받아들이는 것입니다.
그래서 여기에 예를하자.
그냥 살펴 보자 보다 구체적인 하나에서.
그래서 여기에 함수의 예 함수에 대한 선언이
두 개의 정수를 추가합니다.
두 정수의 합을 것입니다 정수가 될뿐만 아니라 우리만큼
논의했다.
그리고 리턴 타입, 여기에 녹색, INT 것입니다.
즉, 두 정수를 추가 우리에게 알려줍니다 일의 마지막에 가고,
출력, 또는 다시 침 우리에게, 정수.
이 기능은 우리가 무엇을 감안할 때 그것을 의미있는 이름을주고 싶다.
두 개의 정수를 것 같다 추가 적절한 고려
우리는 입력으로 두 개의 정수를 취하고있어 잘하면 그들을 함께 추가.
그것은 성가신의 비트 수 있습니다 이름 솔직히이 기능
아마 필요가 없습니다 우리는 또한이 때문에
연산자, 당신은 기억이 있다면 우리의 이전에 사업자의 토론.
하지만 그냥의 이익을 위해 가정 해 봅시다 이 기능이 유용하다는 것을 인수
그래서 우리는 두 개의 정수를 추가 전화 할게.
마지막으로,이 함수는 두 개의 입력을합니다.
이들 각각은 정수이다.
그래서 우리는이 쉼표를 입력 구분 된 목록.
이제 우리는 일반적으로 원하는 각 그들의 이름을 부여
이들이 사용될 수 있도록 함수 내.
이름은 정말 중요하지 않습니다.
>> 이 경우, 반드시 그렇지 그들에 부착 된 의미를 가지고있다.
그래서 우리는 단지 A와 B를 호출 할 수 있습니다.
즉 완전히 괜찮아요.
그러나, 당신은 찾을 수 상황에서 자신
여기서, 변수의 이름 실제로 중요 할 수 있습니다,
당신이 그들을 호출 할 수 있습니다 A와 B가 아닌 다른
그들에게 더 많은 것을주고 상징적 의미.
그러나이 경우, 우리는 정말로하지 기능에 대한 다른 것을 알고있다.
우리는 두 개의 정수를 추가 할 수 있습니다.
그래서 우리는 단지 전화 할게 그 정수 a 및 b.
즉, 하나의 예입니다.
>> 당신은 두 번째를하지 않는 이유 이 일에 대해 생각하는,
어떻게 함수를 작성합니다 함수에 대한 선언이
두 개의 부동 소수점 숫자를 곱해?
당신은 무엇을 기억하십니까 부동 소수점 수는?
어떤이 함수는 것 선언처럼?
실제로 비디오를 일시 중지하는 것이 좋습니다 여기 당신이 필요로 얼마나 많은 시간이 걸릴.
무엇 이것에 대해 생각 함수 선언은 것입니까?
반환 유형은 어떤 것입니까?
의미있는 이름은 무엇을 할 것인가?
입력은 어떤 것입니까?
그럼 왜 여기에 비디오를 일시 정지하지 않습니다 쓰기 업 함수 선언을
곱 것이다 기능 두 개의 부동 소수점 숫자.
희망 당신은 비디오를 일시 중지되었습니다.
>> 그럼 예를 살펴 보자 하나의 가능한 선언.
멀티 포트 두 실수는, 부동 Y를 X 플로트 플로트.
두 제품 부동 소수점 숫자,
어떤 기억하는 방법이다 우리 실제 숫자를 표현
또는 C 진수 값과 숫자, 부동 소수점 숫자가 될 것입니다.
당신을 곱하면 진수로 진수,
당신은 아마 소수를받을거야.
당신은 그것에게 관련 이름을주고 싶다.
두 개의 실수를 곱하면 잘 보인다.
하지만 당신이 정말로 그것을 부를 수 멀티 포트 두 수레, 또는 MULT 수레.
그만큼 그 같은 것을, 몇 가지 실제적인 의미를 준 것을
이 블랙 박스는 무엇을 가고 있었다.
그리고 또,이 경우, 우리는하지 어떤 의미가 부착 된 것 같다
의 이름으로 우리가 전달하는 변수
그래서 우리는 그들에게 x와 y를 호출합니다.
당신이 뭔가를 호출 이제 경우 또, 그 완전히 괜찮아요.
사실, 당신이 한 경우 이 선언 대신
대신 복식을 사용하여 당신이 기억하는 경우의, 수레
복식 다르다는 방법에 더 정확하게
실수를 지정하거나 포인트 변수를 부동.
그것도 완전히 괜찮아요.
어느 그 중 하나는 잘 될 것입니다.
사실, 몇몇 존재 다른 조합
방법으로이 함수를 선언합니다.
그러나이 두 꽤 좋은 사람입니다.
우리는이 위대한, 함수를 선언했습니다.
우리는 무엇을 컴파일러 말 했어요 , 우리는 무엇을하고있을거야됩니다.
이제 실제로 함수를 작성 할 수 있습니다.
의 그것에게 정의를 줘 보자, 그래서 블랙 박스 내부
예측 가능한 행동이 일어나고있다.
사실, 우리는 두 가지 실제 승산되고 함께 번호, 또는 번호 추가
함께, 또는 그것이 무엇이든 수행 것이 우리가 할 수있는 우리의 기능을 물었다.
>> 사실 그래서, 시도하고 정의 할 수 두 개의 실수를 곱있는 우리 단지
두 번째 전 이야기.
지금 시작 함수 정의
거의 정확히 같은 보인다 함수 선언으로.
여기 두 사람이있다.
상단에 함수 선언은, 유형, 이름, 쉼표로 구분 된 인수
목록, 세미콜론.
세미콜론을 나타냅니다 즉, 함수 선언이다.
함수의 시작 정의는 거의 정확하게 보인다
같은, 유형, 이름은 쉼표로 분리 인수 목록, 세미콜론,
중괄호를 엽니 다.
열린 중괄호, 그냥 우리는 주와 함께 해왔습니다
우리가 지금 있다는 것을 의미 정의 시작
무슨 일이 블랙 박스 내부에 발생하는 우리는 멀티 포트 두 개의 실수를 호출하기로 결정했습니다.
여기로 구현하는 하나의 방법이다.
우리는 우리가 새를 선언 할 수 말할 수 있습니다 float 형이라는 제품의 변수
그 변수에 할당 x 값의 배 Y에.
그리고 제품을 반환합니다.
반환 여기에 무엇을 의미 하는가.
잘 반환 방법 우리는이 방법 표시
우리는 출력이 철회 전달하고있다.
그래서 동일하다 뭔가 반환 이 블랙 박스의 출력이다.
당신이 그것을 어떻게 그래서입니다.
여기를 구현하는 또 다른 방법이다.
우리는 Y X 시간을 반환 할 수 있습니다.
x는 부동입니다.
Y는 부동입니다.
배 X 그래서 Y는 부동입니다.
우리는 심지어 할 필요가 없습니다 다른 변수를 만들 수 있습니다.
그래서 다른 방식이다 동일한 블랙 박스를 구현한다.
>> 지금 잠시 시간을내어, 다시 동영상을 일시 정지,
그리고, 두 개의 정수를 추가하려고 정의 이는 다른 기능입니다 우리
잠시 전에 대한 이야기​​.
다시 여기에, 나는 기능을 넣었습니다 선언 등 세미콜론,
그리고 열린 중괄호 및 폐쇄 곱슬
우리가 채울 경우 중괄호 표시하기 의 내용에서, 두 개의 정수를 추가
우리는 특정의 정의가 너무 블랙 박스 내부 동작.
그래서 비디오를 일시 중지합니다.
그리고만큼의 시간이 걸릴 당신이 시도하고 정의해야
의 구현은 두 정수를 추가, 이러한 그 함수 값을 출력 할 때,
그것은 사실, 수행, 반환 두 입력의 합.
그래서 바로 앞의 예처럼, 여러 가지 방법이 있습니다
당신이 구현할 수 있다는 것은 두 개의 정수를 추가합니다.
여기에 하나입니다.
여기에 오렌지에 나는했습니다 그냥 comments--했다
난 그냥 몇 가지를 추가했습니다 코멘트 표시하기
무슨 코드의 각 줄에 무슨 일이 일어나고.
그래서 변수를 선언 int 형의 합계라고합니다.
나는 합이 플러스 B에 해당 말한다.
우리가 실제로하고있는 곳이다 작업을 추가하고 함께 ㄱ.
그리고 합계를 반환합니다.
그리고 그 의미 때문에한다 합계는 int 형의 변수입니다.
그리고 데이터가이 것을 입력 한 내용이다 함수는 출력려고 하더군요?
지능.
그래서, 합계를 반환하는거야 정수 변수입니다.
그리고 그 의미는 우리가했습니다 무엇을 제공합니다 선언과 우리의 기능을 정의
해야 할 일.
>> 이제 당신도 정의 할 수 있습니다 기능이 방법,
INT 합계는 이동 b-- 플러스와 동일 step-- 먼저하고, 합을 반환합니다.
지금 당신은 할 수 또한, 이러한 방식으로 구현
이는 내가보기 엔하지 않는 것이 좋습니다.
이것은 하나의 나쁜 스타일 일이 정말 나쁜 디자인,
그러나 그것은 사실, 직장에서, 않습니다.
당신은 int이 코드를 취할 경우 나쁜 가산기 도트 C를 추가하고, 사용.
실제로 추가 않습니다 두 개의 정수.
그것은 매우 가난한 구현입니다 이 특정 행동.
그러나 그것은 작동합니까.
그것은 설명하기 위해 바로 여기 우리가 정말하지 않는 점
내부 게 무슨 상관 만큼 블랙 박스,
우리가 기대하는 출력을 가지고있다.
이것은 잘못 설계된 블랙 박스입니다.
그러나 마지막 날, 그것은 수행 여전히 출력 플러스 (B)의 합.
괜찮아.
그래서 우리는 함수를 선언했습니다.
그리고 우리는 함수를 정의했다.
그래서 정말 좋다.
이제이 기능을 사용하기 시작하자 것을 우리는 선언했고 우리는 정의했다.
실제로의 function--를 호출하려면 당신이해야 할 모든 꽤 easy--
적절한 인수를 전달하는 것입니다, 데이터 형의 인수
가 기대​​하는, 그리고 다음 반환을 할당
그 함수의 값 그리고이 항아리 변명 가구 있구만
그 함수의 리턴 값을 할당 올바른 종류의 뭔가.
>> 그럼에서 살펴보기로하자 파일에이 연습
라는 가산기 1 점 C, 어떤 내 CS50의 IDE에 있습니다.
그래서 여기에 가산 1 점 C입니다.
처음에 당신은 내가 가진 참조 내 포함은, 파운드는,
표준 입출력 및 CS50 도트 시간.
그리고 내 함수 선언이 있습니다.
난 곳이다 난 컴파일러를 말하는
를 작성 될 것 라는 함수는 두 개의 정수를 추가합니다.
그것은 출력 것 정수 형 변수.
즉,이 부분이 바로 여기거야.
그리고 나는 두 개의 입력을 가지고 및 b, 이들 각각은 정수이다.
메인의 내부, 나는에 대한 사용자 요청 말에 의한 입력은 나에게 정수를 제공합니다.
그리고 그들은 잊지하라는 메시지가 표시됩니다 함수는 INT, 그
CS50 라이브러리에 포함되어 있습니다.
그리고 그에 저장됩니다 X, 정수 변수.
>> 그런 다음 우리는 또 다른 정수 그들을하라는 메시지를 표시합니다.
우리는 또 다른 정수를 얻을 수 와 y에 그 저장합니다.
그리고, 여기에 라인 (28)에있다 여기서 우리는 우리의 함수를 호출합니다.
우리는 INT Z 같음을 말하는 2 정수 X 쉼표 Y를 추가합니다.
이 말이 왜 보는가?
X는 정수형 변수이고 Y는 정수형의 변수이다.
그래서 좋다.
무엇을 우리의 기능을 가진 그 말이 라인 (17)에 선언처럼 보인다.
쉼표로 구분 된 입력리스트 두 개의 정수, a와 b를 기대하고있다.
이 경우, 우리는 호출 할 그 무엇이든 우리가 원하는.
그것은 단지 두 개의 정수를 기대하고있다.
x는 정수이고, y는 정수이다.
그 작동합니다.
>> 그리고 우리는 그 기능을 것입니다 알고 출력 정수뿐만 아니라.
그래서 우리는을 저장하는 함수의 출력,
정수 형태로, 두 정수를 추가 변수, 우리가 Z를 호출하고 있습니다.
그리고 우리는의 합 말할 수있다 %의 i와 %의 나는 %입니다.
X, Y 및 Z는 각각 그 퍼센트 내가 년대에 작성합니다.
의 정의 란 두 정수 모양을 추가?
그것은 꽤 간단합니다.
그것은 그들 중 하나 우리 다만, 두 번째 전에 보았다
INT의 합이 플러스 B 반환 합과 같다.
이 일을합니까?
의 파일을 저장할 수 있습니다.
그리고 아래 여기 내 터미널에 나는, 가산기 (1)를 만들려고 해요
그리고 내 화면을 취소합니다.
내가 알고 있기 때문에 확대거야 그것은 볼 조금 어렵습니다.
>> 그래서 우리는 가산기 (1) 본 프로그램을 컴파일합니다.
그래서 우리는 도트​​ 슬래시 가산기 (1)을 수행 할 수 있습니다.
10 나에게 정수를 지정합니다.
20 나에게 또 다른 정수를 지정합니다.
(10, 20)의 합은 30이다.
그래서 우리는 성공적인 함수 호출을했다.
당신은 부정적인 기능을 다시 실행할 수 있습니다 (10)은 음극 (10) 및 (17) (17)의 합은 7이다.
이 기능은 작동합니다.
이 문제를 가지고 우리는 그것을하는 기대.
그래서 우리는 성공을했습니다 기능, 정의, 선언,
성공적인 함수 호출.
커플 기타 기능에 대한 포인트
우리는이 섹션을 체결하기 전에.
에서 리콜 우리의 데이터 형식의 토론,
이전에, 기능이 때때로 어떤 입력을 할 수 없습니다.
그 경우라면, 우리 함수를 선언
빈 인수 목록을 가지고있다.
당신은 무엇을 기억하십니까 가장 일반적인 기능
우리는 지금까지 걸리는 봤어요 빈 인수 목록입니다?
그것은 기본입니다.
때로는 그 기능을 리콜 실제로 출력이 없다.
이 경우, 우리는 함수를 선언 void 반환 타입을 가지고있다.
의에 의해이 부분을 마무리하자 연습 문제를 해결하는.
>> 그래서 여기에 배치 문제입니다.
난 당신이 기능을 쓰고 싶어 유효한 삼각형했다.
이 기능은 어떻게해야하나요 세 개의 실수를 가지고있다
즉, 세 가지의 길이를 나타냅니다 그것의 매개 변수로 삼각형의 측면,
또는 인수, 또는 동의어의 또 다른 세트를 inputs--
당신은 발생할 수있다.
이 기능해야 출력 중 하나를 참 또는 거짓
에 따라 그 세 길이 여부 삼각형을 제조 할 수있다.
당신은 데이터 형식을 기억하십니까 그 우리는 참 또는 거짓 표시하는 데 사용?
지금 당신이 어떻게 구현합니까?
그럼 몇이 알고 삼각형에 관한 규칙
그 사실을 알고 유용하다.
삼각형은 할 수 있습니다 긍정적 인 길이와 측면.
그 의미가 있습니다.
당신은 아마 대만족, 말을하는지.
다른 것은주의해야 하지만, 합이다
임의의 길이의 삼각형의 두 변
보다 커야 세 번째 측면의 길이.
그 사실은 사실입니다.
당신은, 측면 1의 삼각형을 가질 수 없습니다 예를 들어, 2, 4, 1, 플러스 2 때문에
4보다 크다.
그 그래서 규칙은 그 결정 세 여부
입력 생각할 삼각형을 형성 할 수있다.
그래서 몇 분을 그리고 선언하고 정의
유효한이라는 기능 삼각형, 같은 그것을 실제로
여기에 지정된 동작을 가지고있다.
>> 그것은 출력 할 사실이 세 가지 측면 경우 삼각형을 포함 할 수있다
와 그렇지 않은 경우는 false 당신이 한 방법을 볼 준비가 되셨습니까?
여기에 하나의 구현이다 유효 삼각형.
그것은 하나의 아니에요.
당신은 약간 다를 수 있습니다.
그러나 이것은 사실이,하지 우리가 기대하는 행동.
우리는에 우리의 함수를 선언 맨 유효한 삼각형에서 bool
X 플로트 Y 플로트 Z를 떠.
그래서 다시,이 기능 세 가지 실수를한다
인수로, 부동 소수점 값 변수,
그리고 참 또는 거짓을 출력 부울, 리콜 값입니다.
리턴 타입이 BOOL 인 이유 그래서입니다.
그 다음 우리는 함수를 정의.
우리가 제일 먼저 확인하는 검사입니다 한다는 측면 모두 긍정적이다.
X는보다 작거나 같으면 0, 또는 y가 0이면,
또는 Z는 0보다 작거나 같으면 그 가능성이 삼각형이 될 수 없습니다.
그들은 긍정적 인 측면이 없습니다.
그래서 우리는 반환 할 수 있습니다 그 상황에서 거짓.
다음으로, 우리는 있는지 확인하십시오 그 입력의 모든 쌍
세번째보다 크다.
>> 그래서 X 플러스 Y는 작은 경우 Z보다 같거나,
또는 X 플러스 Z는 작은 경우 Y보다 같거나,
Y 또는 Z 플러스하다면 이하인 X, 그 또한 유효한 삼각형이 될 수 없습니다.
그래서 우리는 다시 false를 돌려줍니다.
가정하면, 우리는 검사를 모두 통과 하지만, 우리는 진정한 반환 할 수 있습니다.
이 세 가지 측면 때문에 returning-- 할 수있다
유효한 삼각형을 생성.
그리고 그것 뿐이다.
이제 선언과 정의했다.
그리고 당신은 지금 할 수 있습니다 사용이 함수를 호출합니다.
잘 했어.
나는 더그 로이드입니다.
이 CS50입니다.