2009年12月31日 星期四

加入KMOL團隊(限本系大學部)

對KMOL研究課題有興趣嗎?

從現在開始學習就有機會 大學+研究所只要五年就能畢業唷!

請在下面留言或是直接至本研究室詢問,

我們能讓您更深入了解本團隊。

2009年12月28日 星期一

fscanf讀取檔案內的值

#include <stdio.h>
#include <stdlib.h>

int main()
{
    char w[10];

    int n;

    FILE *f = fopen("input.txt","r");

    fscanf(f,"%s", w);

    n = atoi(w);

    printf("%d\n", n);

    return 0;
}

期末考

期末考不是我出的~~~
期末考是老師出的~~~
而且是老師改答案的~~~
沒有帶回家這個選項~~~
加油...你們可以的>____<

部落格很多祕技要看阿~阿~~~

2009年12月22日 星期二

期中考分數(重新校對)

期中分數

成績公開結束。

5X分接近60的有補個兩三分讓你上壘。

2009年12月21日 星期一

01201程式

#include <stdio.h>

void print_zero(int width, int height, int line_num, int br_or_not);
void print_one(int width, int height, int line_num, int br_or_not);
void print_two(int width, int height, int line_num, int br_or_not);

int main()
{
    int i, width, height;
    width=9;
    height=9;
    for (i=1;i<=height;i++)
    {
        print_zero(width,height,i,0);
        printf(" ");
        print_one(width,height,i,0);
        printf(" ");
        print_two(width,height,i,0);
        printf(" ");
        print_zero(width,height,i,0);
        printf(" ");
        print_one(width,height,i,1);
    }
    return 0;
}

void print_zero(int width, int height, int line_num, int br_or_not)
{
    int i,j;
    j=0;
    // print first line
    if (line_num == 1 || line_num == height)
    {
        // print the whole line
        printf("o");
        for (i=0;i < width-2;i++)
        {
            printf("-");
        }
        printf("o");
        if (br_or_not == 1)
        {
            printf("\n");
        }
        else
        {
            // continue
        }
    }
    else
    {
        // repeat print position 1 and the last one

        for (j=0;j < width;j++)
        {
            if(j==0 || j==width-1)
            {
                printf("|");
            }
            else
            {
                printf(" ");
            }
        }
        if (br_or_not == 1)
        {
            printf("\n");
        }
        else
        {
            // continue
        }
    }
}

void print_one(int width, int height, int line_num, int br_or_not)
{
    int i, middle;
    middle = width/2;
    for (i=0;i<height;i++)
    {
        for (i=0;i<width;i++)
        {
            if (i==middle)
            {
                printf("|");
            }
            else
            {
                printf(" ");
            }
        }

        if (br_or_not == 1)
        {
            printf("\n");
        }
        else
        {
            // continue
        }
    }
}

void print_two(int width, int height, int line_num, int br_or_not)
{
    int i,j;
    j=0;
    // print first line
    if (line_num == 1 || line_num == height||line_num == (height/2)+1)
    {
        // print the whole line
        printf("o");
        for (i=0;i < width-2;i++)
        {
            printf("-");
        }
        printf("o");
        if (br_or_not == 1)
        {
            printf("\n");
        }
        else
        {
            // continue
        }
    }
    else
    {
        // repeat print position 1 and the last one

        for (j=0;j < width;j++)
        {
            if(j==width-1 && line_num <= (height/2))
            {
                printf("|");
            }
            else if(j==0 && line_num > (height/2))
            {
                printf("|");
            }
            else
            {
                printf(" ");
            }
        }
        if (br_or_not == 1)
        {
            printf("\n");
        }
        else
        {
            // continue
        }
    }
}

2009年12月15日 星期二

練習題1

//試著使用迴圈寫出47-44-41-38-35.....-m=sum的等差程式,
//且m可以由使用者輸入。

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int i,m,sum;
    sum=47;
    i=sum;
    printf("輸入m值:");
    scanf("%d",&m);
    do
    {
        i-=3;
        sum-=i;
    }while(i>m);
    printf("\n47-44-41-38-35.....-%d=%d",m,sum);
    return 0;
}


這是我值宿舍TA時別班同學問的考題,
Close 網路、Close Book、Close go home、Close cheat 、Close Computer、Close 醬
聽說這題他們全班陣亡...

2009年12月14日 星期一

第二次考試答案

第一題:


      /*由1981非閏年作為起始點,
        閏年的數量:(yaer-1981)/4
        到現在共(year-1981)年數
        1981年是從星期四開始所以+3
        將這些空格全部加起來是總共空的格數
        除以7得到的餘數就是該年一開始的空格數量*/
        space=(((year-1981)/4)+(year-1981)+3)%7;

      //然後將"日一二三四五六"改成"一二三四五六日"。





第二題:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int sum,num,solve;
    printf("請輸入數字:");
    scanf("%d",&sum);
    while(1)
    {
        printf("\n請輸入運算子:");
        scanf("%d",&solve);
        if(solve==0)
        {
            break;
        }
        printf("\n請輸入數字:");
        scanf("%d",&num);
        if(solve==1)
        {
            //sum=sum+num;
            sum+=num;
        }
        else if(solve==2)
        {
            //sum=sum*num;
            sum*=num;
        }
        else
        {
            printf("Error\n");
        }
    }
    printf("答案:%d",sum);

    return 0;
}



