IT/프로그래밍
-
[프로그래밍] VS Code 사용기(1)2020.06.06
-
[프로그래밍][펌] 의사코드 (pseudo-code(슈도코드))2020.05.25
-
[C++ STL] Vector2020.03.15
[프로그래밍] VS Code 사용기(1)
VS Code의 첫 인상은 아주 좋은 편집기...
그런데 extension을 깔고 컴파일을 해보는데 너무나도 간단한 컴파일을 함에도 불구하고
헤더 파일을 제대로 읽어들이지를 못한다...
CodeRunner라는 extension을 통해 컴파일을 진행을 많이하는 것 같아서 설치해서 이용해봤지만,

제대로 ""괄호에 있는 상대경로의 헤더파일 경로를 제대로 인지를 못하는 버그?라고 해야할지
설정을 해야하는건지 모르겠다. 헤더파일 위치는 그냥 main.c와 같은 경로에 있는데 말이다.
혹여 VS studio의 프로젝트 파일처럼 HeaderFiles라는 폴더를 만들어줘야하나해서 만들어줘봤지만,
역시나.. 그대로였다. 그냥 gcc main.c Test.c -o Test
이렇게 직접 gcc 명령어를 통해서 컴파일을 진행하면 잘 된다.
아직 VS Code에 대해서 많은 공부가 필요할 것 같다.
'IT > 프로그래밍' 카테고리의 다른 글
[프로그래밍][펌] 의사코드 (pseudo-code(슈도코드)) (0) | 2020.05.25 |
---|---|
[C++ STL] Vector (0) | 2020.03.15 |
[프로그래밍][펌] 의사코드 (pseudo-code(슈도코드))
이 글은 http://users.csc.calpoly.edu/~jdalbey/SWE/pdl_std.html 에 쓰여진 글을 번역하였고, 저질스러운 번역으로 잘못된게 있을 수도 있지만 대략적으로 맞을 것이다.
슈도코드(pseudocode)는 문법 구문의 세부세항에 산만해질 필요없이 설계자가 알고리즘의 로직에 집중할 수 있도록 알고리즘을 묘사하는 정형화된 언어(보통은 영어를 사용)이다. 슈도코드는 완벽을 요구하고 소스코드로 한줄 한줄 대입되기 위해 전체적인 로직을 설명하여야 한다.
보통 슈도코드에 쓰이는 어휘는 구현 domain(영역)이 아니라, 문제 domain의 어휘여야한다. 슈도코드는 문제 domain이 뭔지 알기를 원하거나 해결책이 어떻게 구성되어 있는지 알고 싶은 사람들을 위해 서술한다.
Extract the next word from the line (good)
set word to get next token (poor)
Append the file extension to the name (good)
name = name + extension (poor)
FOR all the characters in the name (good)
FOR character = first to last (ok)
로직은 각각의 loop나 decision의 단계로 분해되야 한다.
예를들어, "Search the list and find the customer with highest balance" 는 너무 모호하다. 왜냐하면 이 표현은 AND loop를 가지고 있고, 실행하는 내재된 decision이 있기 때문이다.
각 Textbook과 설계자들은 자신의 슈도코드 스타일을 가지고 있다.
슈도코드는 컴퓨터가 아니라 다른사람에 의해 읽히기 때문에 엄격한 표기법이 아니다.
Industry에는 일반적인 "standard"가 없다.(보통 사용자가 많은 C나 리스프, 포트란 프로그래밍 언어등의 문법을 본딴 모양이 많다. 엄밀한 묘사가 불필요한 부분에는 자연어가 자유롭게 쓰이기도 한다.)
슈도코드의 '구조화된'부분은 표시법이다.
아래는 표현하기 위한 여섯가지 명확한 구조적인 프로그래밍 구조들이다.
SEQUENCE, WHILE, IF-THEN-ELSE, REPEAT-UNTIL, FOR, and CASE.
아래 세가지 구조는 어떤 적절한 알고리즘을 실행하기 위해서 그리고 기본적인 구조 흐름의 제어를 위해 충분하다.
SEQUENCE 는 선형적인 진행이다. 하나의 작업이 다른 작업의 연속적으로 실행될때
WHILE 은 반복이다. 시작될때 간단한 상태 검사를 한다.
IF-THEN-ELSE 는 선택(결정)이다 두가지 대안의 동작에서 만들어 지는
이러한 구조들로 충분하지만 아래 추가적인 구조는 종종 유용하다. 이 세가지 방식을 더 포함하겠다.
REAPEAT-UNTIL 은 루프이다 끝날 때 상태 검사를 한다.
CASE 는 다양한 결정(가지)수식의 값에 기반한다. CASE는 IF-THEN-ELSE의 일반화이다.
FOR 는"counting" loop이다.
- SEQUENCE
순차적인 제어는 글로써 가리켜진다. 다른 것 동작이후에 하나의 동작으로..
각각의 동작은 그 행 바로 그 자체이다.
그리고 모든 동작은 들여쓰기와 맞추어 조정된다.
동작들은 위에서 아래로 순차적으로 실행된다.
Example (non-computer)
Brush teeth
Wash face
Comb hair
Smile in mirror
Example
READ height of rectangle
READ width of rectangle
COMPUTE area as height times width
Common Action Keywords
Several keywords are often used to indicate common input, output, and processing operations.
Input: READ, OBTAIN, GET
Output: PRINT, DISPLAY, SHOW
Compute: COMPUTE, CALCULATE, DETERMINE
Initialize: SET, INIT
Add one: INCREMENT, BUMP
- IF-THEN-ELSE
주어진 Boolean 상태에 대한 네 가지 키워드(IF, THEN, ELSE and ENDIF)의 사용에 따른 이원선택.
IF condition THEN
sequence 1
ELSE
sequence 2
ENDIF
ELSE 키워드와 sequence 2는 선택적이다.
만약의 상태가 true이면 sequence 1이 아니면 sequence 2가 실행된다
Example
IF HoursWorked > NormalMax THEN
Display overtime message
ELSE
Display regular time message
ENDIF
- WHILE
WHILE 구조는 시작될 때 상태검사를 하는 특정한 루프에 쓰인다.
WHILE과 ENDWHILE에 의해 루프의 시작과 끝은 가리켜진다.
WHILE condition
sequence
ENDWHILE
루프는 상태가 true일때만 진입가능하고, 각 반복마다 sequence가 실행된다. 각 반복문의 상태는 계산되고 참이면 계속 루프가 실행된다.
Example
WHILE Population < Limit
Compute Population as Population + Births - Deaths
ENDWHILE
Example
WHILE employee.type NOT EQUAL manager AND personCount < numEmployees
INCREMENT personCount
CALL employeeList.getPerson with personCount RETURNING employee
ENDWHILE
- CASE
CASE 구조는 다양한 상호배타적인 상태에 기반한 다양한 branch를 가리킨다.
Four keywords, CASE, OF, OTHERS, and ENDCASE
상태는 다양한 대안을 가리키기 위해 사용된다.
CASE expression OF
condition 1 : sequence 1
condition 2 : sequence 2
...
condition n : sequence n
OTHERS:
default sequence
ENDCASE
OTHERS문법과 default sequence는 선택적이다
상태는 보통 숫자와 문자이다.
수식의 값은 statements나 한 개이상의 상태를 명시할 수 있는 다른 표기법을 사용할 수 있다.
Example
CASE Title OF
Mr : Print "Mister"
Mrs : Print "Missus"
Miss : Print "Miss"
Ms : Print "Mizz"
Dr : Print "Doctor"
ENDCASE
Example
CASE grade OF
A : points = 4
B : points = 3
C : points = 2
D : points = 1
F : points = 0
ENDCASE
- REPEAT-UNTIL
이 루프는 WHILE루프와 비슷하다. 위 대신 끝에서 상태검사가 실행되는 것을 제외하고
Two keywords, REPEAT and UNTIL
REPEAT
sequence
UNTIL condition
sequence는 적어도 한번 실행되야 한다. 왜냐하면 상태검사는 한번의 sequence 이후에 실행된다.
condition이 false일때 루프가 반복된다. 루프는 컨디션이 true일때 종료된다.
- FOR
이 루프는 반복적인 명확한 숫자의 반복을 위한 구조. "counting" loop 라고 불린다.
Two keywords, FOR and ENDFOR
FOR iteration bounds
sequence
ENDFOR
이 경우 루프 제약은 명백하게 뜻할 수 있다. 루프를 문제 domain을 사용함으로써 묘사한다.
FOR each month of the year (good)
FOR month = 1 to 12 (ok)
FOR each employee in the list (good)
FOR empno = 1 to listsize (ok)
- NESTED CONSTRUCTS
이 구조는 다른것 안에 내장될 수 있다. 이것은 들여쓰기를 통해 명백해진다.
다른 둘러싸인 구조로부터 들여쓰기로 인해 명백해진다.
SET total to zero
REPEAT
READ Temperature
IF Temperature > Freezing THEN
INCREMENT total
END IF
UNTIL Temperature < zero
Print total
Rapeat 구조안에 IF가 있다.
- INVOKING SUBPROCEDURES
Use the CALL keyword. For example:
CALL AvgAge with StudentAges
CALL Swap with CurrentItem and TargetItem
CALL Account.debit with CheckAmount
CALL getBalance RETURNING aBalance
CALL SquareRoot with orbitHeight RETURNING nominalOrbit
- EXCEPTION HANDLING
BEGIN
statements
EXCEPTION
WHEN exception type
statements to handle exception
WHEN another exception type
statements to handle exception
END

