RSS

C#第三章学习札记

2007年08月06日 | ghSky | 浏览: 753   

0 Comments

还是程序,自己参照书上例子写了一些。
结合原来学过的PASCAL,还是学得比较轻松的!

using System;
using System.Collections.Generic;
using System.Text;

namespace TestCSharpChapter03
{
    class Test
    {
        enum Name { ghSky, MicroTonyu, Lei, Pig };
        static void Main(string[] args)
        {
            /*--------------------------------------------------
            // Test1 -- a-- or --a
            int a = 10;
            a--;
            Console.WriteLine("a--:{0}",a);

            Console.WriteLine("WriteLine(a--):{0}", a--);
            Console.WriteLine();

            // Test2 -- enum
            Name name1 = Name.MicroTonyu;
            Name name2 = Name.Lei;
            Console.WriteLine("{0} Love {1}",name1,name2);
            ----------------------------------------------------*/

            /*---------------------------------------------------
            //Test3 -- Array
            int[] array1 = new int[10];
            for (int i = 0; i < array1.Length; i++)
                array1[i] = i;
            ShowArray1("array1", array1);

            int[,] array2 = new int[5, 5];
            int count = 1;
            for (int i = 0; i < 5; i++)
            {
                for (int j = 0; j < 5; j++)
                    array2[i, j] = count++;
            }
            ShowArray2("array2", array2);
            ----------------------------------------------------*/

            /*---------------------------------------------------
            //Test4 -- CloneArray
            int[] array = new int[10];
            int[] arrayClone2=new int[10];
            ShowArray1("array", array);
            int[] arrayPointer = array;
            int[] arrayClone = (int[])array.Clone();
            for (int i = 0; i < 10; i++)
                arrayClone2[i] = array[i];
            array[0] = 100;
            array[9] = 100;
            Console.WriteLine("--------------------------- After Modify ---------------------------");
            ShowArray1("array", array);
            ShowArray1("arrayPointer", arrayPointer);
            ShowArray1("arrayClone", arrayClone);
            ShowArray1("arrayClone2", arrayClone2);
            ---------------------------------------------------*/

            //Test5 -- SortArray
            int[] array = new int[10];
            Random r = new Random();
            for (int i = 0; i < 10; i++)
                array[i] = r.Next(0, 100);
            ShowArray1("array", array);
            Sort(array);
            Console.WriteLine("------------------------------- After Sort -------------------------------");
            ShowArray1("array", array);

        }

        static void ShowArray1(string arrayName, int[] array)
        {
            Console.Write(arrayName + ": ");
            foreach (int n in array)
                Console.Write(n + " ");
            Console.WriteLine();
        }

        static void ShowArray2(string arrayName, int[,] array)
        {
            Console.Write(arrayName + ":");
            for (int i = 0; i < 5; i++)
            {
                for (int j = 0; j < 5; j++)
                    Console.Write(" " + array[i, j]);
            }
            Console.WriteLine();
        }

        static void Sort(int[] array)
        {
            for (int i=0; i<10; i++)
                for (int j = 9; j > i; j--)
                {
                    if (array[j - 1] < array[j])
                    {
                        int temp = array[j - 1];
                        array[j - 1] = array[j];
                        array[j] = temp;
                    }
                }
        }
    }

}

我的C# Hello World

2007年08月06日 | ghSky | 浏览: 1,046   

0 Comments

原来就写的了,懒得发,现在再来发……HOHO :mrgreen:
哈哈,占字符……

using System;
using System.Collections.Generic;
using System.Text;

namespace CoreCSharp_HelloWorld
{
    class Program
    {
        static void Main(string[] args)
        {
            int a;
            System.Console.WriteLine("Hello, C# World!");
            System.Console.WriteLine(a);
        }
    }
}

能量项链

2007年06月12日 | ghSky | 浏览: 1,087   

0 Comments

【问题描述】在Mars星球上,每个Mars人都随身佩带着一串能量项链。在项链上有N颗能量珠。能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数。并且,对于相邻的两颗珠子,前一颗珠子的尾标记一定等于后一颗珠子的头标记。因为只有这样,通过吸盘(吸盘是Mars人吸收能量的一种器官)的作用,这两颗珠子才能聚合成一颗珠子,同时释放出可以被吸盘吸收的能量。如果前一颗能量珠的头标记为m,尾标记为r,后一颗能量珠的头标记为r,尾标记为n,则聚合后释放的能量为(Mars单位),新产生的珠子的头标记为m,尾标记为n。

需要时,Mars人就用吸盘夹住相邻的两颗珠子,通过聚合得到能量,直到项链上只剩下一颗珠子为止。显然,不同的聚合顺序得到的总能量是不同的,请你设计一个聚合顺序,使一串项链释放出的总能量最大。

例如:设N=4,4颗珠子的头标记与尾标记依次为(2,3) (3,5) (5,10) (10,2)。我们用记号⊕表示两颗珠子的聚合操作,(j⊕k)表示第j,k两颗珠子聚合后所释放的能量。则第4、1两颗珠子聚合后释放的能量为:

(4⊕1)=10*2*3=60。

这一串项链可以得到最优值的一个聚合顺序所释放的总能量为

((4⊕1)⊕2)⊕3)=10*2*3+10*3*5+10*5*10=710。

【输入文件】输入文件energy.in的第一行是一个正整数N(4≤N≤100),表示项链上珠子的个数。第二行是N个用空格隔开的正整数,所有的数均不超过1000。第i个数为第i颗珠子的头标记(1≤i≤N),当i时,第i颗珠子的尾标记应该等于第i+1颗珠子的头标记。第N颗珠子的尾标记应该等于第1颗珠子的头标记。

至于珠子的顺序,你可以这样确定:将项链放到桌面上,不要出现交叉,随意指定第一颗珠子,然后按顺时针方向确定其他珠子的顺序。

【输出文件】输出文件energy.out只有一行,是一个正整数E(E≤2.1*109),为一个最优聚合顺序所释放的总能量。

【输入样例】

4

2 3 5 10

【输出样例】

710
阅读全文…

砝码称重

2007年06月10日 | ghSky | 浏览: 834   

0 Comments

设有1g,2g,3g,5g,10g,20g的砝码各若干枚(其总重≤1000g),要求:

输入:
a1 a2 a3 a4 a5 a6(表示1g砝码有a1个,2g砝码有a2个,......20g砝码有a6个)

输出:
Total=N (N表示用这些砝码能称出的不同重量的个数,但不包括一个砝码也不用的情况)

输入样例:1 1 0 0 0 0

输出样例:Total=3,表示可以称出1g,2g,3g三种不同的重量
阅读全文…

世界编程大赛第一名写的程序

2007年06月07日 | ghSky | 浏览: 1,248   

2 Comments

把下面的代码复制下来存为文本文档,命名为1
在DOS下用debug<1.txt
生成一个可执行程序。
进去是一个3D游戏的旋转界面,还有一段美妙的音乐,真是牛!!!

下面的视频就是我在虚拟机上运行的结果,不过由于DOS下的声卡驱动无法识别,故声音是没有了,画面还行,的确很牛,大家看看吧!
Download link 
全尺寸AVI视频下载地址:http://blog.ghsky.cn/download/program.wmv (16.5MB)
阅读全文…

Page 2 Of 212