出力サンプル -簡易料金計算プログラム―

簡単な料金計算プログラムを題材にしたフローチャート図です。 ソースコードはChatGPTによる要件定義を基につくられた自動生成です。

元のpythonソースコード

#要件定義 #1.料金計算プログラムである。 #2.品物とその単価は以下の通り: #りんご:1個100円 #みかん:1個80円 #3.ユーザーは合計5人おり、各ユーザーは次の情報を入力する: #ユーザーの名前 #りんごの購入個数 #みかんの購入個数 #4.各ユーザーに対して、入力された個数に基づいてそれぞれの品物の総計を計算する。 #5.結果は以下のフォーマットで出力する: #「userさん、リンゴがn個、みかんがn個で合計sum円になります。」 #ここで、userはユーザーの名前、nはそれぞれの品物の購入個数、sumは総計金額を表す。 # def calculate_total(name, apple_count, orange_count): # 単価の定義 apple_price = 100 # りんごの単価 orange_price = 80 # みかんの単価 # 合計金額の計算 total = apple_price * apple_count + orange_price * orange_count # 結果をフォーマットして返す return f"{name}さん、リンゴが{apple_count}個、みかんが{orange_count}個で合計{total}円になります。" # 5人のユーザーに対して処理を実行 for i in range(5): # ユーザー情報の入力 name = input(f"ユーザー{i+1}の名前を入力してください: ") apple_count = int(input(f"{name}さん、リンゴの個数を入力してください: ")) orange_count = int(input(f"{name}さん、みかんの個数を入力してください: ")) # 結果の出力 print(calculate_total(name, apple_count, orange_count))

本体験版より出力後の、自動生成されたマークダウンソースファイル(拡張ファイル形式「.md」)

###### ユーザー定義関数 ###### def calculate_total(name, apple_count, orange_count): ````mermaid %%{init:{'theme':'base','themeVariables':{ 'primaryColor':'white', 'primaryTextColor':'black', 'primaryBorderColor':'#000000', 'lineColor':'gray', 'textColor':'#6A7FABCC', 'fontSize':'15px'}}}%% %%{ init: { 'flowchart': { 'curve': 'basis' } } }%% graph TD; classDef default fill:#FFF4DD,stroke:#333,stroke-width:2px; classDef clrPattern1 fill:#FFFF00,stroke:#333,stroke-width:2px; classDef clrPattern2 fill:#FFC800,stroke:#333,stroke-width:2px; classDef clrPattern3 fill:#005060,stroke:#333,stroke-width:2px; classDef clrPattern4 fill:#FFFFFF,stroke:#333,stroke-width:2px; classDef clrPattern5 fill:#cde498,stroke:#333,stroke-width:2px; classDef clrPattern6 fill:#F0B0A0,stroke:#333,stroke-width:2px; classDef clrPattern7 fill:lightblue,stroke:#333,stroke-width:2px; linkStyle default stroke:gray,stroke-width:2px; %%データ項目 1("処理 開始") 5["【処理】 18: apple_price = 100 # りんごの単 価 "] 6["【処理】 19: orange_price = 80 # みかんの単 価 "] 7["【処理】 22: total = apple_price * appl e_count + orange_price * orang e_count "] 6165[/" 【return文】 25: return f゛{name}さん、リンゴが{app le_count}個、みかんが{orange_count}個 で合計{total}円になります。゛ "/] 8("処理 終了") %%ルート設定 1-->5 5-->6 6-->7 7-->6165 6165-->8 ###### 関数ブロック以外 ````mermaid %%{init:{'theme':'base','themeVariables':{ 'primaryColor':'white', 'primaryTextColor':'black', 'primaryBorderColor':'#000000', 'lineColor':'gray', 'textColor':'#6A7FABCC', 'fontSize':'15px'}}}%% %%{ init: { 'flowchart': { 'curve': 'basis' } } }%% graph TD; classDef default fill:#FFF4DD,stroke:#333,stroke-width:2px; classDef clrPattern1 fill:#FFFF00,stroke:#333,stroke-width:2px; classDef clrPattern2 fill:#FFC800,stroke:#333,stroke-width:2px; classDef clrPattern3 fill:#005060,stroke:#333,stroke-width:2px; classDef clrPattern4 fill:#FFFFFF,stroke:#333,stroke-width:2px; classDef clrPattern5 fill:#cde498,stroke:#333,stroke-width:2px; classDef clrPattern6 fill:#F0B0A0,stroke:#333,stroke-width:2px; classDef clrPattern7 fill:lightblue,stroke:#333,stroke-width:2px; linkStyle default stroke:gray,stroke-width:2px; %%データ項目 9[/" 【繰返文開始】 28: for i in range(5): "\]:::clrPattern2 14["【入力】 30: name = input(f゛ユーザー{i+1}の名 前を入力してください: ゛) "]:::clrPattern6 17["【処理】 31: apple_count = int(input(f゛ {name}さん、リンゴの個数を入力してください: ゛)) "] 20["【処理】 32: orange_count = int(input(f ゛{name}さん、みかんの個数を入力してください: ゛)) "] 22["【出力】 35: print(calculate_total(name , apple_count, orange_count)) "]:::clrPattern5 23[\" 【繰返文終了】"/]:::clrPattern2 %%ルート設定 s([START])--> 9-->|ループ開始|14 14-->17 17-->20 20-->22 22-->23 23-->|ループ終了|e([end]) 23-->|ループ継続|9

