본문 바로가기
학부 강의 노트/포트란 프로그래밍 (보충예제)

포트란 강좌 :: 프로그래밍 일반

by Dr. STEAM 2022. 5. 31.
반응형

프로그래밍 언어 

고급언어(high-level language) : 인간 중심 언어
  • 기계어나 어셈블리어에 비해 쉽게 사용
  • 이식성이 뛰어남
  예) Fortran, C, Basic, Cobol, Pascal
 

프로그래머가 갖춰야 될 능력

적절한 프로그래밍 능력을 키우기 위해서는 아래와 같은 능력이 필요하다.

  1. 문제의 분석력
  2. 알고리즘 설정 능력
  3. 프로그램 수행 방법
  4. 자료 준비 및 체계적인 자료 처리 방법 선택 능력

프로그램 설계 팁

작성한 코드는 정확하고 읽고 이해하기 쉬워야 한다.  이를 위하여, 아래와 같은 원칙들을 지키길 권고한다. 

1. 단순성과 명확성을 추구한다. 

2. 읽기 쉬운 스타일로 구성

  •     의미있는 지정자 사용하기 
  •     항목 사이에 공백 사용
  •     문단과 블럭 구분이 필요한 모든 곳에 빈 줄을 삽입하라
  •     부분 사이의 관계를 강조하기 위해서 들여쓰기 하라
  •     긴 표현식 보다 짧고 단순한 부분 표현식으로 나누라. 

3. 주석을 잘 활용하여 코딩 단위별로 문서화 한다.

     프로그램 목적, 실행 방법, 알고리즘, 가정들, 프로그래머 이름, 코딩 날짜 및 수정일, 추가적인 정보 및 references

4. 구조화가 잘 구성되어야 한다. 복잡한 문제는 top-down(하향식) 방식으로 코딩한다. 

 

5. 출력에 대해서는 이해하기 쉽도록 표시하라. 

     print *, time     보다     print *, ' Time = ', time 

6. 코딩 작성 이후 test 데이터를 사용하여 반드시 검증해야 한다. 

 

프로그래밍 과정

  1. 문제 분석
  2. 처리방법 결정
  3. 처리 순서 선택
  4. 프로그램 작성
  5. 프로그램 실행
  6. 계산 결과 분석

1. 문제분석

처리해야 하는 문제의 의미를 정확히 이해하고 여러 각도에서 분석해야 됨.

문제 처리 목적이 무엇인가?

입력/출력자료는 어떤 것인가?

결과의 정확도 등은 어떠해야 하는가?

 

2. 처리방법 결정

간단한 공식에 의한 계산은 쉽지만

복잡한 수학식을 요구하는 해석모델은 수치적인 오류를 최소화할 수 있는 수학적 기법들을 결정해야 한다.

 

3. 처리순서 선택

수치연산은 수많은 반복 연산을 요구하기에, 처리순서의 선택이 계산량을 축소하고 결과의 신뢰도를 좌우한다.

따라서 논리적인 처리순서를 선택해야 하고

의사코드(pseudo codoe)나 순서도(flow chart)를 사용한 원시코딩이나, 컴퓨터에서 바로 코드를 작성한다.

 

4. 프로그램 작성

문제 처리순서가 결정되면 업무에 가장 적합한 프로그래밍 언어를 선택하고 코딩을 시작한다. 

이공학 (특히, 대기, 지질, 천문, 토목, 해양 등) 분야는 수치연산을 표현하기에 쉬운 포트란을 많이 사용한다. 

 

5. 프로그램 실행 

프로그램은 작성부터 실행까지 과정에서 오류를 포함할 수 있는데, 이는 디버깅(debugging) 작업을 통해 수정한다. 

코딩은 90%는 디버깅 작업이고, 이 경험이 풍부해야 수준 높은 프로그래머가 될 수 있다.

 

1) Syntax Error (문법 오류) - compile 과정에서 발생

작성한 원시 프로그램은 컴파일러를 사용하여 기계어로 번역(compile)하는 과정을 거친다. 이때 발생하는 오류를 문법적 오류 (syntax error)라고 한다.

문법 오류가 없으면 compile을 통해 목적파일(object file)이 만들어진다. 

 

2) Link Error (연결 오류) - link 과정에서 발생

obj 파일을 라이브러리 등과 연결(link)하여 실행파일(executive file)이 만들게 되는데, 이 과정에서도 발생하는 오류를 연계/연결 오류(link error)라고 한다. 

연결 오류가  없으면, 실행파일이 생성된다.

 

3) Run-time Error (실행 오류) - running 과정에서 발생

실행파일을 수행(run)하면 계산이 실행/완료 된다. 그러나, 문법/연결 오류가 전혀 없더라도 프로그램 자체의 논리적/기술적 모순이 발견되면 실행과정에서도 오류가 나타나는데 이를 실행오류(run time error)라고 한다. 주로 입력자료를 잘 못 다루거나 자료 자체에 오류가 있을 경우 발생할 수 있고, 대부분은 논리적 모순에 의해서 발생한다. 실행 오류는 오류 수정작업 주에 가장 어려운 오류이며, 이 오류가 발생하면 처리방법 및 처리 순서를 (전면) 재검토 해야 한다. 

 

위 1)~3) 전 과정에서 오류가 없는 프로그램이면, 계산은 완료되고 결과는 외부 파일/출력기 등을 통해서 출력된다. 

 

6. 수행결과 분석

Logic Error (논리 오류) - 계산 결과에서 발생

위 1)~3) 전 과정에서 오류가 없는 프로그램이라고 할지라도, 예상하지 못한 결과값을 생산할 수 있다. 이러한 오류를 논리오류(logic error)라고 한다. 이는 잘못된 문제 분석이나 해석방법의 부적절한 선택에 의해서 주로 발생한다. 컴퓨터에 의한 계산이 반드시 올바른 결과가 아니라는 점을 명심해야하고, 계산결과의 옳고 그름을 판단하는 검증은 반드시 프로그래머의 지식 문제이다.

 

 

 

 

 

원시(source) 프로그램

 

프로그래밍 언어로 작성
사용자(프로그래머)가 작성
프로그램을 입력하여 원시파일로 저장
확장자 : .f90
 
 

목적(object) 프로그램

원시파일을 컴파일시 생성
컴파일 : 기계어로 번역
확장자 : .obj

 

 

컴파일 성공 예시

컴파일 에러 예시

 

 

링크(build)

  • –목적 파일을 실행파일로
  • –확장자 : .exe
  •  
728x90
반응형