1 / 31

04 장 배열과 함수

04 장 배열과 함수. 배열의 개념 이해 반복문에서의 배열 사용법 1 차원 /2 차원 배열의 구조 함수의 기본 개념 이해 내장함수와 외장함수. 배열 1 차원 배열 2 차원 배열 함수 함수의 이해 함수의 종류 함수의 인자와 반환값. 1.1 1 차원 배열. 배열 사용의 장점 여러 개의 변수를 관리하기 편함 -> 효율적인 프로그래밍 가능. [ 그림 4-1] 1 차원 메모리 공간과 배열의 인덱스. 예제 4-1 배열을 이용한 다섯 과목의 합계와 평균. array_avg.php. 01 <?

Download Presentation

04 장 배열과 함수

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 04장 배열과 함수

  2. 배열의 개념 이해 • 반복문에서의 배열 사용법 • 1차원/2차원 배열의 구조 • 함수의 기본 개념 이해 • 내장함수와 외장함수

  3. 배열 • 1차원 배열 • 2차원 배열 • 함수 • 함수의 이해 • 함수의 종류 • 함수의 인자와 반환값

  4. 1.1 1차원 배열 • 배열 사용의 장점 • 여러 개의 변수를 관리하기 편함 -> 효율적인 프로그래밍 가능 [그림 4-1] 1차원 메모리 공간과 배열의 인덱스

  5. 예제 4-1 배열을 이용한 다섯 과목의 합계와 평균 array_avg.php 01 <? 02 // 배열을 이용한 다섯 과목 점수의 합계와 평균 03 // 배열의 인덱스 값은 0부터 시작한다. 04 05 $score[0]=78; 06 $score[1]=83; 07 $score[2]=97; 08 $score[3]=88; 09 $score[4]=78; 10 11 $sum = 0; 12 for($a=0; $a<=4; $a++) 13 { 14 $sum = $sum + $score[$a]; 15 } 16 17 $avg = $sum/5; 18 19 echo"과목 점수 : $score[0], $score[1], $score[2], $score[3], $score[4]<br> "; 20 echo"합계 : $sum, 평균 : $avg <br> "; 21 ?>

  6. 예제 4-1 배열을 이용한 다섯 과목의 합계와 평균 array_avg.php 실행 결과 $a와 $sum값의 변화 [표 4-1] for문 반복에 따른 $a와 $sum값의 변화

  7. 예제 4-2 array()함수를 이용한 배열 원소값 입력 array_func.php 01 <? 02 // array() 함수를 이용한 03 // 학생 20명이 받은 영어 점수의 합계와 평균 계산 04 05 $eng_score= array(87, 76, 98, 87, 87, 93, 79, 85, 88, 63, 74, 84, 93, 89, 63, 99, 81, 70, 80, 95); 06 07 $sum = 0; 08 09 for($a=0; $a<20; $a++) 10 { 11 $sum = $sum + $eng_score[$a]; // 영어 점수의 누적합 12 } 13 14 $avg= $sum/20;// 평균 계산

  8. 예제 4-2 array()함수를 이용한 배열 원소값 입력 array_func.php 15 16 echo "학생 20명의 영어 점수 : "; 17 for($a=0; $a<20; $a++)// 입력된 영어 점수 출력 18 echo $eng_score[$a]." "; 19 20 echo "<br>"; // 행바꿈 21 22 echo"합계 : $sum, 평균 : $avg"; 23 ?>

  9. 예제 4-3 for문을 이용한 배열 원소값 입력 array_abc.php 01 <? 02 for($i=0; $i<10; $i++) 03 $a[$i] = $i+1; // 배열 $a에 1~10을 저장 04 05 for($i=9; $i>=0; $i--) 06 $b[9-$i] = $i+1; // 배열 $b에 10~1을 저장 07 08 for($i=0; $i<10; $i++) 09 $c[$i] = $a[$i] * $b[$i]; // $a *$b를 곱한 결과 저장 10 11 for($i=0; $i<10; $i++) 12 echo "$a[$i] x $b[$i] = $c[$i]<br>"; 13 ?>

  10. 1.1 1차원 배열 • 버블 정렬을 이용한 배열 원소 정렬 [그림 4-5] 버블 정렬의 개념

  11. 예제 4-4 버블 정렬 bubble_sort.php 01 <? 02 $num = array(15, 13, 9, 7, 6, 12, 19, 30, 28, 26); 03 04 $count = 10;// 배열 원소의 개수를(10) $count에 입력 05 06 echo "정렬되기 전 : "; 07 for ($a=0; $a<10; $a++)// 정렬되기 전 배열 원소 출력 08 echo $num[$a]." "; 09 10 echo "<br>"; 11 12 for($i=$count-2; $i>=0; $i--)// $i는 8~0으로 1씩 감소 13 { 14 for($j=0; $j<=$i; $j++)// $j는 0~$i로1씩 증가 15 { 16 if($num[$j] > $num[$j+1]) 17 { 18 $tmp = $num[$j]; 19 $num[$j] = $num[$j+1]; 20 $num[$j+1] = $tmp; 21 }

  12. 예제 4-4 버블 정렬 bubble_sort.php 22 } 23 } 24 25 echo "오름차순 정렬(버블 정렬) : "; 26 for ($a=0; $a<10; $a++)// 버블 정렬 후 배열 원소 출력 27 echo $num[$a]." "; 28 ?> [참고] 버블 정렬 참고 동영상 - 헝가리안 춤과 함께 보는 버블 정렬 http://www.youtube.com/watch?v=lyZQPjUT5B4

  13. 1.2 2차원 배열 [그림 4-8] 2차원 배열의 메모리 공간과 배열 인덱스

  14. 예제 4-5 2차원 배열을 이용한 합계와 평균 계산 array_2d_avg.php 01 <? 02 // 2차원 배열을 이용하여 세 학생이 받은 다섯 과목 점수의 합계와 평균 계산 03 $score = array(array(88, 98, 96, 77, 63), array(86, 77, 66, 86, 93), array(74, 83, 95, 86, 97)); 04 05 // 입력된 점수와 배열의 인덱스 출력 06 for($i=0; $i<3; $i++) 07 { 08 for($j=0; $j<5; $j++) 09 echo "\$score[$i][$j] = ".$score[$i][$j]."<br>"; 10 11 echo "<br>"; 12 } 13 14 // 각 학생의 합계와 평균 15 for($i=0; $i<3; $i++) 16 { 17 $sum=0; 18

  15. 예제 4-5 2차원 배열을 이용한 합계와 평균 계산 array_2d_avg.php 19 for($j=0; $j<5; $j++) 20 $sum = $sum + $score[$i][$j]; 21 22 $avg = $sum/5; 23 $student_num = $i + 1; 24 echo"$student_num번째 학생의 점수 => 합계 : $sum, 평균 : $avg <br>"; 25 } 26 ?>

  16. 2.1 함수의 이해 • 함수 • 반복해서 사용하는 기능을 하나의 모듈로 만든 것 • 한 행 또는 여러 행으로 구성됨 • 함수의 정의 • 함수의 기능을 프로그램으로 구현한 부분 • 함수의 호출 • 함수의 정의로 프로그램의 흐름이 이동해 구현된 기능을 수행하는 것 • 사용 목적 • 모듈화를 통한 코드 및 프로그램 흐름의 간결화(프로그램 가독성UP) • 재사용성

  17. 예제 4-6 함수의 정의와 호출 aaa_func.php 01 <? 02 function aaa() 03 { 04 echo (“안녕하세요!”); 05 } 06 07 aaa(); 08 ?>

  18. 2.2 함수의 종류 • 내장 함수: 시스템에 존재하는 함수 • 수학, 문자열, 파일, MySQL 데이터베이스 관련 내장 함수 등이 존재 • 외장 함수: 사용자가 정의한 함수 [그림 4-12] PHP 사이트의 내장 함수 설명

  19. 2.2 함수의 종류 • 내장함수 [표 4-2] 수학 관련 내장 함수

  20. 2.2 함수의 종류 • 내장함수 [표 4-3] 문자열 관련 내장 함수

  21. 2.2 함수의 종류 • 내장함수 [표 4-4] 파일 관련 내장 함수

  22. 2.2 함수의 종류 • 내장함수 [표 4-5] MySQL데이터베이스 관련 내장 함수

  23. 예제 4-7 문자열 관련 내장 함수의 사용 예 string_tunc.php 01 <? 02 $tel = "010-2777-3333"; 03 04 $num_tel = strlen($tel); // 문자열의 길이 계산 05 06 echo "strlen() 함수 사용 : $num_tel<br>"; 07 08 $tel1 = substr($tel, 0, 3); // 문자열의 앞에서 문자를 3개 가져옴 09 $tel2 = substr($tel, 4, 4); // 문자열의 4번째부터 문자를 4개 가져옴 10 $tel3 = substr($tel, 9, 4);// 9번째부터 문자를 4개 가져옴 11 12 echo "substr()함수 사용 : $tel1 $tel2 $tel3<br>"; 13 14 $phone = explode("-", $tel); // 하이픈(-)을 기준으로문자열 분리 15 16 echo "explode() 함수 사용 : $phone[0] $phone[1] phone[2]<br>"; 17 ?>

  24. 예제 4-7 문자열 관련 내장 함수의 사용 예 string_tunc.php

  25. 예제 4-8 함수를 이용한 두수의 합 계산 func_plus_2.php 01 <? 02 function plus($a, $b) 03 { 04 $c=$a+$b; 05 echo $c; 06 } 07 08 plus(15, 25); 09 echo "<br>"; 10 plus(3500, 1500); 11 ?>

  26. 예제 4-9 함수를 이용한 두수의 합 계산(반환값 존재) func_plus_2_.php 01 <? 02 function plus($a, $b) 03 { 04 $c = $a + $b; 05 return $c; 06 } 07 08 $result = plus(15, 25); 09 echo $result."<br>"; 10 11 $result = plus(3500, 1500); 12 echo $result; 13 ?>

  27. 예제 4-10 인자가 세 개인 함수 func_bbb.php 01 <? 02 function bbb($a, $b, $c) 03 { 04 $d = $a + $b - $c; 05 return $d; 06 } 07 08 $i=500; 09 $j=200; 10 $k=300; 11 $m = bbb($i, $j, $k); 12 echo $m; 13 ?>

  28. 예제 4-11 함수를이용한 정수의 합계 계산 func_hap.php 01 <? 02 // hap($a, $b) 함수는 $a에서 $b까지의 합을 구한다. 03 04 function hap($a, $b) 05 { 06 $sum=0; 07 while($a<=$b) 08 { 09 $sum=$sum+$a; 10 $a++; 11 } 12 13 return $sum; 14 } 15 16 $from = 1; 17 $to = 100; 18 19 $total = hap($from, $to); 20 echo"$from 에서 $to 까지의 합 : $total"; 21 ?>

  29. 예제 4-12 함수를이용한 만나이 계산 func_man_age.php 01 <? 02 // 오늘 날짜와 생년월일에 따라 만 나이 계산하기 03 function man_age($year, $month, $day, $b_year, $b_month, $b_day) 04 { 05 if($b_month<$month) 06 $age= $year - $b_year; 07 else if($b_month==$month) 08 { 09 if($birth_day<=$now_day) 10 $age= $year - $b_year; 11 else 12 $age= $year - $b_year - 1; 13 } 14 else 15 { 16 $age= $year - $b_year - 1; 17 } 18 return $age; 19 }

  30. 예제 4-12 함수를이용한 만나이 계산 func_man_age.php 20 21 $now_year=2013; 22 $now_month=2; 23 $now_day=10; 24 25 $birth_year=1993; 26 $birth_month=2; 27 $birth_day=9; 28 29 $your_age= man_age($now_year, $now_month, $now_day, $birth_year,$birth_month, $birth_day); 30 31 echo "오늘 날짜 : $now_year년 $now_month월 $now_day일<br>"; 32 echo "생년월일 : $birth_year년 $birth_month월 $birth_day일생<br>"; 33 echo "만 나이 : $your_age세"; 34 ?>

More Related