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

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

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

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

sh

shは、UNIX系OSのシェル操作の1つであり、最も基本的なシェルのことです。

Q&A

5回答

3566閲覧

「ロジックが組めること」「ロジックの構成要素の数」とは何を指しますか

gigapure

総合スコア6

bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

sh

shは、UNIX系OSのシェル操作の1つであり、最も基本的なシェルのことです。

0グッド

0クリップ

投稿2017/03/20 09:23

編集2017/03/20 09:33

プログラミング初心者です。
教えてください。

シェルスクリプトをテーマに調べています。

シェルスクリプトが書ける基準として、
他の人から
「ロジックが組めること」
という条件が提示されました。

ロジックとは何か、調べると色々な解釈があり、
わかりにくいです。

海外の英語辞書によると
http://www.ldoceonline.com/dictionary/logic
2 a set of choices that a computer uses to solve a problem or perform a task
(問題を解決したり、タスク=仕事を実行するためにコンピュータで使われる一連の選択)

https://en.oxforddictionaries.com/definition/logic
2 A system or set of principles underlying the arrangements of elements in a computer or electronic device so as to perform a specified task.
(特定のタスク=仕事を実行するためにコンピュータや電子回路で使われる 要素の集合体の背後にある システムや原則のまとまり)

とあります。

◆要は、「ロジックが組める」とは、
目的を決めた後に、解決方法を選択し、1から10まで記載しないと理解できない(ある意味、不器用な)コンピュータに読み込ませるための、処理の流れを定めること
と考えます。

そういう感じの理解でよいのでしょうか?
※もちろんスキルによって、組めるロジックの質に違いがあることは認識しています。

◆プログラミングロジックの構成要素の数について

たとえば、次をみると、
プログラミングロジックの構成要素は7つあるようです。

「ロジックは、演算(計算、論理式)、変数(単独、配列、構造)、代入、判定、分岐、ジャンプ、関数|メソッドの7つの要素で思考します。」

出典)
プログラミングロジック入門
http://moeprog.web.fc2.com/M_NET_SC/Manual/PayPal100/PayText100_02_Sample.pdf

この数は、教える人によって違う数で提示されるものですか?

たとえば、処理、分岐、反復 という風にざっくり教えたりするものですか?

数は7つで固定値か、あるいは人によって違うものか知りたいです。
7つでない場合の具体例も知りたいです。

ご存じの方いらっしゃいましたら、よろしくお願い致します。

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

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

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

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

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

guest

回答5

0

個人的には、もっと気軽に書くもんだと思ってます。

シェルスクリプトが書ける基準として、

自分がやりたいことが書ければそれで充分じゃないかなあ。
しいてロジックといったら分岐と繰り返しくらい?
ただ、シェルによって出来ることはだいぶ違ってきますね。

質問の印象として、なんとなく目的を見失ってる気がします。
シェルスクリプトっていいたいだけちゃうか?
みたいな。

投稿2017/03/20 11:25

takasima20

総合スコア7458

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

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

gigapure

2017/03/25 08:07

ありがとうございます。 実は同じことを思っておりました。 誰とは言わない人が、勝手に シェルスクリプトを書ける基準として、 「ロジックを組めること」と定義したものですから、 そんなすごいもん、ちゃうで・・・ と思ったまでです。 自分がやりたいことが書ければそれで充分、は自己完結的で、 今回は勉強会という 皆で学ぶ場、共有の場としての質問になります。 第三者に説明できるレベルを想定したとき、 自分でできればOK、は力不足になってしまいますので。 ありがとうございます。
guest

0

他の方の回答のとおりで、蛇足かもしれませんが・・・。

「ロジック」とは(コンピュータにやらせたい)問題を解決する詳細手順
のようなものでしょうか?
その分類などは、出来上がったロジックを後から分析するには意味があるかも知れませんが、実際にシステムを作っている時に分類を意識することは、まずありません。

ロジックと似た用語で「アルゴリズム」という言葉があります。
ロジックとの違いはうまく説明できませんが、ロジックというと、よりコンピュータやプログラミング言語の特徴に制限されているように思います。

有名な本に
アルゴリズム+データ構造=プログラム
というものがあります。
勉強するのは「アルゴリズム」、「ロジック」は身につけるもの
といった感じでしょうか?

