プログラミング入門

プログラミング初心者のためのScratch(スクラッチ)入門-演算ブロックで文字列操作

プログラミング初心者の子供に何を教えたらいいの?とお悩みの保護者のためのScratch(スクラッチ)の入門講座。Scratchで猫の動かし方はわかったけど・・・次にどんなことをしたらいいの?という疑問にお答えするシリーズです。
今回は「演算ブロック」のうちの文字列操作を行うブロックについて解説します。

 

1. 演算ブロックって何?

ゲーム作りやアプリ作りで欠かせないScratchの「計算」。Scratchの計算で絶対使うのが「演算ブロック」です。今回は演算ブロックのうち、文字列操作の演算ブロックについて解説します。
 

1-1. 演算ブロックってどこにある?

スクリプトタブの「演算」のところをクリックする表示されるのが、演算ブロックです。

今回は、文字列操作のブロックについて解説いたします。他の演算ブロックの使い方については次の記事も参考にしてみてください。
プログラミング初心者のためのScratch(スクラッチ)入門-演算ブロックで計算しよう
プログラミング初心者のためのScratch(スクラッチ)入門-「真」「偽」を返す演算ブロック

 

1-2. 文字列って何?

「文字列」は日常生活ではあまり聞きなれない言葉ですが、プログラミングの世界ではよく使います。文字列とは単語や文章など文字が並んだものです。

[文字列の例]
 りんご
 私はりんごを食べた。
 こんにちは。
 apple
 I hava a pen.

単語も文字列ですし、文章も文字列です。英語単語も文字列ですし、英語の文章も文字列なのです。プログラムでは文字を扱うこともありますので、数値の計算と同じぐらい文字列操作はよく行います。

 

1-3. 文字列を扱うブロックはどれ?

演算ブロックの中の以下のブロックは「文字列」を操作することができるブロックです。今回はこのブロックを使って文字列操作を行ってみたいと思います。

 

2. 文字列操作をやってみよう

では、上でご紹介したブロックを使ってみましょう。Scratchの演算ブロックは、ブロックをクリックすると演算の結果が吹き出しで表示されますので、クリックして演算結果を確認していきます。
 

2-1. 文字列と文字列をくっつける

まず最初は「●●と▲▲」というブロックです。これは文字列と文字列をくっつけます。
実際に文字を入れてブロックをクリックすると・・・

「あいう」と「えお」がくっついて「あいうえお」になりました。実際のプログラムではこのブロックに直接文字を入力することはあまりありません。このブロックの空欄の片方には変数など別のブロックを入れることが多いです。

例えばこんな感じです。

「●●と▲▲」ブロックをたくさん使っています。このプログラムを実行すると、スプライトが今日の日付を言います。

別のプログラム例です。こんなこともできますよ。

このプログラムを実行すると、スプライトがあなたの名前を質問します。

「太郎」と入力してみましょう。そうすると、スプライトが挨拶をします。

「答え」の文字列と「挨拶」の文字列をくっつけたものを、スプライトに言わせることができましたね。
 

2-2. 文字列の途中の文字を抜き出す

次は「●番目(▲▲)の文字」というブロックです。なんだかパッと見は意味がよくわかりませんが、これは▲▲の文字列の●番目の文字を教えてくれる働きがあります。

また適当な数字と文字を入れて実験してみましょう。「3番目(かきくけこ)の文字」というブロックを作りました。「かきくけこ」の3番目の文字を教えてくれるはずです。このブロックをクリックすると

3番目の文字は「く」ということがわかりました。

このブロックを使って「パタトクカシーー」問題を解くことを考えてみたいと思います。ピタゴラスイッチで「ひとつとびぶったいパタトクカシー」というコーナーで紹介されている言葉あそびです。2つの物体(?言葉)が一つ飛びにくっついているんです。

▼ひとつとびぶったい パタトクカシーの項目をご覧ください
ピタゴラスイッチ-Wikipedia

まず、こんなプログラムを作ります。

パタトクカシーーの1番目、3番目、5番目、7番目の文字をくっつけます。ここで便利なテクニックをご紹介します。「●番目パタトクカシーー」というブロックは4個使うので、「複製」を使うと簡単にたくさんつくれますよ。

「1番目パタトクカシーー」を作ったらそのブロックを右クリックしましょう。すると「複製」というメニューが表示されますので、複製をクリックすると同じブロックがコピーされます。

複製を繰り返して、番号の部分だけを変えたブロックをあと3個作りました。

これを文字を結合するブロックに入れていけば完成です。

結果はこのような感じになりました。

このプログラム、このままではちょっとプログラミングっぽくありません。そこで、こちらの記事でアルゴリズムを考えてみました。よろしければ以下の記事も合わせてご覧ください。
プログラミング初心者のためのScratch(スクラッチ)入門-パタトクカシー問題のアルゴリズム

 

2-3. 文字列の長さを数える

最後は「▲▲の長さ」というブロックです。これは文字列の長さ=文字数を教えてくれるブロックです。では、実際にやってみましょう。

また適当な数字と文字を入れてみます。「おはようこんにちはさようならの長さ」というブロックを作りました。「おはようこんにちはさようなら」の文字数を教えてくれるはずです。このブロックをクリックすると

となります。

このブロックは、「答え」ブロックや、制御のブロックと組み合わせてつかうことが多いです。例えばこのようなプログラムで使用します。

これは答えの長さが10文字未満と10文字以上で、スプライトが言う言葉が変わるプログラムです。

このプログラムを実行してみましょう。スプライトが駅名を聞いてくるので、まずは東京駅と答えてみます。

すると、もっと長い駅名を調べるようにアドバイスされました。

もう一度実行してみます。今度は「南阿蘇水の生まれる里白水高原駅」を答えてみます。

スプライトのコメントが先ほどと変わりました。

上記は一例ですが、クイズプログラムや、チャットボットなど文字の長さでプログラムの動きを変えたいときに使うと便利なブロックです。

 

3. 演算ブロック文字列操作のまとめ

演算ブロック文字列操作には次の3種類があります。

 ・文字列をくっつける
 ・文字列の途中の文字を抜き出す
 ・文字の長さを教えてくれる

Scratchは、絵を動かすのであまり文字列を扱う機会は少ないかもしれません。ですが、大人向けの本格プログラミングでは文字列操作はよく行います。機会を見つけて、文字列操作にもチャレンジしてみてくださいね。

伴野悠佳 / YUKA TOMONO
この記事の著者伴野悠佳 / YUKA TOMONO
教育ヲタクの1児の母。自称ニコニコキッズクリエーター。東京理科大学大学院卒。元SE。小学生の頃から教育書を読んでいた教育ヲタク。大学では、電池の素材の性質について実験とコンピューターシミュレーションを比較する研究を行っていたことがきっかけでSEになる。出産&育休後、子ども向けプログラミング教室講師、子どもたちの考える力を育てるオンライン塾の講師。