第三題:


#include <stdio.h>
#include <stdlib.h>

int main()
{
    int password=123;
    int x,a;
    char word[30];
    for(a=0;a<3;a++)
    {
        printf("\nEnter password number:");
        scanf("%s",word);
        x=atoi(word);
        if(x==password)
        {
            printf("\nSuccess!!");
            break;
        }
        else
        {
            if (a==2)
            {
                printf("\nFail!!");
            }
            else
            {
                printf("\nFail!! \nonce again!!");
            }
        }
    }
}

第二次考試

第一題:

請參考年曆方程式,
可輸入1981年以後的年份,
印出該年的年曆,
而且每週的第一天從星期一開始。


第二題:

請寫一計算機,

能不斷輸入數字並且計算+*
能先輸入一個數字後,
然後當使用者
輸入1時計算相加
輸入2時計算相乘
輸入0時得出結果
....

結果:

請輸入數字:5
請輸入運算子:1
請輸入數字:8
請輸入運算子:2
請輸入數字:3
請輸入運算子:0
答案:39


第三題:

請寫一個程式,
能夠判斷密碼是否正確,
當輸入正確的密碼則印出密碼正確,
當輸入錯誤的密碼或輸入的不是整數,
則印出密碼錯誤請重新輸入,
並且當輸入錯誤三次時離開程式,

輸入文字型態password number,
將文字型態轉換成數字型態作判斷,
最多判斷三次。

2009年12月8日 星期二

空格數量

      /*由1981非閏年作為起始點,
        閏年的數量:(yaer-1981)/4
        到現在共(year-1981)年數
        1981年是從星期四開始所以+4
        將這些空格全部加起來是總共空的格數
        除以7得到的餘數就是該年一開始的空格數量*/
        space=(((year-1981)/4)+(year-1981)+4)%7;

任意輸出年曆...(有陰謀的@__@)

//這個程式不見得是最好的寫法,歡迎同學務必把它改得更好。

#include <stdio.h>
#include <stdlib.h>
int ouput(int space,int month);

int main()
{
    int m,month,year,space,bissextile=0;
    while(1)
    {
        printf("----------------------------\nYear:");
        scanf("%d",&year);
        //當輸入小於1980年時跳出程式,
        if(year<1980)
        {
            printf("Can not be calculated!!\n");
            break;
        }
      /*想辦法寫出該年一開始空格數量的計算式,
        先不公佈我的寫法自己先想想看。*/
        space=???????????;
        //判斷該年是否為閏年
        if((year-1980)%4==0)
            bissextile=1;
        //判斷不同月份的大小月
        for(m=1;m<=12;m++)
        {
            if(m==4||m==6||m==9||m==11)
            {
                month=30;
            }
            else if(m==2&&bissextile==1)
            {
                month=29;
            }
            else if(m==2&&bissextile==0)
            {
                month=28;
            }
            else
            {
                month=31;
            }
            printf("\nMonth %d :\n",m);
            //呼叫先前打過的月曆程式
            ouput(space,month);
            //先計算出下個月該空幾格
            space=(space+month)%7;
        }
    }
    system("pause");
    return 0;
}

int ouput(int space,int month)
{
    int i,day=1;
    printf(" SUN MON TUE WED THU FRI SAT\n");
    for(i=1;i<=month+space;i++)
    {
        if(i<=space)
        {
            //每個日期的四格間距
            printf("    ");
        }
        else
        {
            // (i 除以7的餘數)不等於 0
            if((i%7)!=0)
            {
                printf("%4d",day);
            }
            else
            {
                printf("%4d\n",day);
            }
            day++;
        }
    }
    printf("\n");
    return 0;
}


  ︿ ︿
(#゜Д゜)ノシ 噓...這是個秘密:
第二次考試會考年曆~(都洩題了你(妳)還考不好挖嘛恩災怎麼辦才好了啦>△<")
當然第二次考試答案一定不會是照抄就答對的,
這題你要能夠有能力自己寫出來,
不然你(妳)還是沒辦法答對唷~XDDDD+

2009年12月7日 星期一

餘數應用在印出日曆

//請於與期中考題比較,
//可發現 j 變數都不需要使用了,
//而改採%餘數來計算。

#include <stdio.h>
#include <stdlib.h>

int main()
{
  
    int i,space=2,month=31,day=1;
    printf(" SUN MON TUE WED THU FRI SAT\n");
    for(i=1;i<=month+space;i++)
    {
        if(i<=space)
        {
            printf("    ");
        }
        else
        {
            // (i 除以7的餘數)不等於 0
            if((i%7)!=0)
            {
                printf("%4d",day);
            }
            else
            {
                printf("%4d\n",day);
            }
            day++;
        }
    }
    return 0;
}

餘數運算子:%

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int x,x2;
    printf("輸入數字:");
    scanf("%d",&x);
    x2=x%5;
    printf("%d除5的餘數為:%d",x,x2);

    return 0;
}


/*

結果:

輸入數字:11
11除5的餘數為:1

*/


補充 :
0%5 → 0
1%5 → 1
2%5 → 2
3%5 → 3
4%5 → 4
5%5 → 0
6%5 → 1
7%5 → 2
.............................

轉換整數型態 atoi(word)

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int x;
    char word[30]; //最多只能讀30個字母組成的單字

    while(1)
    {
        printf("\nEnter any number:");
        //scanf("%d/n",&x);
        //為了因應使用者可能輸入帶有字元的變數,
        //因此改用字串接收輸入,然後再利用 atoi 將字串轉為整數
        scanf("%s",word);
        // 呼叫 atoi()將字串轉為整數
        x=atoi(word);

        if(x<=50 && x>0)
        {
            printf("%d is >0 and <= 50",x);
        }
        else if(x<=100 && x>50)
        {
            printf("%d is >50 and <= 100",x);
        }
        else if(x>100)
        {
            printf("%d is >100",x);
        }
        else
        {
            printf("%d is <=0 or not integer",x);
        }
    }
    return 0;
}

