大学でfortranの授業があります。とても面白いのでプログラミングを趣味としてはじめたいのですが、プログラミングで何ができるのですか?ゲームを作ったりとかきくけれど、そういうのでなく、日常で役に立つプログラムとか作るんですか?
授業では演習(主に数値計算)を解くのを目標に勉強しますが、趣味で数値計算はあまりやらないでしょう。

また、どの言語がおすすめですか?

このQ&Aに関連する最新のQ&A

A 回答 (5件)

面白いですね~~。



>大学でfortranの授業があります。
>授業では演習(主に数値計算)を解くのを目標に勉強します

まあ、Fortranは数値計算用ですからね(笑)。基本バッチ式の「あまり優雅とは言えない」プログラミング言語ですし。
一応、背景知識としては、Fortranってあんまり「工夫が無い」んですよ。だからプログラマで愛用している人って殆どいないでしょ。だからこそ逆に「最適化しやすい」「計算が高速だ」と言う特徴があるんですよね(中でややこしい事してないから、です・笑)。
ですから、基本「書き捨て用」ですよね。それ以上の事は出来なくはないけど、あんまり他の用途には向いてない、って事です。
多分、物理でしょ?物理ならFortranって現役ですからね。あるいは数理統計のバッチプログラム書く場合も使うかもしれません。

>どの言語がおすすめですか?

さて、そうするとどの言語なのか?と言うと「Fortranと丸っきり設計が違う」言語を学んだ方が面白いだろ、って事です。似たような言語って既にありませんし、あってもBASICくらいしか無いですしね。それじゃあツマラないだろ、と。
ある種「古典と言える古典」である(と言うか古典過ぎる、か・笑)Fortranやったんだったら、歴史的な流れに乗ってみても面白いかもしれません。

・Common Lisp
・Pascal
・C言語

辺りが面白いかも、ですね。

Common Lispは世界で2番めに古い「高級言語」(Fortranが一番古い)であるLispの一実装です。実は最初のLispはFortranで実装されていた、と思います(確か、Fortranの拡張言語だったんじゃないかしら?)。
これは世界で最初の「関数型言語」で、手続き型言語であるFortranと設計が丸っきり違います。が、数学的なんで、「数値計算が面白い」と思うんでしたら、別種の「数値計算へのアプローチ」が楽しめると思います。
現時点では結構コンパイラとしても優秀なんで、C++くらいの計算速度は稼げますよ。

Pascalも名前くらいは聞いた事があるでしょうか?これは「構造化プログラミング」と言う方法論を具現化する為に設計されたプログラミング言語の雄、ですね(本当はAlgol、って言語がそれだったんですが、複雑過ぎた為にPascalにお株を奪われてしまいました)。
これも現時点ではそんなにメジャーじゃないんですが、言わば「Fortran型のプログラミング言語への反省点」ってのがたくさん詰まっている、んです。そう言う意味ではFortranと対比しながら勉強するには良い言語なのではないでしょうか?

C言語は有名ですよね。Pascalより登場がちょっと遅いんですが、同じく「構造化プログラミング」と言う「Fortran型のプログラミングへの反省点」がある意味詰まっている言語です。
これを敢えて挙げた一つの理由は……、実は名著ながら難しい、と言われている「プログラミング言語C」

http://www.pro.or.jp/~fuji/computerbooks/c/c.ker …

って本がある(著者はC言語の設計者自身)んですが、これは一つ、対象読者として、明らかに「Fortranプログラマを意識して書かれている」部分があるから、なんです。つまり、いきなりCをはじめて「その本(略称K&Rって言います)」使っても難解だ、ってなるんですが、Fortran経験者だったら「すんなり読める」可能性があるんじゃないのかな、と言う事です。
(これが意味する事は、その書籍が上梓された時点では、割にFortranプログラマが多かった、って事です)

んで、多分、数値計算やってる、って事で、ある種理学部関係の方ですよね?
だったら、次のLive-DVDがお薦めです。

KNOPPIX/Math
http://www.knoppix-math.org/wiki/index.php?KNOPP …

