導航:首頁 > 編程語言 > 怎樣編程

怎樣編程

發布時間:2022-02-04 11:11:11

❶ 如何編程游戲

當下互聯網行業發展迅速,與之相關的產業大多發展都很好,游戲設計的前景自然也是相當不錯的。一個游戲問世要經歷很多環節,劇本設計,原畫創作,場景建模,但核心部分還是編程語言開發。

主要學的內容如下:

1.游戲程序設計:C++程序設計入門;基本數據類型和輸入輸出;流程式控制制語句;數組、指針和引用、函數;程序結構和書寫規;范結構體和聯合體、類;繼承與多態;異常處理與程序調試。

2.演算法與數據結構:演算法分析;數據結構;基本演算法;STL的概念與使用;靜態庫與動態庫;XML庫的使用。

3.Win32程序設計:Windows程序入門;Windows消息;GDI繪圖游戲工具與MFC;網路編程基礎。

4.游戲數學和智能應用:游戲中的坐標系;矢量、矩陣;幾何碰撞;物理模擬;人工智慧與尋路演算法。

5.2D游戲技術與應用:2D游戲技術概論;游戲地圖系統;GUI系統;戰斗系統設計;任務系統;優秀的聲音引擎BASS;Cocos2D-X引擎;Box2D物理引擎。

互聯網行業目前還是最熱門的行業之一,學習IT技能之後足夠優秀是有機會進入騰訊、阿里、網易等互聯網大廠高薪就業的,發展前景非常好,普通人也可以學習。

想要系統學習,你可以考察對比一下開設有相關專業的熱門學校,好的學校擁有根據當下企業需求自主研發課程的能力,能夠在校期間取得大專或本科學歷,中博軟體學院、南京課工場、南京北大青鳥等開設相關專業的學校都是不錯的,建議實地考察對比一下。

祝你學有所成,望採納。

❷ 如何編程

不要老是想著誰「最有錢途」,這些都不是我們應當考慮的,我們要考慮的是怎樣才能真正的精通VB。如果成為了VB的專家,應當很容易賺到錢的。VB程序員為什麼工資低,不是VB不行,是因為大部份VB程序員不行,他們只懂得用控制項,而沒有什麼編程的思想。而VB的初學都只會用控制項和簡單的API就說精通VB了,顯然影響的整個VB在程序界的地位,這些人顯然不能稱為程序員的,只能相當於會使用VB了,就像會Word一樣。如果VB程序員都懂的數據結構,UML等,就完全是另外一回事了。有認為VB功能弱,請注意:仙劍95版就是用VB4做的,還有DirectX SDK7中有個一很好玩的3D游戲,聲音和動畫都非常好,也是用VB寫的。所以VB能做很多東西,只要你想去做。
(1)VB不只是資料庫和報表。不要以為VB就是資料庫和報表,這只是VB強大功能的一小部份。如果這此都搞不清,還是好好的看一下相關的書籍,比在這里問問題有用多了。我以前沒有學過資料庫,只是有些編程的思路,後來學資料庫就非常容易了。我做報表一般用RichTextBox或是From來做,一般都能做的很好,也不用去考慮什麼水晶報表了。
(2)不要迷信於API。API能做很多東西,但有些東西在VB裡面的函數中就有,API只是VB對WindowsSDK的封裝而已。如果想學好API,建議學習SDK。如果VB本身就能很好的支持這個功能,何必還要用API呢。
(3)不要什麼都想著控制項。如果做程序都想著第三方控制項的話,代價是很高的,不僅程序大,安全性也低了很多。其實VB本身帶的控制項已經完全夠用了。
(4)認認真真的把MSDN中關於VB的內容好好看一看,特別是函數和語句,很有用的。
(5)遇到問題不要直接來這里問,自己好好想一想,試著解決這個問題,這雖然在時間上慢了,可是在自身的提高上卻有很大的幫助。
(6)沒事的時候,多研究些語言上的東西,如數據結構和演算法,不要老是想著什麼花哨的東西。這對以後的提高非常有幫助。

❸ 是怎樣編程的

