자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
도서 [시작하는 사람들을 위한 델파이 프로그래밍] 모듈 7 - Exercise 1
2016.05.02 10:22
'시작하는 사람들을 위한 델파이 프로그래밍' 도서에서 제공하는 Exercise(연습문제) 입니다.
정해진 답은 없습니다. 해결방법을 찾으신 분은 아래 댓글로 공유해주세요.
간혹 수학이 나오지만, 충분히 할 수 있습니다. 필요하면 구글 검색에게 물어보세요.
중요한 것은 '내가 생각하면서 프로그래밍을 한다'는 것입니다.
모듈 7. 중첩된 IF...THEN...ELSE 문. 작업 해결 실습하기
Exercise 1.
이차방정식 Ax2+Bx+C=0 (A≠0)에서 제곱근을 구해보자. 만약 이 방정식에 유효한 제곱
근이 없다면 “유효한 제곱근이 없습니다”라는 메시지를 표시하자.
- 다른 연습문제들도 풀어보세요!
도서 [시작하는 사람들을 위한 델파이 프로그래밍] 모듈 7 - Exercise 1
2016.05.02 10:22
'시작하는 사람들을 위한 델파이 프로그래밍' 도서에서 제공하는 Exercise(연습문제) 입니다. 정해진 답은 없습니다. 해결방법을 찾으신 분은 아래 댓글로 공유해주세요.
간혹 수학이 나오지만, 충분히 할 수 있습니다. 필요하면 구글 검색에게 물어보세요. 중요한 것은 '내가 생각하면서 프로그래밍을 한다'는 것입니다.
|
모듈 7. 중첩된 IF...THEN...ELSE 문. 작업 해결 실습하기
Exercise 1.
이차방정식 Ax2+Bx+C=0 (A≠0)에서 제곱근을 구해보자. 만약 이 방정식에 유효한 제곱
근이 없다면 “유효한 제곱근이 없습니다”라는 메시지를 표시하자.
- 다른 연습문제들도 풀어보세요!
해당 문제는 중첩된 if then else를 사용하며 풀어라는 문제이므로 하나의 if문 안에 또다른 if문을 사용하여 해당 답을 풀어라고 생각이 되었습니다.
2차방정식의 판별식을 이용해서 해당 x값의 개수를 파악하고 중첩된 if문을 통해서 답을 찾아라가 문제의 의도라 생각되어 다음과 같이 풀어보았습니다.
procedure TForm1.Button1Click(Sender: TObject);
var
a, b, c: integer;
x1, x2: real;
begin
a := strtoint(edit1.Text);
b := strtoint(edit2.Text);
c := strtoint(edit3.Text);
//2차 방정식의 판별식과 근의 공식 이용
//D = b^2 - 4ac
//x = -b +- root(b^2-4ac) / 2a
if sqr(b) - 4 * a * c > 0 then //실근 2개
begin
x1 := (-b + (sqrt(sqr(b) - 4 * a * c))) / (2 * a);
x2 := (-b - (sqrt(sqr(b) - 4 * a * c))) / (2 * a);
LBL_ans.Caption := 'x1 = ' + floattostr(x1) + ', ' + 'x2 = ' + floattostr(x2);
end
else
begin
if sqr(b) - 4 * a * c = 0 then
begin
x1 := (-b + (sqrt(sqr(b) - 4 * a * c))) / (2 * a); //중근 1개
LBL_ans.Caption := 'x1 = ' + floattostr(x1);
end
else
begin
LBL_ans.Caption := '유효한 제곱근이 없습니다.';
end;
end;
end;