電腦遊戲製作開發設計論壇 首頁 電腦遊戲製作開發設計論壇
任何可以在PC上跑的遊戲都可以討論,主要以遊戲之製作開發為主軸,希望讓台灣的遊戲人有個討論、交流、教學、經驗傳承的園地
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入 

Google
請幫我看C++程式碼 (程式碼更新-1.1)
前往頁面 1, 2  下一頁
 
發表新主題   回覆主題    電腦遊戲製作開發設計論壇 首頁 -> 遊戲程式初級班:語法及基礎概念
上一篇主題 :: 下一篇主題  
發表人 內容
電腦遊戲程式製作
偶而上來逛逛的過客


註冊時間: 2008-05-08
文章: 10

0.00 果凍幣

發表發表於: 2008-5-8, PM 5:26 星期四    文章主題: 請幫我看C++程式碼 (程式碼更新-1.1) 引言回覆

代碼:
#include<iostream>
int main()
{
    using namespace std;
    int carrots;
    cout << "How many carrots do you have?" << endl;
    cin >> carrots;   
    cout << "Here are two more. ";
    carrots = carrots + 2;
    cout << "Now you have " << carrots << " carrots." << endl;
    getchar();
}


程式都沒打錯之後,接下來存成xxx.cpp,
然後測試執行,結果都沒有出現DOS畫面
有人可以幫忙解決一下嗎,謝謝。

另外 希望 cin 的用法有人可以說明一下是在做什麼的。
謝謝!!


電腦遊戲程式製作 在 2008-5-16, PM 3:35 星期五 作了第 5 次修改
回頂端
檢視會員個人資料 發送私人訊息
mirror
散播福音的祭司


註冊時間: 2007-07-27
文章: 174

828.60 果凍幣

發表發表於: 2008-5-8, PM 6:30 星期四    文章主題: 引言回覆

http://www.gamelife.idv.tw/viewtopic.php?t=296
http://elearning.stut.edu.tw/electric/EE/TEACH/C++/C%2B%2B3.HTM
回頂端
檢視會員個人資料 發送私人訊息
yag
Site Admin


註冊時間: 2007-05-02
文章: 688

2673.35 果凍幣

發表發表於: 2008-5-8, PM 8:09 星期四    文章主題: Re: 請幫我看C++程式碼 引言回覆

電腦遊戲程式製作 寫到:
代碼:
#include<iostream>
int maim()
{
    using namespace std;
    int carrots;
    cout << "How many carrots do you have?" << endl;
    cin >> carrots;   
    cout << "Here are two more. ";
    carrots = carrots + 2;
    cout << "Now you have " << carrots << " carrots." << endl;
    getchar();
}


程式都沒打錯之後,接下來存成2008.cpp,
然後測試執行,結果都沒有出現DOS畫面
有人可以幫忙解決一下嗎,謝謝。

另外 希望 cin 的用法有人可以說明一下是在幹麻,
謝謝。

1.請善用code標籤,否則會看不到縮排。
2.你的main函式似乎沒有return,這樣可以compile過嗎?
3.你的main似乎打錯了,是main不是maim
4.請你附註一下你使用的compiler或IDE是哪個
5.getchar()在這裡不會有停止的功能,因為被cin後的enter填入了,請改用system( "pause" );或者#include <conio.h>之後使用getch();取代
6.cout是輸出,cin就是輸入,它會讓程式中斷,等待使用者的輸入,然後將使用者輸入的內容存到萃取運算子(>>)右邊的變數當中
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
電腦遊戲程式製作
偶而上來逛逛的過客


註冊時間: 2008-05-08
文章: 10

0.00 果凍幣

發表發表於: 2008-5-8, PM 10:03 星期四    文章主題: Re: 請幫我看C++程式碼 引言回覆

1.請善用code標籤,否則會看不到縮排。
請問這句話是什麼意思?
2.你的main函式似乎沒有return,這樣可以compile過嗎?
可以麻煩說一下這是什麼嗎?
課本上是有在最後面上面加上return,
但是都無法停在DOS上,所以改成getchar;來使用。
另外請問一下compile是....?
3.你的main似乎打錯了,是main不是maim
抱歉,這個地方的程式碼的確打錯
4.請你附註一下你使用的compiler或IDE是哪個
不知道這句話是什麼?
5.getchar()在這裡不會有停止的功能,因為被cin後的enter填入了,請改用system( "pause" );或者#include <conio.h>之後使用getch();取代

getchar()在這裡不會有停止的功能,因為被cin後的enter填入了,
可以麻煩詳細說一下這句話嗎?謝謝


