TODOS・何でも情報交換TOPから是非ご覧ください。
一番下の投稿フォームへ > スレッド一覧 > 記事閲覧
o6asanさんのJAVAトライ・その4
日時: 2013/09/23 11:10
名前: りり

while文を使って書いてください

キーボードから整数を一つ入力する。

1から順に整数を足していって、和がその整数を超えたとき、最後に足された、整数を画面に表示するプログラムを」書きなさい
例/1+2+3+4=10
1+2+3+4+5=15
なので、和が10を超えたときさいごに足された整数は5となる

例では、書かれていないのですが、多分、最初に入力された整数が10ということなのかと思います。

実際の場面では、こういうのは、実用されるのか、ちょっと分かりません。
単なる練習かな…
その3は、結構実用場面がありそうでしたが。
メンテ

Re: o6asanさんのJAVAトライ・その4 ( No.1 )
日時: 2013/09/23 15:34
名前: o6asan

遅くなりました。今回は,えらく単純ですね。課題が前後しているのでしょうか。

> 実際の場面では、こういうのは、実用されるのか、ちょっと分かりません。

ビデオの貸出制限とかどうですかね。
最大値が決まっていて,それを超えたら警告を出す。

で,最後に足された数というのは,ローカルで処理してしまって,その後,使用者のデータとして
書き込むなら無用な気がしますが,ネットワークで消失を防ぐためにいろんな処理をする前に,
ひとまず先にデータを追記してしまうとかなら,超過前に,借りようとしたビデオがこれこれで,
その中から超過分を消してくださいとか,サジェストするのに使うとか。ほかにも考えられるかもしれません。

それは,さておき,Sample4.javaです。冒頭に,課題文を注釈として入れるようにしました。
http://o6asan.com/blog-j/files/JAVA/TODOS/Sample4.txt

----------------------------------------------------------------------------------
動作確認は,jdk-7u40-nb-7_3_1-windows-i586.exeでやっています。

一応,動くプログラムは書いていますが,当面は,エラー回避ルーチン抜きで行きます。
また, JAVA の素人ですので,この書き方は JAVA らしくないというのがありましたら,
指摘してください。そこまでマニアックに書くつもりはありませんが,一応, JAVA の
方言にも通じるようにはなりたいと思っていますので。

よろしくお願いします。

この欄に,プログラムを貼ると,インデントが消えてしまいますので,上記のように
ファイルで,アップしています。

実際に,試してみようと思う方は,ダウンロードもできます。
ただし,拡張子をtxtにしてアップしてますので,これをjavaに変更後コンパイルしてください。
メンテ
Re: o6asanさんのJAVAトライ・その4 ( No.2 )
日時: 2013/09/23 16:47
名前: りり

>ビデオの貸出制限とかどうですかね。
>最大値が決まっていて,それを超えたら警告を出す。

あぁ、1から順に整数を足していって…というのが分からないのですよね。

例えば、予算とか、最大値が決まっていて、一つずつお買い物をしていく、
1から順に整数を足すのではなく、その後、任意の数値(お買い物価格)を入れていって、それらの和が、最大値を超したら、最後のものは、買えないので、その値を見せるという感じなら、分かるのですが。

でも、それなら単純に合計値を計算する感じですよね?


1+2+3+4…は、回を重ねる毎にポイントが増えていくようなものかな?
ビデオの場合は、貸し出される度に、消耗度が増すというようなことか?

前の優、良、可、不可の問題と2こセット課題のようでしたが。
メンテ
Re: o6asanさんのJAVAトライ・その4 ( No.3 )
日時: 2013/09/23 18:07
名前: o6asan

> あぁ、1から順に整数を足していって…というのが分からないのですよね。

不特定数を与えておいて,それを超えたら while loop から飛び出させるというのは,初めての
練習ですよね。すでに入力されたいろいろな数の演算の勉強は終わっていますから,
自然数の和というところより,そこに注目して使い方を考えましたが。

実際の課題の構成がどうなっているのかは不明ですが, while の学習をするところのようで,
今までの4題は,それを使う課題ばかりです。そして, while loop に入る前に,コンソールから
値を入力するという形式は,初めてなのでそこに重きをおいて判断をしました。

話は,変わりますが, JAVA の得意分野というのは,なんなんでしょうか。今回は,初歩の話の
せいかイメージや動画を扱う話がまだ出てこないのですが。何となく,そちら向きのように感じていました。

