본문 바로가기
Algorithm

[알고리즘] CH01. 알고리즘 의미 및 순서도의 개념, 종류, 기호, 기본형

by Just Do Barro 2021. 3. 2.
 

Icons made by phatplus from www.flaticon.com

[0] 알고리즘이란?

1. 정의

-문제해결의 절차를 위한 명세서

-전체적인 문제해결을 위한 설계도

-설계도는 문제해결을 위한 첫번째 단계부터 마지막 단계까지 모든 순서가 연결되어있는 명세서.

-명세서를 한눈에 알아 볼 수 있도록 한 것이 순서도

2. 자료구조와 알고리즘 관계

자료구조를 만드는 과정은 알고리즘의 일부이다.

자료구조를 어떻게 짜느냐에 따라 알고리즘의 설계도가 달라진다.

3. 예시

알고리즘을 위와 같이 말(문장), 코드(Code), 순서도로 작성할 수 도 있다.

C언어로 코드를 검증해보자

[1] 순서도의 개념

1. 알고리즘

(1) 의미

프로그램을 작성하기 전에 전체적인 설계도를 그려보는 행위

(2) 표현방법

  1. 일상 생활 언어 (~한다)
  2. 고급 언어로 코드 작성 ( C언어, Python 등)
  3. 순서도 (Flow chart)

(3) 사용하는 명령

  1. 만연체 X. 간결, 정확, 중복 없이
  2. 무한반복 안되게 주의. 유한 반복
  3. C언어로 작성 후 프로그램을 실제로 실행시켰을 때 결과값이 나올 수 있는 활용이 되어야함.

2. 순서도

(1) 의미

  • 알고리즘(설계도)는 문제해결을 위한 첫번째 단계부터 마지막 단계까지 모든 순서가 연결되어있는 명세서.
  • 명세서를 한눈에 알아 볼 수 있도록 한 그림이 순서도

(2) 순서도가 알고리즘을 구현하기 용이한 이유

  1. 전체 과정을 한 눈에 확인
  2. 그림이기 때문에 타인에게 전달 용이
  3. 절차가 한 눈에 파악이 가능한 그림을 활용하기에 프로그램 코딩에 유용

[2] 순서도의 종류_3

0. 들어가기

시. 일 . 상

  • 시스템 순서도: 컴퓨터 시스템의 활용

  • 일반 순서도

  • 상세 순서도

    ⇒일반ㆍ상세 순서도 공통점: 실제 프로그래밍 실제로 프로그래밍 과정에서 코드가 어떻게 처리되어서 어떤 절차로 진행되는지 표시

1. 시스템 순서도

(1) 특징

  1. 시스템 순서도의 기호는 모두 시스템과 관련됨.
  2. 컴퓨터 자원을 활용 관련이어서 알고리즘 구현 전 단계에 활용된다.
  3. 실제 프로그래밍(코드작성)이 아니라 컴퓨터 시스템의 활용을 나타낸다.
  4. 시스템 순서를 가장 먼저 작성 후 컴퓨터 자원의 활용을 작성 후 실제 코드 작성은 일반 순서도와 상세 순서도를 이용한다. 특히, 상세 순서도를 사용.

(2) 작성 목적

  1. 연관성 파악

    대상 업무가 전체적으로 보았을 때 컴퓨터 시스템 내부에서 어떻게 일이 이루어지는지 연관성을 파악하기 위해

    -처리과정: 컴퓨터 시스템 내부에서 어떻게 일이 이루어지는 지

    -전체적인 연관성: 컴퓨터 시스템 자원을 어떻게 활용할 것 인지

  2. 프로그램 수, 프로그램 작업순위(우선순위) 파악
    대규모 프로젝트에서 여러 프로그램들을 분류하는 작업이 있는 경우 작성한 프로그램 수, 작업 순위를 파악 목적

  3. 컴퓨터 시스템 내에서 작성한 프로그램들이 어떤 순서로 실행될 것인지, 실행번호, 입력번호, 출력번호를 관리한다.

  4. 컴퓨터 시스템의 자원을 이용하기 때문에 자원의 처리시간을 본다

  5. 컴퓨터를 활용해서 업무를 처리할 때 컴퓨터 시스템이 해야할 전체적인 업무를 파악해야한다.

  6. 기계처리 시간 산출 목적.
    각 시스템 별로, 컴퓨터 별로, 프로그램 별로, 각각 단위별로 어떻게 순서도로 일이 이루어지고, 어떻게 합해지고, 분류되어서 컴퓨터 자원을 이용할 것인지 보여준다.

 

