計算機代碼經典編程
『壹』 最經典計算機編程語言是什麼
等問題。當我毫不猶豫的回答,C是最經典的最實用的計算機編程語言時他們大都愣住了。為什麼不是ASM/JAVA/C++/PASCAL/LISP/C#/VB/VB.NET等這些更高級更優秀的編程語言呢? 他們的困惑我能理解。開學第一天老師就給他們發了 The High Level Language C 的英文原版教材,卻沒有介紹為什麼學校要採用這一本教材,而且還是英文原版的,C的成功之處是什麼,學了C語言能夠做什麼,C的前景和現狀是什麼,更重要的是C的未來發展前景怎樣呢等等,這一切的一切教師們未曾提起。即使有先見的人去問了,得到結果也只是你自己去了解 吧!他們的課程就是從Hello, world開始的,帶著一頭霧氣。 #include <stdio.h int main(){ printf(Hello, world ! /n);return 0;}然後,進行編譯運行而已。因為這個沒什麼可講的,實在體簡單了。老師的授課讓我們感到很遺憾的。一群渴望學習的孩子就被這樣殺戮了。我們的教育制度實在很讓人憂慮了。多數的教師都擁有很多的職稱但是稱職卻寥寥無幾了。 填鴨式 教育隨處可見。甚至我現在一些老師還是停留在這種層次上面。由此可見,昨日的象牙塔不再光彩照人了。家長、社會都在發問,為什麼? 實在讓人費解我們的狀況還是這樣糟糕。有人認為對於學計算機專業做軟體開發的人來說學一門語言(至少是這樣)是很重要的。工具自然不是軟體科學的核心但是對於語言學習還是很重要,只有通過語言才能和計算機進行交流,才得以表達自己的思想。所以我們的問題產生了。但是為什麼c語言才是最經典的語言呢?這足以讓人吃驚了,尤其對那些不太了解或者還沒有接觸過C語言的朋友(打面向對象的編程語言的出現,給計算機,尤其是軟體事業的發展得來了一個新的時代,新的革命。好多人從生產實踐中發現了面向對象的編程語言的優點和實用性、高效性、好維護性、清晰性等。所以,我多人都去學面向對象的語言去了。才會產生這樣的誤解,以為C就那麼煩瑣那麼低效)。C是一門很優秀的編程語言,其結構化很好,而且用其編寫的程序的運行速度還是足夠快的,佔用內存也很少(略高於相同功能的匯編語言程序),這是其他面向對象的高級語言無法比擬的。C是一門高級的低級語言。它有很好的體系和嚴格的語法以及相應的編程規范。它比匯語言更容易操作,但是不及高級語言那麼簡單。大概因為C語言里的bug很難發現和更正,所以好多人只是望而生畏罷了。因為她有缺點,所以才喜歡她 !。也許我不同於許多朋友之處就在於此吧。 我喜歡C語言,而且還認為她是最好的一門編程語言。 C的好處還在於我們能夠操作程序的每一個細節,讓整個程序按照我們的思路來執行。可以直接的操作內存,來避免不必要的錯誤的產生等。其實,C語言的優秀之處是有目共睹的,你的電腦操作系統,不管是Windows還是Linux或者Unix其內核都是用C來實現的,高級語言最多也就是用於開發一些應用軟體罷了。尤其是在嵌入式軟體開發中C表現的更加出色。當然了,這還與你的硬體環境,比如,內存的大小,和軟體的應用的領域等等有很大的一層關系。 雖然,包括微軟等公司和個人都在盡一切的可能來開發基於高級語言的操作系統,比如微軟longhorn,來說明高級語言的高效、健壯等特性,但是我們還沒有見到最後的結果。現在言論實在太早了。匯編語言很不錯,但是能夠把握匯編語言的人實在太少了。因為它結構很混亂,邏輯很差等。 我相信,總有一天大家都會發現只有C才是最經典的計算機編程語言。我希望那些想通過學習一門優秀的語言來了解和把握計算機科學的同學朋友們盡早的改變自己的錯誤的觀念。語言只是一種工具,最重要的還是計算機理論知識。這是沒有一門語言足夠表達的。領域知識的積累對一個人的職業生涯起著一個決定性的作用。
『貳』 c語言編寫路線
#include <stdio.h>
#include <malloc.h>
#include<stdlib.h>
#define MAX 100
#define MAXNUM 10000000
int previous[MAX-1];// 求路徑需要
int pp[MAX-1];// 記錄最短路徑
typedef struct graphnode
{
int vexnum; //頂點
int arcnum; //弧
int gra[MAX][MAX]; //鄰接矩陣表示0或1
}Graph;
int dist[MAX]; // 最短距離
int arc[MAX][MAX]; // 權
int main()
{
void Dijkstra(Graph *g,int v);
int i,j,n,m;
int v; //源點
Graph *G;
G=(Graph *)malloc(sizeof(Graph));
printf("vexnum:\n");
scanf("%d",&G->vexnum);
printf("arcnum:\n");
scanf("%d",&G->arcnum);
printf("graph:\n");
for(i=0;i<G->vexnum;i++)
for(j=0;j<G->vexnum;j++)
{
scanf("%d",&G->gra[i][j]);
}
for(i=0;i<G->vexnum;i++)
for(j=0;j<G->vexnum;j++)
{
if(G->gra[i][j]==1)
{
printf("請輸入%d到%d的權值:",i,j);
scanf("%d",&arc[i][j]);//若有弧 則輸入i到j直接的權
}
else
arc[i][j]=MAXNUM;
}
printf("請輸入源點v的值:");
scanf("%d",&v);
Dijkstra(G,v);
printf("請輸入源點所要到達的點:\n");
scanf("%d",&n);
pp[0]=0;
i=1;
m=n;// 記錄n的值
while(n!=0)// 求0到其他點路徑
{
pp[i]=previous[n];
i++;
n=previous[n];
}
printf("Path:0 -> ");
for(j=G->vexnum-1;j>=0;j--)
if(pp[j]!=0)
printf(" %d -> ",pp[j]);
printf("%d\n",m);
return 0;
}
void Dijkstra(Graph *G,int v)
{
int previous[MAX-1];
int newdist;
bool sign[MAX];
if(v<0||v>MAX-1)
{
printf("該源點不存在!\n");
return;
}
for(int i=0;i<G->vexnum;i++) //初始化
{
dist[i]=arc[v][i];
sign[i]=false;
if(dist[i]==MAXNUM)
previous[i]=0;
else
previous[i]=v;
}
dist[v]=0;
sign[v]=true;
for(i=0;i<G->vexnum;i++) // i<n-1 待定
{
float temp=MAXNUM;
int u=v; //u 中間變數
for(int j=0;j<G->vexnum;j++)
if((!sign[j])&&(dist[j]<temp))
{
u=j;
temp=dist[j];
}
sign[u]=true;
for(j=0;j<G->vexnum;j++)
if((!sign[j])&&(arc[u][j]<MAXNUM))
{
newdist=dist[u]+arc[u][j];
if(newdist<dist[j])
{
dist[j]=newdist;
previous[j]=u;
}
}
}
for(i=0;i<G->vexnum;i++)
if(dist[i]!=MAXNUM)
printf("從%d到%d的最短路徑是 %d\n",v,i,dist[i]);
else
printf("從%d到%d無最短路徑\n",v,i);
printf("\n");
}
這是Dijkstra演算法求單源最短路徑演算法 上程序中 假定頂點從0開始,搜索整個圖,然後求出0到其他各點的最短距離,存放在dist數組中,main函數後面幾行是求0到其他各點的路徑 基本上能滿足你的要求了
『叄』 java經典編程案例有哪些
java編程的記事本:
import java.util.*;
public class JieChengExample
{
public static void main(String args[])
{
Scanner input=new Scanner(System.in);
int n,sum;
Jiecheng jie=new Jiecheng();
System.out.print("輸入n的值:");//輸入有幾個階乘相加
n=input.nextInt();
sum=0;
for(int i=1;i<=n;i++)
{
sum=sum+jie.jiecheng(i);//這是n個階乘相加
}
System.out.println("1!+2!+3!+....+n!的和是:"+sum);
}
}
class Jiecheng
{
public int jiecheng(int temp)//算階乘的方法
{
int sum=1;
for(int i=1;i<=temp;i++)
{
sum=sum*i; //計算階乘
}
return sum;//將一個階乘返回
}
}
2.java賽馬游戲:
import java.util.Random;
public class Test {
public static void main(String[] args) {
Competition c = new Competition();
Thread T = new Thread(c);
T.start();
}
}
class Competition implements Runnable{
int red = 0;
int green = 0;
int Speed [] = new int [2];
Competition(){
}
public void run(){
Random r = new Random();
for(int a= 0;a<500;a++){
for(int j = 0;j<2;j++){
Speed[j] = r.nextInt(2);
red = red + Speed[j];
Speed[j] = r.nextInt(2);
green = green + Speed[j];
}
System.out.println("red的速度為"+red);
System.out.println("green的速度為"+green);
while(red >=500 || green>=500){
if(red >=500){
System.out.println("red先抵達終點線");
}
if(green >= 500){
System.out.println("green先抵達終點線");
}
if(green ==500 && red ==500 ){
System.out.println("兩個同時到達");
}
return;
}
}
/* if(red >green){
System.out.println("Redwin"+red);
}
if(red<green){
S...import java.util.Random;
public class Test {
public static void main(String[] args) {
Competition c = new Competition();
Thread T = new Thread(c);
T.start();
}
}
class Competition implements Runnable{
int red = 0;
int green = 0;
int Speed [] = new int [2];
Competition(){
}
public void run(){
Random r = new Random();
for(int a= 0;a<500;a++){
for(int j = 0;j<2;j++){
Speed[j] = r.nextInt(2);
red = red + Speed[j];
Speed[j] = r.nextInt(2);
green = green + Speed[j];
}
System.out.println("red的速度為"+red);
System.out.println("green的速度為"+green);
while(red >=500 || green>=500){
if(red >=500){
System.out.println("red先抵達終點線");
}
if(green >= 500){
System.out.println("green先抵達終點線");
}
if(green ==500 && red ==500 ){
System.out.println("兩個同時到達");
}
return;
}
}
/* if(red >green){
System.out.println("Redwin"+red);
}
if(red<green){
System.out.println("Greenwin"+green);
}
if(red == green){
System.out.println("equal");*/
JAVA的介紹:
Java是一種可以撰寫跨平台應用程序的面向對象的程序設計語言。Java技術具有卓越的通用性、高效性、平台移植性和安全性,廣泛應用於PC、數據中心、游戲控制台、科學超級計算機、行動電話和互聯網,同時擁有全球最大的開發者專業社群。