2012年4月3日 星期二

Codecademy.com javascript 筆記 : Getting Started with Programming

 confirm("your message here"
確認視窗,會傳回true或false值


alert("your message")
提醒視窗,沒有回傳值


var lastName = "your last name"
定義變數的方法



"string".length
傳回string的長度




  • String Method


 "original string".replace("word to be replaced", "replacement word");
換string裡的字



"hello".substring(0,2)
取出string裡第0字開始後2字


"hello".toUpperCase()
"hello".toLowerCase() 








console.log("message")
prompt("message") 跳出可輸入視窗,回傳user輸入值(string)


for ( initialization; condition;increment ) { 
// code to run each iteration
}


Project:FizzBuzz



// for the numbers 1 through 100,
for (i=1; i<=100; i++) { 
  if (i%3===0&&i%5===0){
      console.log("FizzBuzz");
  }
  // if the number is divisible by 3, write "Fizz"
  else if ( i % 3 === 0 ) { 
    console.log("Fizz");
  }
  
  // if the number is divisible by 5, write "Buzz"
  else if ( i % 5 === 0 ) { 
    console.log("Buzz");
  }
  
  // otherwise, write just the number
  else {
    console.log(i);
  }
}






2012年2月1日 星期三

「學會Objective-C的24堂課」Ch13-2,3習題解答

#import <Foundation/Foundation.h>

// **********************ch13-hw2&3**************************
//原題目有誤,改為1/4+3/6=18/24
@interface Fraction : NSObject {
    int numerator,denominator;
}
-(void) setNum: (int) a;
-(void) setDen: (int) b;
-(int) getNum;
-(int) getDen;
-(void) print;
@end

@implementation Fraction
//set numerator
-(void) setNum:(int)a
{
    numerator=a;
}
//set Denominator
-(void) setDen:(int)b
{
    denominator=b;
}
//get denominator
-(int) getDen
{
    return denominator;
}
//get numerator
-(int) getNum
{
    return numerator;
}

//print fraction
-(void)print
{
    NSLog(@"分數是%i/%i", numerator, denominator);
}
@end

int main (int argc, const char * argv[])
{
    
    @autoreleasepool {
        
        Fraction *fraction1 =[[Fraction alloc] init];
        Fraction *fraction2 =[[Fraction alloc] init];
        [fraction1 setNum:1];
        [fraction1 setDen:4];
        [fraction1 print];
        [fraction2 setNum:3];
        [fraction2 setDen:6];
        [fraction2 print];       
        int a1, a2, b1, b2,c1,c2;
        a1=[fraction1 getNum];
        a2=[fraction1 getDen];
        b1=[fraction2 getNum];
        b2=[fraction2 getDen];
        c1=a1*b2+a2*b1;
        c2=a2*b2;
        int u=c2, v=c1, temp;
        while (v!=0) {
            temp=u%v;
            u=v;
            v=temp;
        }
        c1/=u;
        c2/=u;
        printf("分數和是:%i/%i", c1, c2);
    }
    return 0;
}

「學會Objective-C的24堂課」Ch13-1習題解答

//答案如果有錯誤或有更好的方法,歡迎留言討論喔!

#import <Foundation/Foundation.h>

// **********************ch13-hw1 設定分數**************************

@interface Fraction : NSObject {
    int numerator,denominator;
}
-(void) setNum: (int) a;
-(void) setDen: (int) b;
-(void) print;
@end

@implementation Fraction
//set denominator
-(void) setNum:(int)a
{
    numerator=a;
}
//set Denominator
-(void) setDen:(int)b
{
    denominator=b;
}
//print fraction
-(void)print
{
    NSLog(@"分數是%i/%i", numerator, denominator);
}
@end

int main (int argc, const char * argv[])
{

    @autoreleasepool {
        
        Fraction *obj =[[Fraction alloc] init];
        [obj setNum:300];
        [obj setDen:400];
        [obj print];
        
    }
    return 0;
}

2012年1月29日 星期日

「學會Objective-C的24堂課」Ch12習題解答

答案如果有錯誤或有更好的方法,歡迎留言討論喔!

#import <Foundation/Foundation.h>

int main (int argc, const char * argv[])
{

    @autoreleasepool {
        
        //***********************ch12-hw1產生不重複亂數******************************
        srand((unsigned) time(NULL));
        int ran[6];
        bool isSame;
        for (int i=0; i<6; i++) 
        {
            do
            {
                ran[i]=rand()%49+1;
                isSame=false;
                for (int j=0; j<i; j++) 
                {
                    if (ran[i]==ran[j])
                    {
                        isSame=TRUE;
                        break;
                    }
                }
                    
            }while(isSame);
            
            printf("#%i:%i\n",i+1, ran[i]);
        }
        
        //***********************ch12-hw2產生亂數並找出質數******************************
        
        //取亂數
        printf("\nhw2:\n");
        int ran2[100],primeNumber=0;
        for (int i=0; i<100; i++) {
            
            ran2[i]=rand()%1000+1;
            printf("%5i",ran2[i]);
        
        }
        
        //找質數
        printf("\n");
        for (int i=0; i<100; i++) {
    
            bool isPrime=true;
            for (int x=2; x<ran2[i]; x++) {
            if (ran2[i]%x==0) {
                isPrime=false;
                }
            }
            if (isPrime) {
            primeNumber++;
            printf("%i個質數是:%4i\n",primeNumber,ran2[i]);
            }
        }
           
        
    }
    return 0;

}


2012年1月23日 星期一

「學會Objective-C的24堂課」Ch8習題解答

答案如果有錯誤或有更好的方法,歡迎留言討論喔!

#import <Foundation/Foundation.h>

//*******************ch8-hw1*******************************
//修改後的bubblesort
void bubble_sort(int data[],int n);
void printData(int data[], int n);

int main (int argc, const char * argv[])
{

    @autoreleasepool {
        
        int data[]={81,58,23,72,43};
        
        //印出資料
        printf("Unsorted data:");
        printData(data, 5);
        
        //氣泡排序
        bubble_sort(data, 5);
        
        //印出排序資料
        printf("排序完成:");
        printData(data, 5);
    }
    return 0;
}

void bubble_sort(int data[],int n)
{
    int i, j , temp, flag;
    
    //n-1pass
    for (i=0; i<n-1; i++) {
        flag=0;//輔助判斷資料是否對調
        //共有n-i-1compare
        for (j=0; j<n-i-1; j++) {
            if (data[j] > data[j+1]) {
                flag=1;
                //資料對調
                temp=data[j];
                data[j]=data[j+1];
                data[j+1]=temp;
                
                printf("After #%i-%i compare: ",i+1,j+1);
                printData(data, 5);
                
            }
        }
        printf("After #%i pass: ",i+1);
        printData(data, 5);

        
        //flag!=1時,表示資料已排序
        if (flag!=1) {
            break;
        }
        
    }
}

void printData(int data[],int n){
    
    //印出資料
    for (int i=0; i<n; i++) {
        printf("%4i",data[i]);
    }
    printf("\n\n");
    
}

2012年1月21日 星期六

推薦Objective-C入門好書「學會Objective-C的24堂課」

這本書非常適合沒有什麼程式開發經驗的人(像是我),
書裡用的文字淺顯易懂,觀念解釋條理清晰,搭配適當的例子,讓Objective-C學起來非常容易。
每章節最後搭配適當的習題,可以馬上測試自己的學習成果,可惜沒有附解答。
我會挑一些習題練習,並把答案附在這個網誌上,答案不一定完全正確。

書本購買連結:
博客來
pc home

「學會Objective-C的24堂課」Ch7習題解答

答案如果有錯誤或有更好的方法,歡迎留言討論喔!
//用printStar函式印出星星
// ****************ch7-hw1**********************
void printStar();

int main (int argc, const char * argv[])
{

    @autoreleasepool {
        

        int starQuantity;
        NSLog(@"請輸入想要幾顆星星:");
        scanf("%i", &starQuantity);
        
        printStar(starQuantity);
        for (int i=1; i<=9; i++) {
            for (int j=1; j<=9; j++) {
                printf("%i*%i=%2i ",j,i,j*i);
            }
            printf("\n");
        }
        printStar(starQuantity);
        
    }
    return 0;
}

void printStar(int starQuantity){
    for (int i = 1 ; i<=starQuantity; i++) {
        printf("*");
    }
    printf("\n");
}

// ****************ch7-hw2**********************
//double total;應改為int total;