投稿2017/03/21 02:08

nob.

総合スコア711

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

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

gigapure

2017/03/25 07:50

ありがとうございます。 課題やテーマがあって、煮るとか焼くとか、塩を振るといった一つ一つの作業をロジック、包丁や調味料や粕漬などの食材の調理方法をアルゴリズム、という理解に落ち着きました。 ロジックとアルゴリズムの意味の違いが人によってもやっとしているあたり、ある程度ファジーでも許されているものですね。
guest

0

プログラムというものがそもそもやることを並べたものであって(例えば卒業式などの式次第も「プログラム」と呼ぶでしょう?)、その「やること」を細かく分解して順序立てて並べる行為がロジックを組む、ということになるかと思います。
卒業式を例にとれば、卒業式のプログラムには

  • 卒業生入場
  • 校長の挨拶
  • 来賓祝辞
  • 在校生よりの送辞
  • 卒業生からの答辞
  • 卒業証書授与
  • 校歌斉唱
  • 卒業生退場

あたりがありますが、それぞれについて、例えば卒業生入場であれば

  • どの入口を使うか
  • 入場行進で横に何列並ばせるか
  • 入場順はどうするか(クラス編成順・出席番号順)
  • 卒業生の座る席はどうするか
  • 入場にかかる時間は問題ないか
  • 配慮の必要な卒業生(例えば車いすの生徒がいれば、その生徒は別枠で入場させたり、席も必要無いが余裕のある場所を確保しなければならない)はどうするか

といった細かい「段取り」を立てて対策することになります。この段取りこそがロジックだと思います。


ロジックの構成要素については、実のところ CPU が行えることそのものが、実際には少ないのです。

  • データをレジスタに読み取り、または書き込むこと(対レジスタ・対メモリ・対I/O)
  • 演算すること(レジスタ-レジスタ間、レジスタ-メモリ間、レジスタ-即値間)
  • 比較すること
  • 分岐すること(無条件分岐・条件分岐)

基本的にはこの程度です。そしてこれが、結局のところロジックの構成要素の基礎でもあります。
※関数/メソッドは分岐の特殊形態(戻り先が分かる分岐)ですね

難解プログラミング言語として知られる Brainf*ck は、わずか8命令しかありません。それでも「理論上は、いかなるプログラムも記述できる」言語です。
※なのでいろいろネタ派生ができて……「ジョジョの奇妙な冒険」のセリフで組めたり、「けものフレンズ」風に組めたりとあります。なにせ8種類の単語を用意できればいいのですから(w

投稿2017/03/21 01:22

tacsheaven

総合スコア13703

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

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

gigapure

2017/03/25 07:56

ロジック=段取りを組めること、で理解しました。非常にいい例えですね。 その最小言語、名前以外は面白いですね。ためになります。
guest

0

目的を達成できるコードが書けていれば、それがロジックになると思います。
但し、私の感覚では、「○○処理のためには、○と□と△を行う」のように、きちんとコードを理解している必要があると思っています。
「何かわからないけど、このコードを入れたら動いた」みたいなのは、きちんとロジックが組めているとは言えないと思います。

投稿2017/03/21 00:08

ttyp03

総合スコア16998

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

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

gigapure

2017/03/25 07:59

写経と、書き物は違いますよね。今回は、「ロジックを組む」ということなので、コードが書けていれば、ではなく、課題、テーマに対し、目的を適切に達成できる品質まで記載できる必要があります。
guest

0

こんにちは。

◆要は、「ロジックが組める」とは、

その理解で合ってますよ。

◆プログラミングロジックの構成要素の数について

数はあまり気にしないで良いと思います。人や文脈によって分類は異なりますから。
関数呼び出しや代入も演算の一種という考え方もありますし、ループを分岐やジャンプと別と考える場合もあります。他に「値」や「定数」を分ける場合もあります。

その7種類もたくさんある正解の1つと思います。

投稿2017/03/20 11:50

Chironian

総合スコア23272

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

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

gigapure

2017/03/25 08:01

ありがとうございます。 日本のプログラミングなんて輸入品ですし、 本家アメリカでも、色々な分析がされていますからね。 数すらざっくりなのかぁ・・・
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問