알고리즘 표기방식
그리기 어려우므로 실제 사용시에는 여러가지를 포함해서 몇가지만 사용한다.
대입연산자 사용시 좌변은 메모리번지 이고 우변은 값을 의미한다.
프로그램에서는 나머지 연산자(%)를 사용 가능하지만 알고리즘에서는 나머지 연산자(%)를 사용할 수 없다. 대신 mod라는 나머지 값을 출력하는 함수를 사용한다.
실습 1. 1~10까지 합을 출력하는 알고리즘을 작성해라.
선증감 후처리 방식은 알고리즘에서 많이 사용한다. 반면 선처리 후증감 방식은 프로그램에서 많이 사용한다.
또한 특정값으로
작업을 번갈아가며 수행하는 알고리즘에서 반복작업에 관한 의도를 인지하는것이 중요하다.
예를들어 1-2+3-4+...+99-100을 보면 홀수일때 더하고 짝수일때 빼는 것으로 해석도 가능하지만 수가 연속적으로 나올때 덧셈과 뺄셈을 번갈아가며 수행하는 알고리즘을 작성하는 것이 의도이다. 이것은 생산성, 확장성의 문제이다. 같은 코드를 얼마나 효율적으로 사용이 가능한지를 판단하는 것이다.
따라서 선택구문에서 판별을 하는 것도 1과 0이 아닌 1과 -1로 구분하는 것이 훨씬 효율적이다. 1과 0은 값을 각각 주어야하지만 -1은 *(-1)로 한번에 판별이 가능하기 때문이다.
실습 2. 2~100까지 +, -을 반복하는 알고리즘을 작성해라.
최댓값, 최솟값
알고리즘에서 배열은 '배열명(첨자)'로 적는다. 반면 프로그램에서는 '배열명[첨자]'로 작성한다.
또한 알고리즘에서는 첨자가 1에서 시작하지만, 프로그램에서 첨자는 0에서부터 시작한다.
값을 교환할때 변수는 최소 3개가 필요하다. 만약 변수 2개로만 값을 교환하려고 하면 대입시 바로 값이 지워지기 때문이다.
실습 4. 배열에서 최댓값을 산출하는 알고리즘을 작성해라.
//예스일때 변화하게 그리는 것이 좋다// 반복을 몇번하는지, 수행하는 작업이 무엇인지를 분리해서 생각
양 : 홀수 / 음 : 짝수
소수 : 프라임넘버 : 진정한 숫자 <->합성수 : 소수의 곱으로 표현 가능
소수를 아는 방법은 입력값을 2부터 나머지가 0일때까지 1씩증가시키면서 나눈다. 나누어 떨어졌을때 나누어 떨어진값과 몫이 같다면 소수 아니면 합성수
유일한 짝수 소수는 2 그외의 소수는 전부 홀수
실습 5. 소수인지 합성수인지 판별하는 알고리즘을 작성해라.
실습6 값 5개를 배열로 입력받고 최댓값을 출력하는 프로그램을 작성해라.
실습7 입력값이 소수인지 합성수인지 판별하는 프로그램을 작성해라.
'교육 > Php' 카테고리의 다른 글
Day 30 ( php + Oracle) (0) | 2019.12.30 |
---|---|
Day 30 (php) (0) | 2019.12.30 |
Day 28 (php) (0) | 2019.12.26 |
Day 27 (php) (0) | 2019.12.24 |
Day 25 (Php) (0) | 2019.12.21 |