本体験版より出力後のマークダウンファイルのデータをもとにつくられたフローチャート図です。
フローチャート図は「%%ルート設定」に書かれたデータ項目同士のつながりで表現してます。

ユーザー定義関数
def calculate_total(name, apple_count, orange_count):
%%{init:{'theme':'base','themeVariables':{ 'primaryColor':'white', 'primaryTextColor':'black', 'primaryBorderColor':'#000000', 'lineColor':'gray', 'textColor':'#6A7FABCC', 'fontSize':'15px'}}}%% %%{ init: { 'flowchart': { 'curve': 'basis' } } }%% graph TD; classDef default fill:#FFF4DD,stroke:#333,stroke-width:2px; classDef clrPattern1 fill:#FFFF00,stroke:#333,stroke-width:2px; classDef clrPattern2 fill:#FFC800,stroke:#333,stroke-width:2px; classDef clrPattern3 fill:#005060,stroke:#333,stroke-width:2px; classDef clrPattern4 fill:#FFFFFF,stroke:#333,stroke-width:2px; classDef clrPattern5 fill:#cde498,stroke:#333,stroke-width:2px; classDef clrPattern6 fill:#F0B0A0,stroke:#333,stroke-width:2px; classDef clrPattern7 fill:lightblue,stroke:#333,stroke-width:2px; linkStyle default stroke:gray,stroke-width:2px; %%データ項目 1("処理 開始") 5["【処理】 18: apple_price = 100 # りんごの単 価 "] 6["【処理】 19: orange_price = 80 # みかんの単 価 "] 7["【処理】 22: total = apple_price * appl e_count + orange_price * orang e_count "] 6165[/" 【return文】 25: return f゛{name}さん、リンゴが{app le_count}個、みかんが{orange_count}個 で合計{total}円になります。゛ "/] 8("処理 終了") %%ルート設定 1-->5 5-->6 6-->7 7-->6165 6165-->8
関数ブロック以外
%%{init:{'theme':'base','themeVariables':{ 'primaryColor':'white', 'primaryTextColor':'black', 'primaryBorderColor':'#000000', 'lineColor':'gray', 'textColor':'#6A7FABCC', 'fontSize':'15px'}}}%% %%{ init: { 'flowchart': { 'curve': 'basis' } } }%% graph TD; classDef default fill:#FFF4DD,stroke:#333,stroke-width:2px; classDef clrPattern1 fill:#FFFF00,stroke:#333,stroke-width:2px; classDef clrPattern2 fill:#FFC800,stroke:#333,stroke-width:2px; classDef clrPattern3 fill:#005060,stroke:#333,stroke-width:2px; classDef clrPattern4 fill:#FFFFFF,stroke:#333,stroke-width:2px; classDef clrPattern5 fill:#cde498,stroke:#333,stroke-width:2px; classDef clrPattern6 fill:#F0B0A0,stroke:#333,stroke-width:2px; classDef clrPattern7 fill:lightblue,stroke:#333,stroke-width:2px; linkStyle default stroke:gray,stroke-width:2px; %%データ項目 9[/" 【繰返文開始】 28: for i in range(5): "\]:::clrPattern2 14["【入力】 30: name = input(f゛ユーザー{i+1}の名 前を入力してください: ゛) "]:::clrPattern6 17["【処理】 31: apple_count = int(input(f゛ {name}さん、リンゴの個数を入力してください: ゛)) "] 20["【処理】 32: orange_count = int(input(f ゛{name}さん、みかんの個数を入力してください: ゛)) "] 22["【出力】 35: print(calculate_total(name , apple_count, orange_count)) "]:::clrPattern5 23[\" 【繰返文終了】"/]:::clrPattern2 %%ルート設定 s([START])--> 9-->|ループ開始|14 14-->17 17-->20 20-->22 22-->23 23-->|ループ終了|e([end]) 23-->|ループ継続|9