2009年11月30日 星期一

期中考解答


第1~4題:

#include <stdio.h>
#include <stdlib.h>
float cm2feet(float cm);
int age(int myage);

int main()
{
    int myage;
    float kg,n,cm,feet;
    printf("張龜雅\n輸入公斤重:");
    scanf("%f",&kg);
    n=kg*9.81;
    printf("我的體重%f牛頓\n",n);

    printf("輸入公分:");
    scanf("%f",&cm);
    feet=cm2feet(cm);
    printf("我的身高%f英呎\n",feet);

    printf("輸入年齡:");
    scanf("%d",&myage);
    age(myage);

    return 0;
}

float cm2feet(float cm)
{
    float feet;
    feet=cm*0.0328;
    return feet;
}

int age(int myage)
{
    int i,sum;
    sum=myage;
    for(i=1;i<=10;i++)
    {
        sum+=1;
        printf("%d年後我%d歲\n",i,sum);
    }
    return 0;
}

第5題:

#include <stdio.h>
#include <stdlib.h>
void one(int x);
void two(int x);

int main()
{
    int x,y,i;
    printf("請輸入x:");
    scanf("%d",&x);
    printf("請輸入y:");
    scanf("%d",&y);
    one(x);
    for(i=3;i<=y;i++)
    {
        two(x);
    }
    one(x);
return 0;
}

void one(int x)
{
    int i;
    for(i=1;i<=x;i++)
    {
        printf("囧");
    }
    printf("\n");
}

void two(int x)
{
    int i;
    for(i=1;i<=x/2;i++)
    {
        printf(" ");
    }
    printf("囧\n");
}

第6題:
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int i,j,allday,day;
    allday=31;
    j=1;
    day=1;
    printf(" 日 一 二 三 四 五 六\n");
    for(i=1;i<=allday+2;i++)
    {
        if(i<3)
        {
            printf("   ");
            j++;
        }
        else
        {
            if(j<7)
            {
                printf("%3d",day);
                j++;
            }
            else
            {
                printf("%3d\n",day);
                j=1;
            }
            day++;
        }
    }
return 0;
}

第7~8題:
#include <stdio.h>
#include <stdlib.h>
#include <gd/gd.h>
#include <gd/gdfontg.h>
#include <gd/gdfontt.h>
#include <gd/gdfonts.h>
#include <gd/gdfontmb.h>
#include <gd/gdfontl.h>
#include <math.h>

void star(int x,int y, int radius);

int red,orange,yellow,green,blue,cyan,purple,black,white;
float degree = 3.14159/180.;
gdImagePtr im;
FILE *in;

int main(int argc, char *argv[])
{
int j,i;
float x,y;
//----------------------------------
    char file[40];
char end[40] = ".htm";
//----------------------------------
im = im = gdImageCreate(500, 500);

green=gdImageColorAllocate(im,128,255,0);

red=gdImageColorAllocate(im,255,0,0);
white = gdImageColorAllocate(im, 255, 255, 255);
orange=gdImageColorAllocate(im,255,128,0);
yellow=gdImageColorAllocate(im,255,255,0);

blue=gdImageColorAllocate(im,0,0,255);
cyan=gdImageColorAllocate(im,0,255,255);
purple=gdImageColorAllocate(im,255,0,255);
black = gdImageColorAllocate(im, 0, 0, 0);

//----------------------------------------------------------
FILE *outfile;
printf ( "Please input a file name: " );
scanf ( "%s" , file );
strcat ( file , end );
outfile = fopen ( file , "wb" );
fprintf(outfile, "<img src=gdimage.png><br>\n");
    for(i=1;i<=20;i++)
    {
        x=250+100*sin(i*18*degree);
        y=250+100*cos(i*18*degree);
        fprintf(outfile, "Coordinates %d (%f,%f)<br>\n",i,x,y);
        star(x,y,30);
    }
fclose(outfile);
//----------------------------------------------------------
in = fopen("gdimage.png", "wb");
if (!in) {
printf("cannot open < gdimage.png for writing\n");
return 1;
}
gdImagePng(im, in);
fclose(in);
gdImageDestroy(im);
return 0;
}