因為我我是學習計算機軟體專業的,故可以肯定的說,關於編程方面的問題,可不是幾句話能夠講得清楚的。
因為編寫各種應用程序,包括使用不同的程序設計語言、在實現程序的演算法復雜性方面、以及在編寫程序的過程中所採用的數據結構(例如:鏈表、堆棧、隊列,等等)肯定都是不一樣的。故沒有一個固定的編程模式來實現所有的編程問題。
但是無論使用哪一種程序設計語言,其最最關鍵點都是一樣的。那就是:在編寫程序代碼之前必須要有一個特別清晰的編程思路(即:軟體專業中的《軟體工程》課程涉及到的程序流程圖,有的也叫做程序框圖)。只有首先畫出准確的程序流程圖,才能夠做到當編寫的程序中出現各種錯誤時,比較容易排除程序中的各類BUG。

❹ 新手如何學習編程

熟悉以下關鍵東西,可以邊學邊做,定期訓練,經常思考,長期積累:

1、語法。

2、基礎理論(數學、數據結構、演算法等)。

3、設計方法(編程原則、設計模式、框架設計等)。

4、庫(核心、基礎、UI、擴展、游戲引擎等)。

5、計算機相關(操作系統、網路、圖形學等)。

6、領域知識(游戲設計、網站設計等)。

7、開發工具(編輯器、IDE、自動部署等)。

8、項目管理(進度管理、分工協作、Bug管理、版本控制等)。

最普遍也是最重要的能力:創造力。努力分析並理解好做什麼以及怎麼做。要知道上面那些東西一開始都是不存在的。

具體方法包括:

1、快速閱讀入門教程和書籍,適合學習語言和基礎庫。比如我學Java讀的《Java編程思想》,練習題做過一點,然後學ActionScript就沒讀過書,只讀過Adobe官方文檔《ActionScript 3.0編程》。

2、閱讀庫的文檔、實例、源碼。比如Flash、Flex開發,熟悉官方API很重要,很多細節要具體使用時才注意到,這時候最好做個筆記,雖然我從沒看過我的筆記。

3、做一個自己感興趣或熟悉的小項目,比如我就以黑白棋游戲作為多個語言的試水項目,一樣的邏輯,便於把關注點放在語言特點上。

4、自己動手豐衣足食。廚師有菜譜,程序員可沒菜譜。比如我做游戲,最關鍵的游戲編程知識全部是動手學出來的,很少有專門針對某個業務領域(如游戲)的編程書籍,要麼是入門書,要麼是模式書(如演算法)、理論書(圖形學),很少有書籍教你如何開發一個45度角地圖系統加編輯器的,全靠自己思考,以及看前人的代碼,需要時找些網路資料。關鍵是,可以培養最重要的創造力。

對於演算法和設計模式,可以研讀下,但是關鍵還是靠平時如何使用了。新手勉強不來的。

項目管理方面的,就得靠工作經驗了,多思考多提意見不要只走流程。

❺ 怎樣編程序

/*1、 編程解決如下數學問題:有12升水,怎樣利用一個8升和一個5升的容器將水分為兩個6升?要求以如下格式列印出分水步驟。(20分)
a12 b8 c5
12 0 0
* * * ( "*"表示當前狀態下每個容器的盛水量)
......
6 6 0

# include <stdio.h>
# include <stdlib.h>
void move(int *x,int *y,int aMax,int bMax)
{
if(aMax>bMax)
{
if(*x+*y>bMax)
{
*x = *x-(bMax-*y);
*y = *y+(bMax-*y);
}
else
{
*y = *y+*x;
*x = *x-*x;//如果顛倒兩個的順序就會造成無法輸出
}
}
else
{
*y = *y + *x;
*x = *x - *x;
}

}
main()
{
int aMax=12,bMax=8,cMax=5;
int a=12,b=0,c=0;
int i=1;

printf(" a12 b8 c5:\n");
printf("%7d%7d%7d\n",a,b,c);

while(i)
{
move(&a,&b,aMax,bMax);
printf("%7d%7d%7d\n",a,b,c);
if(a==6&&b==6)
goto step2;

move(&b,&c,bMax,cMax);
printf("%7d%7d%7d\n",a,b,c);
if(a==6&&b==6)
goto step2;

move(&c,&a,cMax,aMax);
printf("%7d%7d%7d\n",a,b,c);
if(a==6&&b==6)
goto step2;

move(&b,&c,bMax,cMax);
printf("%7d%7d%7d\n",a,b,c);
if(a==6&&b==6)
goto step2;
}

step2:
printf("the water has been sorted!\n");

return 0;
}*/

