C言語PART136 自動記憶域期間と静的記憶域期間2008-04-30 Wed 21:04
さっきのプログラムが何も頭を使わなかったので今日はもう一本書きました。
#include int fx = 0; void life_space(){ int ax = 0; static int sx = 0; printf(" %d %d %d \n",ax++,sx++,fx++); } int main(void){ int i; printf(" ax sx fx \n----------\n"); for(i = 0;i < 10;i++){ life_space(); } printf("----------\n"); return 0; } |
C言語PART135 識別子の有効範囲を確認する2008-04-30 Wed 21:03
このプログラムはアルゴリズムとは何の関係も無いので、本のソースをそのまま写しただけです。
#include int x = 700; void print_x(void){ printf("x = %d\n",x); } int main(void){ int i; int x = 800; print_x(); printf("x = %d\n",x); for(i = 0;i < 5;i++){ int x = i*100; printf("x = %d\n",x); } printf("x = %d\n",x); return 0; } |
マイクロソフト、「Vista SP1」の自動配布を停止--「XP SP3」に続いて2008-04-30 Wed 20:35
リンク先
-------------------------------------------------------------------------------- マイクロソフト、「Vista SP1」の自動配布を停止--「XP SP3」に続いて 4月30日8時41分配信 CNET Japan Microsoftは米国時間4月29日、新たに発見された問題を理由に、「Windows Vista Service Pack 1(SP1)」の自動アップデートを停止したことを認めた。 この問題は、「Windows XP Service Pack 3」の提供も延期させており、両OS上での「Microsoft Dynamics Retail Management System(RMS)」の稼働に影響を与える。 Microsoftは、「Windows Vista SP1の自動配布を一時的に停止している」とCNET News.comの取材に対して述べた。同社は、手動によるVista SP1のダウンロードは今後も利用可能にする予定だと付け加えた。MicrosoftはAutomatic Updates経由での同サービスパックのリリースを先週開始している。 Microsoftでは、「Microsoft Dynamics RMSを利用している顧客にSP1をインストールしないよう呼びかけているが、Windows Vista SP1のインストールにより利益を得ることができる顧客が多くいる。そのため、(Windows Update経由での)提供を継続している」と述べている。「Windows XP SP3のリリースを延期したが、予防措置として、また、顧客がWindowsで素晴らしい体験を得られるよう、Vista SP1の自動配布を停止した」(Microsoft) Microsoftは、今回の問題について、「互換性問題」と述べるにとどめている。 ----------------------------------------------------------------------------- 実はつい最近、私のVistaが入っているノートで「SP1にアップデート出来るのでしてください」的な内容の通知?みたいなものが来ていたんですが、先月のニュースにあった「デバイスの互換性」が気になってアップデートしなかったんですよね。 結果的に正解だったようです。 XPの方もしばらく様子見かな。 |
自作プログラムStruts2.0 ?action.java2008-04-30 Wed 01:24
どうしようかずっと考えていたのですが、やっぱり公開することにしました。
というのも、このブログへ来る方はプログラミングに関するキーワードで来ている方が多いようなので、公開することで参考になる面があれば良いかなと思ったのです。 コード中の?の部分はカスタマイズして遊んでみて下さい(これだけでは勿論動きませんが)。 勿論このコード以外にもjspファイルやxmlファイルがあるのですがソースをそのまま載せる事が出来ない状態でどうしようか検討中です(これはちょっと無理かもしれないです)。 ちなみにこのプログラムは2007年末から2008年初頭にかけてIT業界に入るための面接で見せる為に作ったものです。 さらにもう一点、実はこれと動作が全く同じEJB3.0版もあるのでそちらも暇を見ながら載せていきます。 改めてソースを見て"現時点で一番"改良していきたいと思う点はSQLの部分をストアドプロシージャにしてサーバー上に置くことかな。 package ?.?; import javax.naming.*; import javax.sql.*; import java.sql.*; import org.apache.struts2.config.Result; //Resultアノテーションを使うのに必要 /*Resultアノテーションを使って次の遷移先を指定する このクラスは?.?パッケージに属しているので コンテキストルート直下にあるJSPを呼び出すには ファイル名の前に"/"を付ける*/ @Result("/kekka.jsp") public class ?Action { //アノテーションを使う場合、クラス名は「****Action」としなければいけない /*入力フォームから送られてきたパラメータは フィールドを宣言してセッターとゲッターを 記述しておけば勝手に値がセットされる*/ private DataSource ds; private Integer year; private Integer month; private Integer day; private String kekka; private String pattern1; private String pattern2; public Integer getYear() { return year; } public void setYear(Integer year) { this.year = year; } public Integer getMonth() { return month; } public void setMonth(Integer month) { this.month = month; } public Integer getDay() { return day; } public void setDay(Integer day) { this.day = day; } public String getKekka() { return kekka; } public void setKekka(String kekka){ this.kekka = kekka; } public String getPattern1(){ return pattern1; } public void setPattern1(String pattern1){ this.pattern1 = pattern1; } public String getPattern2(){ return pattern2; } public void setPattern2(String pattern2){ this.pattern2 = pattern2; } public String execute(){ //デフォルトではメソッド名はexecuteで引数なしで戻り値の型はSringになる try{ StringBuilder sb = new StringBuilder(); final int MONTHS = 12; int a = day-1; //リソースアノテーションが使えないので通常の方法でDBに接続 InitialContext ic = new InitialContext(); ds = (DataSource)ic.lookup("java:comp/env/jdbc/datasource"); Connection con = ds.getConnection(); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery("SELECT ? FROM ? WHERE ?="+year+" AND ?="+month); rs.next(); a += rs.getInt(1); if(a>=61){ a -= 60; } if(a>=1 && a<=10){ sb.append("?"); }else if(a>=11 && a<=20){ sb.append("?"); } else if(a>=21 && a<=30){ sb.append("?"); } else if(a>=31 && a<=40){ sb.append("?"); } else if(a>=41 && a<=50){ sb.append("?"); } else{ sb.append("?"); } if(year%2==0){ sb.append("?"); } else{ sb.append("?"); } if(a>=1 && a<=10 && year%2==0 && year%MONTHS==2){ sb.append("?"); }else if(a>=1 && a<=10 && year%2==1 && year%MONTHS==3){ sb.append("?"); }else if(a>=11 && a<=20 && year%2==0 && year%MONTHS==0){ sb.append("?"); }else if(a>=11 && a<=20 && year%2==1 && year%MONTHS==1){ sb.append("?"); }else if(a>=21 && a<=30 && year%2==0 && year%MONTHS==10){ sb.append("?"); }else if(a>=21 && a<=30 && year%2==1 && year%MONTHS==11){ sb.append("?"); }else if(a>=31 && a<=40 && year%2==0 && year%MONTHS==8){ sb.append("?"); }else if(a>=31 && a<=40 && year%2==1 && year%MONTHS==9){ sb.append("?"); }else if(a>=41 && a<=50 && year%2==0 && year%MONTHS==6){ sb.append("?"); }else if(a>=41 && a<=50 && year%2==1 && year%MONTHS==7){ sb.append("?"); }else if(a>=51 && a<=60 && year%2==0 && year%MONTHS==4){ sb.append("?"); }else if(a>=51 && a<=60 && year%2==1 && year%MONTHS==5){ sb.append("?"); }else{ sb.append(""); } setKekka(sb.toString()); //処理結果をStringに変換しセット if(sb.toString().indexOf("?") != -1){ //sbの中に"?"という文字列が含まれているかを調べている setPattern1("?.html"); }else if(sb.toString().indexOf("?") != -1){ setPattern1("?.html"); }else if(sb.toString().indexOf("?") != -1){ setPattern1("?.html"); }else if(sb.toString().indexOf("?") != -1){ setPattern1("?.html"); }else if(sb.toString().indexOf("?") != -1){ setPattern1("?.html"); }else{ setPattern1("?.html"); } if(sb.toString().indexOf("?") != -1){ setPattern2("?.html"); } } catch(Exception e){ System.out.println(e.getMessage()); e.printStackTrace(); } return "success"; //デフォルトではsuccessを返す } } |
C言語PART134 各科目別の最高点と各学生の3科目の平均を求める2008-04-30 Wed 00:11
#include
#define MEMBER 5 #define KAMOKU 3 int max_of(int a[MEMBER][KAMOKU],int b){ int i,max = a[0][b]; for(i = 1;i < MEMBER;i++){ if(max < a[i][b]) max = a[i][b]; } return max; } int average(int a[MEMBER][KAMOKU],int b){ int i,sum = 0; for(i = 0;i < KAMOKU;i++){ sum += a[b][i]; } return sum/KAMOKU; } int main(void){ int a[MEMBER][KAMOKU] = {{1,2,3},{4,5,6},{7,8,9},{10,11,12},{13,14,15}}; int i; printf("国語の最高点は%dです。\n",max_of(a,0)); printf("数学の最高点は%dです。\n",max_of(a,1)); printf("英語の最高点は%dです。\n",max_of(a,2)); for(i = 0;i < MEMBER;i++){ printf("%d番目の学生の平均点は%d点です。\n",i+1,average(a,i)); } return 0; } |
プラグインで機能拡張が可能なJava製の多機能グループウェア「GroupSession」2008-04-29 Tue 01:35
リンク先
----------------------------------------------------------------------------- プラグインで機能拡張が可能なJava製の多機能グループウェア「GroupSession」 4月28日22時30分配信 Impress Watch プラグインで機能拡張が可能なJava製の多機能グループウェア「GroupSession」 写真:Impress Watch 日本トータルシステム(株)は18日、プラグインで機能拡張が可能なJava製の多機能グループウェア「GroupSession」v2.1.0を公開した。個人・法人やユーザー数を問わずフリーソフトとして利用可能で、現在同社のホームページからダウンロードできる。 本ソフトはJava製のWebアプリケーションで、動作には「Java Platform, Standard Edition Development Kit (JDK)」v5と、アプリケーションサーバー「Apache Tomcat」v5.5が必要。編集部にて、「JDK」v6 Update6がインストールされたWindows XP上の「Apache Tomcat」v6.0.16で動作確認した。 「GroupSession」は、スケジュール管理機能、掲示板・回覧板などのコミュニケーション機能、起案から決済までを処理する稟議管理機能、施設予約機能、タイムカード機能、ToDoやプロジェクトの管理機能など、グループウェアとしての基本的な機能を一通り備えており、さらにいくつかのユニークな機能も備えている。 たとえば、Web検索機能やRSSリーダー機能も搭載。頻繁に使われる検索キーワードや人気の高いRSSなどをグループウェア内で表示できるので、検索のノウハウや情報収集のアンテナを組織内で共有することが可能。 “在席管理”機能では、座席表の画像を読み込んで実際の座席位置を再現するように座席状況を登録・閲覧可能で、在席・不在・その他の3つの状態を色分けできるので、在席状況を視覚的に把握できる。在席・不在の切り替えは、メイン画面から簡単に設定可能。そのほか、IPアドレスに紐づけて組織内のPC情報を管理できる“IP管理”機能なども備える。 また、グループウェア内のメンバーでメッセージのやり取りが可能な“ショートメール”機能はほかの機能と連携しており、各種イベント時にはシステムから通知メールを受け取ることが可能。外部SMTPサーバーを利用してメッセージを転送する機能も備えているため、「Outlook」や「Thunderbird」などの使い慣れたメールソフトで新着情報をチェックできるのがうれしい。 これらの機能はプラグインとして実装されており、バージョンを重ねるごとに搭載されるプラグインが充実してきている。また、プラグインを自分で開発して足りない機能を追加することも可能。同社ホームページではプラグインの作成方法についても解説されているので、開発の際は参考にするとよいだろう。 なお、本ソフトは単一のWARファイルとして配布されており、動作させるにはダウンロードした“gsession2.war”ファイルを、「Apache Tomcat」をインストールしたフォルダ内の“webapps”フォルダにコピーすればよい。あとは、「Apache Tomcat」を稼動させた状態で“http://localhost:8080/gsession2/”にアクセスすれば、ログイン画面にアクセスできる。「Apatche」と「Apache Tomcat」の連携といった本格的な運用方法については、同社のホームページを参照してほしい。 【著作権者】日本トータルシステム(株) 【対応OS】Windows 2000/XPなど 【ソフト種別】フリーソフト 【バージョン】2.1.0(08/04/18) □[無料WEBグループウェア Group Session] サポートサイト トップページ http://www.gs.sjts.co.jp/ □窓の杜 - Java Platform, Standard Edition Development Kit (JDK) http://www.forest.impress.co.jp/lib/stdy/program/progdevenv/javasdk.html ----------------------------------------------------------------------------- 一人で使う物ではないのはわかりますが、動かすのも簡単だしちょっと使ってみたいですね。 |
C言語PART133 関数を使っての多次元配列の受け渡し2008-04-29 Tue 01:22
#include
#define NUMBER 2 #define NUM 3 void tazigen(int a[][NUM],int b[][NUM],int c,int d){ int i,j; for(i = 0;i < c;i++){ for(j = 0;j < d;j++){ a[i][j] += b[i][j]; } } } int main(void){ int a[][NUM] = {{1,2,3},{4,5,6}}; int b[][NUM] = {{6,3,4},{5,1,2}}; int i,j; tazigen(a,b,NUMBER,NUM); for(i = 0;i < NUMBER;i++){ for(j = 0;j < NUM;j++){ printf("%d ",a[i][j]); } putchar('\n'); } return 0; } |
C言語PART132 番兵法を用いた逐次探索2008-04-29 Tue 01:20
#include
#define NUMBER 5 int search(int a[],int b,int no){ int i = 0; a[no] = b; while(1){ if(a[i] == b) break; i++; } return (i == no? -1:i+1); } int main(void){ int a[NUMBER+1]; int b; int i; int judge; for(i = 0;i < NUMBER;i++){ printf("a[%d]:",i); scanf("%d",&a[i]); } printf("探す値:"); scanf("%d",&b); judge = search(a,b,NUMBER); if(judge == -1) printf("探索に失敗しました。\n"); else printf("%dは%d番目にあります。\n",b,judge); return 0; } |
未考察のWEBの記事一覧2008-04-28 Mon 23:51
ああ、やっと終わりました(PGお疲れ〜(笑))。
今日は家に着いてからほぼずっとこれをやってまして、たった今終わった所です。 それにしても、ここまで増えてしまうとは・・・。 ちなみに"この日記"は今後もどんどん更新する可能性大なので1週間に1回ぐらいの割合で見たほうがいい"かも"しれません。 ただ、記事の中には会員になっていないと読めない記事もあるかもしれません。 あと、リンク切れには注意しましょう(多分"今は"まだ大丈夫)。 ああ、あともう1点。どの記事を読んでもそうですが、私が記事を読み終わったらここから削除して別の日記に感想を書きますのでその点だけご注意下さい。 多分、一番最初に取り上げるのは「プロジェクトはなぜ失敗するのか」になると思います。 コミュニケーション・テクノロジストの時代が来る リンク先 「ソフトウェアの部品化」が失敗する理由 リンク先 アイデア創発の素振り リンク先 「相手の弱点を突いて負かす筋書き」描けない日本の経営者 リンク先 闘うマネジャー:業務のプロ=発注者が仕様を書く、は無謀か リンク先 オタク女子はどこへ消えた? リンク先 日米のオフショアの差は、インドのとらえ方にあった リンク先 モバイル従業員のチーム意識を高める リンク先 コミュニケーションの定期的な継続が重要 リンク先 フリー・プログラマの華麗な生活 好きな言語,そうでもない言語 リンク先 製品/サービスのことばかり語ってはいけない リンク先 あるべき姿を「実現」してこそリーダーである リンク先 ユーザーの上司に挨拶せず帰ってはいけない リンク先 他社チームと反目 歩み寄らず 現場で居場所を失う リンク先 特別座談会 ユーザーが見るのは相手の中身 リンク先 フリー・プログラマの華麗な生活 月イチ,昼下がりのカラオケボックスで リンク先 思考パターン別のモチベーション向上法 リンク先 現場の方法「P」:前向き思考で不安や憂うつを断つ リンク先 眠いとき我慢しない「プチ昼寝」は大正解 リンク先 プロマネやコンサルが偉いと思ってはいけない リンク先 不人気なIT業界と,世界を変える技術者「アルファギーク」たち リンク先 自分の時間は部下の時間 リンク先 「非公式な打診」が「公式な大問題」に発展するリスク リンク先 ユーザーの言葉をうのみにしてはいけない リンク先 「仕事のやりがい,自由な時間,報酬」は両立できるか? リンク先 変化を起こすための「7つのルール」――渡辺千賀氏らが講演 リンク先 プロジェクトはなぜ失敗するのか リンク先 上位試験合格者はわずか167人、日本のITILは大丈夫か リンク先 私だってもう少し「技術者」でいたかった リンク先 「だまってコードを書けよ」 リンク先 キャリアビジョン作りから始めよう 第一回 第二回 第三回 第四回 第五回 最終回 「問題解決力」を高める思考スキル リンク先 久米信行の「企業経営に活かすブログ道」 目次 リンク先 2008/04/29追加 フェア・プロセス理論 リンク先 2008/04/30追加 日本人ITエンジニアはいなくなる? リンク先 2008/04/30追加 組織の意思決定力を高める10のテクニック リンク先 2008/04/30追加 プロジェクト・マネージャの「やってはいけない」 リンク先 2008/04/30追加 ITエンジニアの「やってはいけない」 リンク先 2008/04/30追加 すごい現場 リンク先 2008/04/30追加 プロフェッショナルの現場 リンク先 2008/04/30追加 2008年版「いる資格、いらない資格」 リンク先 2008/04/30追加 オフショア開発で奮闘する中国開発者の視点 リンク先 2008/05/01追加 経営者にITの費用対効果を説明するのは難しい リンク先 2008/05/01追加 メンバーに贈るプロマネ基礎講座 品質とは要求を満たすこと リンク先 2008/05/02追加 誠実に生きてても、割り切るしかないことはある件 リンク先 2008/05/02追加 「やる気を出せ!」は言ってはいけない リンク先 2008/05/02追加 起業家はよく眠る リンク先 2008/05/02追加 成功する起業家は虫取りや魚釣りが上手なわけ リンク先 2008/05/02追加 人脈を築き上げる目線 リンク先 2008/05/02追加 人脈は金脈に非ず リンク先 2008/05/02追加 自分の想いを素直にぶつければ 相手の心を動かせる リンク先 2008/05/05追加 Javaのオプティマイズについて リンク先 2008/05/05追加 銀の弾丸とは? リンク先 2008/05/05追加 ソフトウェア・プロジェクト管理 リンク先 2008/05/07追加 最新DATAで見る「エンジニアのキャリア事情」 リンク先 2008/05/07追加 経産省「ベンチャー企業の経営危機データベース」が面白い リンク先 2008/05/07追加 デブサミ [TEST] 2008、「現状を変えるには新しいことをやるしかない」 リンク先 2008/05/07追加 一般人と比較!「エンジニアは数字に強い」は本当か? リンク先 2008/05/07追加 三方一両得のIT論 IT部門がもう一度「力」をつける時: 【第10回】疲弊するIT部門(3)〜現場が求めるのは「Do it myself」 (1/2) リンク先 2008/05/07追加 プロジェクトマネジメントの理論と実践 リンク先 2008/05/07追加 「インドにオフショア」でIT部門が取り戻したもの リンク先 2008/05/07追加 IT現場のストレス解消法 リンク先 2008/05/07追加 経営に役立つ情報システム リンク先 2008/05/07追加 プロマネに贈る「泰蔵の一日一句」 リンク先 2008/05/07追加 問題解決の軌跡 リンク先 2008/05/07追加 技術者がやめるとIT部門は強くなる リンク先 2008/05/07追加 半人前→一人前への道 基本の「キ」はここにあり リンク先 2008/05/08追加 あなたは大丈夫? コミュニケーションの落とし穴 リンク先 2008/05/09追加 間違いだらけのIT経営: 「居眠り社長」が連絡会議で聞きたかったこと (1/2) リンク先 2008/05/09追加 ベンダー任せで スキルを継承せず 若手を不安に陥れる リンク先 2008/05/09追加 特別対談 目次 リンク先 2008/05/09追加 フリー・プログラマの華麗な生活 有限会社ねこなっく設立 ―― 社長と呼ばないで リンク先 2008/05/11追加 教えて! ITエンジニアの仕事術 リンク先 2008/05/11追加 いまさら聞けないJavaによるオブジェクト指向の常識 リンク先 2008/05/11追加 人の造りしもの――“パスワード”の破られ方と守り方 リンク先 2008/05/18追加 岩脇一喜のSE事件簿 リンク先 2008/05/18追加 PMO(プロジェクトマネジメントオフィス)を生かす リンク先 2008/05/18追加 エンドユーザーが感じる「セキュリティ,ここが不満」 リンク先 2008/05/18追加 直言・確言 リンク先 2008/05/18追加 プロフェッショナルの現場 リンク先 2008/05/18追加 ソフトウエア・ファクトリー最前線 リンク先 2008/05/18追加 ブログのリスク リンク先 2008/05/18追加 記者の眼 リンク先 2008/05/18追加 ログは語る リンク先 2008/05/18追加 ミッキーのproITなアメリカンライフ リンク先 2008/05/18追加 矢沢久雄のソフトウエア芸人の部屋 リンク先 2008/05/18追加 今日もどしゃぶり リンク先 2008/05/18追加 医療ジャーナリストの視点 リンク先 2008/05/18追加 Java技術最前線 リンク先 2008/05/31追加 記者のつぶやき 目次 リンク先 2008/06/21追加 あなたの行動を制約しているのは“ジレンマ”だ リンク先 2008/06/21追加 システム開発は最初に運用まで見通すべし リンク先 2008/06/29追加 社内の対立を解消するツールとその使い方を伝授 リンク先 2008/06/29追加 やる気を数値化する「モチベーション診断ツール」 リンク先 2008/06/29追加 欲しいものを手に入れるには「場所」が重要 リンク先 2008/06/29追加 事の本質を見極めよう リンク先 2008/06/29追加 ストレスへの反応には個人差が。あなたは何に弱い? リンク先 この記事は私は読まない予定です。 ↓ ソースコードで学ぶ SJC-P 5.0 ドリル リンク先 |
C言語PART131 逐次探索2008-04-27 Sun 22:43
#include
#define NUMBER 5 int search(int a[],int b,int no){ int i; for(i = 0;i < no;i++){ if(a[i] == b) return i+1; } return -1; } int main(void){ int a[NUMBER]; int b; int i; int judge; for(i = 0;i < NUMBER;i++){ printf("a[%d]:",i); scanf("%d",&a[i]); } printf("探す値:"); scanf("%d",&b); judge = search(a,b,NUMBER); if(judge == -1) printf("探索に失敗しました。\n"); else printf("%dは%d番目にあります。\n",b,judge); return 0; } |


