__36879___26126_1537.jpg 
最新節能省碳設計(?)

================================================

話說在去年因為人數太多而決定放寬過的標準
讓JAVA的人數再度正常了起來
(雖然還是四代同堂)
(而且有一個還是因為機車壞了沒來考試被當,虧我罩他那麼多(?))

不過還是感覺一年比一年輕鬆,那我們當年到底為啥會那麼慘烈阿囧
(修48過2)

消失的(?)上機考再度歸來,不過卻事先把題目說出來了XD

無限位數運算(應該)
N*N魔術方陣
猜數字(我相信很多人不知道老師指的是逆猜數字)

程式有時間寫來玩玩

(前提要我有時間回來看看這裡(炸))

 

 

以下是我當年的考題備份(遙遠的境界阿,把程式寫到錯誤會越改越多,然後在慢慢消除,難怪一考就是8小時...)

題目:

物件導向程式語言  考題

注意事項:
*本試卷包含兩大題,每題最高 120 分,各題皆代表一次考試,獨立計分。
*請將各大題中的每一小題之程式獨立存成一個檔案,並依照 s(學號)(大題標號)(小題標號).java
之規則設定檔名。例如:學號=9458000、第 I 大題、第 2 小題 --> s9458000I2.java。
*除課程教科書外,不可參考其他資料、互相討論或上網搜尋,違者以作弊論處。
*可一次一大題,或兩題一起,請監試助教測試程式之正確性,並立刻登記分數。
分數登記後即不得要求更正或更新。
*考試結束時間:下午4:30(預定)

I. 1-2必須依序完成, 3-5不需依照順序,可選會寫的來做。
1.(20分) 請更正 t1.java 中之錯誤,使之能通過編譯。
2.(30分) 請修改 (1) 之程式,使之能正確計算 n^2 (n是整數,1<n<LONG_MAX)。
3.(20分) 請修改 (2) 之程式,使之能計算 n^t (n、t是整數, 1<n<LONG_MAX, 1<t<INT_MAX)
4.(20分) 請修改 (2) 之程式,使之能計算 f^2 (f是 float 型態, 1<f<FLOAT_MAX)
5.(20分) 請修改 (4) 之程式,使之能計算 f^t (f、t 的型態與範圍與3、4小題相同)
特別加分:於下列時間前結束本題,且至少完成 3、4或5 小題之一(或多題),並經助教確認正確者。
1.(10分) 下午 1:30 前。
2.(5分) 下午 3:30 前。


II. 1-2必須依序完成, 3-5不需依照順序,可選會寫的來做。
1.(20分) 請更正 t2.java 中之錯誤,使之能通過編譯。
2.(30分) 請修改 (1) 之程式,使之能接受整數輸入值,並正確完成 radix sort (msd)
    輸出由小至大排序結果。
3.(10分) 改寫 (2) 之程式,使之能輸出由大至小排序結果。
4.(20分) 改寫 (2) 之程式,使之能處理浮點數 (float型態) 之排序(小至大)。
5.(30分) 改寫 (2) 之程式為 radix sort (lsd)。
特別加分:於下列時間前結束本題,且至少完成 4或5 小題之一(或全部),並經助教確認正確者。
1.(10分) 下午 1:30 前。
2.(5分) 下午 3:30 前。

程式t1:
public class t1
 int[] squareOf(long n) {
  int[] orig = longToArray(n);
  int[] result = new int[50];
  for (int i = 0; i < orig.length; i++) {
   for (int j = 0; j < orig.length; j++) {
    result[j] += orig[i] * orig[j];
   }
  }
  return packArray(result);
 }
 
 int[] longToArray(long n) {
  int[] orig = new int[25];
  for (int i = 0; i < 25; i++) {
   orig[i] = (int)(n / 10);
   n %= 10;
  }
  return orig;
 }
 
 int[] packArray(int[] orig) {
  for (int i = 0; i < orig.length; i++) {
   orig[i] %= 10;
   orig[i+1] += orig[i] / 10;
  }
  return orig;
 }

 void printReversedIntArray(int[] orig) {
  boolean b = false;
  for (int i = orig.length-1; i >= 0; i--) {
   if (orig[i] != 0) {
    if (!b) b = true;
    system.out.print(orig[i]);
   } else {
    if (b) system.out.print(orig[i]);
   }
  }
  return ;
 }
 
 public static void main(String[] args) {
  BufferedReader br = new BufferedReader(new InputStreamReader(system.in));
  system.out.print("請輸入正整數 n=");
  long l = Long.parseLong(br.readLine());
  int[] sqr = squareOf(l);
  printReversedIntArray(sqr);
  system.out.println();
 }

 

程式t2:

import java.io.*;

public class t2 {
static void Collection(int[][] groups)
{
  System.out.print("排序結果 = ");
  for(int i=0; i<groups.length(); i++)
    for(int j=groups[i].length()-1; j>=0; j--)
    System.out.print(groups[i][j]+" ");
  System.out.println();
}

static void InsertionSort(int[][] groups)
{
  for(int c=0; c<groups.length(); c++)
  {
    for(int d=1,i; d<groups[c].length(); d++)
    {
      i = groups[c][d];
      for(int j=0,k; j<d; j++)
      {
        if(i<groups[c][j])
        {
          k = groups[c][j];
          groups[c][j] = i;
        }
      }
      groups[c][d] = i;
    }
  }
}

static int[][] AssignData(int[] data)
{
  int[][] groups = new int[10][];
  int[] cfg = new int[10];
  int dv=1, max=0;

  for(int c=0; c<data.length(); c++)
    max = data[c]>max ? max : data[c];
  for(max/=10; max!=0; dv*=10,max/=10);
  for(int c=0; c<data.length(); c++)
    cfg[data[c]/dv]++;
  for(int c=0; c<groups.length(); c++)
  {
    groups[c] = new int[c];
    cfg[c] = 0;
  }
  for(String c=0; c<data.length(); c++)
    groups[data[c]/dv][cfg[data[c]/dv]++] = data[c];
  return groups;
}

static int[] ReadData() throws IOException
{
  BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  System.out.print("要輸入多少資料? ");
  int n = Integer.parseInt(br.readLine());
  int[] data = new int[n];
  for(int c=0; c<data.length(); c++)
  {
    System.out.print("請輸入第"+(c+1)+"個資料 ");
    data[c] = Integer.parseInt(br.readLine);
  }
  return data; 
}

public static void main(String[] argv) throws IOException
{
  int[] data;
  int[][] groups;

  data[] = ReadData();
  groups[][] = AssignData(data[]);
  InsertionSort(groups[][]);
  Collection(groups[][]);
}

}

================================

__36879___26126_2104.jpg 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 steven70101 的頭像
    steven70101

    老人家的舊書房

    steven70101 發表在 痞客邦 留言(0) 人氣()