このディレクトリの索引

# 出典 :: C/C++の宿題片付けます 158代目 #102 # [1] 授業単元:C # [2] 問題文(含コード&リンク): # 商品の種類の数をまず入力し、それから各商品の価格と 購入した個数を入力して、合計金額を計算して表示するプログラムを作成しなさい。 # それぞれの商品番号に対して、単価と個数の2つの要素を持つような 2次元配列を使ってプログラムを作成しなさい。 # ただし商品の種類の数は100以下とする。 # '商品の種類の数をまず入力し、それから各商品の価格と購入した個数を入力して、合計金額を計算して表示する。それぞれの商品番号に対して、単価と個数の2つの要素を持つような2次元配列を使ってプログラムを作成しなさい。ただし商品の種類の数は100以下とする。' :- '商品の種類の数をまず入力し(ただし商品の種類の数は100以下とする)'(_商品の種類の数), 'それから各商品の価格と購入した個数を入力して、それぞれの商品番号に対して、単価と個数の2つの要素を持つような_各商品の価格と購入した個数ならびを生成する'(_商品の種類の数,_各商品の価格と購入した個数ならび), 合計金額を計算して表示する(_各商品の価格と購入した個数のならび). '商品の種類の数をまず入力し(ただし商品の種類の数は100以下とする)'(_商品の種類の数) :- write('商品の種類の数を設定してください : '), 行入力(_行), '診断: 商品の種類の数'(_行,_商品の種類の数),!. '商品の種類の数をまず入力し(ただし商品の種類の数は100以下とする)'(_商品の種類の数) :- '商品の種類の数をまず入力し(ただし商品の種類の数は100以下とする)'(_商品の種類の数). '診断: 商品の種類の数'(_行,_商品の種類の数) :- read_term_from_atom(_行,_商品の種類の数,[]), integer(_商品の種類の数), _商品の種類の数 > 0,!. '診断: 商品の種類の数'(_行,_商品の種類の数) :- writef('入力された %t からは適切な商品の種類の数が得られません。再入力をお願いします。\n',[_行]), fail. 'それから各商品の価格と購入した個数を入力して、それぞれの商品番号に対して、単価と個数の2つの要素を持つような_各商品の価格と購入した個数ならびを生成する'(_商品の種類の数,_各商品の価格と購入した個数ならび) :- length(_各商品の価格と購入した個数ならび,_商品の種類の数), findall([_商品番号,_商品価格,_購入した個数],( append(_,[_|_],_各商品の価格と購入した個数ならび), 商品の価格と購入した個数を入力して(_商品番号,_商品価格,_購入した個数)),_各商品の価格と購入した個数ならび). 商品の価格と購入した個数を入力して(_商品番号,_商品価格,_購入した個数) :- 商品番号の入力(_商品番号), 商品価格の入力(_商品番号,_商品価格), 購入した個数の入力(_商品番号,_購入した個数). 商品番号の入力(_商品番号) :- 行入力(_商品番号). 商品価格の入力(_商品番号,_商品価格) :- writef('商品番号%tの商品価格を入力してください : ',[_商品番号]), 行入力(_行), '診断: 商品価格の入力'(_行,_商品価格),!. 商品価格の入力(_商品番号,_商品価格) :- 商品価格の入力(_商品番号,_商品価格). '診断: 商品価格の入力'(_行,_商品価格) :- read_term_from_atom(_行,_商品価格,[]), number(_商品価格), _商品価格 >= 0.0,!. '診断: 商品価格の入力'(_行,_商品価格) :- writef('入力された %t からは適切な商品価格が得られません。再入力をお願いします。\n',[_行]), fail. 購入した個数の入力(_商品番号,_購入した個数) :- writef('商品番号%tの購入した個数を入力してください : ',[_商品番号]), 行入力(_行), '診断: 購入した個数の入力'(_行,_購入した個数),!. 購入した個数の入力(_商品番号,_購入した個数) :- 購入した個数の入力(_商品番号,_購入した個数). '診断: 購入した個数の入力'(_行,_購入した個数) :- read_term_from_atom(_行,_購入した個数,[]), number(_購入した個数), _購入した個数 >= 0.0,!. '診断: 購入した個数の入力'(_行,_購入した個数) :- writef('入力された %t からは適切な購入した個数が得られません。再入力をお願いします。\n',[_行]), fail. 合計金額を計算して表示する(_各商品の価格と購入した個数のならび) :- 合計金額を計算して(_各商品の価格と購入した個数のならび,_合計金額), 表示する(_合計金額). 合計金額を計算して(_各商品の価格と購入した個数のならび,_合計金額) :- findsum(_金額,( member([_,_商品の価格,_購入した個数],_各商品の価格と購入した個数のならび), _金額 is _商品価格 * _購入した個数),_合計金額). 表示する(_合計金額) :- writef('合計金額は %t です\n',[_合計金額]). 行入力(_行) :- read_line_to_codes(current_input,_行コードならび), atom_codes(_行,_行コードならび).