これなら中にFortranも入ってますし、Common Lispも入ってますし、当然PascalもCも「既にある」んで、取っ替え引っ替えして遊べますよ(笑)。中に準備されている「プログラミング言語の数」は、Live-DVDでは最大数を誇るんじゃないのかな、って思います。
他にも数学関連の特殊なアプリケーションもてんこ盛りなんで、多分かなり楽しめると思いますよ。そうやって弄くっているうちに、自然と「何かを作りたくなる」んじゃないかな、とか思います。
    • good
    • 0

現在、Web系の開発をしているが、Webの世界だと、Webブラウザでアクセスし現れるあらゆるもので「プログラミング」は使われている、といっていい。



例えば、このサイト。質問を投稿し、回答する。利用者はそれぞれIDとパスワードでログインすると、自分の投稿や回答が現れる。検索フィールドからテキストを書いて送れば、過去の投稿から検索内容にあったものを探して一覧表示してくれる。これ、すべてサーバの裏側で動いているプログラムが行っている。

Google、Yahoo、YouTube、すべて背後で大掛かりなプログラムが動いている。ちょっとクールなビジュアルのWebサイトは、FlashやJavaScriptのプログラムによって構築されている。もっと身近なところであっても、例えば仲間内で掲示板を設置したいとか、ブログを始めようとかいったとき、それらはすべてプログラムによって動いている。

もちろん、既に出来合いのプログラムが多数流通しているから、それらを利用すればそこそこいい感じのものができあがる。が、それは誰でも利用できるものであって、誰もが作れるレベルでしかない。そこから一歩先んじたいと思えば、自分でプログラムを修正したり追加したり、あるいは一から作り上げたりするしかない。Webの世界では、「既に誰もが使っている既製品だけで十分」という人にはプログラミングなんて必要ないが、そこから一歩踏み出したいと思えば、プログラミングの知識が必要となる。

実務とかいうことだと、まぁ例えばオレは自営業だが、経理や申告はOpenOfficeで自分でマクロを組んで入力以外は自動化してる。これもまぁプログラミングだな。あとは、細々したメモとかは、自宅で開発用に起動してるWebサーバにデータベースでまとめてある。これもまぁ、プログラミングか。あとは、仕事で使う定型的な画像処理だのもグラフィックツールのスクリプトで自動化してあるな。そうした細々したプログラミングは、覚えてないほどあちこちでやってるな。おかげで、同じようなことを繰り返し3度はやらないで済む。2度目をやるときには、それを自動化する処理を書いてしまうからな。
    • good
    • 0

Windows 上で動作するちょっとしたツールを自作したりする程度なら、C# がお勧めです。

真面目にやれば本格的なアプリケーションも作れます。
    • good
    • 0

簡単なツールの制作などもできますよ。


世の中様々なソフトウェアがあって、多くの作業はできますが、微妙に自分のしたい操作と異なるようなときに、自分でプログラムが書けると「かゆいところに手が届く」ソフトウェアが作成できます。

なお、数値計算を趣味にしている人は少ないかもしれませんが、私は例えば円周率を求めるプログラムなんかは趣味としても面白いと思います。


今から実用的なプログラム作成を目指されるのであれば、C++やJavaあたりがポピュラーかと思います。

この回答への補足

回答ありがとうございました。
簡単なツールって具体的にはどのようなものですか?

補足日時:2008/12/08 21:43
    • good
    • 0

日常でプログラミングをする事自体がないとは思うけど・・・



あえて言うならExcelとかを使うときのマクロを組むぐらいかな?
簡単な奴で結構便利なの作れるし(全ての行を1ピクセルだけ大きくするとか)

でも、あれはVBAだしね。
基本言語としてはC言語だけど、Javaが出来ればいろんな事は出来ると思う。
簡単な処理,計算系ならParlかな?

そもそも、趣味なんて人によって違うから何とも言えない。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
プログラミングをすること自体は面白く、マスターするとそんなこともできるようになるのか!!という気持ちになれれば、いい趣味になると思いました。
プログラミングに関してまだ知識がなく、趣味にするようなものなのかも分からない感じです^^;

お礼日時:2008/12/08 21:42

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qおすすめのプログラミング言語を教えてください

おすすめのプログラミング言語を教えてください

理由とともに回答をお願いいたします。