void star(int x,int y, int radius)
{
gdImageFilledEllipse(im, x, y, radius, radius, red);
}

設一甲期中考題目

預備動作


1.開啟你(妳)的CodeBlacks
2.在D槽建立好『以您的學號為名稱』之Project
如圖:



3.打開『main.c』,準備開始寫程式。
如圖:



4.上傳教學
馬上會需要上傳檔案交卷,上傳方法如下圖:

題目1 - 連鎖題


請撰寫一程式能『印出』自己學號名字如『19873106張龜雅』並換行,不限方法。
(送分題,限時3分鐘)
結果如:

  19873106張龜雅

寫完請存檔,並將『整個Project』壓縮成Zip檔案傳上來。
如圖:

題目2 - 連鎖題


請接續程式,加入能夠『輸入』自己體重(公斤重)並轉換算成(牛頓)後印出的程式。
『1kg = 9.81N,體重可以亂掰』(限時5分鐘,10分)
結果如:

  19873106張龜雅
  輸入公斤重:50
  我的體重490.500000牛頓

寫完請存檔,並將『整個Project』壓縮成Zip檔案傳上來。
如圖:

題目3 - 連鎖題


請接續程式,加入一『副程式』能夠輸入自己身高(公分)並轉換成(英呎)後印出的副程式。
『1cm = 0.0328feet,身高可以亂掰』(限時10分鐘,10分)
結果如:

  19873106張龜雅
  輸入公斤重:50
  我的體重490.500000牛頓
  輸入公分:150
  我的身高4.920000英呎

寫完請存檔,並將『整個Project』壓縮成Zip檔案傳上來。
如圖:

題目4 - 連鎖題


請接續程式,並使用『for迴圈』,加入一『能夠輸入自己年齡』並印出『1~10年後我幾歲』的程式。
『年齡可以亂掰』(限時15分鐘,10分)

結果如:

  19873106張龜雅
  輸入公斤重:50
  我的體重490.500000牛頓
  輸入公分:150
  我的身高4.920000英呎
  輸入年齡:18
  1年後我19歲
  2年後我20歲
  3年後我21歲
  4年後我22歲
  5年後我23歲
  6年後我24歲
  7年後我25歲
  8年後我26歲
  9年後我27歲
  10年後我28歲

寫完請存檔,並將『整個Project』壓縮成Zip檔案傳上來。
如圖:





後面程式沒有限時囉可以慢慢寫,
5~6題非連鎖題不需要接續程式撰寫,
7~8題為連鎖題請互相參考範例程式。

題目5


請使用『副程式』加上『for迴圈』,讓使用者能『輸入X跟Y方向的個數』印出『工字型』。
(不限用什麼字排成圖形,不限時,20分)
結果如:

  請輸入x:7
  請輸入y:6
  囧囧囧囧囧囧囧
     囧
     囧
     囧
     囧
  囧囧囧囧囧囧囧

5~8題交卷只需要交上C程式檔案,檔名以學號命名一槓題號,
如:『19873106-5.c』、『19873106-6.c』、『19873106-7.c』、『19873106-8.c』

題目6


使用for迴圈,印出2009年12月份的月曆,日一二三四五六直接印出。
(不限時,20分)
結果如圖:




5~8題交卷只需要交上C程式檔案,檔名以學號命名一槓題號,
如:『19873106-5.c』、『19873106-6.c』、『19873106-7.c』、『19873106-8.c』

題目7 - 連鎖題


修改下面的範例程式,
輸出一張由『小黑點』環繞的『圓形』,並且將小黑點『換成別的顏色』,
環繞大小不拘,環繞的點數量『至少20點以上』,不限方法。

繪圖需要的檔案:bgd檔案

(不限時,20分)

//----------------範例程式開始----------------
#include <stdio.h>
#include <stdlib.h>
#include <gd/gd.h>
#include <gd/gdfontg.h>
#include <gd/gdfontt.h>
#include <gd/gdfonts.h>
#include <gd/gdfontmb.h>
#include <gd/gdfontl.h>
#include <math.h>

void star(int x,int y, int radius);

int red,orange,yellow,green,blue,cyan,purple,black,white;
float degree = 3.14159/180.;
gdImagePtr im;
FILE *in;

int main(int argc, char *argv[])
{
int j;
im = im = gdImageCreate(500, 500);

green=gdImageColorAllocate(im,128,255,0);

red=gdImageColorAllocate(im,255,0,0);
white = gdImageColorAllocate(im, 255, 255, 255);
orange=gdImageColorAllocate(im,255,128,0);
yellow=gdImageColorAllocate(im,255,255,0);

blue=gdImageColorAllocate(im,0,0,255);
cyan=gdImageColorAllocate(im,0,255,255);
purple=gdImageColorAllocate(im,255,0,255);
black = gdImageColorAllocate(im, 0, 0, 0);

star(100,100,30);

in = fopen("gdimage.png", "wb");
if (!in) {
printf("cannot open < gdimage.png for writing\n");
return 1;
}
gdImagePng(im, in);
fclose(in);
gdImageDestroy(im);
return 0;
}

