4장 배열과 함수 한빛미디어(주)
학습 목표 배열의 개요에 대하여 이해한다. 1차원 배열을 이해하고 사용법을 익힌다. 2차원 배열의 동작을 이해하고 응용 프로그램 작성법을 익힌다 함수의 개요에 대하여 이해한다. 사용자 함수 사용 시 프로그램 진행 순서를 이해한다. 사용자 함수를 이용한 프로그래밍 기법을 익힌다.
주요 학습 내용 01. 배열 02. 함수
【예제 4-1】array_avg.php 02 배열 이용 합계와 평균 구하기 1 : <? 2 : //배열이용 합계, 평균구하기, 배열의 원소는 0부터 시작 4 : $score[0]=80; $score[1]=90; $score[2]=90; 7 : $score[3]=99; $score[4]=78; 9 : 10 : $sum=0; 11 : for($a=0; $a<=4; $a++) 13 : $sum=$sum+$score[$a]; 15 : 16 : $avg=$sum/5; 18 : echo("과목 점수 : $score[0], $score[1], $score[2], $score[3], $score[4]<br>"); 19 : echo("합계 : $sum, 평균 : $avg <br>"); 20 : ?>
【예제 4-2】array_func_avg.php 02 array( ) 함수 이용한 1차원 배열 1 : <? 2 : // array() 함수를 이용한 배열이용 합계, 평균구하기 4 : $score = array(80, 90, 90, 99, 78); 5 : 6 : $sum=0; 7 : for($a=0; $a<=4; $a++) 9 : $sum=$sum+$score[$a]; 10 : 12 : $avg=$sum/5; 13 : 14 : echo("과목 점수 : $score[0], $score[1], $score[2], $score[3], $score[4]<br>"); 15 : echo("합계 : $sum, 평균 : $avg <br>"); 16 : ?>
【예제 4-3】array_a_b_c.php 02 배열과 for 문 이용 예제 1 : <? 1 : <? 2 : for($i=0; $i<10; $i++) // $a 에 1 ~ 10 입력 3 : $a[$i] = $i+1; 4 : 5 : for($i=0; $i<10; $i++) // $b에 101 ~ 110 입력 6 : $b[$i] = $i+101; 7 : 8 : for($i=0; $i<10; $i++) // $c에 $a와 $b의 합 입력 9 : $c[$i] = $a[$i] + $b[$i]; 10 : 11 : for($i=0; $i<10; $i++) // 화면에 출력 12 : echo "$a[$i] + $b[$i] = $c[$i]<br>"; 13 : ?>
【예제 4-4】array_2d_avg.php 02 2차원 배열 예제 1 : <? 1 : <? 2 : // 2차원 배열을 이용한 3명의 학생에 대한 5과목 합계와 평균 4: $s[0][0]=79; $s[0][1]=90; $s[0][2]=60; $s[0][3]=45; $s[0][4]=80; 10: $s[1][0]=80; $s[1][1]=90; $s[1][2]=90; $s[1][3]=99; $s[1][4]=89; 16: $s[2][0]=45; $s[2][1]=85; $s[2][2]=90; $s[2][3]=99; $s[2][4]=84; 22 : for($a=0; $a<3; $a++) 23 : { $sum=0; 26 : for($b=0; $b<5; $b++) 28 : $sum=$sum+$s[$a][$b]; 30 : 31 : $avg=$sum/5; 32 : $student_num = $a + 1; 33 : echo("$student_num 번째 학생의 성적 => 합계 : $sum, 평균 : $avg <br>"); } 35 : ?>
함수 정의 및 목적 02 함수 정의 : PHP 코드들의 집합으로써 어떤 역할을 수행하는 개체 함수 사용 목적 1) 재사용 : 하나의 함수를 만들어 놓으면 다음부터 그 함수를 계속해서 재사용을 할 수 있다. 예를 들어 평균을 구하는 부분을 하나의 함수로 만들어 놓으면 평균을 구하고 싶을 때마다 그 함수를 사용하면 된다. 2) 모듈화 : 전체 프로그램의 복잡한 문제를 함수 내부의 문제로 국한시켜 프로그램을 체계적으로 쉽게 프로그래밍을 해나갈 수 있게 만들어 준다.
수학 관련 함수 예 03 함수명 역할 abs( ) 절대치 구하기 cos( ) 삼각형의 코사인 값 구하기 date( ) 현재 날짜 구하기 ceil( ) 올림 값 구하기 floor( ) 내림 값 구하기 round( ) 반올림 값 구하기 log( ) 로그 값 구하기 max( ) 최대 값 구하기
【예제 4-5】func_plus_2num.php 02 반환 (retuen) 값이 없는 함수 예제 1 : <? 2 : function plus($a, $b) 3 : { 4 : $c = $a + $b; 5 : echo $c; 6 : } 7 : 8 : plus(10, 20); 9 : echo "<br>"; 10 : plus(1000, 3000); 11 : ?> 함수 정의 함수 호출
【예제 4-6】func_plus_2num_ret.php 02 반환 (return) 값을 가지는 함수 예제 1 : <? 2 : function plus($a, $b) 3 : { 4 : $c = $a + $b; 6 : return $c; 7 : } 8 : 9 : $result = plus(10, 20); 10 : echo $result."<br>"; 11 : 12 : $result = plus(1000, 3000); 13 : echo $result."<br>"; 14 : ?> 함수 정의 함수 호출
【예제 4-7】func_bbb.php 02 인자가 세 개인 함수 예제 1 : <? 1 : <? 2 : function bbb($a, $b, $c) 3 : { 4 : $d = $a + $b - $c; 5 : return $d; 6 : } 7 : 8 : $i=10; 9 : $j=20; 10 : $k=30; 11 : $m = bbb($i, $j, $k); 12 : echo $m; 13 : ?> 함수 정의 함수 호출
【예제 4-8】func_hap.php 02 함수 이용 정수 합계 1 : <? 2 : // hap($a, $b) 함수는 $a에서 $b 까지의 합을 구한다. 3 : function hap($a, $b) 4 : { 5 : $sum=0; 6 : while($a <= $b) 7 : { $sum=$sum+$a; 9 : $a++; } 11 : return $sum; 12 : } 14 : $from = 1; 15 : $to = 10; 17 : $total = hap($from, $to); 18 : echo("$from 에서 $to 까지의 합은 $total 입니다.<br>"); 19 : ?>
【예제 4-9】func_park_fee.php 02 함수 이용 입장료 계산 1 : <? 15 : function cal_day_fee($age) // 주간 입장료 구하기 16 : { if ( $age >= 18 ) $money = 20000; 19 : else if ( $age>=7 and $age<=17 ) $money = 15000; 21 : else $money = 0; 23 : 24 : return $money; } 26 : 27 : function cal_night_fee($age) // 야간 입장료 구하기 28 : { if ( $age >= 18) $money = 15000; 31 : else if ($age>=7 and $age<=17 ) $money = 10000; 33 : else $money = 0; 35 : 36 : return $money; }
【예제 4-9】func_park_fee.php 02 함수 이용 입장료 계산(계속) 39 : $age = 30; 40 : $day = "야간"; 41 : 42 : if( $day == "주간" ) 43 : { 44 : $fee = cal_day_fee($age); 45 : } 46 : else 47 : { 48 : $fee = cal_night_fee($age); 49 : } 50 : 51 : echo "때 : $day<br>"; 52 : echo "나이 : $age<br>"; 53 : echo "입장료는 $fee 입니다.<br>"; 54 : ?>
【예제 4-10】func_cal_age.php 02 함수 이용 만 나이 계산 1 : <? 5 : function cal_age($now_year, $now_month, $now_day, $birth_year, $birth_month, $birth_day) 6 : { 7 : if($birth_month < $now_month) 8 : $age= $now_year - $birth_year; 9 : else if($birth_month == $now_month) 10 : { if($birth_day <= $now_day) 12 : $age= $now_year - $birth_year; 13 : else 14 : $age= $now_year - $birth_year-1; 15 : } 16 : else $age= $now_year - $birth_year-1; 19 : return $age; }
【예제 4-10】func_cal_age.php 02 함수 이용 만 나이 계산(계속) 22 : $now_year=2005; $now_month=3; $now_day=10; 25 : 26 : $birth_year=1983; $birth_month=3; $birth_day=30; 29 : 30 : $your_age = cal_age($now_year, $now_month, $now_day, $birth_year, $birth_month, $birth_day); 32 : echo "오늘의 날짜 : $now_year 년 $now_month 월 $now_day 일<br>"; 33 : echo "<br>"; 34 : echo "당신은 $birth_year 년 $birth_month 월 $birth_day 일생 이므로<br>"; 35 : echo "정확한 만나이는 $your_age 살 입니다.<br>"; 36 : ?>