質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

3回答

1534閲覧

Java 計算式をコードに落とし込む方法

退会済みユーザー

退会済みユーザー

総合スコア0

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2020/09/29 11:26

計算式をコードに落とし込むにはどうしたらいいでしょうか?

Java計算式を頭で考えてコードに落とし込む練習がしたいのですが、
どのようにしたら上達できるのかわからないのですが、なにかいいサイトはご存じだったりしますでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2020/09/29 11:28

有用な情報はだいたい文字で書いてあるので言葉を知らなければ読めないでしょう。コード云々よりもまず技術情報を読めるようになりましょう。
退会済みユーザー

退会済みユーザー

2020/09/29 11:31

技術情報、
m.ts10806

2020/09/29 11:38

「計算式」って意味が広すぎて「その式によって考えてね」くらいしか言いようがないですよ。 そもそも、考えてます?適当にどこかから拾ってきたコードちょっと変えてウーンってやってません?
退会済みユーザー

退会済みユーザー

2020/09/29 11:58

コピペなんてやってないですよ、、
m.ts10806

2020/09/29 12:00 編集

「やってませんか?」と確認しただけです。決めつけるつもりは一切ないですが、これまでの経験上 「わかってるつもり」になっている人がしがちな質問で、そういう人の多くは「もらった」「拾った」コードで満足している傾向にあります。
Zuishin

2020/09/29 12:02

計算式というのはおそらく前の質問のような、初心者がトレーニングに使うものだと思います。 あれは計算というより文字列の扱いとループの問題で、そこにネットから正解をコピペできないようちょっと一癖加えてあるだけのものなので、基礎的な文法がわかっていれば解けます。 基礎をとばしていきなり応用に行っているから解けないだけで、ちゃんと文字を読んで丁寧に基礎を積んでいれば解けるようなものです。 つまり取り組み方が根本から間違っています。他人に正解を聞いても何の力にもならないし、何の進歩もしないでしょう。
退会済みユーザー

退会済みユーザー

2020/09/29 12:03

そういう人になりたくないから聞きましたね。。どうやってできるようになったか知りたかっただけです。。
m.ts10806

2020/09/29 12:05

こういう質問している時点で、両足突っ込んでます。気づくところから。 気づくそして築くという格言もあります。
退会済みユーザー

退会済みユーザー

2020/09/29 12:07

了解しました!ありがとうございます!
guest

回答3

0

プログラミングの基本は、理解分解再構築です。

まず最初に必要なことは、これからプログラミングを行う対象への理解です。
課題であれ、要件であれ、何を作れといわれているのか、もしくは、自分が何を作ろうとしているのか、
それは何をするものなのか、これらをしっかりと具体的に把握することが第一歩です。
初心者でコードが判らない!という人の場合、まずはここができていない人が結構います。
何を作ろうとしているのかと聞いても、ぼんやりとしたイメージしかなかったりします。
これでは、プログラムは作れません。
まずは作るものをかなり細かく具体的にする必要があります。

その次には、それを細かく分解します。
機能ごと、扱うデータごと、様々な角度から仕組みを分解して、その中身をより具体的にしてゆきます。
目的からその為の仕組みへ、その仕組みを構成する機能へ、個々の機能を実現するロジックへと
どんどん小さな規模へと分解してゆき、最終的には個々は一言で書けるような、
分子レベルのシンプルなものへと分割してゆきます。
具体的な「コード」を考えるのは、実はこの後です。
これまた初心者の人に多いのは、この段階を飛ばして突然大きなシステムの段階でコードを考えようとして、
途方に暮れてしまうというパターンです。
いきなり大きな塊をコード化しようとしても、経験が無ければ無理です。
そこでついネットで検索したコードの塊を丸ごと取り入れてしまったりします。
これだと、なぜそのコードになったのか?は理解できません。

というわけで、三つ目の段階、再構築です。
この段階で、やっとコードに手を付けます。
前の段階で、既に分子レベルの単機能まで分解できているので、コードそのものはとても単純なものとなります。
初心者が課題で練習するような「〇〇の条件になるまで繰り返せ」みたいな、すぐにコードが思いつくような内容です。
逆に言うと、コードが全く想像できないようであれば、分割がまだ足りない恐れがあります。
ひとつ前に戻って、もっと分解できないか検討します。
そこから先は、さっきまでとは逆のルートで、分子レベルのコードを地道に積み上げてゆき、
単純なコードが集まってロジックとなり、機能となり、最終的に目的のシステムへと、再構築してゆきます。
この再構築のためには、最初の目的への理解と分解の工程が欠かせません。
それらのステップを飛ばしては、コードが思いつかない、よくわからない、となるのは当然の結果なのです。