ちなみに私はこれからプログラミング言語を覚えようと思っている初学者です。

Aベストアンサー

うーん?
プログラミング言語を覚えることが目的ですか?
そのプログラミング言語で何らかのソフトウェアを作ることが目的ではないのでしょうか?

言語によって得意/不得意があります。
例えばWebアプリケーションを作るなら、Java,Perl,PHP,Ruby,ASP.NETなどの言語を使うのが良いです。
Windowsアプリケーションなら、VB.NET,C,C++,C#.NETの方が良いです。
Flashでゲームを作るのならAdobe Flash(Action Script)になりますし、
機械を直接制御するならCやアセンブラを使います。

何をしたいかによってお勧めが変わってきますので、やりたいことを補足してください。

Qプログラミングの授業で Fortran 90/95 言語を使った 「計

プログラミングの授業で Fortran 90/95 言語を使った 「計算機ソフトウェア」という授業があり,以下のような課題が出ました。
ファイルからデータを入力し,それに対して何らかの処理を行い,結果をファイルに出力する,Fortran 90/95 言語を使ったプログラムを作成する問題を自分で作り,その回答(プログラムリスト)を記述せよ。

ただし,以下の内容を満足すること。

・入出力には書式を用いる
・配列を使用する
・DO文を使用する
・IF文を使用する
・関数またはサブルーチンを使用する
・レポートには,問題の説明と処理の方法の説明を書き,プログラムリストと結果の評価を添えること。


並みのプログラムではダメらしく,(アイデア的にも)素晴らしいプログラムを作らなければならないのですが,まったく良い案が思いつきません。


良かったら,何か,教授をあっと言わせるような,プログラムの案, もし良ければ,プログラムリストの内容(PROGRAM ○○  IMPLICIT NONE ~~~)を添えて回答いただけないでしょうか?

どうか,よろしくお願いします。

プログラミングの授業で Fortran 90/95 言語を使った 「計算機ソフトウェア」という授業があり,以下のような課題が出ました。
ファイルからデータを入力し,それに対して何らかの処理を行い,結果をファイルに出力する,Fortran 90/95 言語を使ったプログラムを作成する問題を自分で作り,その回答(プログラムリスト)を記述せよ。

ただし,以下の内容を満足すること。

・入出力には書式を用いる
・配列を使用する
・DO文を使用する
・IF文を使用する
・関数またはサブルーチンを使用する
・レポート...続きを読む

Aベストアンサー

教授があっと言うかどうか保証はできませんが、適当なパズル、たとえば数独あたりを解くプログラムを作るというのはどうでしょうか。
http://www.nikoli.co.jp/ja/puzzles/sudoku/

Qおすすめのアートプログラミング言語

今僕はアートプログラミングについて興味を持っておりいずれはARやCGなどを駆使したメディアアートを作れるようになりたいと思っています
そこで質問なのですがアートプログラミング初心者おすすめのプログラミング言語はなんでしょうか

processingやopenFramewarksなどの言語があることを知りましたがイマイチどの言語を勉強すべきかわかりません是非教えてください
ちなみに最低限のC言語,javaプログラミングはできます

Aベストアンサー

5流プログラマーの意見(アート系なので技術屋ではない)

回答というより質問返しなのですが、C言語・javaができる方がprocessingやopenFramewarksが必要なのですか??

私自身ProcessingやってますがProcessingってぶっちゃけJavaですよ。Javaのライブラリーとかインポートして動かせます。
Java使いこなせる人なら一日でProcessingなんて使いこなせると思います。


processingやopenFramewarksはどちらかというとインタラクティブアート系でArduinoなんかと一緒に使います。
実行速度が遅いのでProcessingでCGだとそこまで大したことは出来ないです。

目標のレベルが高いのでprocessingやopenFramewarksより普通のプログラミング言語の方が良いかと思います。
私自身Cとか勉強したこと無いのであれですが、多分Processingなんかより役に立つと思います。
実際Cでメディア・アート作っている方もいます。

