第9回

  計算、変数、繰り返し
    
1 コンソールにテキストを表示する
 
Processingは、コンソールにテキスト(文字列)を出力することができる


  - println(); //改行ありでコンソールに表示( l は小文字のエル)
  - 
print(); //改行なしでコンソールに表示
  - ()の中に表示するテキストをダブルクォーテーションで囲って記述する
 
   
<演習1>

 下図のように、println(); を使ってコンソールに表示しなさい。

 
 
 解答例
 
 
 
2 計算
 
簡単な計算をしてみましょう

四則演算の演算子に注意
 たし算・・・ +
 ひき算・・・ -
 かけ算・・・ * (アスタリスク)
 わり算・・・ / (スラッシュ)
 割った余り・・・ %

コンソールに計算結果を表示する
 以下のソースを打ち込んで実行してみる(割り算は注意が必要)
println(5+7); // 足し算
println(12-8); // 引き算
println(24*5); // 掛け算
println(10/2); // 割り算(整数/整数 で割り切れる)
println(10/8); // 割り算(整数/整数 で割り切れない)
println(10.0/8.0); // 割り算(実数/実数)

println(10%3); // 割った余り
 
<実行結果>
 

   
<演習2>

 下図の計算結果をコンソールに表示しなさい。

(1) 1÷3 ・・・ 1割る3、小数点以下も表示する
(2) 1+5×8
(3) (1+5)×8
(4) 1,2,3,4,5の合計
 
 解答例
  
 
  
3 変数
 
変数は数値や文字列を入れることができる箱のようなものです。

変数は
 ・型がある(整数型、実数型、文字列型など)
 ・宣言する必要がある
  - Pythonでは宣言の必要なし
  - Java, C言語などのプログラミング言語は宣言が必要

Processingは変数を使うことができます(変数の宣言は必要)。
変数の仕様は、ほぼ Java と同じです。

主な変数の型
 ・ int, float, boolean, char
 ・ String(厳密にはクラス)

int型
 整数値(マイナスも可)、少数を含む数値は入れる(扱う)ことができない
 代入(処理)可能な数値 5, 24, 0, -12, -1000 など
 
 <記述例1>
  int x = 3; int y = 6; // int型の変数の宣言
  println( x );
  println( y );
  println( "x+y = " + (x+y)  );
 
 <記述例2>
  int a = 7; int b = 3; // int型の変数の宣言
  int c;
  c = a*b;
// 計算結果を変数に代入
  println( c );

  
  
float型
 実数値、少数点以下を含む数値を入れる(扱う)ことができる
 代入(処理)可能な数値 3.632, 6.0216, 3.0, 0.0, -126.893 など

 <記述例>
  float z = 2.83; // float型の変数の宣言
  println( z );

  println( "z*1.08 = " + z*1.08 );
 
 
String型 
 文字列を入れることができる、文字列はダブルクォーテーション " で囲む
 代入(処理)可能な値 ”Hello”,  "こんにちは",  "3 + 5 = 8" など
 
 <記述例>
  String s1 = "Good "; String s2 = "Morning."; // String型の変数
  println( s1 );
  println( s2 );
  println( ">> " + s1 + s2  ); // 文字列変数の内容を連結して表示
  
 
char型 
 
 char型は文字(1文字だけ)を扱う
  char res;
  :
  if( b==false ){ res = 'N'; }else{ res = 'Y'; }
  println( "answer=" + res );
  :
 
boolean型 
 boolean型は論理値を扱う、trueかfalseのどちらかの値が入る 
  boolean b = true; // or false
  if( b==false ){ res = 'N'; }else{ res = 'Y'; }
  
 

4 繰り返し
 
繰り返しの処理を行います。
 
例えば、コンソールに「####」(#を4個)と表示するには
print("#");
print("#");
print("#");
print("#");
で実行可能だが、上記のように同じ処理を何回も行う場合は
for(int i=0; i<4; i++){
  print("#");
}

のように繰り返しの書き方で記述する

繰り返しの処理は for を使用する
書き方:
 
  for(初期化; 繰り返す条件; 更新式){
   :
    処理;
   :

  }

  
繰り返す条件 が満たされる間、中カッコ{}の内部 ‥ 処理; ‥ が実行される
更新式‥ 処理; ‥ が1回実行されるごとに実行される
 
 
 <例1> 5個の〇をコンソールに表示
for(int i=0; i<5; i++){ // (1)
  print( "〇" ); // (2)
}

  (1) 初期化は i=0, 繰り返す条件は i<5, 更新式は i++(i++は変数 i の値を1増やす、の意味)
  (2) "〇"を1個コンソールに表示(改行なし) 
  i が0から始まり、〇を1個表示した後 i が1増える、i が5より小さい間、繰り返す
  ここで 繰り返す条件i<=5 とすると、i が5のときも処理される(6個の〇が表示される)
  
  
 <例2> 0,1,2,3,4 をコンソールに表示
for(int i=0; i<5; i++){
  print( i );
}

   表示結果を少し改善↓
for(int i=0; i<5; i++){
  print( " " + i );
}

 
 
 <例3> 1,2,3,・・10 の合計を計算してコンソールに表示
int sum = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10;
print( sum );

   for文で書き方を改善↓
int sum = 0; // (1)
for(int i=1; i<=10; i++){ // iは 1,2,3,‥,9,10 の10回
  sum = sum + i; // (2)
}

print( sum );
  (1) sum に 0 を代入して初期化
  (2) sum に i の値を足し算して、その値を sum に代入する 
  
    
 <例4> 5個の 〇 をグラフィックス画面に表示
size( 400, 400 );
for(int i=0; i<5; i++){
  ellipse( 40+i*80, 200, 80, 80 ); // 〇を一個描く(タテ80px、ヨコ80px)
}

  円の中心の x 座標について、
   i が 0 のときは 40+0*80 = 40
   i が 1 のときは 40+1*80 = 120
   i が 2 のときは 40+2*80 = 200
   i が 3 のときは 40+3*80 = 280
   i が 4 のときは 40+4*80 = 360
  のように異なる値になる

  <実行結果>  
  
 

<演習3>

 下図を描画しなさい。<例4>を基に修正すること。

 
 
 解答例
 
 
<演習4>

 下図を描画しなさい。
 (画面サイズは 400x400、ラインは11本、下部の間隔は 40px)
 
 
 
 解答例