/*2、 編程實現:有二維數組a[3][3]={{5.4,3.2,8},{6,4,3.3},{7,3,1.3}},
將數組a的每一行元素均除以該行上的主對角元素(第1行同除以a[0][0],第2行同除以a[1][1],...),
按行輸出新數組。(20分)
# include <stdio.h>
main()
{
double a[3][3]={{5.4,3.2,8},{6,4,3.3},{7,3,1.3}}; //可以在定義時初始化,在後來就不行了
int i,j;

for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
if(i==j)
a[i][j]=a[i][j];
else
a[i][j]=a[i][j]/a[i][i];
}
a[i][i]=1;

}
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%6.2f",a[i][j]);
printf("\n");
}

}*/
/*3、編程:設x取值為區間[1,20]的整數,求函數f(x)=x-sin(x)- cos(x)的最大值,
要求使用自定義函數實現f(x)功能。(20分)
#include <stdio.h>
#include <math.h>
double f(long double x);
main()
{
double a[50];
int i,index,j;
long double temp;

for(i=0;i<20;i++)
a[i] = f(i+1);

for(i=0;i<19;i++)
{
index = i;
for(j=i+1;j<20;j++)

if(a[j]>a[index])
index = j;
temp = a[index];
a[index] = a[i];
a[i] = temp;

}
printf("the max is %6.2f",a[0]);
printf("\n");

return 0;

}
double f(long double x)
{

x = x - sin(x) - cos(x); //他輸入的是弧度數,而我用計算器算的是角度值,所以結果會不一樣

return x;
}*/

//冒泡排序
/*# include <stdio.h>
# include <math.h>
void swap(int *x,int *y);
main()
{
int i,j;
int a[50];

printf("please input the num:");
printf("\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=1;i<10;i++)
for(j=0;j<10-i;j++)
if(a[j]>a[j+1])
swap(&a[j],&a[j+1]);
printf("after sorted the num is:");
printf("\n");
for(i=0;i<10;i++)
printf("%4d",a[i]);
printf("\n");]

return 0;
}
void swap(int *x,int *y)
{
int p;

p = *x;
*x = *y;
*y = p;

}
*/

//選擇排序
/*# include <stdio.h>
# include <stdlib.h>
main()
{
int i,j,temp,index;
int a[50];

printf("input the num :");
printf("\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++)
{
index = i;
for(j=i+1;j<10;j++)
{
if(a[j]<a[index])
index = j;
temp = a[index];
a[index] = a[i];
a[i] = temp;
}
}
for(i=0;i<10;i++)
printf("%4d",a[i]);
printf("\n");

return 0;
}*/

