mi-jung choi department of computer science kangwon national university, korea

33
Mi-Jung Choi Mi-Jung Choi Department of Computer Science Department of Computer Science Kangwon National University, Korea Kangwon National University, Korea 기기 기기기기기

Upload: joben

Post on 14-Jan-2016

55 views

Category:

Documents


3 download

DESCRIPTION

기초 프로그래밍. Mi-Jung Choi Department of Computer Science Kangwon National University, Korea. Hello PHP 구성 (1/2). 기초 프로그래밍. Source Code 모든 PHP 프로그램은 혹은 안에서 사용해야 함 모든 문장은 ; 으로 끝남 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Mi-Jung Choi Department  of Computer Science Kangwon  National University, Korea

Mi-Jung ChoiMi-Jung Choi

Department of Computer ScienceDepartment of Computer Science

Kangwon National University, KoreaKangwon National University, Korea

기초 프로그래밍

Page 2: Mi-Jung Choi Department  of Computer Science Kangwon  National University, Korea

Web ProgrammingPage 2

Source Code

• 모든 PHP 프로그램은 <?PHP … ?> 혹은 <? … ?> 안에서 사용해야 함

• 모든 문장은 ; 으로 끝남

• 웹서버가 www.kangwon.ac.kr 이고 , 파일 이름이 print_test.php 라 하면 ,http://www.kangwon.ac.kr/print_test.php 를 호출

• print 함수의 경우 () 를 생략하기도 함

Hello PHP Hello PHP 구성 구성 (1/2)(1/2)기초 프로그래밍

<?PHP

print (“Hello PHP”);

print “Hello PHP”;

?>

Page 3: Mi-Jung Choi Department  of Computer Science Kangwon  National University, Korea

Web ProgrammingPage 3

수행 결과 (hello1.php)

Hello PHP Hello PHP 구성 구성 (2/2)(2/2)기초 프로그래밍

Page 4: Mi-Jung Choi Department  of Computer Science Kangwon  National University, Korea

Web ProgrammingPage 4

Source Code

• 두 번째 줄에 ; 표기가 빠져 있음

• print 라는 함수가 prin 으로 잘못 코딩되어 있음

Parse error 발생

에러 발생 에러 발생 (1/2)(1/2)기초 프로그래밍

<?PHP

prin “Hello PHP”

?>

Page 5: Mi-Jung Choi Department  of Computer Science Kangwon  National University, Korea

Web ProgrammingPage 5

수행 결과 (hello2.php, hello3.php)

에러 발생 에러 발생 (2/2)(2/2)기초 프로그래밍

Page 6: Mi-Jung Choi Department  of Computer Science Kangwon  National University, Korea

Web ProgrammingPage 6

프로그램에 대한 이해를 돕기 위한 글을 적음 comment1.php

프로그램 작성자 , 프로그램 작성 의도 , 프로그램 동작 형태 등을 적음

주석주석 (Comment) (1/2)(Comment) (1/2)기초 프로그래밍

<?PHP

print “Hello PHP”; // 이 문장은 Hello PHP 를 출력하는 문장입니다

/* 이 문장은 Hello PHP 를

출력하는 문장입니다 . */

?>

C/C++ 와 매우 유사함

• 한 줄 Comment: // 혹은 # 를 사용

• 여러 줄 Comment: /* 표기와 */ 표기 사용

Comment 를 잘 활용하여 프로그램의 가치를 높일 수 있음

Page 7: Mi-Jung Choi Department  of Computer Science Kangwon  National University, Korea

Web ProgrammingPage 7

잘못된 Comment 의 예 (Nesting 이 허용되지 않는 경우 )

comment2.php

주석주석 (Comment) (2/2)(Comment) (2/2)기초 프로그래밍

올바른 Comment 의 예 (Nesting 이 허용되는 경우 ) comment3.php

<?PHP

/* 처음 주석의 시작입니다 .

/* 두번째 주석의 시작입니다 .

두번째 주석의 끝입니다 . */

처음 주석의 끝입니다 . */

?>

<?PHP

/* 처음 주석의 시작입니다 .

// 두번째 주석입니다 .

// 세번째 주석입니다 .

// 네번째 주석입니다 .

처음 주석의 끝입니다 . */

?>

