목차
- 알고리즘
- 설명
- 결과
- 설명
- 결과
본문내용
DO
x=((ILife-30+I)/XJisu)*2*3.141592654
y=SIN(x)
ey=30*y+31
l(31)=\'|\'
l(ey)=\'*\'
IF(I-I/15*15.EQ.0) THEN
WRITE(*,40) I-31,l,\"CONTINUE?(Yes=0/No=1)\"
READ(*,*) or
IF(or.EQ.1) GOTO 70
ELSE IF(I-31.EQ.0) THEN
WRITE(*,50) \"TODAY\",l,\"CONTINUE?(Yes=0/No=1)\"
READ(*,*) or
IF(or.EQ.1) GOTO 70
ELSE
WRITE(*,60) I-31,l
END IF
40 FORMAT(I5,2X,61A//A)
50 FORMAT(A,2X,61A//A)
60 FORMAT(I5,2X,61A)
END DO
70 WRITE(*,*) \"Do you know the another section?(Yes=0/No=1)\"
READ(*,*) or
IF(or.EQ.0) GOTO 30
STOP
END
FUNCTION DAY(iiii,jj,kk)
S=0
DO I=1,(iiii-1)
IF(I-I/4*4.EQ.0) THEN
IF(I-I/100*100.NE.0) THEN
S=S+366
ELSE
IF(I-I/400*400.EQ.0) THEN
S=S+366
ELSE
S=S+365
END IF
END IF
ELSE
S=S+365
END IF
END DO
IF(iiii-iiii/4*4.EQ.0) THEN
IF(iiii-iiii/100*100.NE.0) THEN
II2=29
ELSE
IF(iiii-iiii/400*400.EQ.0) THEN
II2=29
ELSE
II2=28
END IF
END IF
ELSE
II2=28
END IF
jj=jj-1
DO I=1,jj
IF((I.EQ.1).OR.(I.EQ.3).OR.(I.EQ.5).OR.(I.EQ.7).OR.(I.EQ.8)) THEN
S=S+31
ELSE IF((I.EQ.10).OR.(I.EQ.12)) THEN
S=S+31
ELSE IF((I.EQ.4).OR.(I.EQ.6).OR.(I.EQ.9).OR.(I.EQ.11)) THEN
S=S+30
ELSE
S=S+II2
END IF
END DO
S=S+kk
DAY = S
RETURN
END
설명
우선 함수를 FUNCTION DAY라는 함수를 섰는데 이 함수는 1년1월1일부터 입력한 iiii년 jj월 kk일 까지의 총 일수를 구하는 것입니다. 바이오리듬을 구하기 위해선 총 자신이 살았는 날 수를 알아야 하기 때문에 자신의 생년월일과 오늘의 날짜를 입력하면은 \'DAY(오늘날짜)-DAY(자신의 생년월일)=살아있는 날 수\'의 함수를 이용해 살았는 날 수를 구할 수 있습니다. 오늘의 바이오리듬의 수치는 SIN((자신이 살았는 날수)/XJisu)*2*3.141592654 와 같은 알고리즘으로 주어집니다.
{단, XJisu는 각 바이오리듬 파트별로 주어진 수치(\"신체=23,감성=28,지성=33,지각=38\")입니다.}
그래프적인 문제는 문자형 변수 l(61)을 둡니다.
오늘을 기준으로 한 달전과 한 달 후의 바이오리듬 변화 그래프를 나타내기 위해 1~61(-30일~30일)까지 DO 구문을 사용하였습니다. 우선 l 변수에 모두 아무것도 없는 빈공간\' \'을 입력합니다. 그런 다음 좌표축에 0에 해당하는 l(31)을 \'|\' 로 만들고, 그날의 바이오리듬에 해당하는 곳을 \'*\'가 나오게끔 알고리즘을 만듭니다.
그래프가 그려지면서 도스 환경상 위에 부분을 못보고 다음으로 바로 내려가게 되는 것을 막기위해 중간에 계속 반복할 것인가를 묻는 IF문을 추가하였습니다.
결과
바이오리듬 1
바이오리듬 2
바이오리듬 3
바이오리듬 4
바이오리듬 5
x=((ILife-30+I)/XJisu)*2*3.141592654
y=SIN(x)
ey=30*y+31
l(31)=\'|\'
l(ey)=\'*\'
IF(I-I/15*15.EQ.0) THEN
WRITE(*,40) I-31,l,\"CONTINUE?(Yes=0/No=1)\"
READ(*,*) or
IF(or.EQ.1) GOTO 70
ELSE IF(I-31.EQ.0) THEN
WRITE(*,50) \"TODAY\",l,\"CONTINUE?(Yes=0/No=1)\"
READ(*,*) or
IF(or.EQ.1) GOTO 70
ELSE
WRITE(*,60) I-31,l
END IF
40 FORMAT(I5,2X,61A//A)
50 FORMAT(A,2X,61A//A)
60 FORMAT(I5,2X,61A)
END DO
70 WRITE(*,*) \"Do you know the another section?(Yes=0/No=1)\"
READ(*,*) or
IF(or.EQ.0) GOTO 30
STOP
END
FUNCTION DAY(iiii,jj,kk)
S=0
DO I=1,(iiii-1)
IF(I-I/4*4.EQ.0) THEN
IF(I-I/100*100.NE.0) THEN
S=S+366
ELSE
IF(I-I/400*400.EQ.0) THEN
S=S+366
ELSE
S=S+365
END IF
END IF
ELSE
S=S+365
END IF
END DO
IF(iiii-iiii/4*4.EQ.0) THEN
IF(iiii-iiii/100*100.NE.0) THEN
II2=29
ELSE
IF(iiii-iiii/400*400.EQ.0) THEN
II2=29
ELSE
II2=28
END IF
END IF
ELSE
II2=28
END IF
jj=jj-1
DO I=1,jj
IF((I.EQ.1).OR.(I.EQ.3).OR.(I.EQ.5).OR.(I.EQ.7).OR.(I.EQ.8)) THEN
S=S+31
ELSE IF((I.EQ.10).OR.(I.EQ.12)) THEN
S=S+31
ELSE IF((I.EQ.4).OR.(I.EQ.6).OR.(I.EQ.9).OR.(I.EQ.11)) THEN
S=S+30
ELSE
S=S+II2
END IF
END DO
S=S+kk
DAY = S
RETURN
END
설명
우선 함수를 FUNCTION DAY라는 함수를 섰는데 이 함수는 1년1월1일부터 입력한 iiii년 jj월 kk일 까지의 총 일수를 구하는 것입니다. 바이오리듬을 구하기 위해선 총 자신이 살았는 날 수를 알아야 하기 때문에 자신의 생년월일과 오늘의 날짜를 입력하면은 \'DAY(오늘날짜)-DAY(자신의 생년월일)=살아있는 날 수\'의 함수를 이용해 살았는 날 수를 구할 수 있습니다. 오늘의 바이오리듬의 수치는 SIN((자신이 살았는 날수)/XJisu)*2*3.141592654 와 같은 알고리즘으로 주어집니다.
{단, XJisu는 각 바이오리듬 파트별로 주어진 수치(\"신체=23,감성=28,지성=33,지각=38\")입니다.}
그래프적인 문제는 문자형 변수 l(61)을 둡니다.
오늘을 기준으로 한 달전과 한 달 후의 바이오리듬 변화 그래프를 나타내기 위해 1~61(-30일~30일)까지 DO 구문을 사용하였습니다. 우선 l 변수에 모두 아무것도 없는 빈공간\' \'을 입력합니다. 그런 다음 좌표축에 0에 해당하는 l(31)을 \'|\' 로 만들고, 그날의 바이오리듬에 해당하는 곳을 \'*\'가 나오게끔 알고리즘을 만듭니다.
그래프가 그려지면서 도스 환경상 위에 부분을 못보고 다음으로 바로 내려가게 되는 것을 막기위해 중간에 계속 반복할 것인가를 묻는 IF문을 추가하였습니다.
결과
바이오리듬 1
바이오리듬 2
바이오리듬 3
바이오리듬 4
바이오리듬 5
추천자료
- 이중열 교환기(화학공학실험) 사전&결과보고서입니다.
- 생물화학공학 기말 써머리
- 공학프로그래밍 설계과제 - C와 MATLAB을 사용한 B-mode 영상
- 화학공학기초실험 - 염화칼슘의 용해열 측정
- 화학공학 - Liquid Diffusion [액체 확산 실험]
- 화학공학 실험 - 레올로지 측정
- [보고서] 화학공학 보고서 - 단증류
- 응용화학공학 기초실험 -빛의 편광 특성 실험 보고서
- 화학공학 실험 -폴리스티렌 합성
- 화학공학실험 -기체확산계수의 측정
- 화학공학 기초 실험 -물의 알칼리도와 산도 측정
- 화학공학실험 -표면 장력 실험
- 화학공학 실험 - TiO2의 광촉매에 의한 분자의 분해
소개글