/*編寫函反向。
要求主函數輸入字元串,通過調用函數fun實數fun,通過指針實現將一個字元串現輸入字元串反向。(20分)
# include<stdio.h>
# include<stdlib.h>
# include<string.h>
char *fun(char *q)
{
char temp;
int len=strlen(q);
int i;

for(i=0;len-i-1>i;i++)
{
temp = *(q+i);
*(q+i) = *(q+len-i-1);
*(q+len-i-1) = temp;
}

return q;
}
main()
{
char *q;

q=(char *)malloc(200*sizeof(char));
printf("please input the string:\n");
scanf("%s",q);
fun(q);
printf("after reverse the string is:\n");
printf("%s\n",q);

return 0;
}*/
/*5、已知學生三門課程基本信息如下。請使用結構體編程,計算學生三門課程平均成績後,
列表輸出學生的姓名、數學、英語、計算機、平均分信息,並按平均分排序。(20分)

姓名 數學 英語 計算機

Mary 93 100 88

Jone 82 90 90

Peter 91 76 71

Rose 100 80 92
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct student{
char name[20];
int math;
int english;
int computer;
double average;
};
main()
{
int i,j,index;

struct student a[4];
struct student temp;
strcpy(a[0].name,"mary"),a[0].math=93,a[0].english=100,a[0].computer = 88;
strcpy(a[1].name,"jone"),a[1].math=82,a[1].english=90,a[1].computer = 90;
strcpy(a[2].name,"peter"),a[2].math=91,a[2].english=76,a[2].computer = 71;
strcpy(a[3].name,"rose"),a[3].math=100,a[3].english=80,a[3].computer = 92;
for(i=0;i<4;i++)
a[i].average =(a[i].computer +a[i].english +a[i].math)/3 ;
for(i=0;i<3;i++)
{
index = i;
for(j=i;j<4;j++)
if(a[j].average <a[index].average )
index = j;
temp = a[i];
a[i] = a[index];
a[index] = temp;
}
printf("姓名 數學 英語 計算機 平均分\n");
for(i=0;i<4;i++)
{

printf("%6s%6d%6d%9d%9.1f",a[i].name ,a[i].math ,a[i].english ,a[i].computer ,a[i].average );
printf("\n");
}

}*/
/*6、附加題:編程實現輸入一串英文,統計其中各單詞出現的個數(不區分大小寫字母),
以"000"作為字元串輸入結束標志,例如:

Twinkle twinkle little star 000(回車)

twinkle little star

2 1 1 (50分)

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<ctype.h>
void main()
{

char string[400]; //裝載輸入的原始字元串
char temp[20][20]; //裝載string中的各個子字元串
char str[20][20]; //裝在string中的各個子字元串,不過不包括重復的字元串,只是把不同的字元串收錄在str中
int num=0; //記錄空格的個數
int order[20]; //記錄各個空格的位置
int i,j,k;
int sum[20]; //記錄子字元串出現的個數
int flag=0; //判斷是否把子字元串輸入到str中

for(i=0;i<20;i++)
memset(temp[i],'\0',20); //把那裡面的元素清零,如果不清零會產生亂碼

for(i=0;i<20;i++)
memset(str[i],'\0',20); //把那裡面的元素清零,如果不清零會產生亂碼

printf("please input the string:\n");
gets(string); //把字元串輸入到字元數組string[400]中
for(i=0;string[i]!='0';i++)
string[i]=tolower(string[i]); //將字元串中的大寫字母轉化成小寫字母

for(i=0;string[i]!='0';i++)
if(string[i]==' ')
{
order[num]=i; //記錄空格的位置
num++; //空格的數目加1
}
for(i=0;i<order[0];i++)
temp[0][i]=string[i];//記錄了第一個空格前的字元串,把它輸入到temp[0][]中.
for(j=0;j<num;j++)
for(k=0,i=order[j]+1;i<order[j+1];i++)
temp[j+1][k++] = string[i]; //將string字元串分開後存在temp中,也就是把第一個空格之後的字元串分別存放在temp中。
//第一個字元串為temp[0],第二個字元串為temp[1],往後就一次類推了

for(k=0,i=0;i<num;i++)
{
flag=0;
for(j=0;j<k;j++)
if(!strcmp(temp[i],str[j]))
{
flag=1;
break;
}
if(flag==0)
strcpy(str[k++],temp[i]);//關於他的實現舉例,第一遍時temp[0]=hello,str[0]=hello;但是當temp[1]=hello時,str[1]中不會
//在存儲temp的值,而是把這個忽略掉,接著往下找。
}

for(i=0;i<k;i++) //k決定了輸出的字元串的個數,從而避免了相同字元串的重復輸入,通過flag的變化來實現
{
sum[i]=0;
for(j=0;j<num;j++)
if(!strcmp(str[i],temp[j]))
sum[i]++;
printf("%s %d\n",str[i],sum[i]);
}

}*/

❻ 怎樣做編程