Page 8: Mi-Jung Choi Department  of Computer Science Kangwon  National University, Korea

Web ProgrammingPage 8

변수변수 (Variables) (1/5)(Variables) (1/5)기초 프로그래밍

변수• 정보 ( 값 ) 를 저장

• 이름과 형식을 가지고 있음 (e.g., $age)

PHP 에서 변수의 특성• 변수는 ‘ $’ 문자로 시작한다 .

• 변수의 이름은 영문 대문자 (A-Z), 소문자 (a-z), 숫자 (0-9), ‘_’ 으로 이루어진다 .

• ‘$’ 다음의 첫 문자로 숫자를 사용할 수 없다 .

• PHP 에서는 변수 형을 선언 (declaration) 하지 않고 사용한다 .

PHP 변수의 예$age $cyber21 $Student_Name $a_b_c $_NUMBER

PHP 변수가 아닌 예$21c cyber $Student-id $Tiger@sun

Page 9: Mi-Jung Choi Department  of Computer Science Kangwon  National University, Korea

Web ProgrammingPage 9

변수변수 (Variables) (2/5)(Variables) (2/5)기초 프로그래밍

변수의 종류• 불리언 (Boolean)

• 정수형 (integer)

• 실수형 (floating point numbers, real numbers)

• 문자열 (string)

• 배열 (array)

• 객체 (object)

변수형 강도 (strength)• PHP 는 형 강도가 매우 약하며 , 변수에 할당되는 값에 따라 형이 결정됨• 예 : $totalamount = 300 + 500; // integer type

$totalamount = “hello”; // string type

변수형 변환 (casting)• Casting operator 사용 : (int), (float), (double), (string), (array),

(object)

• 예 : $totalqty = 0;$totalamount = (double)$totalqty;

Page 10: Mi-Jung Choi Department  of Computer Science Kangwon  National University, Korea

Web ProgrammingPage 10

변수변수 (Variables) (3/5)(Variables) (3/5)기초 프로그래밍

변수형 검사 및 설정

• gettype() 함수는 변수형을 스트링 (“integer”, “double”, …) 으로 반환함

• settype() 함수는 변수의 형을 주어진 형으로 바꾸어 줌

• 예 : $a = 56; var_type1.phpprint gettype($a); // integersettype($a, “double”);print gettype($a); // double

변수형 확인 함수 (true or false 를 리턴함 ) var_type2.php• is_array()

• is_double(), is_float(), is_real() // 모두 같은 함수임

• is_long(), is_int(), is_integer() // 모두 같은 함수임

• is_string()

• is_object()

string gettype(mixed var);

bool settype(mixed var, string type);

Page 11: Mi-Jung Choi Department  of Computer Science Kangwon  National University, Korea

Web ProgrammingPage 11

변수변수 (Variables) (4/5)(Variables) (4/5)기초 프로그래밍

변수에 값 대입

<?PHP

$sum = 12 + 23; // integer type

print $sum;

?>

<?PHP

$sum = 12.3 – 42.72; // real(float) type)

print $sum;

?>

Page 12: Mi-Jung Choi Department  of Computer Science Kangwon  National University, Korea

Web ProgrammingPage 12

변수변수 (Variables) (5/5)(Variables) (5/5)기초 프로그래밍

정수형 변수의 표현 (int_rep.php)

<?PHP

$value = 99999999999997;

print $value . “<br>”;

$value = $value + 1; // $value = 99999999999998

print $value . “<br>”;

$value = $value + 1; // $value = 99999999999999

print $value . “<br>”;

$value = $value + 1; // $value = 100000000000000

print $value . “<br>”;

$value = $value + 1; // $value = 100000000000001

print $value . “<br>”;

$value = $value + 1; // $value = 100000000000002

print $value . “<br>”;

?>

Page 13: Mi-Jung Choi Department  of Computer Science Kangwon  National University, Korea

Web ProgrammingPage 13

연산자 및 수식 계산 연산자 및 수식 계산 (1/2)(1/2)기초 프로그래밍

연산자의 종류 및 의미

사용법 의 미

oprd1 + oprd2 orpd1 에 ordp2 를 더하기

oprd1 – orpd2 orpd1 에서 ordp2 를 빼기

