alarm
Задайте вопрос
Информатика
Henriksen

посчитайте оптимизировать код на с# Техническое задание к программе:• Программа сообщает пользователю, что ему необходимо вводить числа по одному, завершая ввод клавишей Enter. • После каждого введённого числа программа должна напечатать через пробел все введённые к настоящему моменту числа, а также сообщить минимальное, максимальное из них, среднее значение и среднеквадратичное отклонение (СКО). В программе должны быть созданы неКак узнать сколько методов, например:• Для печати на экран сообщения о необходимости ввода очередного числа и для считывания этого числа. • Для добавления очередного числа в массив. • Для расчёта статистических величин. код:using System;using System. Collections. Generic;using System. Linq;using System. Text;using System. Threading. Tasks;namespace IvanovLabRab{class Program{static void Main(string[] args){Console. Write("Введите количество элементов вашего массива: ");int count = int. Parse(Console. ReadLine());double[] massive = new double[count];Console. WriteLine("Вы должны ввести числа по одному через Enter");for (int i = 0; i < massive. Length; i++){Console. WriteLine(" Введите " + (i + 1) + "-е число");double. TryParse(Console. ReadLine(), out massive[i]);Console. WriteLine(" Ваши числа массива: ");for (int n = 0; n < massive. Length; n++){if (n <= i){Console. Write(massive[n] + " ");}}Console. WriteLine();Console. WriteLine("Минимум: " + Minimum(i, massive));Console. WriteLine();Console. WriteLine("Максимум: " + Maximum(i, massive));Console. WriteLine();Console. WriteLine("Среднее значение: " + SredneeZnachenie(i, massive));Console. WriteLine();Console. WriteLine("СКО : " + SredneKvadratichZnach(i, massive));}Console. ReadLine();}static double Minimum(int i, double[] massive){double min = massive[0];for (int k = 0; k <= i; k++)if (min > massive[k]){min = massive[k];}{return min;}}static double Maximum(int i, double[] massive){double max = massive[0];for (int k = 0; k <= i; k++)if (max < massive[k]){max = massive[k];}{return max;}}static double SredneeZnachenie(int i, double[] massive){double sz = 0;double sum = 0;{for (int k = 0; k <= i; k++)sum = sum + massive[k];}sz = sum / (i + 1);return sz;}static double SredneKvadratichZnach(int i, double[] massive){double sko = 0;double kvadr = 0;double podkor = 0;for (int k = 0; k <= i; k++){kvadr += (massive[k] - SredneeZnachenie(i, massive)) * (massive[k] - SredneeZnachenie(i, massive));}podkor = kvadr / i;sko = Math. Sqrt(podkor);return sko;}}}

ответы: 1
Зарегистрируйтесь, чтобы добавить ответ
Ответ:

Наверное, для глобальной оптимизации лучше вообще отказаться от массива как такового. В шарпе есть прекрасная альтернатива - List с уже встроенными функциями поиска минимального, максимального и среднего. Для нахождения СКО правда нужно применить дополнительные телодвижения.

И в условии задачи не сказано, что количество элементов заренее известно или задаётся вначале, поэтому заменил цикл на бесконечный с условием выхода, если будет введено нечто, что не распознается как число.

using System;

using System. Collections. Generic;

using System. Linq;

namespace IvanovLabRab

{

class Program

{

static void Main(string[] args)

{

List<double> massive = new List<double>();

Console. WriteLine("Вы должны ввести числа по одному через EnternДля выхода введите любое не числовое значение");

int i = 0;

do

{

i++;

Console. WriteLine(" Введите " + i. ToString() + "-е число");

try

{

massive. Add(double. Parse(Console. ReadLine()));

}

catch

{

break;

}

PrintMassiv(massive);

Console. WriteLine();

Console. WriteLine("Минимум: " + Minimum(massive));

Console. WriteLine();

Console. WriteLine("Максимум: " + Maximum(massive));

Console. WriteLine();

Console. WriteLine("Среднее значение: " + SredneeZnachenie(massive));

Console. WriteLine();

Console. WriteLine("СКО : " + SredneKvadratichZnach(massive));

} while (true);

Console. WriteLine("Цикл ввода окончен");

Console. ReadLine();

}

static void PrintMassiv(List<double> InArray)

{

Console. WriteLine(" Ваши числа массива: ");

foreach(double Number in InArray) Console. Write(Number. ToString() + " " );

Console. WriteLine();

}

static double Minimum(List<double> InArray)

{

return InArray. Min();

}

static double Maximum(List<double> InArray)

{

return InArray. Max();

}

static double SredneeZnachenie(List<double> InArray)

{

return InArray. Average();

}

static double SredneKvadratichZnach(List<double> InArray)

{

double average = SredneeZnachenie(InArray);

double sumOfSquaresOfDifferences = InArray. Select(val => (val - average) * (val - average)). Sum();

return Math. Sqrt(sumOfSquaresOfDifferences / InArray. Count);

}

}

}

85
Mojas
Чтобы ответить необходимо зарегистрироваться.

Другие вопросы: - Информатика

які нові дані можуть бути отрима

Сделать код в пайтоне​

Измерение информации. Урок 1Сооб

Как узнать сколько символов соде

Какой подход к измерению информа

информатика 7класс посчитайте

Контакты
Реклама на сайте