做編程可以參考以下幾個方案
方案一 Basic語言 & Visual Basic
優點
(1)Basic 簡單易學,很容易上手。
(2)Visual Basic 提供了強大的可視化編程能力,可以讓你輕松地做出漂亮的程序。
(3)眾多的控制項讓編程變得象壘積木一樣簡單。
(4)Visual Basic 的全部漢化讓我們這些見了English就頭大的人喜不自禁。
缺點
(1)Visual Basic 不是真正的面向對象的開發文具。
(2)Visual Basic 的數據類型太少,而且不支持指針,這使得它的表達能力很有限。
(3)Visual Basic 不是真正的編譯型語言,它產生的最終代碼不是可執行的,是一種偽代碼。它需要一個動態鏈接庫去解釋執行,這使得Visual Basic 的編譯速度大大變慢。
綜述:方案一適合初涉編程的朋友,它對學習者的要求不高,幾乎每個人都可以在一個比較短的時間里學會vB編程,並用VB 做出自己的作品。對於那些把編程當做游戲的朋友來說,VB 是您最佳的選擇。

方案二 Pascal語言 & Delphi
優點
(1)Pascal語言結構嚴謹,可以很好地培養一個人的編程思想。
(2)Delphi是一門真正的面向對象的開發工具,並且是完全的可視化。
(3)Delphi使用了真編譯,可以讓你的代碼編譯成為可執行的文件,而且編譯速度非常快。
(4)Delphi具有強大的資料庫開發能力,可以讓你輕松地開發資料庫。
缺點
Delphi幾乎可以說是完美的,只是Pascal語言的過於嚴謹讓人感覺有點煩。
綜述: 方案二比較適合那些具有一定編程基礎並且學過Pascal語言的朋友。

方案三 C語言 & Visual C++
優點
(1)C語言靈活性好,效率高,可以接觸到軟體開發比較底層的東西。
(2)微軟的MFC庫博大精深,學會它可以讓隨心所欲地進行編程。
(3)VC是微軟製作的產品,與操作系統的結合更加緊密。
缺點
對使用者的要求比較高,既要具備豐富的C語言編程經驗,又要具有一定的WINDOWS編程基礎,它的過於專業使得一般的編程愛好者學習起來會有不小的困難。
綜述: VC是程序員用的東西。如果你是一個永不滿足的人,而且可以在編程上投入很大的精力和時間,那麼學習VC你一定不會後悔的。

方案四 C++語言 & C++ Builder
優點
(1)C++語言的優點全部得以繼承。
(2)完全的可是化。
(3)極強的兼容性,支持OWL、VCL和MFC三大類庫。
(4)編譯速度非常快。
缺點
由於推出的時間太短,關於它的各種資料還不太多。
綜述:我認為C++ Builder 是最好的編程工具。它既保持了C++語言編程的優點,又做到了完全的可視化。

方案五 SQL語言 & Power Builder
對於一些傳統的數據開發人員來說,Foxpro系列也許讓他們感到更加熟悉。但是對於初學者來說,PowerBuilder也許是最好的資料庫開發工具。各種各樣的控制項,功能強大的PowerBuilder語言都會幫助你開發出自己的資料庫應用程序。

閱讀全文

與怎樣編程相關的資料

熱點內容
git伺服器如何啟動 瀏覽:39
noi演算法 瀏覽:459
zip解壓縮是電腦自帶的嗎 瀏覽:643
魔術演算法術嗎 瀏覽:783
復式五肖演算法 瀏覽:721
海康威視設備已加密 瀏覽:663
自適應路由演算法 瀏覽:315
pythonxlwt寫入一列 瀏覽:995
性之助app哪裡可以下載 瀏覽:414
安卓如何自己改圖標 瀏覽:848
如何去掉app資源庫的建議 瀏覽:730
中興研發面試要寫演算法嗎 瀏覽:65
linux系統配置文件 瀏覽:601
php登錄網頁模板 瀏覽:931
windownginxphp 瀏覽:509
resync命令 瀏覽:536
dos命令手冊 瀏覽:287
矽谷編程二維數組 瀏覽:41
inside游戲什麼時候移植安卓 瀏覽:944
極光安卓是什麼 瀏覽:541