🌸 「なでしこ」
>
🍯 「貯蔵庫」
ドント式の計算
🌟新規
📒一覧
🔌
🔍検索
🚪ログイン
ドント式の計算 📖
ドント式の計算を行い、各団体の得票数と総議席数から各団体の議席数を求めます。
プログラム:
(→大)
『「団体名,得票数」の形式で入力してください。』のラベル作成。 改行作成。 入力欄は空のテキストエリア作成。 その「cols」に30をDOM属性設定。 その「rows」に10をDOM属性設定。 改行作成。 「総議席数:」のラベル作成。 総議席数欄は「5」のエディタ作成。 その「type」に「number」をDOM属性設定。 その「min」に0をDOM属性設定。 計算ボタンは「計算」のボタン作成。 改行作成。 結果テーブルは「団体名,議席数」のテーブル作成。 それの「行揃え」に「右」をDOMスタイル設定。 計算ボタンをクリックした時には 定数の入力配列は入力欄のテキスト取得してCSV取得。 定数の団体数は入力配列の要素数。 定数の最初取得は関数(A) それはA@0。ここまで。 定数の二番目取得は関数(A) それはA@1。ここまで。 定数の団体名リストは入力配列に最初取得を配列関数適用。 定数の得票数リストは入力配列に二番目取得を配列関数適用。 得票数リストを反復 もし、(対象をNAN判定)または(対象<0)ならば 「得票数は非負の数でなければなりません。{改行}{対象}はダメです。」と言う。 空を戻す。 ここまで。 ここまで。 定数の総議席数は総議席数欄のテキスト取得して整数変換。 もし、(総議席数をNAN判定)または(総議席数<0)ならば 「総議席数は非負整数でなければなりません。」と言う。 空を戻す。 ここまで。 定数の議席数リストは0を団体数だけ配列要素作成。 (総議席数)回、繰り返す 変数の議席獲得者は0。 iで0から(団体数-1)まで繰り返す もし、(得票数リスト@i)×((議席数リスト@議席獲得者)+1)が(得票数リスト@議席獲得者)×((議席数リスト@i)+1)超ならば 議席獲得者はi。 ここまで。 ここまで。 議席数リスト@議席獲得者を1増やす。 ここまで。 定数の最大議席数は議席数リストの配列最大値。 定数の結果リストは空配列。 iで0から(団体数-1)まで繰り返す 変数の結果は[(団体名リスト@i), (議席数リスト@iの通貨形式)]。 jで0から最大議席数まで繰り返す 変数の結果セルは空。 もし、jが議席数リスト@i未満ならば 結果セルは結果セルに「(当) 」を追加。 ここまで。 得票数リスト@iを(j+1)で割って切り捨てして通貨形式。 結果セルは結果セルにそれを追加。 結果に結果セルを配列追加。 ここまで。 結果リストに結果を配列追加。 ここまで。 変数の結果ヘッダは["団体名", "議席数"]。 iで0から最大議席数まで繰り返す 結果ヘッダは結果ヘッダに「÷{i+1}」を配列追加。 ここまで。 結果リストの0に結果ヘッダを配列挿入。 結果テーブルを結果リストにテーブル更新。 ここまで。
プログラムを実行
⭐ みけCAT 作
(
関連URL
)
タイトル:
ドント式の計算
ライセンス:
MIT (
改変可/表示
)
タイプ:
wnako
タグ:
-
利用バージョン:
3.7.6
作成日時:
2025/07/20 23:57 (編集: 2025/07/21 00:01)
公開の投稿
ログイン
して★を付けよう!
📝作品を編集
作品公開情報
📍この作品のURL:
📍アプリ(即時実行)のURL:
📍アプリ(実行ボタンあり)のURL:
📍ブログパーツ:
上記HTML↑をブログに貼り付けることでアプリを埋め込めます。
📍ライブラリ直リンク - 『!「***」を取込』で使うとき:
📍なでしこハブ (最新版の反映は1日後):
ソースの確認
編集履歴の確認
通報数:
0
通報って何?