system("pause"); 改這個有用,不過改後面那個好像會出現問題。




因為個人是超級新手,所以很多東西都不知道,
所以就麻煩一下了,謝謝。
回頂端
檢視會員個人資料 發送私人訊息
lsk
喜歡上這裡的冒險者


註冊時間: 2007-06-20
文章: 93

20.59 果凍幣

發表發表於: 2008-5-9, AM 1:18 星期五    文章主題: Re: 請幫我看C++程式碼 引言回覆

電腦遊戲程式製作 寫到:
1.請善用code標籤,否則會看不到縮排。
請問這句話是什麼意思?

你可以用預覽試試看就知道了
如果你沒有用到上面的那個"Code"的按鈕或是自己輸入"[c o d e][/c o d e]"
你的程式碼在每一行的前面的空白處(不管你是用tab或是space)不會被顯示
讓讀者看起來比較吃力

電腦遊戲程式製作 寫到:
2.你的main函式似乎沒有return,這樣可以compile過嗎?
可以麻煩說一下這是什麼嗎?
課本上是有在最後面上面加上return,
但是都無法停在DOS上,所以改成getchar;來使用。
另外請問一下compile是....?

只要不是宣告成void的函式都要有return,也就是回傳值
你最前面的main宣告成int
等於是告訴編譯器你這個main的函式要回傳一個int值
但是你最後沒加上return,理論上編譯時(也就是compile)會有錯誤

建議你可以從函式和變數類型的相關文章來了解這個問題
每本好的c++書都有介紹的

另外,return並不會讓程式停止的

電腦遊戲程式製作 寫到:
3.你的main似乎打錯了,是main不是maim
抱歉,這個地方的程式碼的確打錯
4.請你附註一下你使用的compiler或IDE是哪個
不知道這句話是什麼?

就是你用什麼東西來跑你的程式。
IDE應該是Intergrated develope environment,就是你的整合開發環境
說白話就是你拿來寫程式和跑程式的工具囉
compiler是編譯器,比如說VS2005就是一個IDE,而VS2005就包含了一個compiler在裡面。

電腦遊戲程式製作 寫到:
5.getchar()在這裡不會有停止的功能,因為被cin後的enter填入了,請改用system( "pause" );或者#include <conio.h>之後使用getch();取代

getchar()在這裡不會有停止的功能,因為被cin後的enter填入了,
可以麻煩詳細說一下這句話嗎?謝謝
system("pause"); 改這個有用,不過改後面那個好像會出現問題。



因為個人是超級新手,所以很多東西都不知道,
所以就麻煩一下了,謝謝。

這邊也是建議先看完基本的後再回來了解背後的原理
一開始就說IO的東西會有點太硬了。
萬事起頭難,加油~
回頂端
檢視會員個人資料 發送私人訊息
yag
Site Admin


註冊時間: 2007-05-02
文章: 688

2673.35 果凍幣

發表發表於: 2008-5-9, AM 9:15 星期五    文章主題: Re: 請幫我看C++程式碼 引言回覆

電腦遊戲程式製作 寫到:
1.請善用code標籤,否則會看不到縮排。
請問這句話是什麼意思?

在你的第一篇文章按編輯,你會看到你的程式碼已被我用code標籤包住了
這就是沒縮排:
int main()
{
std::cout << "範例" << endl;
return 0;
}
這就是有縮排:
代碼:
int main()
{
     std::cout << "範例" << endl;
     return 0;
}

有看出這兩段一樣的程式碼的差異嗎?
沒有code標籤時,是無法顯示出每一行前面的空白的

電腦遊戲程式製作 寫到:
2.你的main函式似乎沒有return,這樣可以compile過嗎?
可以麻煩說一下這是什麼嗎?
課本上是有在最後面上面加上return,
但是都無法停在DOS上,所以改成getchar;來使用。
另外請問一下compile是....?

return跟能不能停在DOS上毫無關係
那是必定要加的
你將程式碼轉成執行檔的過程就叫編譯(compile)

電腦遊戲程式製作 寫到:
5.getchar()在這裡不會有停止的功能,因為被cin後的enter填入了,請改用system( "pause" );或者#include <conio.h>之後使用getch();取代

getchar()在這裡不會有停止的功能,因為被cin後的enter填入了,
可以麻煩詳細說一下這句話嗎?謝謝


system("pause"); 改這個有用,不過改後面那個好像會出現問題。

cin會要求輸入,此輸入以使用者按下Enter鍵為終止,但cin並不會讀取這個Enter輸入,所以會被getchar()讀去當成它的輸入,如果這樣還是聽不懂,代表你的基礎還不足以了解,請先略過這個問題,等你懂了更多基礎後再試圖了解。

