의사코드는 프로그래밍이 의사코드 라인을 실제 코드로 변환하는 작업이 되도록 알고리즘의 전체 논리를 설명해야 합니다.
다음 각각에 대해 각 의사코드가 의사코드의 "좋은" 또는 "나쁜" 예로 간주될 수 있는 이유를 논의해 보겠습니다.
예 1.1:
PROGRAM IsEvenOrOdd:
var num = number;
IF (num % 2 === 0)
THEN Print "even";
ELSE Print "odd";
ENDIF;
END.
Q. 우리는 어떻게 생각하나요?
A. 이것은 좋은 예가 아닙니다. 여기서는 일반 영어로 읽어야 할 때 의사 코드에 "var"를 사용하고 있습니다! 또한 조건부에서 자바스크립트 구문 "==="를 사용해서는 안 됩니다. 프로그래머가 아닌 사람도
num % 2 === 0
이 짝수를 나타냄을 알 수 있습니까?
예 1.2:
PROGRAM IsEvenOrOdd:
Read number;
IF (number divided by two has no remainder)
THEN Print the number is even;
ELSE Print the number is odd;
ENDIF;
END.
Q. 우리는 어떻게 생각하나요?
A. 이게 더 낫네요. 영어에 더 가깝습니다. 이는 코드의 세부사항에 얽매이지 않고 우리가 달성하려는 목표와 방법을 명확하게 설명합니다. 코딩을 하지 않는 사람이라도 우리의 논리를 확인하는 데 도움을 줄 수 있습니다. 나머지를 남기지 않고 깔끔하게 2로 나눌 수 있는 숫자가 짝수인가요? 또 뭔가 이상한데?
지금 창의력을 발휘하세요
예 2.1:
Make PB&J Sandwich:
Gather bread, peanut butter and jelly.
Apply peanut butter to slice of bread.
Apply jelly to another slice of bread.
Bring the two slices of bread together.
Eat and enjoy.
Q. 우리는 어떻게 생각하나요?
A. 여기서부터 시작하는 것이 좋습니다. 이는 우리가 따라야 할 훌륭한 지침이며 직관적입니다. 그러나 우리는 아직 어떤 물리적 단계가 필요한지 모릅니다.
잠시 상상해 보세요. 이전에 샌드위치를 만들어 본 적이 없다고 상상해 보십시오. 항상. 첫 번째 샌드위치에 필요한 지침을 생각해 보세요. 컴퓨터에는 실제 메모리가 없습니다. 작업을 시작할 때마다 이전에 수행한 기억이 없습니다. 우리는 매 단계마다, 매번 말해야 합니다. 컴퓨터가 이해할 수 있도록 이를 더 작은 단계로 나누어야 합니다.
예 2.2:
PROGRAM MakePB&JSandwich:
Grab a paper plate;
Open bread container;
Grab bread package;
Untwist bread package;
Open bread bag and remove two slices;
Place slices on paper plate;
Grab a plastic knife;
Open peanut butter jar;
Use knife to scoop out peanut butter;
Apply peanut butter to one slice of bread;
Spread peanut butter on slice;
Place knife on plate;
Close peanut butter jar;
Open jelly bottle;
Squeeze jelly onto second bread slice;
Close jelly bottle;
Place down jelly;
Pick up knife;
Spread jelly on slice;
Bring two slices of bread together;
Cut slices in half down the middle;
Throw knife in the trash;
Pick up one half of sandwich;
Enjoy;
END.
Q. 우리는 어떻게 생각하나요?
A. 이 예제의 순서는 매우 철저합니다! 그러나 우리는 여전히 도구나 재료가 이미 존재한다는 특정 조건을 가정하고 있습니다. 접시가 부족하면 어떻게 되나요? 샌드위치를 얹는 대신 냅킨을 가져갈까요? 젤리가 떨어지면 어떡하지? 샌드위치를 버리실 건가요, 아니면 땅콩버터만 발라 드실 건가요?
컴퓨터는 똑똑하지 않습니다. 조건을 설명하기 위해 단계별 지침을 제공해야 합니다. 그들은 명시적인 지시 없이는 변화에 적응할 수 없습니다. 프로그래밍은 일정 수의 조건이 충족되어야만 완료할 수 있는 일련의 작업입니다.
컴퓨터는 적응할 수 없지만 우리는 적응할 수 있습니다. 의사코드의 첫 번째 단계는 아마도 모든 것을 다루지는 못할 것입니다. 더 많은 정보를 알게 되면 의사 코드를 업데이트하고 리팩터링하기 위해 다시 돌아올 수 있습니다.
의사코드는 단순히 이미 알고 있는 단계를 적는 것이 아닙니다. 문제를 해결하는 데 도움이 되는 도구입니다. 문제를 해결하기 위해 의사 코드를 작성하려면 먼저 문제를 알아야 합니다.
문제 해결에 도움이 될 수 있는 몇 가지 단계는 다음과 같습니다.
마지막으로 우리는 몇 가지 조치를 취합니다. 드디어 코드 작성을 시작합니다. 우리는 계속해서 나아가기 전에 작은 단계를 밟고, 각 단계가 우리가 원하는 것과 기대하는 것을 달성하는지 확인하기 위해 열심히 노력합니다. 한꺼번에 너무 많은 일을 해서 항상 그렇듯이 일이 망가지면 우리는 문제의 원인이 무엇인지 알 수 없습니다. 어느 부분을 믿어야 할지 알 수 없습니다. 인간은 쉬운 승리를 통해 번영합니다. 우리는 앞으로의 진전을 지켜봐야 합니다. 기억하세요. 그것을 사용하십시오. 당신의 승리를 축하하세요.
Q. 이 단계에서 의사코드는 어디에 적합합니까?
A. 세분화하거나 작게 시작하세요
이 프로세스는 반복적입니다. 우리는 계속해서 다른 수준에서 이전 단계를 돌며 반복합니다.
우리는 처음 문제에 접근할 때 큰 그림을 봅니다. "Break it down"은 우리에게 큰 진전을 가져다줍니다. 그런 다음 해당 단계 중 하나를 수행하고 "분해"합니다. 이제 작은 것부터 시작하여 문제를 설명하는 데 도움이 되는 의사 코드를 작성합니다.
의사 코딩은 문제를 식별 하고, 개념적으로 이해하고, 따를 수 있는 작은 단계 로 세분화했음을 증명합니다.
의사코드에 대한 고정된 구문은 없습니다. 명확하고 단순하며 간결하면 됩니다.
막히는 경우 다음 구문을 자유롭게 사용해 보세요.
참조: 의사코드 소개
의사코드의 일반적인 구조
PROGRAM <ProgramName>:
<Do Stuff>
END.
선택: IF/ELSE 문
IF (<Condition>)
THEN <Statements>;
ELSE <Statements>;
ENDIF;
반복: 루프
WHILE (<Condition>)
ENDWHILE;
starter_code/pseudo_code_practice.md의 지침을 따르세요.