それこそ,4題とも,コンソールからの入力が主体なのですが,初めに数値インプットのための手順を
見たときに驚きました。たったひとつ整数値を入れるために,
BufferedReader br = new BufferedReader( new InputStreamReader(System.in));
String buf = br.readLine();
a = Integer.parseInt(buf);
これだけ,いるんですね。ここが,命令語一つにまとめられていないということは,コンソールからの
直接入力というのは,あまり想定していない言語なのかなと感じています。
メンテ
Re: o6asanさんのJAVAトライ・その4 ( No.4 )
日時: 2013/09/23 18:49
名前: りり

私も、イメージや動画になると、俄然興味が倍増するんですが…

一般には、Webアプリケーション開発に利用されているようにも思いますが。

http://www.google.co.jp/#q=java+web%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3

例えば、Webアプリケーション開発者募集では、

・大手家電量販店向け物流システム開発(Java、Oracle) とか

・スマートフォン、タブレット端末向けソーシャルゲーム・アプリ等の企画・プログラミングから運用まで
 PHPやJava、C、C++等何らかの言語にてプログラミングor開発 とか書かれていることがあります。


あと、JAVA の得意分野で検索するとこんな感じ
http://www.google.co.jp/#q=JAVA+%E3%81%AE%E5%BE%97%E6%84%8F%E5%88%86%E9%87%8E


イメージや動画は、モジュールみたいなのが出ていて、一般の人も楽しんで使っていますね。
こちらでもそういうのが話題になりました。
http://todos.xsrv.jp/2patioospro/todos.cgi?no=5
HTML編集に慣れていないという方が取り入れたいと言われるので大変でした。
こちらも、やったことのないのを調べながらでしたから。

o6asanさんのサイトでも、前に雪を降らしていましたよね?JAVAを使った方法とは違いますか?

ただ、JAVAが入ったものは、うちの環境では、やたらとセキュリティ警告が出ます。

ちよっと閲覧もどきどきしてしまいます。
メンテ
Re: o6asanさんのJAVAトライ・その4 ( No.5 )
日時: 2013/09/24 05:38
名前: りり

o6asanさんのご質問で、巷の掲示板に、よく「プログラマーになりたいけれど、どの言語を勉強すれば良い?」という質問を見かけることを思い出しました。


で、ちょっと検索すると
http://www.wakhok.ac.jp/~tomoharu/web2004/text/index_c1.html


CGIとその限界
イントラネットはWebをベースにしており、情報を検索したりする必要があるため、先に解説したような「動的なWebページ」が用いられます。つまり、イントラネットもWebアプリケーションが使われています。 
初期のイントラネットでは、動的なページを作成するために"CGI (Common Gateway Interface)"という技術を使っています。
CGIでは、Webサーバ上でプログラムが動いています。ユーザからの入力に応じて、CGIプログラムが必要な処理を行い、結果を表示します。また「アクセスカウンタ」のように、ユーザからの入力がなくても、そのページが呼ばれると動作するCGIプログラムもあります。

今でもよく使われているCGIですが、企業の情報システムを支えるには貧弱な点が多くありました。CGIプログラムが呼ばれるたびにプロセスを生成するので処理が重くなり、多数の利用者からのアクセスをさばくことが難しかったです。またセキュリティなどの信頼性にも問題がありました。そのうち、インターネットにショッピングサイトを開設して、このショッピングサイトで使っているシステムと、イントラネットで使っているシステムを組み合わせることが多くなってくると、こうしたCGIの弱点は深刻なものとなります。


Java製アプリケーション・サーバの登場
そこで、こうした需要に応えた「アプリケーション・サーバ」と呼ばれる製品が多く開発され、企業の情報システムで使われるようになりました。そして、現在のアプリケーションサーバの多くは、前節で述べたJ2EEを採用しているのです。

では、なぜJ2EEが採用されるのでしょうか?その理由についていくつか挙げてみましょう。


速い
Javaというと「遅い」というイメージがあるかもしれませんが、Webアプリケーションで使われているJavaは早く動きます。Javaのプログラムは、後述するように「Webコンテナ」にあらかじめロードされています。CGIは呼ばれるごとにプロセスを起動するため処理が遅くなりますが、Webコンテナではプロセスよりも処理負担が少ない「スレッド」を使うので処理が速くなります。また、AWTやSwingといったGUIコンポーネントを使っていないのも速い理由のひとつです。