後面那個我有說了,要先#include <conio.h>,我想你應該沒有照著做吧?
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
電腦遊戲程式製作
偶而上來逛逛的過客


註冊時間: 2008-05-08
文章: 10

0.00 果凍幣

發表發表於: 2008-5-12, PM 2:26 星期一    文章主題: Re: 請幫我看C++程式碼 引言回覆

使用軟體 DevC++4.9.9.2
程式碼更新-1
下面程式碼很多地方不懂,請幫我看一下。
課本程式碼↓
代碼:
#include<iostream>
#include<cmath>
int main()
{
    using namespace std;
    double area;
    cout << "Enter the floor area, in square feet, of your home.";
    cin >> area;
    double side;
    side = sqrt(area);
    cout << "That's the equivalent of a square " << side
         << " feet to the side." << endl;
    cout << "How fascinating!" << endl;
    getchar();
    }

在執行測試時,程式碼會在DOS上出現訊息入下↓
Enter the floor area, in square feet, of your home.
不知道為何只出現這些訊息,

課本上顯示的結果是寫
Enter the floor area, in square feet, of your home:1536
That's the equivalent of a square 39.1918 feel to the side.
How fascinating!

不知道為何跟課本的顯示結果會差這麼多,還是哪裡有問題

這些程式碼很多地方都不懂,希望可以說一下是在幹麻的↓
這些程式碼都不知道是在做什麼的,
雖然課本好像有提到,但還是不太懂,
請各位幫忙說一下這些程式碼的用途......等。

代碼:

#include<cmath>
double area;
double side;
side = sqrt(area);
回頂端
檢視會員個人資料 發送私人訊息
yag
Site Admin


註冊時間: 2007-05-02
文章: 688

2673.35 果凍幣

發表發表於: 2008-5-12, PM 3:43 星期一    文章主題: Re: 請幫我看C++程式碼 引言回覆

如我上一篇所說
cin會要求輸入
之所以停在第一行
就是在等你輸入
那個1536就是作者隨便打的輸入
你要打1234、5678都行

建議你可以換一本台灣人寫的書來學習
由你的問題可看出你對英文不太熟
所以換一本以中文顯示提示語的參考書應該有助於學習
「Enter the floor area, in square feet, of your home.」的意思就是
「請輸入你家佔地面積大小有幾坪」


yag 在 2008-5-13, AM 7:44 星期二 作了第 1 次修改
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
電腦遊戲程式製作
偶而上來逛逛的過客


註冊時間: 2008-05-08
文章: 10

0.00 果凍幣

發表發表於: 2008-5-13, AM 1:03 星期二    文章主題: Re: 請幫我看C++程式碼 引言回覆

yag 寫到:
如我上一篇所說
cin會要求輸入
之所以停在第一行
就是在等你輸入
那個1536就是作者隨便打的輸入
你要打1234、5678都行


建議你可以換一本台灣人寫的書來學習
由你的問題可看出你對英文不太熟
所以換一本以中文顯示提示語的參考書應該有助於學習
「Enter the floor area, in square feet, of your home.」的意思就是
「請以平方碼為單位輸入你家佔地面積大小」


抱歉,可能問題講的不清楚,
現在已經知道 cin 的用法了,
所以出現DOS畫面時,
一樣是隨便輸入數字,
然後DOS就跳掉了。
後來想了一下要把原本的 getchar(); 改成
system( "pause" ); 才可以,
後來就可以成功了。


另外可以解釋其他程式碼的功能是在做什麼嗎?謝謝

代碼:

#include<cmath>
double area;
double side;
side = sqrt(area);

這些程式碼好像都是新的,不太了解是在做什麼的,可以說明一下嗎?謝謝 ^^


電腦遊戲程式製作 在 2008-5-14, AM 7:10 星期三 作了第 1 次修改
回頂端
檢視會員個人資料 發送私人訊息
yag
Site Admin


註冊時間: 2007-05-02
文章: 688

2673.35 果凍幣

發表發表於: 2008-5-13, AM 7:39 星期二    文章主題: Re: 請幫我看C++程式碼 引言回覆

電腦遊戲程式製作 寫到:
另外可以解釋其他程式碼的功能是在做什麼嗎?謝謝

代碼:

#include<cmath>
double area;
double side;
side = sqrt(area);

這些程式碼好像都是新的,不太了解是在做什麼的,可以說明一下嗎?謝謝 ^^