void star(int x,int y, int radius)
{
gdImageFilledEllipse(im, x, y, radius, radius, black);
}

//----------------範例程式結束----------------

5~8題交卷只需要交上C程式檔案,檔名以學號命名一槓題號,
如:『19873106-5.c』、『19873106-6.c』、『19873106-7.c』、『19873106-8.c』

題目8 - 連鎖題


修改題目7的程式,並參考下面的程式,
將題目7中的圖片顯示在網頁上(*.htm),
並將小黑點的座標也輸出到網頁(*.htm)檔案,
請輸出至少20個點以上。
(不限時,20分)

說明:
『<br>』是Html語言的換行語法
『<img src=gdimage.png>』是Html語言的顯示圖片語法

//----------------範例程式開始----------------
#include<stdio.h>
#include<string.h>

int main()
{
char file[40];
char end[40] = ".htm";
FILE *outfile;
printf ( "Please input a file name: " );
scanf ( "%s" , file );
strcat ( file , end );

outfile = fopen ( file , "wb" );
fprintf(outfile, "Welcome to Facebook!!<br>\n");
fprintf(outfile, "There are restaurant city<br>\n");
fclose(outfile);
return 0;
}
//----------------範例程式結束----------------



Htm網頁檔案的範例內容如(範例為18個點,但請你輸出至少20個點以上):

  <img src=gdimage.png><br>
  Coordinates 1 (284.201996,343.969269)<br>
  Coordinates 2 (314.278717,326.604492)<br>
  Coordinates 3 (336.602509,300.000092)<br>
  Coordinates 4 (348.480743,267.364929)<br>
  Coordinates 5 (348.480804,232.635330)<br>
  Coordinates 6 (336.602631,200.000153)<br>
  Coordinates 7 (314.278931,173.395691)<br>
  Coordinates 8 (284.202240,156.030823)<br>
  Coordinates 9 (250.000275,150.000000)<br>
  Coordinates 10 (215.798264,156.030640)<br>
  Coordinates 11 (185.721497,173.395340)<br>
  Coordinates 12 (163.397644,199.999695)<br>
  Coordinates 13 (151.519287,232.634796)<br>
  Coordinates 14 (151.519150,267.364410)<br>
  Coordinates 15 (163.397232,299.999603)<br>
  Coordinates 16 (185.720871,326.604126)<br>
  Coordinates 17 (215.797501,343.969086)<br>
  Coordinates 18 (249.999466,350.000000)<br>

範例圖片:



5~8題交卷只需要交上C程式檔案,檔名以學號命名一槓題號,
如:『19873106-5.c』、『19873106-6.c』、『19873106-7.c』、『19873106-8.c』

設一甲期中考試

考8題。

2009年11月16日 星期一

Code::Blocks環境下設定 GD library

Code::Blocks環境下設定 GD library:

1.先下載套件:http://www.libgd.org/releases/gd-latest-win32.zip
2.include內之檔案,放入MinGW/include目錄下的gd 子目錄.
3.lib內之檔案,放入MinGW/lib目錄下.
4.在 CodeBlocks->Project->Build options->Linker settings->在Link libraries中加入bgd(使其連結bgd.lib)

5.將bin目錄下的bgd.dll放於system32或直接與.c同一目錄

6.將sample.jpg置於.c同一目錄後,測試上述程式.



二十五顆小星星↓





ㄟ( ̄血 ̄ㄟ)))...

2009年11月10日 星期二

switch case default

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int i;
    printf("KMOL勵志小語第幾條:");
    scanf("%d",&i);
    switch(i)
    {
        case 1:
        printf("為人設想\n");
        break;
        case 2:
        printf("相互尊重\n");
        break;
        case 3:
        printf("領導不過是服務配合\n");
        break;
        case 4:
        printf("充分準備\n");
        break;
        case 5:
        printf("全力以赴\n");
        break;
        case 6:
        printf("冷靜理性、忍住當下\n");
        break;
        case 7:
        printf("能說、會做、敢承諾\n");
        break;
        case 8:
        printf("創意無限、出奇不意\n");
        break;
        case 9:
        printf("不怕挑戰、危機\n");
        break;
        default:
        printf("永不放棄\n");
        break;
    }
    //system語法要include這個標頭檔案stdlib.h
    system("pause");
    return 0;
}

2009年11月9日 星期一

隨身碟的CodeBlocks無法開啟Project

可以試試這個方法,
應該能夠解決。

1.進入Settings > Compiler and debugger

2.點選Reset Defaults

試試看吧!!

迴圈While,Do While,Do While Break

#include <stdio.h>

int main()
{
    printf("\n----------While----------\n");
  
  
    int i=0;
    while(i<5)
    {
        printf("%d",i);
        i++;
    }
  
    printf("\n----------Do While----------\n");
  
    i=0;
    do
    {
        printf("%d",i);
        i++;
    }while(i<5);
  
    printf("\n----------Do While Break----------\n");
  
    i=0;
    do
    {
        printf("%d",i);
      
        if(i>=4)
            break;
      
        i++;
    }while(1);
  
    printf("\n");
}

