« 令和7年度大学入学共通テスト「情報」に出てくる日本語プログラム言語をPythonに直して実行するDNCL2Pythonを作った(1)。日本語プログラム言語はほぼPythonなので、reモジュールを使って正規表現で置換しているだけ。defとappendは仕様に付け加えておいた。 | トップページ | 高周波・RFニュース 2024年11月20日 SEMCOの1005 X7S 2.2μF 10V車載MLCC、TDKの車載PoC用積層インダクタ、Qualcomm Investor DayでOn-Device AIで車載、IoTに注力と発表、NordicのnRF64Lが加賀FEIの世界最小Bluetoothモジュールに採用、u-blox、Telitの新商品など »

2024年11月19日 (火)

令和7年度大学入学共通テスト「情報」に出てくる日本語プログラム言語をPythonに直して実行するDNCL2Pythonを作った(2) 試験対策として試作問題にあった最小交換硬貨枚数の問題と、一番簡単なバブルソートを書いてみる。

さて前回は変換コードを作ったので、次は試作問題にあった最小交換硬貨枚数の問題。
https://www.dnc.ac.jp/kyotsu/shiken_jouhou/r7/r7_kentoujoukyou/r7mondai.html

これを実行するには仕様にはない関数定義が必要で、それは変換コードに追加している。

日本語プログラムは


関数 枚数(kingaku) を定義する:
| Kouka = [1,5,10,50,100]
| maisu = 0
| nokori = kingaku
| iを4から0まで1ずつ減らしながら繰り返す:
| | maisu = maisu + nokori ÷ Kouka[i]
| ⎿ nokori = nokori % Kouka[i]
⎿ maisuを返す

kakaku = 46
min_maisu = 100
tsuri を0から99まで1ずつ増やしながら繰り返す:
|shiharai = kakaku + tsuri
|maisu = 枚数(shiharai) + 枚数(tsuri)
|もしmaisu < min_maisu ならば:
⎿⎿ min_maisu = maisu
表示する(min_maisu)

となってこれをPythonに直すと


def 枚数(kingaku) :
    Kouka = [1,5,10,50,100]
    maisu = 0
    nokori = kingaku
    for i in reversed(range(0, 4+1 , 1)):
        maisu =   maisu   +   nokori // Kouka[i]  
        nokori =   nokori % Kouka[i]
    return maisu

kakaku = 46
min_maisu = 100
for tsuri  in range(0, 99+1 , 1):
    shiharai = kakaku + tsuri
    maisu = 枚数(shiharai) + 枚数(tsuri)  
    if maisu < min_maisu :
        min_maisu = maisu    
print(min_maisu)

となり、答えも3と出た。

次は試験に出そうなアルゴリズムを書いてみる。

まあバブルソートとかかな…

これを参考に。

https://www.programiz.com/dsa/bubble-sort

では日本語プログラムは

Data = [-2, 45, 0, 11, -9]
kazu=要素数(Data)
iを0からkazu-1まで1ずつ増やしながら繰り返す:
| jを0からkazu-i-2まで1ずつ増やしながら繰り返す:
| | もしData[j] > Data[j + 1]ならば:
| | | temp = Data[j]
| | | Data[j] = Data[j + 1]
⎿ ⎿ ⎿ Data[j + 1] = temp
表示する(Data)

これをPythonに変換して実行すると、


Data = [-2, 45, 0, 11, -9]
kazu=len(Data)
for i in range(0, kazu-1+1 , 1):
    for j in range(0, kazu-i-2+1 , 1):
        if Data[j] > Data[j + 1]:
            temp = Data[j]
            Data[j] = Data[j + 1]
            Data[j + 1] = temp
print(Data)

[-9, -2, 0, 11, 45]

となった。次は何かな。

« 令和7年度大学入学共通テスト「情報」に出てくる日本語プログラム言語をPythonに直して実行するDNCL2Pythonを作った(1)。日本語プログラム言語はほぼPythonなので、reモジュールを使って正規表現で置換しているだけ。defとappendは仕様に付け加えておいた。 | トップページ | 高周波・RFニュース 2024年11月20日 SEMCOの1005 X7S 2.2μF 10V車載MLCC、TDKの車載PoC用積層インダクタ、Qualcomm Investor DayでOn-Device AIで車載、IoTに注力と発表、NordicのnRF64Lが加賀FEIの世界最小Bluetoothモジュールに採用、u-blox、Telitの新商品など »

パソコン・インターネット」カテゴリの記事

学問・資格」カテゴリの記事

日記・コラム・つぶやき」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

« 令和7年度大学入学共通テスト「情報」に出てくる日本語プログラム言語をPythonに直して実行するDNCL2Pythonを作った(1)。日本語プログラム言語はほぼPythonなので、reモジュールを使って正規表現で置換しているだけ。defとappendは仕様に付け加えておいた。 | トップページ | 高周波・RFニュース 2024年11月20日 SEMCOの1005 X7S 2.2μF 10V車載MLCC、TDKの車載PoC用積層インダクタ、Qualcomm Investor DayでOn-Device AIで車載、IoTに注力と発表、NordicのnRF64Lが加賀FEIの世界最小Bluetoothモジュールに採用、u-blox、Telitの新商品など »

最近の記事

最近のコメント

2024年12月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
フォト
無料ブログはココログ