顯示具有 APCS 標籤的文章。 顯示所有文章
顯示具有 APCS 標籤的文章。 顯示所有文章

2020年6月7日 星期日

[C語言]安裝MinGW - Minimalist GNU for Windows


對於不熟悉Linux,又想要用GNU gcc 編譯你的 C code或g++編譯你的C++ code, 你可以在windows上安裝minGW 使得你的windows也有最小的GNU程式開發工具.


MinGW - Minimalist GNU for Windows

 1.)下載  MinGW 並在windows下進行安裝

MinGW: A native Windows port of the GNU Compiler Collection (GCC), with freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All of MinGW's software will execute on the 64bit Windows platforms.
mingw32-base 選項,按右鍵 Mark for Installation



接著在選單[Installation]上選Apply Changes,就會進行線安裝






2.) 

2-1
  使用Code::Blocks IDE作為來編譯程式     <--建議: 新手使用視窗界面

 

2020年6月1日 星期一

[C/C++程式] Code::Blocks 整合開發環境的安裝與使用



MS Visual Studio和Dev-C++ 的另一個C/C++ 開發工具選擇----Code::Blocks

Code::Blocks是一個免費、開源、跨平台的整合式開發環境,Code::Blocks主要針對開發C/C++程式而設計。Code::Blocks使用了外掛程式架構,其功能可以使用外掛程式自由地擴充。

但Code::blocks 本身只是一個C/C++程式開發的皮, 沒有compiler ,所以安裝Code::blocks前得先安裝好一個compiler , 例如要在windows上使用GNU gcc 編譯器, 須先下載 MinGW 並進行安裝, 安裝 MinGW後,接著再進行Code::Blocks安裝。

但現在code:blocks 已有內含了MinGW 的版本, 超方便安裝, 這樣就可以省掉很多設定的動作

使用 Windows , 你可以撰擇 XP / Vista / 7 / 8.x / 10 的版本下載:  




接著就只要一直 [下一步] 就安裝完了..





2020年5月24日 星期日

[C語言]C 字串的問題

C 字串的問題

char *number1[3] = {"asdf", "qwer", "zxcv"};
printf("%s", number1[0]);

這樣會印出asdf,不過我不理解為甚麼printf後面放的是number1[0]而非*number1[0]?

我的理解是number1[0]存放的應該是一個記憶體位置,而*number1[0]才是指向asdf的實際位置,不曉得對不對?

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

說明如下:

char *number1[3] = {"asdf", "qwer", "zxcv"};


number1是字元指標陣列.. 所以初指值指向3個字串位址
number1[0] --> "asdf"
number1[1] --> "qwer"
number1[2] --> "zxcv"


變數名稱  變數記憶體位址    內容(假設) 
number1[0]  &number1[0]         0x7ff0
number1[1]  &number1[1]         0x7ff6
number1[2]  &number1[2]         0x7fff


記憶體位址       內容
                        0    1     2      3    4
0x7ff0             'a'   's'    'd'    'f'   '\0'
0x7ff6             'q'   'w'   'e'    'r'   '\0'
0x7fff              'z'   'x'   'c'    'v'   '\0'


(1) *number1[0] ==>'a'
(2) *(number1[0]+1) ==>'s'
(3) number[0] 的型態是 char * ,內容是0x7ff0
(4) number[0][0] 的型態是 char,內容是'a'


printf 的%s 輸出字串, 必須提供字串位址

printf("%s\n","asdf") ==> asdf
printf("%s\n",number1[0] ) ==> asdf
printf("%c\n",number1[0][0]) ==> a
printf("%c\n",number1[0][1]) ==> s
printf("%c\n",*number1[0] ) ==> a
printf("%c\n",*(number1[0]+1) ) ==> s

[C語言] 2種函數參數傳遞方式



根據課程的第二階段的1-2 多項式-2的06:47的例子
我自己試寫,如下列圖檔
為什麼這樣會錯誤?




另外,影片中我有疑問:
1.程式中沒有m,那為什麼「*m」可以指向「math」?
2.我不懂為什麼影片中的程式碼polynomial(float x, float *m, int size)
*m要加*,但size卻不用加*。不都是從別的地方取來的?

2種函數參數傳遞方式, 函數內想要使用別人的陣列時, 只要傳遞陣列起始位址就可引參考引用. 而不必copy所有內容 (很花時間.)
size 只是傳給一個數字, 因為也沒有要在函數內修改傳進來的size變數, 所以可以傳值過去 (只有4個byte). 不過要傳size位址
也是可以的
將函數定義改成 int f(int x, int *math, int *size)
在主程式改成 f(x,math,&size) 來呼叫


2020年3月18日 星期三

[C語言]Code:blocks 編譯多個檔案



在專案愈來愈大時,就不會再把所有功能寫在一個檔案裡,會將不同功能寫在不同檔案中,因此當要同時編譯多個檔案時,就是要先去建立專案,然後將多個原始檔加入到專案中, 然後再build 專案。

底下以Code:blocks 建立專案為例


1. 建立新專案 File-> New-> Project




2. 選擇Console application



3.選擇C


4. 建立專案名稱及專案存放位置




5. 在專案管理視窗(Shfit-F2) 替專案新增原始檔案, 原始檔案(.c. h)可以先複製到專案資料匣下





6. 專案加入

2020年2月22日 星期六

[C語言]如何設計一個表格

[進階C程式設計] 如何設計一個表格


資料結構的設計
typedef struct _table{
  int row;
  int column;
  int **data;

}Table;

typedef  Table * pTable;

//產生表格決定欄列大小
pTable create_table(int row,int column);

//刪除表格 release memory
void delete_table(pTable ptbl);
//卬出表格內容
void dump_2d(int row,int column, int **a );




相關文章





工商廣告: #APCS程式設計營隊 課程特色 : 工程師級的師資、精編的APCS講義、豐富的程式演練、優質的電腦教室、詳細的考古題解說 #開課時間 : 2020年 暑假開課 #上課教室: 台北: 艾鍗學院電腦教室(台北市重慶南路1段) 台中:逄甲大學電腦教室 高雄:中山大學電腦教室 更多資訊:http://bit.ly/34wHMwg

2020年2月18日 星期二

code:blocks的Function List (Symbols browser)



使用code:blocks 也有和 notepad++樣的 Function List , 開啓了這個功能才可以很
方便的快速移動到不同的函式去.


Settings -> Editor -> Code Completion -> Symbols browser

Check 'Display as free floating / docking window'