Processing ではじめるプログラミング 8日目(ループを使ったプログラミング)
昨日はループについて学びました。今日はループで模様をかいてみましょう。
まずは線を書いてみます。
size(600,600); int a = 100; strokeWeight(5); line(a,100,a,500);
ループさせて線を複数書いてみます。
size(600,600); int a = 100; strokeWeight(5); for(int i=0;i<5;i++){ int x_Coordinate; x_Coordinate = a+i*100; line(x_Coordinate,100,x_Coordinate,500); }
for文の中で x_Coordinate という変数を宣言します。 x_Coordinate に初期値であるaにループ回数と100を掛けたものを代入します。
x_Coordinate をx座標として指定し、線を表示します。
for文を使うとこんなこともできます。
noStroke(); for(int y=0;y<100;y+=10){ for(int x=0;x<100;x+=10){ fill((x+y)*1.5); rect(x,y,10,10); } }
OS X を再インストールしてみたよ!
風邪で家に引きこもることになったぞ!
なにしよう?? そうだ、再インストールしよう!
ということで、OS X 再インストールすることにしました。
僕のMacBook Air は3年前から使っていてすこし処理が遅いときがありました。また、容量も若干厳しくなってきてました。
あと、僕のMacはなぜかBluetooth がなぜかつかなくなりました。(Boot CampのWindowsでは普通に使えます。)
↓この記事を書いたのちターミナルでいろいろいじっているとつかなくなりました(T_T)
というわけで再インストールすることになりました。
再インストールする上で僕が注意した点は
これぐらいですかね。もし、フォントを自分で入れたりしている人はそのフォントデータもしっかり保存しておきましょう。
再インストールにかんしてはこちらの記事を参考にさせていただきました。
上記の記事に加えたアレンジとしてはiCloudを切りにしたとこぐらいです。
一つ一つ確認してやればミスはなくせるとおもうのでみなさんも落ち着いて作業してください。
そして再インストール後のMacですが、起動が早くなりました!(ほんのすこしですが...)
新品のMacを使っているのと理論的には同じ(だと思う)ので、まあ早いのは当たり前ですよね
問題のBluetoothですが、再インストール後問題なくつかうことができました。
再インストールすばらしい!!
Processing ではじめるプログラミング 7日目(ループさせてみる)
昨日の復習です。1+2をしてみましょう。
答え
int a = 1; int b = 2; int c; c = a+b; print(c);
この書き方以外にも正解があるので、全く同じでなくても大丈夫です。
それでは、1+2+3はどうでしょうか?
変数をさらに1つ作りますか?では、1+2+3+4は?
とまぁこのようにたくさんになってくると大変になるので、ループ処理をします。
ループするときは、for(;;){}; という文章を使います。
詳しく書くと、for(初期値;ループの条件;一回のループが終わるごとの処理){ループさせる処理}; というように書きます。
int a; for (a=0;a<5;a++){ println(a); }
このソースコードは、はじめにa という変数を宣言して、その変数が5未満のとき繰り返すというコードです。行われる処理を順番に書くと、
- int a; によってaという名前の変数が作られます。
- a=0 によってaに0という数値が入ります。
- ループの条件が確認されます。 a<5 で判定されます。現在、aには0が入っているので、0<5 となり、真(true)となります。そのため、ループの処理が実行されます。
- ループの中の処理が実行されます。println(a); によってコンソールにaの値が表示されます。
- ループの処理が終わったので、a++ が実行されます。 a++ は aの値に1を加えるということです。すなわち、現在aには0が入っているため0+1となり、aには1が入ります。
- 条件が確認されます。aには1が入っていて、条件式は a <5 です。当然、真(true)ですから、もう一度実行されます。
条件式で偽(false)が出るまでループは実行されます。
この式を応用すると、1+2+3+4+5ができます。変数名はLoopCount(ループ回数)、sum(合計)とします。どのような文字列を使っても問題ないですが、わかりやすいものにしましょう。
int LoopCount = 0; int sum = 0; for(LoopCount = 0; LoopCount <= 5; LoopCount++ ){ sum = sum + LoopCount; } print(sum);
≦は<=と書きます。1+2+3+4+5をしたいので、LoopCount が5のときも実行するようにします。 sum には、さっきまでのsumの値に LoopCount を足した値を入れます。
さっきまでの値に追加するという書き方も存在します。
int LoopCount = 0; int sum = 0; for(LoopCount = 0; LoopCount <= 5; LoopCount++ ){ sum += LoopCount; } print(sum);
上2つのコードは同じ意味です。
変数に追加する(加算代入)は += とかきます。 変数から引く場合(減算代入)は -= 、変数に掛ける場合(乗算代入)は *= 、変数を割る場合(除算代入)は /= とかきます。
ループが終わると、print(); で合計値を表示させればOKです。15と結果が出ましたか?
演習課題です。1~10までを掛けた数を表示してみましょう。
解答例
int LoopCount=1; int product=1; for(LoopCount = 1; LoopCount <= 10; LoopCount++ ){ product *= LoopCount; } print(product);
もちろん他にも書き方があるので、自分の書き方で大丈夫です。答えは3628800です。
Processing ではじめるプログラミング 6日目(計算してみる)
それでは、変数を用いて計算してみましょう。
足し算
5+3を計算してみます。
print(5+3);
プログラミング知っている人から怒られそうなコードですが、計算はできます。(笑)
上のプログラムの5や3は変数になっても計算できます。
int a=5; int b=3; print(a+b);
そして...
int a=5; int b=3; int c; c=a+b; print(c);
このように書くこともできます。この場合、aという変数に5、bという変数に3、cという変数にa+bを代入した値とし、最後にcを表示するということです。
それでは足し算以外の計算をしてみましょう。
引き算
int a=5; int b=3; int c; c=a-b; print(c);
2という結果がでます。
かけ算
int a=5; int b=3; int c; c=a*b; print(c);
掛け算には*(アスタリスク)を使います。結果は15となります。
わり算
int a=5; int b=3; int c; c=a/b; print(c);
割り算には/(スラッシュ)を使います。int型の場合、整数値しか扱えないため小数点以下は切り捨てられます。答えは1です。
わり算のあまり
int a=5; int b=3; int c; c=a%b; print(c);
割り算のあまりには%(パーセント記号)を使います。地味ですが、知っていると色々なプログラムができます。答えは2です。
Processing ではじめるプログラミング 5日目(数字を使ってみる)
本日は変数というものについて説明します。
変数とはその名の通り変わる数です。
数学でいうxのようなものです。このxには、1が入っているかもれないし2が入っているかもしれない。
実際にプログラムを書いてみましょう。
Processingでは、予めどんな名前の変数を使うか変数の名前を決めておかなければなりません。今回は、aという名前の変数を使うことにします。
int a;
これで、整数値が入る変数aの宣言ができました。
変数を作るだけでは、aにどの数が入っているかわかりません。そこで今回は、aに5という数字を入れてみます。
数字を入れるとき、プログラムでは = (イコール)を使います。aに5を入れるときは、
int a; a = 5;
と書きます。これで、aに5という数字を入れることができました。
それでは、本当にaに5が入っているのか確認してみましょう。
このaをコンソールに表示させます。 表示させるときはprint();を使います。
int a; a = 5; print(a);
コンソールに5という数字が表示されました。
それでは、変数を2つ作ってみましょう。
当然ですが、変数名は被ってはいけません。今回はaとbという変数をつかいます。
int a; int b; a = 5; b = 6; print(a); print(b);
上のコードを実行すると56とコンソールに表示されたのではないでしょうか。それは、aを表示したあとすぐにbが表示されているためです。
表示ごとに改行させてみましょう。表示ごとに改行させる場合はprintln(); を使います。
int a; int b; a = 5; b = 6; println(a); println(b);
改行されて表示されました。
int int .... と毎回書くのは面倒ではないですか? そこでこんな書き方をすることもできます。
int a,b; a = 5; b = 6; println(a); println(b);
カンマで区切ると複数の変数を宣言することができます。
初めからaに5を代入すると決まっているときaと何度も書くのか面倒ではないですか? そこでこんな書き方をすることもできます。
int a = 5; int b = 6; println(a); println(b);
宣言のときに値を入れることができます。
察しの良い方は気づいたのではないでしょうか。これら2つを組み合わせるとこのような書き方もできます。
int a = 5,b = 6; println(a); println(b);
変数はプログラミングでよく出てくるので使って慣れていきましょう(^O^)/