• 검색 결과가 없습니다.

기초 프로그래밍

N/A
N/A
Protected

Academic year: 2021

Share "기초 프로그래밍"

Copied!
34
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

웹 프로그래밍 및 실습

(Web Programming & Practice)

기초 프로그래밍

문양세

강원대학교 IT 대학 컴퓨터과학전공

(2)

Source Code

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

모든 문장은 ; 으로 끝남

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

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

Hello PHP 구성 (1/2)

기초 프로그래밍

<?PHP

print (“Hello PHP”);

print “Hello PHP”;

?>

(3)

수행 결과 (hello1.php)

Hello PHP 구성 (2/2)

기초 프로그래밍

(4)

Source Code

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

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

 Parse error 발생

에러 발생 (1/2)

기초 프로그래밍

<?PHP

prin “Hello PHP”

?>

(5)

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

에러 발생 (2/2)

기초 프로그래밍

(6)

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

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

주석 (Comment) (1/2)

기초 프로그래밍

<?PHP

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

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

?>

C/C++ 와 매우 유사함

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

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

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

(7)

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

comment2.php

주석 (Comment) (2/2)

기초 프로그래밍

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

<?PHP

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

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

?>

<?PHP

/* 처음 주석의 시작입니다 . // 두번째 주석입니다 . // 세번째 주석입니다 . // 네번째 주석입니다 . 처음 주석의 끝입니다 . */

?>

(8)

변수 (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

(9)

변수 (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;

(10)

변수 (Variables) (3/5)

기초 프로그래밍

변수형 검사 및 설정

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

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

예 : $a = 56;

 var_type1.php

print gettype($a); // integer settype($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);

(11)

변수 (Variables) (4/5)

기초 프로그래밍

변수에 값 대입

<?PHP

$sum = 12 + 23; // integer type print $sum;

?>

<?PHP

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

?>

(12)

변수 (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>”;

?>

(13)

연산자 및 수식 계산 (1/2)

기초 프로그래밍

연산자의 종류 및 의미

사용법 의 미

oprd1 + oprd2

orpd1 에 ordp2 를 더하기

oprd1 – orpd2

orpd1 에서 ordp2 를 빼기

oprd1 * orpd2

orpd1 에 ordp2 를 곱하기

orpd1 / orpd2

orpd1 에서 ordp2 를 나누기

orpd1 % orpd2

orpd1 에서 ordp2 를 나눈 나머지

(14)

연산자 및 수식 계산 (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>”;

?>

(15)

기타 연산자 (1/2)

기초 프로그래밍

증가 연산자 , 감소 연산자

<?PHP

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

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

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

?>

+= -= *= /= %=

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

대입 연산자

(16)

기타 연산자 (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.";

?>

(17)

스트링 연산자

기초 프로그래밍

Concatenation 을 수행하는 “ .” 연산자 사용 두 문자열을 연결하는 연산자임 (concat.php)

<?

$city = “in Chunchon”;

$name1 = “Kangwon ”;

$name2 = “National University “;

print $name1.$name2.$city;

?>

(18)

수학적 함수 (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>”;

?>

(19)

수학적 함수 (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”;

(20)

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 >> orpd2

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

사용 예  bitwise.php

(21)

연산자 우선순위

기초 프로그래밍

결합성 연산자

left ,

left or

left xor

left and

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

left ?:

left ||

left &&

left |

left ^

left &

non-associative == !=

non-associative < <= > >=

left << >>

left + - .

left * / %

(22)

if-else 구문 (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;

(23)

if-else 구문 (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.";

?>

(24)

비교 연산자 (1/2)

기초 프로그래밍

연산자 의 미

== 같다 (equal). [ 형식은 달라도 ok]

!= 같지 않다 (not equal).

< 작다 (less than).

> 크다 (greater than).

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

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

===

동일하다 (identical). 값이 같고 형식 (type) 도 같다 .

(25)

비교 연산자 (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)

(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 “ 짝수” ;

?>

(27)

논리 연산자

기초 프로그래밍

사용법 이름 의 미

!orpd not

Operand 의 값이 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

(28)

while 구문 (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”;

?>

(29)

while 구문 (2/2)

기초 프로그래밍

무한 루프의 예

<?PHP $i = 0;

$value = 1;

while (TRUE) {

$value = $value * 3;

$i = $i + 1;

if ($value > 10000) break;

}

print $i;

?>

(30)

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);

?>

(31)

함수 정의 (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;

(32)

함수 정의 (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>”;

?>

(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)

기초 프로그래밍

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

(34)

Homework #8 ( 실습 #7)

기초 프로그래밍

참조

관련 문서

따라서 주어진 연립방정식의 해를

평행한 두 직선이 다른 한 직선과 만날 때에만 동 위각의 크기가 서로 같으므로 거짓인 명제이다.. 따라서

따라서 주어진 연립방정식의 해를

따라서 프로그래밍 언어의 기본 패턴부터 구조 및 의미 그리고 프로그램의 특성을 이해하는 데에 목적을 두고 있으며 또한 문제를 해결하기 위한 , 방법과

[r]

: 총비용접근법과 일맥상통한 것으로 서로 다른 활동의 비용 패턴이 경우에 따라서는 서로 간에 상충하는 경우가 발생한다고

문법 핵심

 Class label smoothing / 그림 7과 같은 서로 다른 종류의 data augmentation 기법 (bilateral blurring, MixUp, CutMix, Mosaic) / 서로 다른 종류의