Регистрация не е нужна, освен при създаване на тема в "Задача на седмицата".

Масив C#

Масив C#

Мнениеот Гост » 24 Ное 2021, 20:31

Трябва ми малка помощ за тази задача.Предварително благодаря!

Напишете конзолно приложение, което създава два едномерни масива с по n-елемента и им присвоява случайни числа в интервала [2;200]. Приложението да определя в кой от двата масива сумата на четните елементи е по-голяма и дали минималните им елементи са равни. Използвайте методи за:
Присвояване на случайни числа на елементите на едномерен масив (генериране на масив)
Извеждане на масив върху един ред
Намиране сумата на нечетните елементи в едномерен масив
Намиране на най-малката стойност в едномерен масив
Гост
 

Re: Масив C#

Мнениеот ammornil » 26 Ное 2021, 02:00

Няколко уточнения:
Не разбирам сумите на четните или на нечетните масиви се иска да се сравнят... Приложеният пример е за четните бройни индекси.

С# има система на индексиране, която започва с 0. Това означава, че прогрманите индекси започват с четно число, а бройните- с нечетно. Приложената програма намира сумите на четните бройни елементи- втори, четвърти и т.н., които имат нечетни прогрмани индекси (1, 3, 5, и т.н.)


Код: Избери целия код
using System;

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            //създава начална дължина на масивите
            int mLength;
            //поканва потребителя да въведе предпочитан брой елемети на масивите (равен за двата масива)
            Console.WriteLine("Arrays with random numbers........");
            Console.Write("Please enter preferred number of items per array (whole number between 8 and 20):");
            //задава потребителска дължина на масива
            mLength = int.Parse(Console.ReadLine());
            //проверява дали зададената дължина е в рамките на допъстимия брой елементи
            if (mLength < 8 || mLength > 20)
            {
                Console.WriteLine("Your entry does not apply requirements as it is {0}.", mLength<8 ? "<8" : ">20");
            }
            //създава масиви с указаната дължиня
            int[] m1 = new int[mLength];
            int[] m2 = new int[mLength];
            //едновременно инициализира елеметите на двата масива със случйни числа от 1 до 200
            Random randNum = new Random();
            for (int i = 0; i < mLength; i++)
            {
                m1[i] = randNum.Next(201);
                m2[i] = randNum.Next(201);
            }
            //извежда масивите на екран
            for (int i = 0; i < m1.Length; i++)
            {
                Console.Write(String.Format("A[{0}]={1}\t", i+1, m1[i]));
            }
            Console.WriteLine("\n");
            for (int i = 0; i < m2.Length; i++)
            {
                Console.Write(String.Format("B[{0}]={1}\t", i + 1, m2[i]));
            }
            //Намира сумите на четните елементи в двата масива, както и най-малкия елемент на всеки масив
            //суми на четните елементи
            int mS1 = 0;
            int mS2 = 0;
            //най-малки стойности на масивите
            int m1Lowest = 201;
            int m2Lowest = 201;
            for (int i = 0; i < mLength; i++)
            {
                if (i % 2 == 1)
                {
                    mS1 = mS1 + m1[i];
                    mS2 = mS2 + m2[i];
                }

                if (m1[i] < m1Lowest)
                {
                    m1Lowest = m1[i];
                }
                if (m2[i] < m2Lowest)
                {
                    m2Lowest = m2[i];
                }
            }
            //проверява коя сума е по голяма
            Console.WriteLine("\n\n{0}\t S={1}",
                (mS1 > mS2) ? "Array A has larger sum of the even numbered elements." : "Array B has larger sum of the even numbered elements.",
                (mS1 > mS2) ? mS1 : mS2);
            //проверява дали най-малките стойности на елементи са равни
            Console.WriteLine("\n\n{0}", m1Lowest==m2Lowest ? String.Format("Both arrays have equal smallest values of {0}.",m1Lowest)
                : String.Format("The smallest values of the two arrays are not equal. A {0}/ B {1}",m1Lowest,m2Lowest));

            Console.ReadLine();
        }

    }
}

