Rabu, 12 Maret 2014

Contoh Codingan Anagram C#

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

namespace anagram
{
    class Program
    {
        static int size;
        static int count;
        static char[] arrChar = new char[100];

        static void Main(string[] args)
        {
            // Mendapatkan kalimat dari pengguna.
            Console.Write("Masukkan kalimat : ");
            String input = Console.ReadLine();
            Console.Write("\n\n");
            // Mendapatkan ukuran kalimat.
            size = input.Length;
            count = 0;
            for (int j = 0; j < size; j++)
                // Menaruh kalimat di array.
                arrChar[j] = input[j];
            doAnagram(size); // Menyusun anagram.
            Console.ReadLine();
        }

        // Metoda yang melakukan anagramisasi.
        private static void doAnagram(int newSize)
        {
            // Jika ukuran terlalu kecil
            // (dasar rekursif).
            if (newSize == 1)
                return;
            // Untuk tiap posisi.
            for (int j = 0; j < newSize; j++)
            {
                // Sisa anagram.
                doAnagram(newSize - 1);
                // Jika selesai, tampilkan!
                if (newSize == 2)
                    displayWord();
                // Lakukan rotasi kalimat.
                rotate(newSize);
            }
        }

        // Melakukan rotasi.
        private static void rotate(int newSize)
        {
            int j;
            int position = size - newSize;
            // Simpan huruf pertama.
            char temp = arrChar[position];
            for (j = position + 1; j < size; j++)
                // Geser huruf yang lain ke kiri.
                arrChar[j - 1] = arrChar[j];
            // Meletakkan huruf pertama ke kanan.
            arrChar[j - 1] = temp;
        }

        // Menampilkan ke layar Console.
        private static void displayWord()
        {
            if (count < 99)
                Console.Write(" ");
            if (count < 9)
                Console.Write(" ");
            Console.Write(++count + " ");
            for (int j = 0; j < size; j++)
                Console.Write(arrChar[j]);
            Console.Write(" ");
            if (count % 6 == 0)
                Console.Write("");
        }
    }

}


Gambar : Output


Tidak ada komentar:

Posting Komentar