oprd1 * orpd2 orpd1 에 ordp2 를 곱하기

orpd1 / orpd2 orpd1 에서 ordp2 를 나누기

orpd1 % orpd2 orpd1 에서 ordp2 를 나눈 나머지

Page 14: Mi-Jung Choi Department  of Computer Science Kangwon  National University, Korea

Web ProgrammingPage 14

연산자 및 수식 계산 연산자 및 수식 계산 (2/2)(2/2)기초 프로그래밍

사칙 연산자와 나머지 연산자의 사용 예 oprd.php

<?PHP

$result = 9 + 5;

print “9 + 5 = $result<br>”;

$result = 9 – 5;

print “9 – 5 = $result<br>”;

$result = 9 * 5;

print “9 * 5 = $result<br>”;

$result = 9 / 5;

print “9 / 5 = $result<br>”;

$result = 9 % 5;

print “9 % 5 = $result<br>”;

?>

Page 15: Mi-Jung Choi Department  of Computer Science Kangwon  National University, Korea

Web ProgrammingPage 15

기타 연산자 기타 연산자 (1/2)(1/2)기초 프로그래밍

증가 연산자 , 감소 연산자

<?PHP

$temp++; // $temp = $temp + 1;

--$i; // $i = $i – 1;

$k++; // $k = $k + 1;

?>

+= -= *= /= %=

(e.g., $temp += 3; $temp = $temp + 3;)

대입 연산자

Page 16: Mi-Jung Choi Department  of Computer Science Kangwon  National University, Korea

Web ProgrammingPage 16

기타 연산자 기타 연산자 (2/2)(2/2)기초 프로그래밍

증가 연산자의 사용 예 (inc_dec.php)

<?PHP

$temp = 1;

if($temp++ == 1) print "temp in the 1st if() is 1";

else print "temp in the 1st if() is 2";

$temp = 1;

if(++$temp == 1) print ", and temp in 2nd if() is 1.";

else print ", and temp in the 2nd if() is 2.";

?>

Page 17: Mi-Jung Choi Department  of Computer Science Kangwon  National University, Korea

Web ProgrammingPage 17

스트링 연산자스트링 연산자기초 프로그래밍

Concatenation 을 수행하는 “ .” 연산자 사용

두 문자열을 연결하는 연산자임 (concat.php)

<?

$city = “in Chunchon”;

$name1 = “Kangwon ”;

$name2 = “National University “;

print $name1.$name2.$city;

?>

Page 18: Mi-Jung Choi Department  of Computer Science Kangwon  National University, Korea

Web ProgrammingPage 18

수학적 함수 수학적 함수 (1/2)(1/2)기초 프로그래밍

삼각함수 (sin, cos, …) 는 기본적으로 Radian 사용 (2 = 360)

로그함수 log() 는 기본적으로 자연 로그 ( 밑이 e) 이며 , 대수 로그 (밑이 10) 는 log10() 을 사용한다 .

삼각함수의 사용 예 (sin_cos1.php)

<?PHP $result = sin(M_PI / 6); print “sin(30) = $result<br>”; $result = cos(M_PI / 6); print “cos(30) = $result<br>”; $result = tan(M_PI / 6); print “tan(30) = $result<br>”; $result = asin(0.5); print “asin(0.5) = $result<br>”; $result = acos(0.866025); print “acos(0.866025) = $result<br>”; $result = atan(0.57735); print “atan (0.57735) = $result<br>”;?>

Page 19: Mi-Jung Choi Department  of Computer Science Kangwon  National University, Korea

Web ProgrammingPage 19

수학적 함수 수학적 함수 (2/2)(2/2)기초 프로그래밍

Degree 값 (360 도 기준 값 ) 사용 deg2rad() 함수 활용 sin_cos2.php

log(), log10(), sqrt() 사용 예 sin_cos2.php

<?PHP

$degree = 30;

$radian = deg2rad($degree);

$result = sin($radian);

print “sin(30) = $result”;

?>

<?PHP

$result = log (10);

print “log(10) = $result<br>”;

$result = log10 (10);

print “log10(10) = $result<br>”;

$result = sqrt (49);

print “sqrt(49) = $result”;

?>

Page 20: Mi-Jung Choi Department  of Computer Science Kangwon  National University, Korea

Web ProgrammingPage 20

Bitwise Bitwise 연산자연산자기초 프로그래밍

사용법 이 름 의 미

orpd1 & orpd2 AND orpd1 과 orpd2 의 비트 모두 1 이면 연산의 결과는 1 이다 .

orpd1 | orpd2 OR orpd1 또는 orpd2 의 비트가 1 이면 연산의 결과는 1 이다 .

orpd1 ^ orpd2 XOR 한 Operand 의 비트는 1 이고 나머지 Operand의 비트가 0 이면 연산의 결과는 1 이다 .

~orpd1 NOT orpd1 의 비트가 0 이면 연산의 결과는 1 이고 , oprd1 의 비트가 1 이면 연산의 결과는 0 이다 .

orpd1 << orpd2 Shift Left orpd1 을 왼쪽으로 orpd2 번 Shift 한다 .

orpd1 >> orpd2Shift Right

orpd1 을 오른쪽으로 orpd2 번 Shift 한다 .

사용 예 bitwise.php

Page 21: Mi-Jung Choi Department  of Computer Science Kangwon  National University, Korea

Web ProgrammingPage 21

연산자 우선순위연산자 우선순위기초 프로그래밍

결합성 연산자left ,

left or

left xor

left and

left = += -= *= /= .= %= != ~= <<= >>=

left ?:

left ||

left &&

left |

left ^

left &

non-associative == !=

non-associative < <= > >=

left << >>

left + - .

left * / %

right ! ~ ++ -- (int) (double) (string) (array) (object) @