2. 일반 순서도

(1) 특징

  1. 프로그램 전체 내용을 큰 제목들만 개괄적으로 설명
  2. 따라서 일반순서도를 가지고 코드 작성(코딩)하기엔 무리

3. 상세 순서도

(1) 의미

코딩을 하기 위해 자세한 일의 처리 절차를 작성한 순서도

프로그래밍을 하기 위한 가장 구체적인 순서도

(2) 특징

  1. 코드의 업무처리 절차를 상세하게 자세하게 다 표시함.
  2. 한 단계마다 프로그램 코드를 만들면 실제로 프로그램이 구동될 수 있도록한다.
  3. 프로그램을 작성하는 데 최종 검토 자료
  4. 프로그램 전체의 설계를 보여주기 때문에

(3) 작성방법

프로그래밍할 수 있도록 상세히 작성


[3] 순서도의 기본형_3가지

 

순서도의 기본형

0. 들어가기

직. 선. 반

  • 직선형 (순차형): 순서대로 일이 진행되는 형태. 주어진 계산을 하는 프로그램에서 사용
  • 선택형: 사용자가 조건에 따라 선택. 여러가지의 처리절차 필요. 조건문
  • 반복형: 사용자가 선택하는 것이 아닌 어떠한 조건이 만족될 때까지 반복. 조건 따짐.

1. 직선형

순서도의 기본형_(1) 기본형_슈도코드

(1) 사용상황

  • 두 변수들의 값 교환 알고리즘
  • 조건이나 판단이 필요없는 경우
  • 순서대로 순차적으로 문제를 해결하는 경우

(2) 방법

임시로 저장할 변수에 값을 할당한다.

(3) 주의사항

  1. 변수 A = 20. 변수 B = 20 일 떄, A에 B의 20을 집어 넣고, B에 A의 10을 넣으면 되겠네 ⇒ A = B ; 는 B에 넣을 A값이 B의 값으로 덮여씌워 지면서 20이 없어져 버린다.

2. 선택형

순서도의 기본형_(2) 선택형

(1) 사용상황

  • 예금과 출금 처리 알고리즘
  • 조건이 주어지고 상황에 따라서 A를 선택할 수도, B를 선택할 수 도 있다.

(2) 특징

  • 사용자의 선택에 따라 처리과정이 둘로 나뉨

3. 반복형

순서도의 기본형_(3) 반복형

(1) 사용상황

  • 학생들의 총점 계산 알고리즘 (4번 줄)
  • 어떤 작업이 충족될 때까지 반복적으로 수행할 경우

[+] 알고리즘 작성 시 먼저 할 일

(1) 필요한 변수의 개수, 변수의 이름 정하기

4. 참고_용어

  • 분기: 갈래가 둘로 나뉘는 상태

  • 슈도 코드(pseudocode): 순서도를 가장 표준화된 코드형태로 나타낸 것

  • = (대입연산자)

  • ==(등가연산자)

  • EOF (End Of File): C언어에서 운영체제와 상관없이 파일의 끝에 도달했을 떄 언제나 반환하는 특별한 값. -1 나타냄 키보드 입력시 입력의 끝 알려주기 : 윈도우 Ctrl Z Enter, 유닉스 Ctrl D
    [참고]

    코딩의 시작, TCP School

 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com


[4] 순서도 작성 예제

순서도는 약속된 기호, 그림을 활용하는 것이라 어떻게 약속되어있는 지 알아야한다.

1. 최댓값(Max) 구하기

 

직사각형: 대입, 연산 등 처리

마름모: 조건의 내용

2. 순서도에 이용되는 기호

 

(1) 흐름선

기호와 기호를 연결해 주는 선

(2) 단말기호

시작과 끝을 알리는 기호

(3) 처리기호

연산, 값을 대입, 무언가를 실행하고 값을 처리할 경우

(4) 입출력 기호

입력을 받을 때. scanf_s

 

(5) 결합기호 (동그라미)

서로 다른 순서도를 결합시켜주는 기호

A순서도에서 산출된 값 value가 B 순서도의 w 란 자리에 대입되게 하기

(6) 페이지 연결기호

페이지 끝이 A이고, 페이지가 연결되는 부분이 A이다.

(7) 사전에 정의된 처리 기호

A라는 계산 절차가 복잡하여 미리 사전에 따로 만들어 놓고, A 계산을 활용하는 일이 생길 때 기호를 써서 따로 정의된 부분에서 실행 시킨다.

댓글