'IT > 프로그래밍' 카테고리의 다른 글
[프로그래밍] VS Code 사용기(1) (0) | 2020.06.06 |
---|---|
[C++ STL] Vector (0) | 2020.03.15 |
[C++ STL] Vector
[C++ STL] vector(벡터)
* Vector(벡터) * 벡터(std::vector)는 동적 배열 구조를 C++로 구현한 것이다. 이것은 C의 배열(빠른 ...
blog.naver.com
http://soen.kr/lecture/ccpp/cpp4/40-1-2.htm
혼자 연구하는 C/C++ by WinApi
40-1-나.삽입과 삭제 요소의 집합을 관리하는 컨테이너에서 삽입과 삭제는 가장 기본적인 동작이다. 각 컨테이너별로 내부적인 구조가 다르기 때문에 삽입, 삭제 방식도 컨테이너별로 다를 수밖에 없다. 그래서 삽입, 삭제 함수는 일반 알고리즘으로 제공되기보다는 컨테이너의 멤버 함수로 제공된다. 다음 두 함수는 벡터의 제일 끝 부분에서 삽입, 삭제를 수행한다. void push_back(const T& x); void pop_back(); push_back은
soen.kr
'IT > 프로그래밍' 카테고리의 다른 글
[프로그래밍] VS Code 사용기(1) (0) | 2020.06.06 |
---|---|
[프로그래밍][펌] 의사코드 (pseudo-code(슈도코드)) (0) | 2020.05.25 |