配列を使いたいのですがE仕様書の書き方がわかりません。
一つの配列に5つの項目があり、一つ一つの項目の長さが6桁の数字のSMWK(受注数量下限数)と言う配列と、
一つの配列に5つの項目があり、一つ一つの項目の長さが3桁の数字で小数点以下2桁のSMWR(割引率)という配列を使いたいのですが・・・・。
SMWKをループでまわして最初に当てはまったデータの項目SMWK,X該当のものが見つかった場合ループから抜け、SMWR,Xの値を出して割引額を計算することに使いたいと思っています。
説明があやふやで申し訳ございませんがどなたか教えていただけないでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (1件)

配列にどのように値を入れるかによりコーディングが違います。


また、説明が難しいです。
他の方法として、多少長くはなりますが、
IF・ELSE・ENDIFを使用して分岐させる方法か、
受注数量下限数と割引率のファイルを作りCHAINで
受注数量下限数から割引率を取ってくる方法があると思います。

まず、この計算は画面から入力した時割引の計算をするにしても
ファイルのデータを計算するにしても何らかの形で受注数量下限数を
算出していると思うのですが、IF・ELSE・ENDIFを使用すると
受注数量下限数の算出は必要なくなると思います。

受注数量下限数と割引率のファイルを作った場合は、受注数量下限数や
割引率が変わった場合、ファイルの内容を変更するだけで、メンテナンスが
できます。(他のやり方だとRPGのコンパイルが必要になります)

E仕様書を使うと個人的に見づらいので苦手というのがあるのですが、
いかがなものでしょうか。
    • good
    • 0

このQ&Aに関連する人気のQ&A

仕様書 書き方」に関するQ&A: TS規格って

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QBShell 動的配列のループ処理について

動的に変数名を作成した配列について、ループ処理を行う場合、どうしたらいいでしょうか

以下のような処理を書いたのですが、駄目でした。

a=0
while [ ${a} -ne 10 ]
do
    eval $(printf TEST%02d $a)=(aaa bbb ccc) #TEST00 - TEST10の配列が作られる。

    # TEST00 - TEST10の配列の中身にたいして処理を行いたい。。。
    for (( I=0; I < ${#`eval $(printf TEST%02d $a)[@]`}; ++I )) # エラー
    do
        // ここで処理したい・・・
    done
done

いいアイディアがありましたらご教授よろしくお願いいたします。

Aベストアンサー

うろ覚えですが
shで動的なサイズの配列はevalで擬似的にするしかなかった気がしますが・・・
なんとなくなサンプル

a=0
while [ ${a} -ne 10 ]
do
  #擬似配列の宣言TEST[a]
  eval "TEST["${a}"]="

  a=`expr ${a} + 1`
done

a=0
while [ ${a} -ne 10 ]
do
  #値のセットTEST[a]=00a
  eval "TEST["${a}"]=00"${a}

  a=`expr ${a} + 1`
done

a=0
while [ ${a} -ne 10 ]
do
  #値の参照
  eval "echo TEST[${a}]=${TEST[${a}]}"

  a=`expr ${a} + 1`
done

Qシェルスクリプト複数の配列を使用したループ処理

bashシェルスクリプトの素人です。

IPアドレスを1行に1つずつ記したファイル IP.txt と、IDを1行に1つずつ記したファイル ID.txt があります。
これらのファイルを使用して下のコマンドをすべてのIPアドレスに対して実行した結果を得たいです。

コマンド▲IPアドレス▲ID > result.txt

IPアドレスの配列と、IDの配列を作成し、それをforでループさせれば良いのではと考え、Webで調べましたが実現方法がわからず困っています。

素人質問で申し訳ありませんが知恵を貸してください。

Aベストアンサー

pasteコマンドでファイルを横に連結すれば、配列を使う必要は無い。

paste IP.txt ID.txt |
while read ip id
do コマンド $ip $id
done > result.txt

bashの配列に入れるのだとすると

ip=(`cat IP.txt`)
id=(`cat ID.txt`)
for i in ${!ip[*]}
do コマンド ${ip[$i]} ${id[$i]}
done > result.txt

>Webで調べましたが実現方法がわからず困っています。

man bash を見ましょう。

QExcel 数字のなかで指定した桁だけ消す

A列にずらっと並んでいる数字から、下n桁分を削除したいのですが、そんな関数ってありますか?

A列      結果(このように抜き出したい)
100,000,000 →100
100,000,000 →100
100,000,000 →100
100,000,000 →100
100,000,000 →100
100,000,000 →100
100,000,000 →100

具体的には売上一覧表があるのですが、
25,879,451,256
と、入力されていてわかりにくいので、単位を「億」にて億未満の数字を消したい。

Aベストアンサー

億で割り算すればよいのでは。
関数というより[/]でよいですね。
あとは、セルの書式を数値にして小数点以下の記述を0にする。

Qshellで16桁の数字が含まれるファイルをリストアップするという処理

shellで16桁の数字が含まれるファイルをリストアップするという処理を作ろうとしています。
システムの全ファイルを対象にするので、短時間で処理を終えたいです。
アイデアだけでも良いのでお力添え宜しくお願い致します。
動作環境はUNIXです。

Aベストアンサー

「含まれる」のがファイル内かファイル名かが不明ですが、ファイル名なら

find / -type f | grep \d{16}

で、ファイル内なら

find / -type f -exec grep -l \d{16} {} \;

とか。
#試してないので動作は保障しませんが

Qタテヨコで数字の被らない二次元配列

23541
32415
14352
45123
51234

のように、タテヨコで数字の被らないN×Nの二次元配列を作成するためには、
どのようなアルゴリズムを考えればよいでしょうか?
またこのような配列の名称はありますか?

どなたかお願いします。

Aベストアンサー

「ラテン方陣」または「ラテン方格」でググってください。


人気Q&Aランキング

おすすめ情報