2020年5月7日 星期四

week11

程式設計二
Processing
1.亂數產生數字,使用泡泡排序法從小到大。
程式:
int []a=new int[10];//Java's Array
//int []a={6,3,5,9,1,0,4,2,7,8};
//int []a={1,2,3,5,0,4,6,7,8,9};
//int []a={9,8,7,6,5,4,3,2,1,0};
void setup(){
  size(500,800);
  for(int i=0;i<10;i++){//random choose number
    a[i]=int(random(10));//亂數決定數字
  }
  textSize(36);
  textAlign(LEFT,TOP);
  showArray(y);
}
int y=0;
void showArray(int y){
  for(int i=0;i<10;i++){
    fill(255);  rect(i*50, y, 50,50);
    fill(0);         text(a[i], i*50, y);
  }  
}
void draw(){
  
}
void mousePressed(){
  for(int i=0; i<10-1;i++){
    if(a[i] > a[i+1]){
      int temp=a[i];
      a[i]=a[i+1];
      a[i+1]=temp;
      fill(255,0,0,128); rect(i*50, y, 100,50);
                   ///可更改第四個數字來改變透光度(越接近255越不透光)
    }
  }
  y+=50;
  showArray(y);
}

2.從左上角50,50的地方產生一個正方形和一個紅色的A
程式:
size(200,200); 
rect(50,50,50,50); 
textSize(40);
textAlign(LEFT,TOP);
fill(#ff0000); text("A",50,50);


3.產生一個縱橫都有五個圓形的視窗

程式:
void setup(){
  size(300,500);
}
int N=5;
void draw(){
  background(0);
  int R=300/N,w=R/2;
  for(int x=0;x<N;x++){
    for(int y=0;y<N;y++){
      ellipse(0+w+x*R,200+w+y*R,R,R);
    }
  }
}


4.Lyto Different Color遊戲
程式:
void setup(){
  size(300,500);
  colorMode(HSB);
}
int ansX=2,ansY=3;
int N=5;
int H=255,S=255,B=255;
void draw(){
  background(0);
  int R=300/N,w=R/2;
  for(int x=0;x<N;x++){
    for(int y=0;y<N;y++){
      if(x==ansX&&y==ansY) fill(H+10,S-35,B-45);
      else fill(H,S,B);
      ellipse(0+w+x*R,200+w+y*R,R,R);
    }
  }
}
void mousePressed(){
  ansX=int(random(N));ansY=int(random(N));
  H+=16;
  if(H>255)H=0;
}

瘋狂程設 
1.進階題:大小寫轉換
程式:
#include <stdio.h>
char line[100];
int main(){
 scanf("%s",line);
 
 for(int i=0;line[i]!=0;i++){
  char c=line[i];
  if(c>='A' && c<='Z'){
   line[i] = c-'A'+'a';
  }else if(c>='a' && c<='z'){
   line[i] = c-'a'+'A';
  }
 }
 printf("%s\n",line);
}

2.進階題:A的B次方函數

程式:
#include <stdio.h>
int MYPOWER(int a,int b){
int ans=1;
for(int i=0;i<b;i++){
ans*=a;
}
return ans;
}
int main(void)
{
 int a,b;
 scanf("%d%d",&a,&b);
 printf("[%d]",MYPOWER(a,b));
 return 0;
}

3.Back to High School Physics
 
程式:
#include <stdio.h>
int main(){
 int v,t;
 while(scanf("%d %d",&v,&t)==2){
     printf("%d\n",2*v*t);
    }
}

沒有留言:

張貼留言