2009年3月19日 星期四

Homework 3-16-2009

1. Project 7 of Chap. 3
2. Write a program to generate the following table of arithmetic expressions

1*1=1 1*2=2 1*3=3 ... 1*9=9
2*1=2 2*2=4 2*3=6 ... 2*9=19
...
9*1=9 9*2=18 9*3=27 ... 9*9=81

1.

------------------------------------------------<程式碼開始>--------------------------------------
import java.util.*;




import java.util.Scanner;
public class Homework03162009{
static double Function(int x, int n){
double i, j=1, k, h, answer=0;
for(i=n;i>1;i--){
for(k=0, h=1;k<i;k++){
h = h * (k+1);
}
answer = answer + (Math.pow(x, i)) / h;
}
return answer + 1;
}
    public static void main (String args[]) {
Scanner Keyboard = new Scanner(System.in);
int x;
System.out.println("Find e^x.");
System.out.println("e^x = 1 + x^2/2! + ... + x^n/n!\nenter x");
x = Keyboard.nextInt();
System.out.println("n =   1, e^" + x + " = " + Function(x, 1));
System.out.println("n =  10, e^" + x + " = " + Function(x, 10));
System.out.println("n =  50, e^" + x + " = " + Function(x, 50));
System.out.println("n = 100, e^" + x + " = " + Function(x, 100));
    }
}

------------------------------------------------<程式碼開始>--------------------------------------

附註:這部份程式碼驗證部份不知怎麼做,但是就程式來說應該沒有錯誤,若有問題請給予指教。
程式碼修正中...... 2009/03/20

2.

------------------------------------------------<程式碼開始>--------------------------------------

import java.util.*;
public class Homework03162009 {
    public static void main (String args[]) {
        for(int i=1;i<=9;i++)
{
for(int j=1;j<=9;j++)
{
if(i*j>=10)
System.out.print(i+"X"+j+"="+i*j+"  ");
else
System.out.print(i+"X"+j+"= "+i*j+"  ");
}
System.out.println();
}
    }
}
------------------------------------------------<程式碼結束>--------------------------------------

附註:久久九九乘法算是基礎的程式練習題目,這部份比較大的問題應該屬於排版吧!因為如果沒有調整看起來會不整齊。


後來發現使用/t的方式即可定位好來,這樣就不必另外寫判斷式。



if(i*j>=10)
System.out.print(i+"X"+j+"="+i*j+"  ");
else
System.out.print(i+"X"+j+"= "+i*j+"  ");

所以上列的程式就可以改寫成:


System.out.print(i+"X"+j+"="+i*j+"/t");

這樣也可以達到排版的效果。
2009/03/23

沒有留言:

張貼留言