Programming/fortran2014. 6. 19. 22:34

FORTRAN 77 supports six data types:

LOGICAL            
boolean (true or false)
CHARACTER          character
INTEGER            integer
COMPLEX            single precision complex number 
REAL               single precision floating point number
DOUBLE PRECISION   double precision floating point number
 
[링크 : http://www.obliquity.com/computer/fortran/datatype.html


complex는 a+ib의 허수 표현으로 ()를 사용하지만 엄밀하게 배열은 아니라고 해야 하려나?
복소수 상수 complex constant이다. 이 때는 (real 또는 integer) 상수 한 쌍을 쉼표(comma)로 분리하고 괄호 (paranthese)로 둘러싸서 나타낸다.

      (2, -3)
      (1., 9.9E-1)
 
첫 번째 숫자는 실수부, 두번째 숫자는 허수부이다.
 
[링크 : http://seismic.yonsei.ac.kr/fortran/expressions.html] ]


문자열은 c가 그러하듯 character형 배열로 선언하면 된다.
Character Arrays

When a dummy argument is a character array the passed-length mechanism can be used in the same way as for a character variable. Every element of the dummy array has the length that was passed in from the actual argument.

For example, a subroutine designed to sort an array of character strings into ascending order might start with specification statements like these:

       SUBROUTINE SORT(NELS, NAMES) 
       INTEGER NELS 
       CHARACTER NAMES(NELS)*(*) 

Alternatively the actual argument can be a character variable or substring. In such cases it usually makes more sense not to use the passed-length mechanism. For example an actual argument declared:
CHARACTER*80 LINE
could be passed to a subroutine which declared it as an array of four 20-character elements:
       SUBROUTINE SPLIT(LINE) 
       CHARACTER LINE(4)*20 

Although this is valid Fortran, it is not a very satisfactory programming technique to use a procedure call to alter the shape of an item so radically.
 
[링크 : http://www.star.le.ac.uk/~cgp/prof77.html

'Programming > fortran' 카테고리의 다른 글

포트란77 문법 테스트  (0) 2014.06.19
fortran 첫 실행 >_<  (0) 2014.06.18
fortran 문법  (0) 2014.06.08
Posted by 구차니
Programming/fortran2014. 6. 19. 22:12
첫줄에 바로 program이라는 키워드를 입력하면 에러가 발생한다.
반드시 7칸 째에 입력해야 한다 -_-a 
또한, 탭으로도 7번 넣어줘도 안되고 반드시 스페이스로 해야한다. 
  1 program circle
  2       real r, area 

$ fort77 simple.f
Error on line 1: illegal continuation card (starts "progra")
   MAIN:
/usr/bin/fort77: aborting compilation 

4칸을 띄울 경우 컴파일 에러가 발생한다.
  7       write (*,*)
  8     + 'Give radius r:' 

$ fort77 simple.f
   MAIN circle:
Error on line 8: nondigit in statement label field "    +"
Error on line 8: unclassifiable statement (starts "")
/usr/bin/fort77: aborting compilation 

5칸 째에는 어떤 문자가 들어가던 상관없지만 문장이 이어짐을 나타내기 위해 +를 주로 쓰는게 좋다고 한다.
  7       write (*,*)
  8      s  'Give radius r:' 

  7       write (*,*)
  8      + 'Give radius r:' 

[링크 : http://seismic.yonsei.ac.kr/fortran/basics.html]


+ 아무래도.. 포트란이 구석기 시대(!) 프로그래밍 언어이다 보니
천공카드로 뚫어 쓰던 관습(?)으로 인해 칸으로 구분을 하는 듯?



[링크 : http://blog.daum.net/osh535/11247020 ]


몇가지 C언어와의 차이점이 C언어는 [행][열] 인데 반해 포트란은 [열][행] 이란 점? 
그런데 메모리 할당상으로도 차이가 있으려나? 

재밌게도 포트란77은 c와 다르다죠. 
dimension a(4,3)이라고 변수가 선언되었다면
a(1,1) a(2,1) a(3,1) a(4,1) a(1,2) a(2,2) ... 순서로 저장됩니다.
포트란9x에서는 row major인지 column major인지 지정할 수 있다는군요.
 
[링크 : https://kldp.org/node/75640

'Programming > fortran' 카테고리의 다른 글

포트란 변수 타입  (0) 2014.06.19
fortran 첫 실행 >_<  (0) 2014.06.18
fortran 문법  (0) 2014.06.08
Posted by 구차니
Programming/fortran2014. 6. 18. 22:41
조금은.. 귀찮아서 대충 날로먹는 글? ㅋㅋ

최소한이 키워드는 이렇게 하이라이팅 되니 천천히 공부를 해봐야겠다. 
일단 c로 시작하면 주석이고..
나머지는 탭이나 스페이스로 넣어 주는데 문법상으로 몇칸을 해야 한다는게 있어서 실험적으로 찾아봐야 익혀질 것 같다.


$ vi simple.f
      program circle
      real r, area

c This program reads a real number r and prints
c the area of a circle with radius r.

      write (*,*) 'Give radius r:'
      read  (*,*) r
      area = 3.14159*r*r
      write (*,*) 'Area = ', area

      stop
      end

$ fort77 simple.f
   MAIN circle:
$ ll
합계 20
drwxrwxr-x  2 minimonk minimonk 4096  6월 18 22:38 ./
drwxr-xr-x 55 minimonk minimonk 4096  6월 18 22:38 ../
-rwxrwxr-x  1 minimonk minimonk 7614  6월 18 22:38 a.out*
-rw-rw-r--  1 minimonk minimonk  267  6월 18 22:38 simple.f

$ ./a.out
 Give radius r:
10
 Area =   314.158997 

칸에 관한 규칙 (Column position rules)

Fortran 77은 정해진 형식이 없이 자유롭게 쓸 수 있는 언어가 아니라 원시 코드라고 하는 source code의 형식에 대한 매우 엄격한 규칙이 있다. 가장 중요한 규칙은 칸 (column)에 관한 규칙이다.
Col. 1    : 빈 칸 또는 설명임을 나타내는 "c" 나 "*"
Col. 2-5  : 문장 label (optional)
Col. 6    : 앞 줄의 연속 (optional)
Col. 7-72 : 문장
Col. 73-80: 일련 번호 (optional, 요즈음은 거의 사용하지 않음)
 
Fortran 77 프로그램의 대부분의 줄은 6 개의 빈칸으로 시작하여 72 번째 칸 이전에 끝나서 문장 영역(statement field)만 사용한다. 반면에 Fortran 90은 형식에 구애받지 않는 free-foramt이 가능하다.

[링크 : http://seismic.yonsei.ac.kr/fortran/basics.html



C언어가 포트란을 많이 계승했다고 하지만
C를 먼저 다룬 입장으로는 포트란이 참 C틱하구나 싶을 정도?
컴파일 이후에 a.out 나오는 걸 보면 참.. 미묘한 느낌이 든다. 

'Programming > fortran' 카테고리의 다른 글

포트란 변수 타입  (0) 2014.06.19
포트란77 문법 테스트  (0) 2014.06.19
fortran 문법  (0) 2014.06.08
Posted by 구차니
Programming/jsp2014. 6. 17. 17:56
심심(?)하진 않고 걍 예전에 실패했던걸 다시 해보는데
csv를 통해 oracle date 포맷을 어떻게 넣을수 있을까 해서

일단 들어있는 녀석을 export 한뒤 다시 import 해보았다.

2014-05-22 01:45:33.0

export 시에 이런식으로 나왔으니 넣을때도 이런식으로 넣으주면 끝!


특이사항으로는
가장 마지막 줄은 입력이 되지 않는 버그(?)가 보였다는 점.
가장 마지막 한 줄은 엔터 쳐서 빈 줄을 추가해주자. 
Posted by 구차니
Programming/fortran2014. 6. 8. 12:18
한번쯤은 봐둬야지 싶었는데..
영손이 안가는 이녀석..

swift관련해서 obejctive-c 이야기에 포트란이 언급되길래 한번 찾아 봄

[링크 : http://seismic.yonsei.ac.kr/fortran/]
[링크 : http://yoonc.tistory.com/40

'Programming > fortran' 카테고리의 다른 글

포트란 변수 타입  (0) 2014.06.19
포트란77 문법 테스트  (0) 2014.06.19
fortran 첫 실행 >_<  (0) 2014.06.18
Posted by 구차니
Programming2014. 6. 8. 11:48
변수는 let과 var로 선언하며 타입을 반드시 선언할 필요는 없는 동적 타입 바인딩 언어이다. 
let varname[ : type]
var varname[ : type] 

대신 암시적 형변환을 지원하지 않으며, 암시적으로 변환하려 할 경우 에러가 발생하게 된다.

[링크 : https://developer.apple.com/.../Swift/Conceptual/Swift_Programming_Language/TheBasics.html]


함수는 컴파일 언어들의 일반적인 형태와 비슷하나 return type이 -> 키워드 뒤에 오게 되며
"tuple" 이라는 개념을 통해 복수개의 값을 리턴할 수 있다.
func fuctionname(type : argname) -> return type
{


return type은 하나의 변수가 될수도
()로 묶어 복수개의 값을 넘겨줄수도 있다
어떻게 보면 클래스나  구조체를 익명으로 사용하는 것으로 흉내낼수 있겠지만

아무래도 문법으로 자원하니 깔끔한듯

[링크: https://developer.apple.com/.../Swift/Conceptual/Swift_Programming_Language/Functions.html]

lisp처럼 nil을 제공한다



 

'Programming' 카테고리의 다른 글

다배장 정수?  (0) 2015.10.21
apple 차세대 언어 swift  (0) 2014.06.03
ARToolKit / openVRML  (0) 2012.12.25
윤년 계산하기  (2) 2012.05.21
TBB/IPP  (2) 2012.02.12
Posted by 구차니
Programming/jsp2014. 6. 4. 10:19
taeyo 등에서 올라온 쉬운(?) 계층형 게시판 로직으로
게시판 그룹번호를 이용해 그룹번호로 정렬함으로서 레벨값을 이용해 계층을 구현한다.
핵심은 group by, order by 이 두가지

[링크 : http://hdm6337.tistory.com/entry/계층형-게시판-알고리즘-댓글-알고리즘]
[링크 : http://blog.naver.com/hyunwoo97/80014015832]
[링크 : http://blog.naver.com/kil0207/140050495431


[링크 : http://darkhorizon.tistory.com/233 ]
[링크 : http://docs.oracle.com/cd/B19306_01/server.102/b14200/queries003.htm]
Posted by 구차니
Programming2014. 6. 3. 22:27
2014 WWDC에서 애플이 objective C를 대체하기 위해 발표한 언어

사람들이나 기사평으로는 파이썬 같다라는데...
전반적으로 동적타입을 자원하는 인터프리터 언어 문법이라는 느낌?

조금더 봐야 겠지만..
솔찍히 애플용 데스크탑/노트북 어플리케이션 과 iOS용 어플 제작을 위한 언어라 쓸일이 있을지는 모르겠네

[링크 : https://developer.apple.com/swift/]
[링크 : https://developer.apple.com/.../documentation/Swift/Conceptual/Swift_Programming_Language/]

'Programming' 카테고리의 다른 글

다배장 정수?  (0) 2015.10.21
swift 문법(함수/변수)  (0) 2014.06.08
ARToolKit / openVRML  (0) 2012.12.25
윤년 계산하기  (2) 2012.05.21
TBB/IPP  (2) 2012.02.12
Posted by 구차니
Programming/jsp2014. 5. 27. 22:08
server.xml 에서  URIEncoding=UTF-8로 추가해주면 된다.
[링크 : http://blog.daum.net/feelsogreat/86]



안넣으면 당연히 UTF-8로 될 줄 알았는데 ISO-8859라니!!!!

How do I change how GET parameters are interpreted?

Tomcat will use ISO-8859-1 as the default character encoding of the entire URL, including the query string ("GET parameters").

There are two ways to specify how GET parameters are interpreted:

  1. Set the URIEncoding attribute on the <Connector> element in server.xml to something specific (e.g. URIEncoding="UTF-8").

  2. Set the useBodyEncodingForURI attribute on the <Connector> element in server.xml to true. This will cause the Connector to use the request body's encoding for GET parameters.

References: Tomcat 7 HTTP ConnectorTomcat 7 AJP Connector

[링크 : http://wiki.apache.org/tomcat/FAQ/CharacterEncoding]



'Programming > jsp' 카테고리의 다른 글

quantumDB csv import / date  (0) 2014.06.17
계층형 게시판 로직  (1) 2014.06.04
스트러츠2 사용시 브라우저 상의 현재 경로얻기 2  (0) 2014.05.27
ajax / innerHTML onload  (0) 2014.05.23
jsp:forward 와 request.sendRedirect()  (0) 2014.05.21
Posted by 구차니
Programming/jsp2014. 5. 27. 10:56
도그고생을 하면서 고민과 고뇌와 검색을 때려보니..
하앍!! 안되면 세션이나 리퀘스트 객체의 attribute 다 출력해봐!!!!
라는 결론에 도달 

<%@ page import="java.util.Enumeration" %>
<%
Enumeration enu = request.getAttributeNames();
while(enu.hasMoreElements())
{
String name = enu.nextElement().toString();
String val = request.getAttribute(name).toString();
out.println("<b>"+name+"</b>:"+val+"<BR>");
} 

[링크 : http://iamafool.tistory.com/88] 

그래서 출력을 때려보니
javax 쪽에서 몇가지 나오는게 있는데

>>> http://localhost:8080/Struts2_board_reply/mboardlist.mu
javax.servlet.include.request_uri:/Struts2_board_reply/tiles/template/menu.jsp
javax.servlet.include.context_path:/Struts2_board_reply
javax.servlet.include.servlet_path:/tiles/template/menu.jsp
javax.servlet.forward.request_uri:/Struts2_board_reply/mboardlist.mu
javax.servlet.forward.context_path:/Struts2_board_reply
javax.servlet.forward.servlet_path:/mboardlist.mu
org.apache.tiles.servlet.context.ServletTilesRequestContext.CURRENT_CONTAINER_KEY:org.apache.tiles.impl.BasicTilesContainer@659c37d0
struts.valueStack:com.opensymphony.xwork2.util.OgnlValueStack@18dec065
org.apache.tiles.AttributeContext.STACK:[org.apache.tiles.BasicAttributeContext@3e79271d, org.apache.tiles.BasicAttributeContext@7c92a617, org.apache.tiles.BasicAttributeContext@e4ec647]
org.apache.tiles.servlet.context.ServletTilesRequestContext.FORCE_INCLUDE:true


http://localhost:8080/Struts2_board_reply/listAction.mu?boardId=user
javax.servlet.include.request_uri:/Struts2_board_reply/tiles/template/menu.jsp
javax.servlet.include.context_path:/Struts2_board_reply
javax.servlet.include.servlet_path:/tiles/template/menu.jsp
javax.servlet.forward.request_uri:/Struts2_board_reply/listAction.mu
javax.servlet.forward.context_path:/Struts2_board_reply
javax.servlet.forward.servlet_path:/listAction.mu
javax.servlet.forward.query_string:boardId=user
struts.request_uri:/Struts2_board_reply/listAction.mu
struts.valueStack:com.opensymphony.xwork2.util.OgnlValueStack@2a8c60ae
struts.view_uri:/board/boardList.jsp 

게시판의 경우 action?boardId= 식으로 추가를 하기에
request_uri와 forward_servlet_path 두개를 합쳐서 적절히 잘라서 써서 해야한다.

<%
  String cpage = request.getAttribute("javax.servlet.forward.servlet_path").toString();
  if (request.getAttribute("javax.servlet.forward.query_string") != null) {
  String cpque = request.getAttribute("javax.servlet.forward.query_string").toString();
  cpage = cpage + "?" + cpque;
  }
  String[] sp = cpage.split("&");
  cpage = sp[0];
%>  

일단 이렇게 하면 액션명부터 쿼리까지 빼내고 사용에 따라 다르겠지만
boardId가 가장 첫 인자라면 첫 인자 까지만 뽑아내서 사용이 가능해진다. 

2014/05/26 - [프로그램 사용/struts2 / tiles] - 스트러츠2 사용시 브라우저 상의 현재 경로얻기 

'Programming > jsp' 카테고리의 다른 글

계층형 게시판 로직  (1) 2014.06.04
jsp get방식 utf-8인데 한글 안될경우  (0) 2014.05.27
ajax / innerHTML onload  (0) 2014.05.23
jsp:forward 와 request.sendRedirect()  (0) 2014.05.21
jsp tomcat 서버가 구동되지 않을 경우  (6) 2014.05.20
Posted by 구차니