■■===============【プログラムメールマガジン 色彩】===============■■■ 日本語プログラミング言語なでしこ&ひまわり、WEB開発環境葵情報マガジン ┏━━━━━━━━┓ ┃No8     ┗━━━━━━━━┛  花火、御祭り、海、川、スイカ・・・・皆さん、、夏をイメージする 単語がいくつ思いつくでしょうか。あまりにありすぎて数え切れない なんていう方がいるかもしれません。。学生など長期の夏休みの方も いるかもしれませんが皆さんの夏!、楽しんでくだだいね。  今回も命令の種類(単語)で1000個以上というなでしこについて どんどん使って楽しみましょう。では、今回のラインナップです。  【01】 Word/Excel/Powrpointとの連携 第8回 組み合わせパターン?  【02】 なでしこの最新命令を使ってみよう 第6回 命令「ユニークファイル名生成」  【03】 ポ・イ・ン・ト 第8回 サマー&ウォーター ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ┏━┓ ┃01  テーマ名:Word/Excel/Powrpointとの連携              ┃      第8回 組み合わせパターン? 執筆:粗茶 ┗━┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ こんにちは。粗茶です。 Excelを中心に「なでしこ」で仕事を効率化するテクニックを紹介しています。 今回はちょっとOffice連携から離れますが、それでも仕事をしていると 必要になるだろうなぁ、というプログラムを紹介です。 A社というお得意様から銀行口座に1,686,000円の振込がありました。 A社との過去の取引を調べてみると、まだ入金されていない取引(売掛金)が 残っていることがわかりました。 では、1,686,000円というのは一体どの取引分(売掛金)の入金なのでしょうか。 次のプログラムでは、配列(請求一覧)の中から、組み合わせて(入金額)となる パターンを探してみます。 //ここから 請求一覧は「391000 301000 327000 363000 290000 451000 571000 119000 191000 262000」 入金額は「1686000」 MEMOとはメモ。 そのレイアウトは全体。 そのテキストは「計算中...」。 請求一覧から入金額を組合せ。 #「組合せ」関数を呼び出し MEMOのテキストはREPORT。 ●組合せ(AからBを)   #配列A中の数値を組み合わせて   #その合計がBとなるパターンを探す   MAXはAの要素数-1。B=FLOAT(B)   COUNTER=1。LIMIT=10。RESULT=「」。REPORT=「」   LEVELで0からMAXまで繰り返す。     STORE=「」。TOTAL=0。INDEX=LEVEL     必要の間       もしINDEX>MAXならば         INDEXはSTORE[0,0]+1         TOTALからSTORE[0,1]を直接引く。         STOREの0を配列削除。         もしTOTAL<=0ならば抜ける。         もしINDEX>MAXならば続ける。       TOTALにA[INDEX]を直接足す。       もしTOTALBならば         TOTALからA[INDEX]を直接引く。       もしTOTAL=Bならば         STOREは「{INDEX},{A[INDEX]}{~}{STORE}」         RESULTはSTORE         RESULTを配列逆順。         REPORTはREPORT&「組合せ:{COUNTER}{~}」&RESULT&改行         母艦のタイトルは「組合せ数={COUNTER}」         COUNTERに1を直接足す。         もしCOUNTER>LIMITならば           「組合せが{LIMIT}組を超えました」と言って戻る。         INDEXはSTORE[0,0]+1         TOTALからSTORE[0,1]を直接引く。         STOREの0を配列削除。         もしTOTAL<=0ならば抜ける。         もしINDEX>MAXならば続ける。       INDEXに1を直接足す。   「組合せが終了しました」と言う。 //ここまで 実行すると、組合せパターンが2通りありました。 これだと、A社に入金内容を問い合わせやすいですよね。 今回のプログラムでは、すべての組合せパターンを検証するために、 計算に膨大な時間が掛かってしまいます。そのためパターン数が 10件を超えた場合は終了するように設定しています。(LIMIT=10の部分) 組合せパターンは、配列のデータ数が   10個のとき    1,023通り(約千通り)   20個のとき  1,048,575通り(約百万通り)   30個のとき1,079,741,823通り(約十億通り) あらかじめデータを昇順に並べかえておき、 合計額がオーバーした時点で、 以降の組合せを考慮しないようにするなど、 効率の良いプログラムを組むと良いでしょう。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ┏━┓ ┃02 テーマ名:なでしこの最新命令を使ってみよう ┃ 第6回 命令「ユニークファイル名生成」 執筆:クジラ飛行机 ┗━┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ クジラ飛行机です。このコーナーでは、毎回、最近なでしこに実装された 面白い命令を紹介します。新しい命令が皆さんに「使ってみたい!」と 思ってもらえれば幸いです。 今回は「ユニークファイル名生成」命令です。 この命令は、ファイル名を重複なく保存したい場合で、適当なファイル名を つけて保存したいときに役立ちます。 例えば、以下のようなプログラムを実行します。 {{{ 10回   F=デスクトップで「test.txt」のユニークファイル名生成   Fに「あああ」を保存。   Fを表示 }}} すると、デスクトップに、「test~1.txt」「test~2.txt」「test~3.txt」.. 「test~10.txt」のような適当な名前でファイルを保存します。 データのログファイルなどを保存したい時に便利です。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ┏━┓ ┃03  テーマ名:ポ・イ・ン・ト ┃      第8回 サマー&ウォーター     執筆:EZMAVI.net ┗━┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ こんにちは、EZNAVI.netです。 冷たい飲み物、さっぱりした食べ物を好んで選んでしまうことで夏の暑さを 実感したりしております。さて、先日行われたOSC(京都)では、 いろんな方に来ていただき、各ユーザーさんごとなでしこについて 交流できたかと思います。また、秋ぐらいにも展示会を予定しており その際には、ぜひお近くの方は来ていただければ幸いです。  夏になると水を飲む機会が他の季節に比べずっと多くなりますが、 地球上の水のうち97%は海水、残り3%が淡水(生活で利用可能な水) だということを知っていたでしょうか。そのうち人が使える水は1%未満、 CO2による温暖化で氷河が溶けているという事もあり、水も貴重な資源の 一つだと感じるしだいです。  また、生活上毎日使用するお風呂ですが、その浴槽に水がどれくらい たまるか知っているでしょうか。一般的に150Lから300Lが 一般的だといわれています。 年間でのお風呂(浴槽)水道料金 ①浴槽:200ℓの場合 200*(150*0.001)*365を表示  結果(計算結果) 10950 <円> ②浴槽:300ℓの場合 300*(150*0.001)*365を表示  結果(計算結果) 16425 <円> *浴槽を150ℓ、300ℓとして計算 *一年365日として計算 *1立法メートル(m^3)から1ℓに変更 (数値*0.001)   **一般に水道局(水道局)では立法メートルあたりで料金表表示   **1立方メートルあたり150円として計算  一般的に水道メーターの口径や地域の従量料金により差があるかと思いますが、 節約できることもあるのかもしれませんね。  この計算方法は、洗濯機やトイレなどの水にも計算方法として利用できるので 一度計算してみてはいかがでしょうか。 では、また来月お楽しみに。 ■■===執筆者募集(第2回)のお知らせ===■■■   現在、執筆者を大募集しております。 日本語プログラミング言語なでしこについて、初心者からこのジャンルを 書いてみたいという方、気軽にご連絡をください。お待ちしております。  連絡先 :EZNAVI.net宛 help@eznavi.net ■■===============【プログラムメールマガジン 色彩】===============■■■   ・ メールマガジン登録・解除はこちら (http://mm.himanavi.net/)