#include就是引用標頭檔
cmath是個c++的標準標頭檔,裡面有些數學相關的函式
之所以叫做「標準」
意思就是不管是哪種c++的編譯器都會有提供這個標頭檔

double是雙精度浮點數型態
雙精度是跟單精度相比的
float就是單精度的
單、雙精度的意義是指拿來儲存的位元大小
你可以使用cout << sizeof( float );來得知float所佔的位元數
同理也可以使用cout << sizeof( double );來得知double所佔的位元數
你會發現double所佔的位元數會是float的兩倍
也因此double能儲存的數字會比float大得多
double area;跟double side;都只是變數宣告敘述而已

至於sqrt就是cmath裡面的一個函式
用途是取開平方根值
因此side會是area的平方根
sqrt == square root的縮寫,也就是平方根的意思
另外我更正一下
我上面說square feet是平方碼是錯的
應該是平方英尺才對
也就是我們常用的「坪」
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
電腦遊戲程式製作
偶而上來逛逛的過客


註冊時間: 2008-05-08
文章: 10

0.00 果凍幣

發表發表於: 2008-5-13, PM 3:57 星期二    文章主題: Re: 請幫我看C++程式碼 引言回覆

程式碼 測試執行時,出現DOS畫面,
假設輸入數字是 10 然後得到的結果是 3.12668
(當然前後面都還有一些英文的字串)。


電腦遊戲程式製作 在 2008-5-22, PM 4:54 星期四 作了第 1 次修改
回頂端
檢視會員個人資料 發送私人訊息
yag
Site Admin


註冊時間: 2007-05-02
文章: 688

2673.35 果凍幣

發表發表於: 2008-5-13, PM 4:19 星期二    文章主題: Re: 請幫我看C++程式碼 引言回覆

電腦遊戲程式製作 寫到:
程式碼 測試執行時,出現DOS畫面,
假設輸入數字是 10 然後得到的結果是 3.12668
(當然前後面都還有一些英文的字串),
平方根 = ...... ?
算出來的結果是 + - * / 的哪一個,在程式碼中好像並沒有 + - * / 其中一個,
結果是如何出來的。
像carrots就比較清楚了。

我想應該是3.16228才對
你應該打錯數字了
3.16228就是10的平方根
而3.16228的平方就是10
換個例子來說
2的平方就是4
3的平方就是9
4的平方就是16
而16的平方根就是4
9的平方根就是3
4的平方根就是2
也就是說
把16丟進sqrt()裡面就會得到回傳的4
double a;
a = sqrt( 16.0 );
那麼現在a裡面存的就是4.0

以後如果有什麼不了解的名詞
在發問前可以先試著到google或奇摩雅虎查詢一下
應該很快就可以找到許多解釋詳細的答案
如果沒有積極查詢資料的精神
很難將程式設計學好的
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
電腦遊戲程式製作
偶而上來逛逛的過客


註冊時間: 2008-05-08
文章: 10

0.00 果凍幣

發表發表於: 2008-5-14, AM 7:09 星期三    文章主題: Re: 請幫我看C++程式碼 引言回覆

如果是程式碼的問題,應該可以發問吧.........

電腦遊戲程式製作 在 2008-5-22, PM 4:54 星期四 作了第 3 次修改
回頂端
檢視會員個人資料 發送私人訊息
電腦遊戲程式製作
偶而上來逛逛的過客


註冊時間: 2008-05-08
文章: 10

0.00 果凍幣

發表發表於: 2008-5-16, PM 3:40 星期五    文章主題: Re: 請幫我看C++程式碼 引言回覆

代碼:

void simon (int n)

void表示simon()沒有回傳值,

請問一下回傳值和沒有回傳值是在做什麼的?
回頂端
檢視會員個人資料 發送私人訊息
babu61509
散播福音的祭司


註冊時間: 2007-08-26
文章: 142

681.01 果凍幣

發表發表於: 2008-5-19, AM 10:04 星期一    文章主題: Re: 請幫我看C++程式碼 引言回覆

有回傳值就是有傳回一個值,沒回傳值就是沒有傳回值 XD (毆

------------------------------------------------------

普通的函式用 void 就可以了,如果是計算用的,就可以用int之類的傳回值方便呼叫(當然也可以用丟位址的...)
還有就是一些可能會發生錯誤的函式,可以用傳回值來看發生什麼錯誤.

_________________
已經畢業了!!
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    電腦遊戲製作開發設計論壇 首頁 -> 遊戲程式初級班:語法及基礎概念 所有的時間均為 台灣時間 (GMT + 8 小時)
前往頁面 1, 2  下一頁
1頁(共2頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
可以 在這個版面附加檔案
可以 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作