[tex][/tex]
Прикачени файлове
Program.zip
(1.28 KiB) 66 пъти
[tex]\color{lightseagreen}\text{''Който никога не е правил грешка, никога не е опитвал нещо ново.''} \\
\hspace{21em}\text{(Алберт Айнщайн)}[/tex]
Аватар
ammornil
Математик
 
Мнения: 3719
Регистриран на: 25 Май 2010, 19:28
Местоположение: Великобритания
Рейтинг: 1751

Re: Масив C#

Мнениеот ammornil » 25 Яну 2022, 23:18

Предлагам Ви и една малко по-разширена форма на програмата.

Код: Избери целия код
using System;

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            //създава начална дължина на масивите
            int mLength=1;
            while (mLength > 0)
            {
                //поканва потребителя да въведе предпочитан брой елемети на масивите (равен за двата масива)
                Console.WriteLine("Arrays with random numbers........");
                Console.Write("Please enter preferred number of items per array (whole number between 8 and 20, or 0 to exit programme):");
                //задава потребителска дължина на масива
                try
                {
                    mLength = int.Parse(Console.ReadLine());
                }
                catch (Exception e)
                {
                    continue;
                }

                if (mLength < 1)
                {
                    continue;
                }
                //проверява дали зададената дължина е в рамките на допъстимия брой елементи
                if (mLength < 8 || mLength > 20)
                {
                    Console.WriteLine("Your entry does not apply requirements as it is {0}.", mLength < 8 ? "<8" : ">20");
                    continue;
                }
                //създава масиви с указаната дължинa
                int[] m1 = new int[mLength];
                int[] m2 = new int[mLength];
                //едновременно инициализира елеметите на двата масива със случйни числа от 1 до 200
                Random randNum = new Random();
                for (int i = 0; i < mLength; i++)
                {
                    m1[i] = randNum.Next(201);
                    m2[i] = randNum.Next(201);
                }
                //извежда масивите на екран
                for (int i = 0; i < m1.Length; i++)
                {
                    Console.Write(String.Format("A[{0}]={1}\t", i + 1, m1[i]));
                }
                Console.WriteLine("\n");
                for (int i = 0; i < m2.Length; i++)
                {
                    Console.Write(String.Format("B[{0}]={1}\t", i + 1, m2[i]));
                }
                //Намира сумите на четните елементи в двата масива, както и най-малкия елемент на всеки масив
                //суми на четните елементи
                int mS1 = 0;
                int mS2 = 0;
                //най-малки стойности на масивите
                int m1Lowest = 201;
                int m2Lowest = 201;
                for (int i = 0; i < mLength; i++)
                {
                    if (i % 2 == 1)
                    {
                        mS1 = mS1 + m1[i];
                        mS2 = mS2 + m2[i];
                    }

                    if (m1[i] < m1Lowest)
                    {
                        m1Lowest = m1[i];
                    }
                    if (m2[i] < m2Lowest)
                    {
                        m2Lowest = m2[i];
                    }
                }
                //проверява коя сума е по голяма
                Console.WriteLine("\n\n{0}\t S={1}",
                    (mS1 > mS2) ? "Array A has larger sum of the even numbered elements." : "Array B has larfer sum of the even numbered elements.",
                    (mS1 > mS2) ? mS1 : mS2);
                //проверява дали най-малките стойности на елементи са равни
                Console.WriteLine("\n\n{0}", m1Lowest == m2Lowest ? String.Format("Both arrays have equal smallest values of {0}.", m1Lowest)
                    : String.Format("The smallest values of the two arrays are not equal. A {0}/ B {1}", m1Lowest, m2Lowest));

                Console.ReadLine();
            }

           
        }

    }
}



Последно избутване Anonymous от 25 Яну 2022, 23:18
[tex]\color{lightseagreen}\text{''Който никога не е правил грешка, никога не е опитвал нещо ново.''} \\
\hspace{21em}\text{(Алберт Айнщайн)}[/tex]
Аватар
ammornil
Математик
 
Мнения: 3719
Регистриран на: 25 Май 2010, 19:28
Местоположение: Великобритания
Рейтинг: 1751


Назад към C#, Java



Кой е на линия

Регистрирани потребители: Google [Bot]

Форум за математика(архив)