以 C 建立 DXF 圖檔

以 C 建立 DXF 圖檔:

#include <stdio.h>
#include <stdlib.h>
void dxf_begin(void);
void dxf_end(void);
void dxf_circle(float x,float y,float r);
//outfile 為全域變數
FILE *outfile;

int main()
{
outfile = fopen("c:\\temp\\out.dxf","w");
dxf_begin();
dxf_circle(10.0,10.0,10.0);
dxf_end();
printf("successful\n");
fclose(outfile);
return 0;
}

void dxf_begin(void)
{
fprintf(outfile,"0\nSECTION\n2\nENTITIES\n");
}


void dxf_end(void)
{
fprintf(outfile,"0\nENDSEC\n0\nEOF");
}


void dxf_circle(float x,float y,float r)
{
fprintf(outfile,"0\nCIRCLE\n8\n0\n10\n%f\n20\n%f\n30\n0.0\n40\n%f\n",x,y,r);
}



C程式產生出來的dxf文件內容如下:

0
SECTION
2
ENTITIES
0
CIRCLE
8
0
10
10.000000
20
10.000000
30
0.0
40
10.000000
0
ENDSEC
0
EOF


各行說明:

0 後面接SECTION
SECTION 這是個開始
2 後面接ENTITIES
ENTITIES 實體段
0 開始
CIRCLE 化緣的指令...POLYLINE是畫線的指令...等

8 表明以下是一個新的實體
0 後面接畫圓的參數

10 後面接圓心的x座標
10.000000
20 後面接圓心的y座標

10.000000
30 後面接圓心的z座標

0.0
40 後面接圓的半徑
10.000000
0
ENDSEC 結束指令
0
EOF 關閉文件



PS:A.I.P.繪圖指令 - 20092010

2009年10月20日 星期二

虛擬映像檔掛載軟體 - 酒精Alcohol 52%

免費版酒精下載:
Alcohol 52% Free Edition

使用方法:

1.安裝完畢後會在我的電腦出現一台虛擬光碟機的圖示

2.在那台光碟機上按右鍵選擇掛載映像檔(M) > 開啟舊檔(O)


3.去選擇映像檔(*.iso)如系上購買的教育版 Inventor、solidworks、solidedge...等即可

2009年10月19日 星期一

CMSimple重置密碼

CMSimple重置密碼步驟如下

1.使用小作家開啟此檔案『mini_server_8\udrive\www\cms\cmsimple\config.php

2.將檔案內的字串作修改↘
$cf['security']['password']="21232f297a57a5a743894a0e4a801fc3";

3.儲存檔案,密碼為『admin』。

(ps:21232f297a57a5a743894a0e4a801fc3為admin的md5碼)

2009年10月16日 星期五

國立虎尾科技大學MSN群

這是我去年2008-6-7開設的,

國立虎尾科技大學 - MSN群

裡面有蠻多各個科系的學長姐,

請加入下面帳號為MSN連絡人即可,

group216741@msnzone.cn

使用教學:http://goo.gl/aXHm

(PS:有時候/p要打兩次才會恢復對話。)


關鍵字:虎科M群 、NFU、虎尾、虎尾科技大學、MSN群、

2009年10月12日 星期一

研究題 - Kmol蚯蚓

問:
Kmol養了3隻蚯蚓,
從現在開始每個月把每隻蚯蚓切成x段,
養了一年後放生了88隻蚯蚓回虎科大校園,
請問Kmol最後還剩下幾隻蚯蚓?
(請使用迴圈求出次方,並將計算式寫在副程式,
並使用主程式呼叫副程式的方法求出數量。)


邏輯參考:
由題目得到蚯蚓總數的方程式為y=3x12-88


宣告


主程式
{
輸入:切了x段
呼叫副程式
印出:一年後剩下y隻
}
副程式
{
y=3x12-88
}


(若每隻蚯蚓都被切成了兩半,則還剩下12200隻蚯蚓)

解答:



#include <stdio.h>
int func(int x);


int main()
{
    int n,sum;
    printf("Kmol要切成幾段:");
    scanf("%d",&n);
    sum=func(n);
    printf("剩下%d隻蚯蚓\n",sum);
    return 0;
}
int func(int x)
{
    int y,i,power=1;
    for(i=0;i<12;i++)
    {
        power=power*x;
    }
    y=3*power-88;
    return y;
}

float是什麼?

//Float是用來宣告浮點數的時候用的,
//所謂浮點數就是小數、分數...等,非整數虛數的數字。

#include <stdio.h>
int main(void)
{
int n;
float sum;
n=10;
sum=n/3.;

/* 註解:
因為整數除以整數答案還是整數,
上面的3後面要加上一個點,
讓3這個整數變成浮點數(小數)。

%5d顯示『   10』總共五個格子,沒有數字的格子留空白。

%06.3f顯示『03.333』總共六個格子,
且小數點取到第3位,沒有數字的格子填上0 。
*/
printf("數字%5d除以三等於%06.3f\n",n,sum);
return 0;
}

/*
結果:
數字   10除以三等於03.333
*/

2009年10月5日 星期一

if else 判斷式

//判斷式教學