ARはProcessingで確かある程度できます(ライブラリーがあったはず)けど実際CGはほとんどリアルタイムではできないので適当な3Dソフトで作ってる場合が多いと思います。
CGなどを駆使ししたいのであればMELとかPhythonなんかもありかもしれません、AutodeskMayaなんかのプログラムに役立つので。パーティクル系の3Dソフトも多分プログラム必要なのでそちらに絞るのもありかと。

5流プログラマーの意見(アート系なので技術屋ではない)

回答というより質問返しなのですが、C言語・javaができる方がprocessingやopenFramewarksが必要なのですか??

私自身ProcessingやってますがProcessingってぶっちゃけJavaですよ。Javaのライブラリーとかインポートして動かせます。
Java使いこなせる人なら一日でProcessingなんて使いこなせると思います。


processingやopenFramewarksはどちらかというとインタラクティブアート系でArduinoなんかと一緒に使います。
実行速度が遅いのでProcessingでC...続きを読む

QFortran90/Fortran95→Fortran77

大学の授業でFortranを使ったプログラミングを勉強しています。

以下の文が大学のPCに入っているコンパイラでは問題なくコンパイルでき実行できるのですが、家のPCだとコンパイルすることが出来ません(以下の文でエラーが出ます)
大学のPCの開発環境はFujitsu-FORTRANだと思います(^ ^;
家のPCはSalford FTN77 Personal Edition CompilerとCPad for Salford FTN77を組み合わせて使用しています

なぜエラーがでるのか自分なりに考えた結果、Fortran90/Fortran95のプログラムをFortran77のコンパイラでコンパイルしているからだと思います(全くの勘違いだったら指摘して下さい)

Fortran90/Fortran95の開発環境がフリーで整えばいいのですが、見つからないのでプログラムを修正したいと思います そこで、力を貸していただきたいのです

前置きが長くなりましたが、エラーが出る文は以下のところです
open(8,file='freq_ex13.dat',action='write',status='replace')
ここを、Fortran77のコンパイラでコンパイルできるようにアドバイスを下さい よろしくお願いします

大学の授業でFortranを使ったプログラミングを勉強しています。

以下の文が大学のPCに入っているコンパイラでは問題なくコンパイルでき実行できるのですが、家のPCだとコンパイルすることが出来ません(以下の文でエラーが出ます)
大学のPCの開発環境はFujitsu-FORTRANだと思います(^ ^;
家のPCはSalford FTN77 Personal Edition CompilerとCPad for Salford FTN77を組み合わせて使用しています

なぜエラーがでるのか自分なりに考えた結果、Fortran90/Fortran95のプログラムをFortran77のコンパイラでコン...続きを読む

Aベストアンサー

action='write'を削除してみては?
8番にREADを使わなければいいだけの話です。
http://docs.hp.com/ja/B3908-90007/ch10s65.html#id21163286

Fortranはコンパイラ毎に独自の拡張が相当されてますから、移植する際にはどの拡張が使えるのか把握する必要があります。
使えない場合はコンパイルエラーが返ってくるのですぐにわかりますけど。
http://www.cc.nao.ac.jp/vppman/HTML/japan/langFort/fvp11/fvp00079.htm

参考URL:http://docs.hp.com/ja/B3908-90007/ch10s65.html#id21163286

Qおすすめのプログラミング言語

おすすめのプログラミング言語を教えてください。
今使っているプログラミング言語
ひまわり
なでしこ
プロデル
TTSneo
delphi5

Aベストアンサー

こんにちは。

目的によってオススメって変わると思います。
目的がわかれば的確な回答が付くかもしれません。

Qプログラミングの質問です。学校でLinuxを使ってプログラミングを授業

プログラミングの質問です。学校でLinuxを使ってプログラミングを授業中にかじったのですが、
Windowsでのコンパイルの仕方がわからなくて困っています。
ちなみに下は、私がつくったものです


#include <stdio.h>
int main(void)
{
printf("あほじゃないの?");
return(0);
}

Aベストアンサー

標準ではCコンパイラは付いてないので、別途インストールする必要あります。
コンパイル方法は、そのインストールしたもの毎に違うので、マニュアルとか解説サイト、解説本などで調べてください。

Q初心者がまず始めるプログラミング言語はなにはおすすめ?

こんにちは。
プログラムについてほぼまったくの初心者です。
シューティングゲームやファミコンの頃のようなマリオ系アクションがつくりたいです。また、就職時や特技として履歴書に書ける、役に立つプログラミング言語が学びたいです。
使っているOSはXPです。
C言語というものの初歩の初歩を本で学んだんですが、とても難しく感じ、途中で挫折してしまいました。
たくさんあるプログラミング言語の中から、初心者にもわかりやすくて、また、他のプログラミング言語への勉強にもなるようなプログラミング言語はあるでしょうか?
おねがいします。

Aベストアンサー

> C言語というものの初歩の初歩を本で学んだんですが、とても難しく感じ、途中で挫折してしまいました。

 厳しいですね。C言語の初歩程度でへこたれているようでは「就職時や特技として履歴書に書ける、役に立つプログラミング言語」のマスターはおぼつかないでしょう。が,C言語が初心者向きでないのもまた事実です。

 私としては,初心者には Python をお奨めします:

  ‐汚いプログラムが書きにくいような文法になっており,ああも書ける,こうも書けるといった,初心者を戸惑わせる文法事項が少ない
  ‐綺麗なプログラムを書かないと気持ち悪くなるという,良い習慣が身につく
  ‐文法が比較的単純
  ‐処理系が無料で手に入る
  ‐世界的に広く使われている
  ‐オブジェクト指向もできる

 その後で,JavaScript に進んでみてはいかがでしょうか。毛色の異なるいろいろな言語に慣れておく必要があり,将来,Java, C#, C, C++ などの言語に進むためにも。

 また,視野を広げるために Scheme, Common Lisp や ML, OCaml, Haskell, Erlang など関数言語のたぐいや,Perl や Ruby, sed, Awk などのスクリプト言語の本にも目を通されることをお勧めします(いずれも世界的に有名で,処理系が無料で手に入ります)。

 それから Java や C# などに取り組めば良いと思います。そして,C や C++ も勉強しておく必要があります。

 私自身は,仕事の都合でCOBOLとアセンブラを先に勉強し,かなり後になってC言語を勉強したので,C言語のポインタのどこが難しいのか分かりませんでした(C言語のポインタは簡単です(^^;)。ただし,アセンブラは余力があるときに限り取り組めばよいでしょう(でも,CASL関連の本には目を通しておくべき)。

> C言語というものの初歩の初歩を本で学んだんですが、とても難しく感じ、途中で挫折してしまいました。

 厳しいですね。C言語の初歩程度でへこたれているようでは「就職時や特技として履歴書に書ける、役に立つプログラミング言語」のマスターはおぼつかないでしょう。が,C言語が初心者向きでないのもまた事実です。

 私としては,初心者には Python をお奨めします:

  ‐汚いプログラムが書きにくいような文法になっており,ああも書ける,こうも書けるといった,初心者を戸惑わせる文法事項が少...続きを読む

Q大学の授業でプログラミングが…

今日大学で情報処理ⅳ(プログラミング)の授業を受ける予定だったのですが、
寝坊してしまいこの授業を受けることができませんでした…
一度でも欠席してしまうとわからなくなってしまうと言っていたので、とてもショックです。
今日は第1回目の1時間30分の授業だったのですが、
この初回の1時間30分の知識に追いつくには、
どのような事を独学で勉強しておけばいいのでしょうか?
今日の授業のタイトルは【Visual BASICの起動と利用】です。
どなたか参考URLまたは大まかに流れを説明してくださると、とても幸いです。
よろしくお願い致します。

Aベストアンサー

こんにちは。

大学の授業内容は大学毎に教授毎に違うので、受講した人しか内容は分からないです。
受講した人に聞いてみましょう。
また、教授に直接聞きに行くのもありだと思いますよ。

1回目の授業で【Visual BASICの起動と利用】って内容なら、
 ・講義の全体スケジュール(シラバス)の説明
 ・VBの概要説明(VBって何? 何ができるの?)
 ・パソコンの起動方法説明(アカウントの配布があるかも?)
 ・VBの起動方法説明
 ・VBの操作説明(初歩の初歩のみ)
この程度じゃないでしょうか?
VBの概要や、操作方法は「Visual Basic」でググればスグに見つかります。

Q初めてプログラミングする人のおすすめ言語は?

プログラミングに興味があるので、プログラミングの勉強をしようと思っているのですが、どの言語がおすすめなのでしょうか?
色々なサイトで調べたら、「C」、「C++」、「C#」などが一番メジャーだと書いてありました。初めはプログラムを勉強する人は「C」を選んだ方がいいのでしょうか?
あるサイトでは、今からの時代なら「C++」を勉強した方がいいと書いてありました。
他の方の意見やアドバイスを聞きたいです。
よろしくおねがいいたします。

Aベストアンサー

私はC言語を勧めます。

古い言語であり、有名な言語であるため、参考になる書籍やページはダントツで多いです。これは、最初にプログラミングを勉強する上でかなり大切なことです。

また、C言語ははっきりいって非常に面倒くさい言語です。ですから、あんまり深くつっこまないで、有名な参考書を片手にしながらその通りに進めてみてください。一通り終わって、ある程度のコードがCで組めるようになったら、ほかの言語へ移ることは簡単にできます。
C言語の構文は、ほかの言語にも含まれていることが多々あります。


Webブラウザなどを作りたいとなった時、私が真っ先に思いつくのは「C#」です。(これについては賛否両論あると思いますが)
比較的新しい言語で使い勝手が良く、高機能な開発環境がマイクロソフトによって無料で提供されているなどが理由です。
正直、私は作りたいものに合った言語を最初から学んでも問題ないと思いますので、C#から学んでもいいと思いますが、Cからはある程度移りやすいと思いますので、そこはお好きにどうぞ。

QFORTRANのプログラミング

FORTRANに関する質問です。
今、実験のデータ解析を行っているのですが、
データの数が多くて困っています。
プログラムで行いたいのは、データが1.txt,2.txt......100.txtとあります。
1.txtなどにはテキスト形式で、
2、4
6、8
・・・・・・・・
などデータが入っています。
これら2×4+6×8・・・・・・・・・・
と計算を行い、それらの結果をout1.txt,out2.txt.............out100.txt
と計算を行いたいのですがどのようにプログラムを組めばいいかよくわかりません。
とくにファイルの入出力に関してです。
ご解答よろしくお願いします。

Aベストアンサー

多分、ファイルを切り替えて順次処理するのがわからないのだと思いますが

character*10 infile, otfile
integer*4 nfile, nrec
real x,y,sum

do 500 nfile=1,100
write(infile,*) nfile,".txt"
write(otfile,*) "out",nfile,".txt"
open(10,FILE=infile,MODE="read",ERR=510)
open(20,FILE=otfile,MODE="write")
sum=0.
nrec=0
rewind(10) (笑、今はいらないと思う)
write(20,*) "input file :",infile," output file:",otfile
100 read(10,*,end=110) x,y
nrec=nrec+1
write(20,*) "record:",nrec," x=",x," y=",y
sum=sum+x*y
go to 110
110 continue
close(10)
write(20,*) " sum=",sum
close(20)
500 continue
510 continue
stop
end

とこんな感じかな、OPEN文のオプションの処理系での違いや、シンタックスはチェックしてね

write文でfile名を作成するところは
write(infile,"(I,4H.txt)") nfile
write(otfile,"(3Hout,I,4H.txt") nfile
の方が確実かな

あるいはnfileの桁数で分けるか、手許にテスト環境がないのでちょっと自信ない

なお、fileとして5は暗黙で標準入力、6は同様に標準出力なので避けた方が賢明です。

多分、ファイルを切り替えて順次処理するのがわからないのだと思いますが

character*10 infile, otfile
integer*4 nfile, nrec
real x,y,sum

do 500 nfile=1,100
write(infile,*) nfile,".txt"
write(otfile,*) "out",nfile,".txt"
open(10,FILE=infile,MODE="read",ERR=510)
open(20,FILE=otfile,MODE="write")
sum=0.
nrec=0
rewind(10) (笑、今はいらないと思う)
write(20,*) "input file :",infile," output file:",otfile
100 read(10,*,end=110) x,y
nrec=nrec+...続きを読む


人気Q&Aランキング

おすすめ情報