IT/프로그래밍

VS Code의 첫 인상은 아주 좋은 편집기...

 

그런데 extension을 깔고 컴파일을 해보는데 너무나도 간단한 컴파일을 함에도 불구하고

 

헤더 파일을 제대로 읽어들이지를 못한다...

 

CodeRunner라는 extension을 통해 컴파일을 진행을 많이하는 것 같아서 설치해서 이용해봤지만,

CodeRunner를 통한 컴파일 시 에러가난다...

제대로 ""괄호에 있는 상대경로의 헤더파일 경로를 제대로 인지를 못하는 버그?라고 해야할지

 

설정을 해야하는건지 모르겠다. 헤더파일 위치는 그냥 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

이 글은 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 

 

 

출처 : https://m.blog.naver.com/PostView.nhn?blogId=lhm0812&logNo=220648381307&proxyReferer=https:%2F%2Fwww.google.com%2F

'IT > 프로그래밍' 카테고리의 다른 글

[프로그래밍] VS Code 사용기(1)  (0) 2020.06.06
[C++ STL] Vector  (0) 2020.03.15

[C++ STL] Vector

2020. 3. 15. 19:04

https://m.blog.naver.com/PostView.nhn?blogId=sang9151&logNo=221092559183&proxyReferer=https%3A%2F%2Fwww.google.com%2F

 

[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

 

+ Recent posts