프로그램을 만든다는 것은 프로그램 언어로 알고리즘을 작성하는 것입니다. 즉 우리가 원하는 내용을 기술하고 원하는 결과를 생성한다는 것인데요. 이때 알고리즘이란 주어진 문제를 어떻게 해결할 것인지에 대한 문제 해결 방법이라고 할 수 있겠습니다. 뼈대를 덧대어 설명하자면 프로그램 알고리즘이란 각종 데이터를 이용해서 사용자가 원하는 결과를 얻어낼 수 있는 프로그램을 구현하는 것을 말합니다.
이 알고리즘 속 명령의 순서를 그림으로 표현한 것이 순서도(flowchart)입니다. 순서도는 다이어그램의 종류 중 하나로 어떤 일을 처리할 때 여러 종류의 상자와 이를 이어주는 화살표를 이용해 흐름의 순서를 기록한 프로세스를 뜻합니다. 이러한 순서도는 여러 분야에서 프로세스나 문제의 분석, 기획, 디자인, 설계나 관리 등에서 폭넓게 활용되고 있습니다.
순서도란
위에서 서술한 바와 같이 순서도란 어떤 결과를 얻기위한 과정(알고리즘)을 그림으로 표현한 것입니다.
이번 설명에서는 프로그램의 알고리즘을 설명할 것이지만 사실 순서도는 우리 주변에서도 어떤 문제를 해결하기 위해 쉽게 만들어 사용하고 있습니다.
몇 가지 예를 간단히 들자면 영화표 구매방법, 세금 혜택 받는 방법, 도서관에서 책 대여하는 방법, 카드 발급받는 방법, 다이어트하는 방법 등을 설명할 수 있겠네요.
컴퓨터 프로그램은 크게 3가지 형태로 구성되어 있으며 각각 순차문,조건문,반복문으로 불립니다.
순차문은 위에서 아래의 진행방향을 기자며 순서대로 진행하는 형태를 뜻합니다.
반복문은 같은 작업을 반복하는 구조이고, 조건문는 둘 중에 하나를 선택해서 실행될 수도 있고 실행되지 않을 수도 있는 구조를 의미합니다.
1번 순차문의 경우 01,02,03이 차례대로 출력되는 결과 값 외에 다른 경우는 없습니다.
2번 조건문의 경우 빨간점의 스위치에 따라서 01,02,04 혹은 01,03,04 가 출력 되겠죠.
3번 반복문의 경우 빨간점의 스위치에 따라 01,03 혹은 01,02,03 혹은 01,02,02,03 혹은 01, 02, 02, .. 02, 03과 같이 02 부분이 여러번 반복될수 있는 결과를 얻게 될것입니다.
지금 까지 설명한 상위 3가지 방법을 이용하여 컴퓨터에서 돌아가는 모든 프로그램을 만들 수 있습니다.
결론을 정리해 보자면 컴퓨터는 3가지문으로 모든 문제를 해결할 수 있는 알고리즘을 구현할 수 있고, 알고리즘은 사람들이 알 아보기 쉽도록 그림으로 그려서 표현할 수 있는데 이를 그림으로 표현한 방식을 바로 순서도(flowchart)라 한다는 것입니다.
순서도 사용방법
순서도에 사용하는 기호는 모양에 따라 의미하는 바가 다릅니다.
입출력, 준비, 서류 같은 다양한 경우가 있는데 보통 직사각형 모양인 처리로 대체해서 기술 합니다.
이번 설명에서도 입출력, 준비, 서류 같은 경우 직사각형 모양인 처리로 대체해서 기술하겠습니다.
왼쪽은 순차문에 해당합니다.
의사코드로 '잠에서 일어난다', '밥을 먹는다' , '이빨을 닦는다' 로 표현 할 수 있으며 이것을 실제 프로그램 코드와 유사한 형태로 작성한다면 p(잠에서 일어난다); p(밥을 먹는다); p(이빨을 닦는다);로 코드 작성이 가능합니다. 이때 p()의 의미는 소괄호 안의 내용을 화면에 출력하라는 의미로 생각하면 되고 모든 실행 단위 끝에는 세미콜론을 붙여야 한다는 점 강조 드리겠습니다.
왼쪽은 조건문에 해당합니다.
의사코드로 '이빨을 닦는다', '일찍 일어났는가', '걸어간다', '자전거를 탄다', '건널목을 건넌다'로 표현할 수 있으며 자바 언어인 if문으로 표현한다면 if문 다음에는 조건식을 포함한 소괄호가 오고 소괄호 안에 조건식이 참인지 거짓 인지에 따라 실행 되는 부분이 달라지기 때문에 참일 경우에 조건식이 포함된 소괄호 다음에 오는 중괄호 블록 부분이 실행이 되고 거짓일 때는 else 다음에 오는 중괄호 블록 부분이 실행되도록 작성해야 합니다.
따라서 조건문에 해당하는 순서도를 프로그램 언어로 기술한 결과는 왼쪽 이미지와 같아집니다.
왼쪽은 반복문에 해당합니다.
의사코드로 '초록색 불인가?', '기다린다', '건널목을 건너간다'로 표현할 수 있으며 프로그램 언어에서 반복문은 while과 for문을 사용하여 작성해야 합니다. 반복문이 무한루프를 돌지 않게 하려면 반드시 초기값, 비교값, 변환값이 있어야 합니다.
while문과 for문을 사용하여 프로그램 코드를 작성하면 왼쪽과 같습니다.
<순서도 예제>
'개발자였던 것 > JAVA 기초' 카테고리의 다른 글
문자의 입력과 출력-Scanner (0) | 2020.03.06 |
---|---|
반복문 (0) | 2020.03.05 |
연산자 (산술/대입/증감/비교/논리/비트/삼항) (0) | 2020.03.03 |
자바의 자료형 정리 (상수/변수/자료형) (2) | 2020.03.02 |
아스키코드와 유니코드 (0) | 2020.03.02 |