目前分類:專業筆記 (6)

瀏覽方式: 標題列表 簡短摘要

科號

科目名稱

學分

時間

教室

教師

人限

09610CL 101006

大學中文

2

  W5W6

  資電 127

  童明昌

  30

09610CS 135501

計算機程式設計

3

  M7M8R6

  資電 236

  陳煥宗

  90

09610CS 135701

資訊系統及應用導論

2

  R7R8R9

  資電 326

  陳英傑

  90

09610CS 233401

線性代數

3

  M3M4W2

  資電 131

  許秋婷

  90

09610LANG101017

英文一

4

  W3W4F3F4

  研發105

  趙如蒨

  35

09610MATH103004

微積分一

3

  T3T4R3

  化工 B18

  林文偉

  95

09610MI 109701

軍訓(領導統御)

2

  M5M6

  綜一 168

  周大文

  90

09610PE 111025

大一體育

0

  F5F6

 

  葉煌典

 

09610PHYS101008

普通物理實驗一

1

  T5T6T7T8

  綜三 130

  潘彥儒

  60

09610PHYS113301

普通物理B一

3

  T1T2F1F2

  資電 234

  唐述中

  120

09610ZZ 100131

勞作服務

0

  M1

 

  資工系

 

comaniac0422 發表在 痞客邦 留言(1) 人氣()

節次

星期一

星期二

星期三

星期四

星期五

1

勞作服務

 普物B一
資電 234

 

 

 普物B一
資電 234

2

 

 普物B一
資電 234

 線性代數
資電 131

 

 普物B一
資電 234

3

 線性代數
資電 131

 微積分一
化工 B18

 英文一
研發105

 微積分一
化工 B18

 英文一
研發105

4

 線性代數
資電 131

 微積分一
化工 B18

 英文一
研發105

 

 英文一
研發105

5

 軍訓
綜一 168

 普物實驗
綜三 130

 大學中文
資電 127

 

 大一體育

6

軍訓
綜一 168

 普物實驗
綜三 130

 大學中文
資電 127

 程設
資電 236

 大一體育

7

程設
資電 236

 普物實驗
綜三 130

 

 資訊系統應用
資電 326

 

8

 程設
資電 236

 普物實驗
綜三 130

 

 資訊系統應用
資電 326

 

9

 

 

 

 資訊系統應用
資電 326

 

 

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

MailACM是一個美國的組織
是世界上研究電腦科學的一個組織
 
而現在要提的,是 UVA Online Judge System
這個 Judge System收集了歷年來ACM程式比賽的題目
目前由西班牙瓦薩利大學所維護,這裡有上千題的資訊性問題(這裡以第10035題為例)
讓全世界的程式員們想辦法去解決(solve)。
也就是要給全世界對寫程式(programming)有興趣的人,一個練習成長的好地方。
使用者可以針對某個問題,寫出程式去解它,把你的程式碼上傳給Judge
Judge也會回報給你解題的狀態,會顯示暱稱、題目、語法種類、編譯狀況等
另外也會以E-Mail通知
題目回應的狀態大略可分下列幾種:
Accept
就是你的程式的輸出資料是正確的,也就是你成功的解出這問題.
Aceept(P.E.) (Presentation Error)
這是算是Accept,就是你的輸出資料正確,但格式上有點小誤差
(多了一些空白行,或是空格之類的).
Wrong Answer
你的程式成功的執行結束,但輸出的資料沒有完全正確.
Time Limit Exceeded(TL)
目前 Judge 所限的時間是十秒,也就是你的程式在十秒後還沒執行結束.
Memory Limit Exceeded (ML)
記憶體的使用量超過系統限制.
Output Limit Exceeded (OL):
輸出的資料太大,超過限制.
Compile Error (CE)
編譯錯誤.系統是使用Linux架的,所以C/C++的編譯器當然就是gcc啦
Submission Error (SE)
題號,使用者ID,使用語言沒填好,系統無法得知相關資訊.
Runtime Error(SIGSEGV)
程式編譯正確,但執行時發生錯誤,通常是記憶體使用錯誤,像程式中除以0,
或是用到不可用的記憶體(比如存取超過範圍的陣列元素)
Restricted Function (RF)
你的程式有使用到系統限制的函式(如開啟檔案),或system (...)
這是要使程式設計能力進步一個很好的管道。
筆者雖為初學,但也試著用ACM練習自己的解題(Slove)能力,以下是筆者在ACM的個人首頁
網頁中List of solved problems下面那堆數字就是筆者目前為止解決的題目編號
 
這是給ACM 解題者討論問題的論壇,非常實用XD
 

comaniac0422 發表在 痞客邦 留言(1) 人氣()

Struct是在C中非常好用寫法,筆者稱之為"自訂的一種多元資料型態"
 
為什麼這麼形容呢?
 
請先看看以下範例:
 
typedef struct{int a[10];char b[10;]}example_info;
 