計算式をコードに落とせない、というのは、そんなことはほとんどなくて、
(計算式ができた段階でそれはほぼコードと同じものなので)
実際には、求められているものを計算式に落とし込めない、だと思います。
理解と分解の段階です。
これはもう、慣れなので、いろいろなものを、作るしかないです。
別に誰かに問題として用意してもらう必要はありません。
自分で好きなように作っても良いですし、
極端な話、ここで初心者の人がしている質問を見て
自分で独自にロジックを組み立ててみるのだって練習になります。(別に回答にはしなくとも)

投稿2020/09/29 15:20

amiya

総合スコア1218

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/09/29 23:35

完全に自分に当てはまってました。。どうしていったらいいかイメージできました。。 ありがとうございます!!m(__)m
guest

0

ベストアンサー

上達も何も、「コードに落とし込む」ことについては、頭の中でちゃんとその「計算式」とやらができているのであれば、紙に書くのもコードで書くのも変わりません。

大前提ですが、「コードに落とし込む」話ですよね?その計算式はちゃんと理解できているんですよね?
それであれば、単純に「プログラミング言語」という言語に翻訳するだけの作業です。

英語を日本語に翻訳するよりも簡単で、基本的にはその計算式を最もシンプルな形に変形できていれば(ここまでプログラミング関係なし)、後はほぼ1:1の翻訳になると思いますが。

Javaに標準で用意されている四則演算と、数値計算用のクラスやライブラリの提供しているヘルプに目を通し、ひとつずつ置き換えていくだけです。

効率の良いアルゴリズム云々、という話じゃないなら、辞書を引きながら単語を変換していく作業と何ら変わりません。

投稿2020/09/29 11:59

gentaro

総合スコア8949

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/09/29 12:05

ありがとうございます!
gentaro

2020/09/29 12:08

Oh...これでベストアンサーになると思ってませんでした…。 私の回答を要約すると「質問文を読む限りただの単純作業の話なのに、何を迷っているのかわからない」という意味になるんですが、まぁこれで何か掴めたのであれば幸いです…。
退会済みユーザー

退会済みユーザー

2020/09/29 12:12

ただの単純作業ですか、、なるほど、、いろいろ難しく考えすぎなのかも?と思ったりしましたが、 翻訳という感じでしてみたいと思いました!ありがとうございます!
gentaro

2020/09/29 12:16

はい。プログラミングというのはコンピュータが理解できるように、ひとつずつの手順を1から10まで説明する作業でしかありません。ここはただの単純作業です。 その前段階のアルゴリズムや、今回で言えば「計算式」を考えるところ(これを広い意味で設計作業という)が難しいだけで、「コードに落とし込む」部分は、単純にその言語やライブラリ等の機能をちゃんと知っているか、または調べて理解できるのか、という話でしかありません。
Zuishin

2020/09/29 12:17

難しく考えてるんじゃなく単純作業をできるだけの力がないんです。まず力をつけるところからでしょうに。言葉を知らない人が翻訳できるわけがない。
退会済みユーザー

退会済みユーザー

2020/09/29 12:18

そうですよね、、了解しました!ありがとうございます!
gentaro

2020/09/29 12:23

@Zuishinさん まぁ本人がやる気を出してこれから勉強するんであればそれで良いんじゃないですか? どの程度のプログラムの能力を必要としているのかもわからないし。
Zuishin

2020/09/30 04:39 編集

このあとの質問を見る限り、やる気を出すどころか課題を全部投げているだけにしか見えません。 ほぼ同じ質問を繰り返していて、全く成長も努力する気も見えません。
guest

0

Java計算式を頭で考えてコードに落とし込む練習  をしたら良いのでは。

一発逆転ホームランみたいなことは期待しないことです。
考える力は一朝一夕ではできません。ロジカルシンキングを鍛えるのは結局常にロジカルに考えようとしているかどうか。
厳しめに言うと、こういう質問を見ると「この人は身につかないだろうな」と感じます。

投稿2020/09/29 11:29

m.ts10806

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問