计算机代码经典编程
‘壹’ 最经典计算机编程语言是什么
等问题。当我毫不犹豫的回答,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、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。