在以上的範例中,我們定義一個資料型態"example_info"
 
其中包含一個整數(int)陣列a和一個字元(char)陣列b
 
這樣在使用時就可以直接呼叫,用法如下:
 
#include<stdio.h>
typedef struct{int a[10];char b[10;]}example_info;
int main()
{
    example_info ex;/*請注意,因為是資料型態,所以使用前也需定義變數*/
    int p[10];char q[10];/*另外定義本範例所要使用的變數*/
    for(int i=0;i<10;i++)
    {
         q[i]=ex.b[i];
    }
    return 0;
   }
以上範例雖然沒有任何意義,但經過程序
 
q陣列的值就可以被"ex"中b的值所取代,這就是Struct的基本用法
 
看到這裡,有人可能會想說:「用這要幹麻? 分開定義不就好了?」
 
沒錯,在上述範例下,分開定義也可以行的通
 
但這麼做比較有系統,程式碼本身也較容易被暸解
 
至於應用方法,以下將做說明
----------------------------------------------------------------------------------------------------------
相信各位都知道,"副函式"是由程式設計師應程式本身需要
 
而寫出的函式,但這種寫函式的方法只能回傳"一個"值
 
當然也有別的方法,例如設定不回傳(void)後再用指標(point)
 
不過,今天我們所要談的是另一種方法
 
首先,借用上述程式碼,我們可以將副函式格式設定成如下方式:
 
exmple_info 副函式名稱(輸入值)
 
如此一來就可以經由一個return傳回一組資料
 
這是筆者認為最實用的部份
 
以下為實用範例:
 
/*本程式可利用檔案輸入個人資料(姓名+IP),並將同一網域的使用者列印出來*/
#include<stdio.h>
#include<stdlib.h>
typedef struct{int ip[4];char name[11];} address_t;/*定義資料型態*/
void print_address(address_t,address_t);
address_t scan_address(FILE *);
int local_address(address_t,address_t);
int main()
{
 FILE *infilep;
 int i=0,j=0,k=0;
 infilep=fopen("in.txt","r");
 address_t data[100];
 do
 {
  data[i]=scan_address(infilep);
  i++;
 }

 while(data[i-1].ip[0]!=0,data[i-1].ip[1]!=0);
 i--;
 for(j=0;j<i;j++)
 {
  for(k=j+1;k<i;k++)
  {
   if((local_address(data[j],data[k])==1)&&(j!=k))
   {
    print_address(data[j],data[k]);
   }
  }
 }
 fclose(infilep);
 return 0;
}
address_t scan_address(FILE *infilep)/*此副函式可利用struct回傳一組data*/
{
 address_t data;
 char ch;
 fscanf(infilep,"%d%c%d%c%d%c%d%s",&data.ip[0],&ch,&data.ip[1],&ch,&data.ip[2],&ch,&data.ip[3],&data.name);
 return data;
}

void print_address(address_t a,address_t b)
{
 printf("Machines %s and %s are on the same local network\n",a.name,b.name); 
}
int local_address(address_t a,address_t b)
{
 if((a.ip[0]==b.ip[0])&&(a.ip[1]==b.ip[1])) return 1;
 else return 0;
}

comaniac0422 發表在 痞客邦 留言(2) 人氣()

說到這個編譯程式嘛~基本上就是要以用得順手為主
在這裡筆者先概略說明以下兩種編譯程式的優點以供各位比較
Visual C++ 6.0

 
VC6是微軟所出的一款編譯程式~其優缺點如下:
缺點
1.需付費(廢話,坑錢的微軟有東西不要錢嗎?)
2.程式碼中區格用顏色不明顯~看範例圖就知道嚕~
3.基本上都介面都是英文
4.檔案容量太大= =
5.安裝不全常在Complie和Build時當掉(解決方法為安裝SP6)
優點
1.函式庫完整~不需要另行安裝
2.Debug程式完整(推這個~超好用的~!!)
----------------我是分隔線-------------------
Dev c++ 4.9.8.10. 
 
缺點
1.Debug程式不好~使用不便
2.函式庫只有基本~其餘像cmath之類的函式庫要自己input
3.程式結尾必須加上Dos指令:system("pause"); 否則程式跑完就不見了= =
優點
1.免付費~本校(松山高中)網站就有
2.顏色區分非常清楚(看圖片吧)
3.檔案容量較小~便於攜帶
4.介面可以是中文
 
總之~以上優缺點都是做個基本的參考~使用上來說還是以順手為主
像筆者都是兩種混著用~不過還是以VC6為主~所以接下來的教學都將以VC6當範例編譯程式

comaniac0422 發表在 痞客邦 留言(3) 人氣()

因為網誌荒廢過久~有長蟲的趨勢(真的假的~!?)
 
所以本人決定有空來做C語法心得 
大概是一星期一篇~遇到大考可能停發~不想寫可能再次荒廢
 
總之有個主題了~
 
就這樣

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