#include <stdio.h>
int main(void)
{
    int num;
    printf("我是 (1)帥哥 (2)正妹 (3)兒童 (?)人妖:\n");

    //scanf是輸入數值到num裡,記得要加&
    scanf("%d",&num);

    //括號內的num==1是判斷式
    //判斷式符號有:== <= >= != < >
    if(num==1)
    {
        printf("帥哥\n");
    }
    else if(num==2)
    {
        printf("正妹\n");
    }
    else if(num==3)
    {
        printf("兒童\n");
    }
    else
    {
        printf("人妖\n");
    }


    system("pause");
    return 0;
}

用CodeBlack編譯C

範例檔案的路徑:『J:\homework\simple.c
CodeBlock中工具的路徑:『J:\CodeBlocks\MinGW\bin\

範例程式碼:



#include <stdio.h>
int main(void)               /* a simple program             */
{
   int num;                  /* define a variable called num */
   num = 1;                  /* assign a value to num        */

   printf("I am a simple "); /* use the printf() function    */
   printf("我是一個飯粒 \n"); /* use the printf() function    */
   printf("computer.");
   printf("電腦.\n");
   printf("My favorite number is %d because it is first.\n",num);
   printf("我最愛的數字是 %d 因為他是第一個數字。\n",num);
   getchar();
   return 0;
}


























如上圖:
1.開啟命令提示字元,可按『windows+R』執行『cmd
2.輸入『J:』進到隨身碟
3.輸入『cd homework』進到放著『simple.c』檔案的目錄
4.輸入『path=J:\CodeBlocks\MinGW\bin\』把CodeBlock工具Path進來
5.輸入『gcc simple.c』編譯(Compile)範例程式
6.開啟編譯完成的『a.exe』完成如下圖↓














注意:程式碼最後面要Enter換行空一行,
   當要進到『C:\』的時候可用『cd ..』回到上一層資料夾。

有問題請留言。


path=%path%;J:\CodeBlocks\MinGW\bin\

Linux是什麼?

要知道什麼是Linux之前,
我們要先了解平常使用的Windows是什麼,
Windows是視窗作業系統軟體,
作業系統稱為OS(Operation System),
那麼Linux其實就是一種OS,
常見的OS有Unix、Linux、Windows、MS-Dos,
Linux原本是非視窗型軟體,
是專門用來作程式開發的系統軟體,
但近年來許多好人將他們做成視窗型的系統軟體,
像是Ubuntu這套就是個有名的視窗型Linux。


另外AndLinux、CoLinux這類軟體,
是能夠在Windows上虛擬出Linux環境的軟體,
讓我們能夠在Windows上方便的使用Linux。

Wiki百科

我是一個飯粒

//第2章 - 25頁範例



#include <stdio.h>
int main(void)               /* a simple program             */
{
   int num;                  /* define a variable called num */
   num = 1;                  /* assign a value to num        */

   printf("I am a simple "); /* use the printf() function    */
   printf("我是一個飯粒 \n"); /* use the printf() function    */
   printf("computer.");
   printf("電腦.\n");
   printf("My favorite number is %d because it is first.\n",num);
   printf("我最愛的數字是 %d 因為他是第一個數字。\n",num);
   getchar();
   return 0;
}

Lesson 1

compile 編譯
interpretation 解譯
slash 斜線
backslash 反斜線

顯示副檔名及隱藏檔案
















給電腦不熟悉的同學參考~

如果你是Vista使用者,要顯示上排選項請按『Alt』就會出現了。

2009年9月28日 星期一

印出01001

//
// sequential number print, file name:sq_num1.c
// 這個程式利用重覆迴圈與條件敘述句,練習循序數字列印的設計與應用
//
// 這是精簡化了老師顯示字幕的程式
// 給想挑戰的人看看
//

#include <stdio.h>

void print_zero(int width, int height, int line_num, int br_or_not);
void print_one(int width, int height, int line_num, int br_or_not);

int main()
{
    int i, width, height;
    width=5;
    height=5;
    for (i=1;i<=height;i++)
    {
        print_zero(width,height,i,0);
        printf(" ");
        print_one(width,height,i,0);
        printf(" ");
        print_zero(width,height,i,0);
        printf(" ");
        print_zero(width,height,i,0);
        printf(" ");
        print_one(width,height,i,1);
    }
    return 0;
}

void print_zero(int width, int height, int line_num, int br_or_not)
{
    int i,j,k;
    j=0;
    // print first line
    if (line_num == 1 || line_num == height)
    {
        // print the whole line
        printf("o");
        for (i=0;i < width-2;i++)
        {
            printf("-");
        }
        printf("o");
        if (br_or_not == 1)
        {
            printf("\n");
        }
        else
        {
            // continue
        }
    }
    else
    {
        // repeat print position 1 and the last one

        for (j=0;j < width;j++)
        {
            if(j==0 || j==width-1)
            {
                printf("|");
            }
            else
            {
                printf(" ");
            }
        }
        if (br_or_not == 1)
        {
            printf("\n");
        }
        else
        {
            // continue
        }
    }
}

void print_one(int width, int height, int line_num, int br_or_not)
{
    int i, j, middle;
    middle = width/2;
    for (i=0;i<height;i++)
    {
        for (i=0;i<width;i++)
        {
            if (i==middle)
            {
                printf("|");
            }
            else
            {
                printf(" ");
            }
        }

        if (br_or_not == 1)
        {
            printf("\n");
        }
        else
        {
            // continue
        }
    }
}

輸入feet轉換成cm

#include <stdio.h>
int main(void)
{
    float feet,cm;

    printf("Key feet:");

    //這行是輸入數字的語法,請點選框框打上數字。
    scanf("%f",&feet);

    //吋轉換成公分。
    cm=feet*2.54;

    printf("\ncm=%f",cm);

    //這行是讓程式暫停的語法。
    system("pause");

return 0;
}


//鍵入數字:













//Linux下的PAUSE
#include <stdio.h>
#define PAUSE print("Press any key to continue..."); fgetc(stdin);

    int main(void)
    {
        PAUSE

        printf("system(\*pause\*) for linux \n");
        return 0;
    }

副程式+框框程式

#include <stdio.h>

void all_star(int x);
void mix_star(int x);

int main() //主程式
{
    int j,x=10,y=6;
    //呼叫副程式直接打出副程式的名稱就可呼叫副程式
    all_star(x);


    for(j=0;j<y;j++)
    {
        mix_star(x);
    }


    all_star(x);

    return 0;
}

//副程式格式:void 副程式名稱(輸入的變數參數(可以忽略不寫))
void all_star(int x) //副程式
{
    int i;
    //----------------------------第一行開始-------------------
    //for(i=1;i<=9;i++) 這種寫法跟下面那種結果一樣
    for(i=0;i<x;i++)
    {
        printf("星");
    }
    printf("\n"); //這裡\n為換行
    //----------------------------第一行結束-------------------
}

void mix_star(int x) //副程式
{
    int i;
    //----------------------------第n行開始---------------------
    printf("星");
    for(i=0;i<(x-2);i++)
    {
        printf("空");
    }
    printf("星\n");
    //----------------------------第n行結束---------------------
}

基本副程式

#include <stdio.h>

//宣告副程式
void all_star(int num);
void mix_star(int num);

//主程式
int main()
{
 //呼叫副程式直接打出副程式的名稱就可呼叫副程式
 all_star(1);//呼叫副程式並送出值為1
 mix_star(2);//呼叫副程式並送出值為2

 return 0;
}

//副程式1   格式:void 副程式名稱(輸入的變數參數(可以忽略不寫))
void all_star(int num)
{
 //%d為輸出整數,可以將num以整數方式顯示
 printf("%d \n",num);
}

//副程式2
void mix_star(int num)
{
 printf("%d \n",num);
}


/*
結果:
1
2
*/

2009年9月21日 星期一

KMOL研究室位置圖
















點圖片放大!!

框框程式

//    這個兩撇除號斜線是註解,他並不會影響程式本身。

/*
上面跟下面這是範圍性的註解,一樣不會影響程式本身。
*/

//這兩行為前置處理程式
#include <stdio.h>

//這是主函式,名稱一定為 main 沒有輸入變數,輸出則訂為整數
int main()
{
//利用printf()函式進行字串的列印
    int i,j;
    //宣告變數名稱,名稱可以自行取名 如:sum,num,k等等
    int x=12,y=8;
    //for格式:for(i=起始值;i<=終點值;i=i+步階)
    //(i++意思為i=i+1) 最後不需;號
//----------------------------第一行開始-------------------
  //for(i=1;i<=9;i++)       這種寫法跟下面那種結果一樣
    for(i=0;i<x;i++)
    {
        printf("星");
    }
    printf("\n");  //這裡\n為換行
//----------------------------第一行結束-------------------

for(j=0;j<(y-2);j++)
{
//----------------------------第n行開始---------------------
    printf("星");
    for(i=0;i<(x-2);i++)
    {
        printf("空");
    }
    printf("星\n");
//----------------------------第n行結束---------------------
}

//----------------------------第末行開始-------------------
    for(i=0;i<x;i++)
    {
        printf("星");
    }
    printf("\n");  //這裡\n為換行
  
//----------------------------第末行結束------------------
//配合主函式的輸出資料型態,傳回一個整數0
    return 0;
}




/*


最終結果:

星星星星星星星星星星星星
星空空空空空空空空空空星
星空空空空空空空空空空星
星空空空空空空空空空空星
星空空空空空空空空空空星
星空空空空空空空空空空星
星空空空空空空空空空空星
星星星星星星星星星星星星


*/


A.I.P.2009 安裝教學

自認為是破解軟體神手你可以不要看教學安裝,
軟體光碟會給班代或副班代,
想自己燒一份做紀念的帶光碟找他們燒,
嚴董很少來KMOL研究室,
也歡迎來KMOL研究室找學長燒。

DVD1:3.53GB
DVD2:4.02GB

裡面有兩個檔案感情很好請別拆散他們,
請點選檔案小的那個檔案(網頁檔.htm),












密碼跟嚴董的教學平台一樣,
記得開頭大寫的英文半形字。

你在看哪裡?