ベリラボ

OSS(オープンソースソフトウェア) を主体とした技術検証と小ネタなど

その他

よいプログラム書くために

投稿日:

よいプログラム書くためには、どうすればいいか? を簡単に書きます。

「1から10までの和を求めるプログラムを書け」 という命題にどう書くでしょう。
プログラムを習いたての人に依頼すると、perlだと以下のようなプログラムも多く見かけます。

#!/usr/bin/perl

use strict;

my $n=10;

my $s=0;
for(my $i=1;$i< =$n;$i++) {
$s+=$i;
}

print “s=”,$s,”\n”;

このプログラムで間違いはありません。
でも、このように書くとnが少ない数であればよいのですが、数万や数億のオーダーになった場合や和を求めるだけでなく、多数の項目の平均などを求めようとした場合、ぐっと遅くなってきます。

プログラム上級者であれば、以下のようになります。

#!/usr/bin/perl

use strict;

my $n=10;

my $s=(1+$n)*$n/2;

print “s=”,$s,”\n”;

このように和の公式を使ってnの値によって実行速度に違いがないようにします。

要するに、よいプログラムを書くためには、perlやPHP、Javaなどの言語を学習するだけでは、上達しないということです。色々な知識を学んだ結果としてよいプログラムを書けるようになります。
プログラムを習いたての人は、色々な知識も学習するとよいですよ。

-その他

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

no image

CentOS 5.2 heardbeat インストール、初期設定

ベリラボ – wiki – CentOS52_heardbeatインストール、初期設定. ノード(マシン)間でIPアドレス等のリソースを冗長化するためのheartbeatをイン …

no image

OSS(オープンソースソフトウェア)を中心とした情報を公開していきます。

これまで企業システムを中心にシステム構築、保守、運用に携わってきました。 このノウハウ生かしてOSS(オープンソースソフトウェア)を中心とした技術検証や小ネタをどんどん公開していきたいと思います。 ご …

no image

島田 紳助「15勝14敗の人生でいい」と子供達に熱論

ふとネットをみていると↓こんな記事が目に付いた。 島田 紳助「15勝14敗の人生でいい」と子供達に熱論! | 自分ニュース – 喜怒哀楽のニュースサイト. いままで生きてきて失敗を恐れてあ …

no image

sudoの使い方_別ユーザのコマンドを実行

ベリラボ – wiki – sudoの使い方_別ユーザのコマンドを実行. あるユーザが別ユーザのコマンドを所有者の権限で実行するときのsudo設定例をwikiに書きました。是非 …

no image

Googleマップ の ストリートビュー

 Googleマップ の ストリートビュー機能が関東圏でも使えるようになってます。 Googleマップ http://maps.google.co.jp/ すごいです!! 何がすごいかって、技術的にも …