トップ «前の日記(13-March-2014) 最新 次の日記(15-March-2014)» 編集

つれづれなるままに

これまでの訪問者人
本日の訪問者人  昨日の訪問者人
月齢22.5

AI | AIきりたん | Ast | Beat Saber | CeVIO | Cn | cover | de | Emacs | En | Es | fr | git | html | iPad | It | Just Dance | misc | MMD | MV | NEUTRINO | OVA | PC | PV | Ru | SF | SKK | stable diffusion | SynthesizerV | tDiary | Th | Vocaloid | VRC | VRChat MMD | Vsinger | Vtuber | was | YuNi | お茶 | アニメ | アメリカ | イラスト | オカリナ | カゲプロ | キズナアイ | テレビ | ノベル | ノーベル賞 | ビートセイバー | フィートセイバー | フランス | ラズパイ | ラノベ | 万葉語 | 世界 | 中国 | 予定 | 即売会 | 台湾 | 台風 | 合成してみた | 同人 | 地震 | 宇宙 | 家電 | 展示 | 描いてみた | 政治 | 旅行 | 日記 | 映画 | 時事 | 書道 | 歌ってみた | 歴史 | 海外 | 演奏してみた | 漫画 | 特撮 | 科学 | 英国 | 訃報 | 語学 | 踊ってみた | 陶笛 | 障害 | 音楽 | 飲み |

14-March-2014 ううういい [長年日記]

_ [日記] 神経痛がぁぁ

左の背中から左の小指の先までツーンと激痛が走ります。

ううむ。

かなりつらくなってきました。

このところ残業が多いのですが、その疲労でますますつらくなっています。

_ [PC] I, J, K, L, M, N

何のことかというと、Fortran で暗黙のうちで整数型とされる変数の頭に来る文字。

昔はわざわざ実数型とか整数型とか気にする必要がなかったんですよね。

まぁ、実数型の方は科学技術計算の場合は計算精度のために倍精度にしたりしましたが、その場合は IMPLIICIT REAL*8 (A-H,O-Z)として I~N 以外ではじまる文字列を倍精度になるように定義していたんですよね。

今は implicit none にして暗黙の型宣言をしないで全ての変数を宣言することが推奨されていますが、今だに整数型は I~N ではじまっていないと居心地が悪いです。まぁ、全ての変数の宣言をしなくてはいけないというのは、最近の言語では常識なんですけどね。

perlでもmyでローカル変数を宣言しますよね。

LISPではしないか。

ちなみに、今だにループのカウンターとして I が今だに使われますが、これはFortranで整数型が I~N からはじまる文字列だったことの名残りですね。

     PROGRAM TEST                                                             0000000
     DO 100 I=1,10                                                            0000000
     WRITE(6,1000) I                                                          0000000
 100 CONTINUE                                                                 0000000
1000 FORMAT(1H ,I4)                                                           0000000
     STOP                                                                     0000000
     END                                                                      0000000

みたいのが典型的で古典的なFortranのコードですね。

古い処理系だと、79カラム目から識別用の数字とかコメントとか入っていました。78カラム目までしかコードとして認識されなかったものですから。

今なら、

program test
integer(kind=4) :: i
do i=1,10
  write(6,’(1x,i4)’) i
end do
end

ですかね。今は7カラム目からはじまる固定フォーマットでも78文字の制限をはずすことができますし、この例のようにフリーフォーマットのときは文字数は気にしないですね。(でも私はフリーフォーマットは使わないんですけどねぇ。。。)

Cだと、

#include <stdio.h>
int main() {
  for(int i=0;i<10;i++){
     printf(" %4d\n",i+1);
  }
}

みたいな?

ああ、Cの場合は古いコンパイラーではforの中でint宣言をできないみたいですね。C++としてコンパイルするか、C99の規格としてコンパイルする必要があるんですね。


【PR】ブログへ記事を投稿して報酬ゲット!アフィリエイトのA8.net