right [

non-associative new

Page 22: Mi-Jung Choi Department  of Computer Science Kangwon  National University, Korea

Web ProgrammingPage 22

if-else if-else 구문 구문 (1/2)(1/2)기초 프로그래밍

주어진 조건에 따라서 서로 다른 문장을 수행

문법

if(condition)

statement;

if(condition)

{

statement1;

statement2;

}

if(condition)

statement;

else

statement;

if(condition1)

statement;

elseif(condition2)

statement;

elseif(condition3)

statement;

elseif(condition4)

statement;

else

statement;

Page 23: Mi-Jung Choi Department  of Computer Science Kangwon  National University, Korea

Web ProgrammingPage 23

if-else if-else 구문 구문 (2/2)(2/2)기초 프로그래밍

if-else 구문의 예 (ifelse.php)

<?PHP

$temp1 = 1;

$temp2 = 2;

if($temp1 == 1 && $temp2 == 1)

print "condition of if() is true.";

elseif($temp1 == 1 && $temp2 == 2) {

print "condition of elseif() is true.<br>";

print "temp 1 is 1 and temp2 is 2.";

} else

print "condition of else is true.";

?>

Page 24: Mi-Jung Choi Department  of Computer Science Kangwon  National University, Korea

Web ProgrammingPage 24

비교 연산자 비교 연산자 (1/2)(1/2)기초 프로그래밍

연산자 의 미

== 같다 (equal).

!= 같지 않다 (not equal).

< 작다 (less than).

> 크다 (greater than).

<= 작거나 같다 (less than or equal to).

>= 크거나 같다 (greater than or equal to).

===동일하다 (identical). 두 Operand 가 서로 같고 형식 (type)이 같다 .

Page 25: Mi-Jung Choi Department  of Computer Science Kangwon  National University, Korea

Web ProgrammingPage 25

비교 연산자 비교 연산자 (2/2)(2/2)기초 프로그래밍

<?PHP $a = 123; $b = 456;

if ($a == $b) print “ 두 값이 같습니다 .<br>”; if ($a != $b) print “ 두 값이 같지 않습니다 .<br>”; if ($a < $b) print “$a 값이 $b 값보다 작습니다 .<br>”; if ($a > $b) print “$a 값이 $b 값보다 큽니다 .<br>”; if ($a <= $b) print “$a 값이 $b 값보다 작거나 같습니다 .<br>”; if ($a >= $b) print “$a 값이 $b 값보다 크거나 같습니다 .<br>”; if ($a === $b) print “$a 값이 $b 값과 동일합니다 .<br>”;?>

비교 연산자 사용 예 (comp_op.php)

Page 26: Mi-Jung Choi Department  of Computer Science Kangwon  National University, Korea

Web ProgrammingPage 26

삼항 연산자 삼항 연산자 (? :)(? :)기초 프로그래밍

(condition) ? statement_true : statement_false; (cond_st.php)

<?PHP

$num = 5;

(($num % 2) == 1) ? print “ 홀수” : print “ 짝수” ;

print “<br>”;

$num = 8;

(($num % 2) == 1) ? print “ 홀수” : print “ 짝수” ;

?>

Page 27: Mi-Jung Choi Department  of Computer Science Kangwon  National University, Korea

Web ProgrammingPage 27

논리 연산자논리 연산자기초 프로그래밍

사용법 이름 의 미

!orpd notOperand 의 값이 FALSE 이면 연산 결과가 TRUE, Operand 의 값이 TRUE 이면 연산 결과가 FALSE

orpd1 && orpd2 and두 Operand 의 값이 모두 TRUE 일 때만 연산 결과가 TRUE, 그 외에는 연산 결과가 FALSE

orpd1 || orpd2 or두 Operand 의 값이 모두 FALSE 일 때만 연산 결과가 FALSE, 그 외에는 연산 결과가 TRUE

orpd1 xor orpd2 xor하나의 Operand 는 TRUE 나머지 Operand는 FALSE 일 때 연산 결과가 TRUE, 그 외에는 연산 결과가 FALSE사용 예 logicop.php

Page 28: Mi-Jung Choi Department  of Computer Science Kangwon  National University, Korea

Web ProgrammingPage 28

while while 구문 구문 (1/2)(1/2)기초 프로그래밍

문법

while 구문의 사용 예 (while.php)

while (expression)

statement

<?PHP $i = 1; $sum = 0;

while ($i < 101) { $sum = $sum + $i; $i = $i + 1; }

print “The sum from 1 to 100 is $sum”;?>

Page 29: Mi-Jung Choi Department  of Computer Science Kangwon  National University, Korea

Web ProgrammingPage 29

while while 구문 구문 (2/2)(2/2)기초 프로그래밍

무한 루프의 예

<?PHP

$i = 0;

$value = 1;

while (TRUE)

{

$value = $value * 3;

$i = $i + 1;

if ($value > 10000)

break;

}

print $i;

?>

Page 30: Mi-Jung Choi Department  of Computer Science Kangwon  National University, Korea

Web ProgrammingPage 30

do-while do-while 구문구문기초 프로그래밍

문법

do-while 구문의 사용 예 (do-while.php)

do

statement

while (expression);

<?PHP

$i = 1;

do

{

$j = $i * 5;

$i = $i + 1;

print $j. “<br>”;

} while ($j < 100);

?>

Page 31: Mi-Jung Choi Department  of Computer Science Kangwon  National University, Korea

Web ProgrammingPage 31

함수 정의 함수 정의 (1/3)(1/3)기초 프로그래밍

문법

add() 함수의 정의 func_add.php

function func_name($var1, $var2, ...)

{

statements;

}

<?PHP

function add($x, $y)

{

$sum = $x + $y;

return $sum;

}

$result = add (3, 5);

print $result;

?>

Page 32: Mi-Jung Choi Department  of Computer Science Kangwon  National University, Korea

Web ProgrammingPage 32

함수 정의 함수 정의 (2/3)(2/3)기초 프로그래밍

Default Values (func_def.php)

<?PHP

function my_log ($arg, $base = 2)

{

$result = log ($arg) / log ($base);

return $result;

}

print “log2(10) = ” . my_log(10, 2) . “<br>”;

print “log10(100) = ” . my_log(100, 10) . “<br>”;

print “log2(8) = ” . my_log(8, 2) . “<br>”;

print “<br>”;

print “log2(8) = ” . my_log(8) . “<br>”;

?>

Page 33: Mi-Jung Choi Department  of Computer Science Kangwon  National University, Korea

Web ProgrammingPage 33

<?PHP

function my_print ()

{

$args = func_get_args ();

foreach ($args as $arg)

print “ 파라미터 : $arg<br>”;

}

my_print (“Apple”, “Orange”, “Pear”, “Banana”, “Cherry”);

?>

함수 정의 함수 정의 (3/3)(3/3)기초 프로그래밍

func_get_args() 함수 활용 (func_arg.php)