コード例
Hello World
表示("こんにちは、世界!")
計算
// 四則演算
変数 a = 10
変数 b = 3
表示(a + b) // → 13
表示(a - b) // → 7
表示(a * b) // → 30
表示(a / b) // → 3
表示(a ^ 2) // → 100
// 三角形の面積
変数 底辺 = 8
変数 高さ = 5
変数 面積 = 底辺 * 高さ / 2
表示("面積: " + 文字列化(面積))
FizzBuzz
繰り返す i から 1 まで 100:
もし i % 15 == 0 なら
表示("FizzBuzz")
それ以外 もし i % 3 == 0 なら
表示("Fizz")
それ以外 もし i % 5 == 0 なら
表示("Buzz")
それ以外
表示(i)
終わり
終わり
配列操作
// 配列の作成
変数 配列 = [1, 2, 3, 4, 5]
// 配列の変換(リスト内包表記)
変数 二乗 = [n * n を n から 配列]
表示(二乗) // → [1, 4, 9, 16, 25]
// フィルタリング
変数 偶数 = [n を n から 配列 もし n % 2 == 0]
表示(偶数) // → [2, 4]
// ソート
変数 ソート済み = ソート([5, 2, 8, 1, 9])
表示(ソート済み) // → [1, 2, 5, 8, 9]
// 逆順
変数 逆 = 逆順([1, 2, 3, 4, 5])
表示(逆) // → [5, 4, 3, 2, 1]
// 合計
変数 合計 = 0
各 n を 配列 の中:
合計 = 合計 + n
終わり
表示(合計) // → 15
関数の定義と利用
// フィボナッチ数列
関数 フィボナッチ(n):
もし n <= 1 なら
戻す n
終わり
戻す フィボナッチ(n - 1) + フィボナッチ(n - 2)
終わり
表示(フィボナッチ(10)) // → 55
// 階乗
関数 階乗(n):
もし n <= 1 なら
戻す 1
終わり
戻す n * 階乗(n - 1)
終わり
表示(階乗(5)) // → 120
// 素数判定
関数 素数判定(n):
もし n < 2 なら
戻す 偽
終わり
繰り返す i から 2 まで 整数根(n) + 1:
もし n % i == 0 なら
戻す 偽
終わり
終わり
戻す 真
終わり
表示(素数判定(17)) // → 真
クラスとオブジェクト
クラス 銀行口座:
関数 初期化(名義, 初期残高):
自分.名義 = 名義
自分.残高 = 初期残高
終わり
関数 入金(額):
自分.残高 = 自分.残高 + 額
表示(自分.名義 + "に" + 文字列化(額) + "円入金されました")
終わり
関数 出金(額):
もし 自分.残高 >= 額 なら
自分.残高 = 自分.残高 - 額
表示(自分.名義 + "から" + 文字列化(額) + "円出金されました")
それ以外
表示("残高不足です")
終わり
終わり
関数 残高表示():
表示(自分.名義 + "の残高: " + 文字列化(自分.残高) + "円")
終わり
終わり
// 使用例
変数 太郎口座 = 新規 銀行口座("太郎", 100000)
太郎口座.残高表示() // 太郎の残高: 100000円
太郎口座.入金(50000) // 太郎に50000円入金されました
太郎口座.出金(30000) // 太郎から30000円出金されました
太郎口座.残高表示() // 太郎の残高: 120000円
辞書操作
// ユーザー情報
変数 ユーザー = {
"名前": "田中太郎",
"年齢": 30,
"職業": "エンジニア",
"地域": "東京"
}
// アクセス
表示(ユーザー["名前"]) // → 田中太郎
表示(ユーザー["年齢"]) // → 30
// キーと値の列挙
各 キー を キー(ユーザー) の中:
表示(キー + ": " + 文字列化(ユーザー[キー]))
終わり
// 複数ユーザー
変数 ユーザーリスト = [
{"名前": "田中", "年齢": 30},
{"名前": "佐藤", "年齢": 25},
{"名前": "鈴木", "年齢": 35}
]
各 u を ユーザーリスト の中:
表示(u["名前"] + ": " + 文字列化(u["年齢"]) + "歳")
終わり
文字列操作
// 基本操作
変数 文字列 = "プログラミング"
表示(長さ(文字列)) // → 7
表示(部分文字列(文字列, 0, 4)) // → プログラ
表示(大文字("hello")) // → HELLO
表示(小文字("HELLO")) // → hello
// 分割と結合
変数 文 = "りんご,みかん,ぶどう"
変数 果物 = 分割(文, ",")
表示(果物) // → ["りんご", "みかん", "ぶどう"]
変数 結合済み = 結合(["a", "b", "c"], "-")
表示(結合済み) // → a-b-c
// 置換
変数 元の文字列 = "こんにちは、世界"
変数 新しい文字列 = 置換(元の文字列, "世界", "宇宙")
表示(新しい文字列) // → こんにちは、宇宙
// 検索
表示(始まる("Hello World", "Hello")) // → 真
表示(終わる("Hello World", "World")) // → 真
ユーザー入力
表示("あなたの名前は?")
変数 名前 = 入力()
表示("あなたの年齢は?")
変数 年齢 = 入力()
表示(名前 + "さんは" + 年齢 + "歳ですね")
// 数値に変換
表示("2つの数字を入力してください")
表示("1番目: ")
変数 a = 数値化(入力())
表示("2番目: ")
変数 b = 数値化(入力())
表示("合計: " + 文字列化(a + b))
高階関数とラムダ式
// 配列の変換 変数 配列 = [1, 2, 3, 4, 5] 変数 二乗 = 変換(配列, 関数(n): 戻す n * n 終わり) 表示(二乗) // → [1, 4, 9, 16, 25] // フィルタリング 変数 偶数 = 抽出(配列, 関数(n): 戻す n % 2 == 0 終わり) 表示(偶数) // → [2, 4] // 合計計算 変数 合計 = 折り畳み(配列, 0, 関数(acc, n): 戻す acc + n 終わり) 表示(合計) // → 15 // 条件チェック 表示(全て(配列, 関数(n): 戻す n > 0 終わり)) // → 真 表示(一つでも(配列, 関数(n): 戻す n > 10 終わり)) // → 偽
その他の便利な例
パスワード検証
関数 パスワード検証(パスワード):
変数 長さ_OK = 長さ(パスワード) >= 8
変数 大文字_OK = 偽
変数 数字_OK = 偽
各 c を パスワード の中:
もし 文字コード(c) >= 65 かつ 文字コード(c) <= 90 なら
大文字_OK = 真
終わり
終わり
各 c を パスワード の中:
もし 文字コード(c) >= 48 かつ 文字コード(c) <= 57 なら
数字_OK = 真
終わり
終わり
戻す 長さ_OK かつ 大文字_OK かつ 数字_OK
終わり
もし パスワード検証("Abc12345") なら
表示("強力なパスワードです")
それ以外
表示("弱いパスワードです")
終わり
温度変換
関数 摂氏から華氏(摂氏):
戻す 摂氏 * 9 / 5 + 32
終わり
関数 華氏から摂氏(華氏):
戻す (華氏 - 32) * 5 / 9
終わり
表示(摂氏から華氏(0)) // → 32
表示(摂氏から華氏(100)) // → 212
表示(華氏から摂氏(32)) // → 0
さらに学ぶ
🚀 実践プロジェクト例
はじむは教育用だけでなく、実際のプロジェクトでも活用できます。以下は実用的なユースケースです。
Webスクレイピング
// ニュースサイトから記事タイトルを取得
非同期 関数 ニュース取得(URL):
試す
変数 応答 = 待つ HTTP取得(URL)
変数 HTML = 応答.本文
// 簡易的なHTMLパージング
変数 タイトル一覧 = []
変数 行一覧 = 分割(HTML, "\n")
各 行 を 行一覧 から
もし "<h2>" が含まれる 行 なら
変数 開始 = 検索(行, "<h2>") + 4
変数 終了 = 検索(行, "</h2>")
もし 終了 > 開始 なら
変数 タイトル = 部分文字列(行, 開始, 終了 - 開始)
追加(タイトル一覧, タイトル)
終わり
終わり
終わり
戻す タイトル一覧
捕捉 エラー:
表示("エラー:", エラー)
戻す []
終わり
終わり
データ分析ツール
// CSVファイルを読み込んで統計情報を表示
関数 CSV読み込み(ファイル名):
変数 内容 = ファイル読込(ファイル名)
変数 行一覧 = 分割(内容, "\n")
変数 データ = []
各 行 を 行一覧 から
もし 長さ(行) > 0 なら
変数 値 = 分割(行, ",")
追加(データ, 値)
終わり
終わり
戻す データ
終わり
関数 統計計算(数値配列):
変数 合計値 = 合計(数値配列)
変数 平均値 = 合計値 / 長さ(数値配列)
変数 最大値 = 最大(数値配列)
変数 最小値 = 最小(数値配列)
戻す {
"合計": 合計値,
"平均": 平均値,
"最大": 最大値,
"最小": 最小値
}
終わり
// メイン処理
変数 データ = CSV読み込み("sales_data.csv")
変数 ヘッダー = データ[0]
変数 数値データ = [小数化(行[1]) を 行 から 部分配列(データ, 1, 長さ(データ))]
変数 統計 = 統計計算(数値データ)
表示("売上データ分析")
表示("================")
表示("合計:", 統計["合計"])
表示("平均:", 統計["平均"])
表示("最大:", 統計["最大"])
表示("最小:", 統計["最小"])
簡易APIサーバー(コンセプト)
// ユーザー情報を管理するREST API
クラス ユーザーマネージャー:
初期化():
自分.ユーザー = {}
自分.次のID = 1
終わり
ユーザー作成(自分, 名前, メール):
変数 ID = 自分.次のID
自分.ユーザー[ID] = {
"id": ID,
"名前": 名前,
"メール": メール
}
自分.次のID = 自分.次のID + 1
戻す 自分.ユーザー[ID]
終わり
ユーザー取得(自分, ID):
もし ID が含まれる 自分.ユーザー なら
戻す 自分.ユーザー[ID]
終わり
戻す 空
終わり
全ユーザー取得(自分):
戻す 値一覧(自分.ユーザー)
終わり
終わり
// 使用例
変数 マネージャー = 新しい ユーザーマネージャー()
変数 user1 = マネージャー.ユーザー作成("太郎", "taro@example.com")
変数 user2 = マネージャー.ユーザー作成("花子", "hanako@example.com")
表示("作成:", user1, user2)
変数 全ユーザー = マネージャー.全ユーザー取得()
表示("全ユーザー:", 全ユーザー)
ファイルバックアップツール
// 指定ディレクトリのファイルをバックアップ
関数 バックアップ(ソース, 先):
表示("バックアップ開始:", ソース, "->", 先)
変数 成功 = 0
変数 失敗 = 0
試す
変数 ファイル = ["file1.txt", "file2.txt", "data.json"]
各 ファイル名 を ファイル から
試す
変数 ソースパス = ソース + "/" + ファイル名
変数 先パス = 先 + "/" + ファイル名
変数 内容 = ファイル読込(ソースパス)
ファイル書込(先パス, 内容)
表示(" ✓", ファイル名, "をコピー")
成功 = 成功 + 1
捕捉 エラー:
表示(" ✗ エラー:", ファイル名, "-", エラー)
失敗 = 失敗 + 1
終わり
終わり
表示("\nバックアップ完了")
表示("成功:", 成功, "件")
表示("失敗:", 失敗, "件")
戻す {"成功": 成功, "失敗": 失敗}
捕捉 エラー:
表示("致命的エラー:", エラー)
戻す 空
終わり
終わり
// 実行
変数 結果 = バックアップ("./documents", "./backup")