2009年7月6日 星期一

C語言學習實錄

C語言學習實錄

起因...

早在很久以前就曾經有想學程式設計

然而C語言也算是最基本的程式語言之一

所以早在小學就有去巨匠補過C語言

不過無奈啊!!那時候就是不開竅

導致程式語言一直都還是"夢想"

......
......

直到到了大學因為實驗室需要

接觸了PHP語言

從此就創造了人生另一片天地(顆顆)

...

雖然PHP語言日漸進步

不過學習C語言或者其他程式語言的想法

還是不停在腦中盤旋

因此在升大三的暑假

終於再次有機會到巨匠學習C語言摟!!

......
<重點>
......

本人將會把在巨匠學的程式範例和一些重點 PO 上來

放在"C語言學習實錄"分類

供大家參考

此次暑假預計學習的有

C++ 初階 (其實還是C語言)
C++ 進階
C++ 物件導向

歡迎大家觀賞 (顆顆)

也當作自己的學習紀錄吧!!


STAR

============開始=================
============C語言學習實錄一======

C語言學習實錄之一
(第一次上課)

當然學習程式語言第一步驟當然

就是安裝相關程式

此次課程使用的是 DEV C++ (免費的搜尋一下就下載的到)
點我進入官方下載網頁

安裝好後呢

就是先確定
是否安裝成功?
可否使用?

SO 老套的 當然就是先輸出 "HELLO WORLD!!" (顆顆)
此次使用了
printf 輸出在螢幕
system 系統相關

ex1-1

#include //引入檔(和PHP不同),要使用哪些語法就必須引用那些引入檔
#include //system語法用
int main(void)
{
printf("Hello,C!\n"); //輸出
printf("Hello,World!\n");
system("pause"); //程式暫停 (沒輸入的話視窗執行完就跳掉)
return 0; //無實質意義,只是表示檔案成功執行完畢(可有可無)
}


接下來就是HELLO WORLD 進階版(顆顆)
就是要輸入名子然後 HELLO!!
此次增加了

宣告變數
int 宣告為整數
char 宣告為字元

變數代數 %x
%c 為字元
%d 為十進位

ex1-2

#include
#include
int main(void){
int y=10; //宣告變數整數y 且值為10
char name; //宣告字元name
printf("please enter your name\n");
scanf("%c",&name); //scanf為讓使用者輸入東西,並存入name中('&'要加,%c字元)
printf("please enter your age\n");
scanf("%d",&y);//%d 輸入十進位
printf("HELLO !!\n大家好\n");
printf("我是%c\n今年%d歲\n",name,y); //(這邊不用'&')
system("pause");
return 0;
}


接下來呢
就是在整合入 運算的部分

ex1-3

#include
#include
int main(void){
int n1,n2,s;
/*注解
printf("請輸入被加數\n");
scanf("%d",&n1);
printf("請輸入加數\n");
scanf("%d",&n2);
s = n1+n2;
printf("%d+%d=%d\n",n1,n2,s);
p.s此段較複雜,下段較簡潔
*/
printf("請輸入被加數與加數,並請以豆號隔開\n");
scanf("%d,%d",&n1,&n2); //輸入的時候必須符合""之間的格式
printf("%d+%d=%d\n",n1,n2,n1+n2);

system("pause");
return 0;
}


此次課程最後就是較複雜的運算
加入了小數的部分

宣告變數
double 為小數

變數代數 %x
%f 小數


ex1-4

#include
#include
int main(void)
{
int f;
double c; //宣告為小數c (float也可,差在記憶體大小)
printf("please enter F\n");
scanf("%d",&f);
c = (f-32)*5/(double) 9;
/*
p.s
(double) 9 為宣告9為小數,(隨便挑一個宣靠為小數即可)

在c語言中,整數間運算的結果還是整數
如果不加入(double) 那最後的c值會是 xx.0000 小數部分為0
*/
printf("C is %.2f \n",c); //%f為小數,%2.4f表示只顯示小數點前兩位,小數點後四位
system("pause");
return 0;

}

此次課程結束

