diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..23baf58 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# 디폴트 무시된 파일 +/shelf/ +/workspace.xml diff --git a/.idea/copyright/Elex_Project.xml b/.idea/copyright/Elex_Project.xml new file mode 100644 index 0000000..72d9189 --- /dev/null +++ b/.idea/copyright/Elex_Project.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml new file mode 100644 index 0000000..ce14878 --- /dev/null +++ b/.idea/copyright/profiles_settings.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Writerside/c.list b/Writerside/c.list new file mode 100644 index 0000000..c4c77a2 --- /dev/null +++ b/Writerside/c.list @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/Writerside/cfg/buildprofiles.xml b/Writerside/cfg/buildprofiles.xml new file mode 100644 index 0000000..a276d4f --- /dev/null +++ b/Writerside/cfg/buildprofiles.xml @@ -0,0 +1,17 @@ + + + + + + + + + true + + + + diff --git a/Writerside/f.tree b/Writerside/f.tree new file mode 100644 index 0000000..95e7fc6 --- /dev/null +++ b/Writerside/f.tree @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Writerside/images/completion_procedure.png b/Writerside/images/completion_procedure.png new file mode 100644 index 0000000..3535a3f Binary files /dev/null and b/Writerside/images/completion_procedure.png differ diff --git a/Writerside/images/completion_procedure_dark.png b/Writerside/images/completion_procedure_dark.png new file mode 100644 index 0000000..a65beb0 Binary files /dev/null and b/Writerside/images/completion_procedure_dark.png differ diff --git a/Writerside/images/convert_table_to_xml.png b/Writerside/images/convert_table_to_xml.png new file mode 100644 index 0000000..2518a64 Binary files /dev/null and b/Writerside/images/convert_table_to_xml.png differ diff --git a/Writerside/images/convert_table_to_xml_dark.png b/Writerside/images/convert_table_to_xml_dark.png new file mode 100644 index 0000000..4716122 Binary files /dev/null and b/Writerside/images/convert_table_to_xml_dark.png differ diff --git a/Writerside/images/new_topic_options.png b/Writerside/images/new_topic_options.png new file mode 100644 index 0000000..bc6abb6 Binary files /dev/null and b/Writerside/images/new_topic_options.png differ diff --git a/Writerside/images/new_topic_options_dark.png b/Writerside/images/new_topic_options_dark.png new file mode 100644 index 0000000..bf3e48d Binary files /dev/null and b/Writerside/images/new_topic_options_dark.png differ diff --git a/Writerside/topics/Array.md b/Writerside/topics/Array.md new file mode 100644 index 0000000..64db03b --- /dev/null +++ b/Writerside/topics/Array.md @@ -0,0 +1,28 @@ +# 배열 + +포트란에서 배열의 첫 번째 인덱스는 1부터 시작됩니다. + +## 배열의 선언 + +배열을 선언하는 방법은 2가지가 있습니다. + +```fortran +! dimension 키워드를 이용하는 방식 +integer, dimension(10) :: array1 + +! 변수명 뒤에 배열의 크기를 전달하는 방식 +integer :: array2(10) +``` + +### 다차원 배열 + +```fortran +real, dimension(10, 10) :: array3 +``` + +### 배열의 인덱스를 명시 + +```fortran +integer :: array4(0:9) +integer :: array5(-5:5) +``` \ No newline at end of file diff --git a/Writerside/topics/Hello-world.md b/Writerside/topics/Hello-world.md new file mode 100644 index 0000000..86b7849 --- /dev/null +++ b/Writerside/topics/Hello-world.md @@ -0,0 +1,14 @@ +# Hello, World + +```fortran +program hello + implicit none + ! This is a Hello world program. + print *, 'Hello, World!' +end program hello +``` + +## 특이사항 + +- 대소문자를 구분하지 않습니다. +- 배열의 첫 번째 인덱스는 1부터 시작됩니다. \ No newline at end of file diff --git a/Writerside/topics/IO.md b/Writerside/topics/IO.md new file mode 100644 index 0000000..3285362 --- /dev/null +++ b/Writerside/topics/IO.md @@ -0,0 +1,28 @@ +# 표준 입출력 + +```fortran +program stdio + implicit none + + character(len=16) :: name + + read (*,*) name + print *, 'Hello, ', name +end program stdio +``` + +## 표준 출력 + +화면에 출력할 때에는 `print`를 사용합니다. + +```fortran +print *, 'Hello, ', name +``` + +## 표준 입력 + +키보드로부터 입력을 받을 때에는 `read`를 사용합니다. + +```fortran +read (*,*) name +``` \ No newline at end of file diff --git a/Writerside/topics/Operator.md b/Writerside/topics/Operator.md new file mode 100644 index 0000000..93c0e64 --- /dev/null +++ b/Writerside/topics/Operator.md @@ -0,0 +1,9 @@ +# 연산자 + +| 연산자 | | | +| --- | --- | --- | +| + | | | +| - | | | +| * | | | +| / | | | +| ** | | | \ No newline at end of file diff --git a/Writerside/topics/String.md b/Writerside/topics/String.md new file mode 100644 index 0000000..863b4a8 --- /dev/null +++ b/Writerside/topics/String.md @@ -0,0 +1,3 @@ +# String + +Start typing here... \ No newline at end of file diff --git a/Writerside/topics/Variable.md b/Writerside/topics/Variable.md new file mode 100644 index 0000000..ca23793 --- /dev/null +++ b/Writerside/topics/Variable.md @@ -0,0 +1,80 @@ +# 변수 + +## 자료형 + +포트란에는 5 종류의 기본 자료형이 있습니다. + +- integer + +- real + +- complex + +- character + +- logical + + +### 정수형 + +### 실수형 + +```fortran +program variables + implicit none + real :: value1 +end program variables +``` + +아래와 같은 방식으로 원하는 부동 소수의 정밀도를 지정해서 사용할 수 있습니다. + +```fortran +program variables + use, intrinsic :: iso_fortran_env, only: sp=>real32, dp=>real64 + ! use, intrinsic :: iso_c_binding, only: sp=>c_float, dp=>c_double + implicit none + + real :: val0 + real(sp) :: val1 ! 단정도 + real(dp) :: val2 ! 배정도 + + val0 = 0. + val1 = 0._sp + val2 = 0._dp + + print *, 'Max = ', huge(val0) + print *, 'Max32 = ', huge(val1) + print *, 'Max64 = ', huge(val2) + +end program variables +``` + +### 복소수형 + +복소수는 실수부와 허수부를 콤마로 구분하고 괄호로 묶어 표현합니다. + +### 문자형 + +문자는 홑 따옴표 또는 쌍 따옴표로 묶어서 표현합니다. + +### 논리형 + +`.true.` 또는 `.false.`값을 가질 수 있습니다. + +## 변수 선언 + +변수는 `자료형 :: 변수명` 형식을 사용해서 정의합니다. 포트란은 대소문자를 구분하지 않으며, 이 규칙은 변수명에도 적용됩니다. 변수명의 길이는 최대 31자까지만 지정할 수 있습니다. + +```fortran +program variables + implicit none + + integer :: count + logical :: isOk + +end program variables +``` + +### implicit none + +기본적으로 포트란에서는, 선언되지 않은 변수를 사용하면 변수명의 첫 번째 문자에 따라 자동으로 변수를 선언합니다. `implicit none`을 선언하면 무조건 변수해야 하도록 지정합니다. \ No newline at end of file diff --git a/Writerside/topics/starter-topic.md b/Writerside/topics/starter-topic.md new file mode 100644 index 0000000..b0af15f --- /dev/null +++ b/Writerside/topics/starter-topic.md @@ -0,0 +1,19 @@ +# Fortran + +## 설치 + +```bash +sudo apt install gfortran +``` + +## 버전 확인 + +```bash +gfortran --version +``` + +## 컴파일 + +```bash +gfortran hello.f90 -o hello +``` \ No newline at end of file diff --git a/Writerside/v.list b/Writerside/v.list new file mode 100644 index 0000000..2d12cb3 --- /dev/null +++ b/Writerside/v.list @@ -0,0 +1,5 @@ + + + + + diff --git a/Writerside/writerside.cfg b/Writerside/writerside.cfg new file mode 100644 index 0000000..56c4b7e --- /dev/null +++ b/Writerside/writerside.cfg @@ -0,0 +1,13 @@ + + + + + + + + + + \ No newline at end of file