Risipa de key_press | Programare

Programare .Net | Tehnici de programare | Tutoriale | Lectii si exemple

Risipa de key_press | Programare - Programare .Net | Tehnici de programare | Tutoriale | Lectii si exemple

Inversarea ordinii elementelor intr-un vector

Sa se inverseze ordinea elementelor unui vector.

Analiza Programului
Pentru a inversa ordinea elementelor intr-un vector, trebuie ca primul element sa fie interschimbat cu ultimul, al doilea cu penultimul, etc. Trebuie sa parcurgem vectorul pana la jumatate si sa interschimbam elementele simetrice fata de mijloc.

using System;

/*
 Inversarea ordinii elementelor unui vector
 */

namespace ReverseElements
{
    class Program
    {
        static void Main(string[] args)
        {

            int[] myIntArray = new int[] {1,2,3};

            ReverseElements(myIntArray);

            for (int i = 0; i < myIntArray.Length; i++)
            {
                Console.WriteLine(myIntArray[i]);
            }

            Console.Read();
        }

        static void ReverseElements(int[] myArray)
        {
            int left = 0;
            int right = myArray.Length - 1;
            int temp;

            while (left < right)
            {
                temp = myArray[left];
                myArray[left] = myArray[right];
                myArray[right] = temp;
                left++;
                right--;
            }
        }
    }
}

Pot construi metoda ReverseElements generic, astfel incat sa ii pot transmite ca parametru un vector de caractere, de exemplu.

using System;

/*
 Inversarea ordinii elementelor unui vector
 */

namespace ReverseElements
{
    class Program
    {
        static void Main(string[] args)
        {

            int[] myIntArray = new int[] {1,2,3};
            char[] myCharArray = new char[]{'a','b','c'};
            
            ReverseElements(myIntArray);
            ReverseElements(myCharArray);

            for (int i = 0; i < myIntArray.Length; i++)
            {
                Console.WriteLine(myIntArray[i]);
            }

            for (int i = 0; i <myCharArray.Length; i++)
            {
                Console.WriteLine(myCharArray[i]);
            }

            Console.Read();
        }

        //metoda scrisa generic
        static void ReverseElements<T>(T[] myArray)
        {
            int left = 0;
            int right = myArray.Length - 1;
            T temp;

            while (left < right)
            {
                temp = myArray[left];
                myArray[left] = myArray[right];
                myArray[right] = temp;
                left++;
                right--;
            }
        }
    }
}
Category: Uncategorized

Your email address will not be published. Required fields are marked *

*