homework
1.寫出兩數相減
2.寫出bmi計算,輸入身高(cm) 體重(kg) (整數)



hw1-1 寫出兩數相減

#include
#include
int main(void){
int a,b;
printf("請輸入被減數\n");
scanf("%d",&a);
printf("請輸入減數\n");
scanf("%d",&b);
printf("%d-%d=%d\n",a,b,a-b);
system("pause");
return 0;
}



hw1-2 寫出bmi計算,輸入身高(cm) 體重(kg) (整數)

#include
#include
int main(void){
int cm,kg;
double bmi;
printf("請輸入身高(cm)\n");
scanf("%d",&cm);
printf("請輸入體重(kg)\n");
scanf("%d",&kg);
bmi = (kg*(double)10000)/(cm*cm);
printf("您的身高為%d,體重為%d,BMI值為%.2f\n",cm,kg,bmi);
system("pause");
return 0;
}


============C語言學習實錄二===========

C語言學習實錄之二
C語言學習實錄之二
(第二次上課)

第二次上課

終於慢慢切入了最重要的地方了

就是重複迴圈 for() while() 等等

在c語言中這些用法都和php差不多(別的語法也是...)

所以還蠻容易上手的



首先就是for()迴圈的應用

for(起始值;判斷值是否進行;每次判斷值得改變){
do something
}

接下來是範例,要算出階層 就是 "!"

不過在這邊要注意的是,由於宣告的最後放結果的a,的長度只有31位元,正整數只能存放15位元
,所以如果輸入太大,則會出現"溢位"。

ex2-1

#include
#include
int main(void){
int i,a=1,n;
printf("請輸入皆層\n");
scanf ("%d",&n);
for(i=1;i<=n;i++){ //i起始值為一,每執行一次就加一,直到>n停止
a = a*i;
}
printf("=%d\n",a);
system("pause");
return 0;
}

接下來當然就是for()迴圈加強版摟!!

這邊主要差是在一次跳兩個數字,就變成偶數

ex 2-2

#include
#include
int main(void){
int i,a=0,n;
printf("請輸入偶數連加的最終值\n");
scanf("%d",&n);
for(i=2;i<=n;i=i+2){
a=a+i;
}
printf("%d\n",a);
system("pause");
return 0;
}


for()迴圈其實就差不多就這樣

如果想更詳細了解的話可以參考 php重複迴圈

for()迴圈基本上是大同小異,不過在寫法上還是有些差異


接下來就進入下一個主題

while()迴圈

這邊同樣可以參考 php重複迴圈

這個範例就直接是while()迴圈較深入的範例,用了兩個迴圈(當初就寫在一起了,忘了分開)

第一個是可以重複執行

第二個就是要計算所有整數的和

這邊有多一個指令 system("cls") 就是每執行一次就清除螢幕



ex2-3

#include
#include
int main(void){
int i,s,n;
char f='y'; // 宣告字元 f = 'y'
while(f == 'y' || f == 'Y') // 由於上述 所以可以執行以下
{
int i=1;s=0; //這邊要將i s 歸位,否則會錯誤(迴圈的變數值會保留,所以要重設)
printf("求1~N所有整數之和\n");
scanf("%d",&n);
while(i<=n) //第二個迴圈,用來計算
{
s=s+i;
i++;
}
printf("1~%d所有和為%d\n",n,s);
printf("如果繼續請案y\n");
scanf(" %c",&f); //輸入值給f,如果不是 'y' or 'Y' 則第一個while()不會繼續執行
//這邊在設定 %c時,前面要加一個空白,是告訴c,把"\n"(換行)清除掉,(c預設有換行)
system("cls");
}
system("pause");
return 0;
}



------------------------------------------------
本人將會把在巨匠學的程式範例和一些重點 PO 上來

放在"C語言學習實錄"分類

供大家參考

此次暑假預計學習的有

C++ 初階 (其實還是C語言)
C++ 進階
C++ 物件導向

歡迎大家觀賞 (顆顆)

也當作自己的學習紀錄吧!!
------------------------------------------------


============C語言學習實錄三===========

1 則留言: