대학생활/웹프로그래밍
PHP 프로그래밍 입문 제 6장 연습문제 풀이
ImJay
2022. 4. 25. 20:56
반응형
PHP 프로그래밍 입문 제 6장 연습문제 풀이
연습문제 6-1. 다음은 함수를 이용하여 두 수의 최대공약수를 구하는 프로그램이다. 빈칸을 채워 프로그램을 완성하시오.
출력 포맷
###와 ###의 최대 공약수 : ###
<?php
function computeMaxGong($x, $y) { // 최대공약수를 구하는 함수
if ($x > $y) // x가 더 크면
$small = $y; // y를 small로
else // y가 더 크면
$small = $x; // x를 small로
for ($i=1; $i<=$small; $i++) { //i부터 small까지 반복
if($x%$i == 0 and $y%$i == 0) // x,y의 공약수일 경우
$result = $i; // result에 저장
// i가 증가하기 때문에 최대 공약수는 가장 마지막 저장된 result
}
return $result; // 결과 반환
}
$num1 = 9;
$num2 = 33; // 상수 선언
$max_gong = computeMaxGong($num1, $num2); // 함수 호출
echo "{$num1}와 {$num2}의 최대공약수 : $max_gong"; // 결과 출력
?>

연습문제 6-2. 다음은 함수를 이용하여 3개의 수 중에서 가장 큰 수를 찾는 프로그램이다. 빈칸을 채워 프로그램을 완성하시오.
출력포맷
###, ###, ### 중 가장 큰 수 : ###
<?php
function maxTwo($i, $j) { // 두 수 중에 큰 수를 찾는 함수
if($i > $j) return $i; // i가 크면 i를 반환
else return $j; // j가 크면 j를 반환
}
function maxThree($x, $y, $z) { // 세 수 중에 큰 수를 찾는 함수
// x,y 중 큰 값과 y,z 중 큰 값을 maxTwo를 호출하여 가장 큰 값 찾기
return maxTwo(maxTwo($x, $y), maxTwo($y, $z));
}
$a = 10;
$b = 5;
$c = 7; // 상수 선언
$max_num = maxThree($a, $b, $c); // 함수 호출
echo "$a, $b, $c 중 가장 큰 수 : $max_num"; // 결과 출력
?>

연습문제 6-3. 다음은 놀이공원 입장객의 나이와 입장권의 종류에 따라 요금을 계산하여 출력하는 프로그램이다. 빈칸을 채워 프로그램을 완성하시오. 입장권의 종류별 요금은 다음과 같다.
| 구분 | 어른 | 청소년 | 어린이 | 비고 | |
| 입장권 | 18,000원 | 15,000원 | 13,000원 | 놀이공원 기본 입장 | |
| 자유 이용권 | 주간 | 32,000원 | 28,000원 | 25,000원 | 입장+놀이기구 무제한 이용 |
| 야간 | 29,000원 | 25,000원 | 22,000원 | ||
| 빅5 이용권 | 29,000원 | 25,000원 | 22,000원 | 입장 + 놀이기구 5종 이용 | |
출력포맷
입장권 종류 : ####
입장객 나이 : ## 세
입장료 : ###### 원
<?php
function child_rate($cat){ // 어린이 요금 함수
if ($cat == "입장권") $price = 13000;
elseif ($cat == "자유 이용권 주간") $price = 25000;
elseif ($cat == "자유 이용권 야간") $price = 22000;
else $price = 22000;
return $price;
}
function youth_rate($cat){ // 청소년 요금 함수
if ($cat == "입장권") $price = 15000;
elseif ($cat == "자유 이용권 주간") $price = 28000;
elseif ($cat == "자유 이용권 야간") $price = 25000;
else $price = 25000;
return $price;
}
function adult_rate($cat){ // 어른 요금 함수
if ($cat == "입장권") $price = 18000;
elseif ($cat == "자유 이용권 주간") $price = 32000;
elseif ($cat == "자유 이용권 야간") $price = 29000;
else $price = 29000;
return $price;
}
$age = 2;
$category = "자유 이용권 야간";
// 구분: 입장권, 자유 이용권 주간, 자유 이용권 야간, 빅5 이용권
// 나이에 따른 요금 함수 호출
if($age >= 0 && $age <= 3) $fee = 0;
elseif($age >= 4 && $age <= 10) $fee = child_rate($category);
elseif($age >= 11 && $age <= 17) $fee = youth_rate($category);
else $fee = adult_rate($category);
// 출력
echo "입장권 종류 : $category<br>";
echo "입장객 나이 : $age<br>";
echo "입장료 : {$fee}원";
?>

궁금하신 점은 댓글 부탁드립니다.
반응형