ライブラリ・ツールの充実
Javaには、プログラム開発に便利なライブラリやツールが揃ってきており、自作しなければならないプログラムが少なくなります。


HTMLとプログラムの分離が容易
CGIでは、プログラムとHTMLが同じファイルに混在してしまい、管理しにくくなります。Javaでは、プログラムとHTMLを分離させる手法が確立されており、見通しのよいWebアプリケーションを作成できます。

Java言語そのものの信頼性
Java言語は信頼性が高い言語です。C言語やC++と違ってポインタ演算がないために、プログラムが暴走する危険性が少なくなっています。また、セキュリティが考慮された言語仕様を持っています。

現在の大規模なビジネスアプリの世界では、Javaベースの「アプリケーション・サーバ」が流行しています。Javaを採用している、代表的なアプリケーション・サーバのリストを示しましょう。いずれも、現在大きなシェアを持つアプリケーション・サーバです。

ベンダー    製品名
BEA        WebLogic
IBM        WebSphere
Sun        Sun Java System Application Server
Oracle       Oracle Application Server
Apple       WebObjects


なかなか凄いんじゃないでしょうか?
メンテ
Re: o6asanさんのJAVAトライ・その4 ( No.6 )
日時: 2013/09/24 08:29
名前: o6asan

> JAVAを使った方法とは違いますか?

これは,JAVAではなくて,JavaScriptですので,全く別物です。よく間違えられますが,名前の似ているのは,
下記のせいです。しかし,このページ!! mozillaが公に嘆いてるとは,知らなんだ。
https://developer.mozilla.org/ja/docs/Web/JavaScript/A_re-introduction_to_JavaScript#.E5.B0.8E.E5.85.A5

Jetpackというプラグインに同梱されているのですが,実体は,snowstorm.jsというスクリプトです。
BSDライセンスのようですから,ダウンロードして,今年の冬あたりTODOSで使ってみるのはいかがですか。
トップページが淡色なので,雪が目立たないかもしれませんが。

> なかなか凄いんじゃないでしょうか?

だからこそ,ゼロデイ騒ぎも多いわけでしょうネ。

しかし,Sun MicrosystemsがOracleに吸収合併されて,JAVAの最大のベンダがOracleというところに,
いまだ,悪印象のある私です。
メンテ
Re: o6asanさんのJAVAトライ・その4 ( No.7 )
日時: 2013/09/24 08:43
名前: りり

あっ、JavaScriptでしたか。

そう言えば、画面全体に降らせていましたよね。

JAVAアプレットなら、その枠内部でしたね。


>TODOSで使ってみるのはいかがですか。

トップページは、実用的が大事ですから…


ここでは、蝶を飛ばしていますけど
http://todos.xsrv.jp/lily/

雪の歌詞とか、詩とか、コンテンツがそれ風だったら、降らしてみるのも面白いかもしれませんね。


JavaScriptの面白いのがあれば、また、こちらにでもご紹介ください。
http://todos.xsrv.jp/2patioscr/todos.cgi?no=2
メンテ
Re: o6asanさんのJAVAトライ・その4 ( No.8 )
日時: 2013/09/29 22:30
名前: りり

実行の動画を紹介します。
http://todos.xsrv.jp/uploader/upl/AGDRec4.wmv

これは、一行で終わってしまうので、一瞬、あれっ?とか思いますが、56と入れると
1+2+3+4+5+6+7+8+9+10+11
と裏で計算して、+10までで55ですから、次の56を超えたときに足したのが11
ということで、11を表示するわけですね。
メンテ

楽しい交流と情報交換のTODOS・アップローダーも用意。ぜひTOPからもご覧ください。
ご参考になりましたら、お気軽に一筆お書き込みくださいませ。
題名 スレッドをトップへソート
名前
画像添付
JPEG
GIF
PNG



参照ボタンを押して、PCの画像を指定ください。3枚まで指定できます。縮小画像はクリックで拡大されます。
パスワード (好きなパスワードを。投稿後、右下のスパナマークをクリックし、そのパスワードを入れて修正できます。)
コメント

   クッキー保存
スレッドTOPへ***スレッド一覧