6мес



Программирование
+4Основы программирования на C#, 1 курс
Составить программу, предусматривающую обработку значений одномерного массива. Ввод/вывод осуществлять с использованием компонентов классов TextBox.
Даны вещественный массив А размером n и вещественный массив X размером m. Найти минимум и максимум функции Y=ai xj для различных пар элементов массивов (i = 1..n; j = 1..m).
Желательно побольше пояснений и поменьше замудрений в коде. Хотелось бы не тупо копи пасту делать , а еще понять что я делаю.
По дате
По рейтингу
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
private List<float> a_array = new(); // Массив А
private List<float> b_array = new(); // Массив B
private bool isSign = false;
public Form1()
{
InitializeComponent();
textBox1.Text = "Введите элементы массива А через пробел, затем поставьте ; и через пробел введите элементы массива В.";
}
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter) // если клавиша Enter нажата
{
if (textBox1.Text.Length > 0) // если пользователь ввел хоть какой-то символ
{
string buff = ""; // строка для записи числа перед тем как его "отправить" в массив
// читаем все сиволы строки в TextBox
for (int i = 0; i < textBox1.Text.Length; i++)
{
if (textBox1.Text[i] == ';')
{
isSign = true; // мы закончали вводить элементы в массив А
a_array.Add(float.Parse(buff)); // у нас в буффере явно будет "валяться" число, которое
// стоит перед точкой запятой, а оно принадлежит массиву А
buff = ""; // очищаем буффер
continue; // и начинаем новую итерацию цикла
}
buff += textBox1.Text[i] != ' ' ? textBox1.Text[i] : ""; // считываем символ
if (textBox1.Text[i] == ' ' && !isSign) // если точка с запятой еще не считана
{
a_array.Add(float.Parse(buff)); // добавляем число в буффере в массив
buff = ""; // а затем очищаем сам буффер
}
else if (textBox1.Text[i] == ' ' && isSign) // если же мы считали точку запятую, которая говорит, что пора вводить элементы для массива B
{
b_array.Add(float.Parse(buff)); // добавляем число в буффере в массив B
buff = ""; // очищаем сам буфер
}
}
b_array.Add(float.Parse(buff)); // в конце цикла буфер все еще будет заполнен каким-то числом
// так как это число находится за точкой запятой, то оно принадлежит массиву B, так что добавляем это число в массив B
}
// если в обоих массивах находятся какие-то числа, то применяем формулу Y = ai * bj
if (a_array.Count > 0 && b_array.Count > 0)
{
// минимальное значение функции Y будет тогда и только тогда, когда сами множители
// ai и bj минимальны, та же логика и для максимального значения.
textBox1.Text = $"minY и maxY соответственно равны: " +
$"{a_array.Min(i => i) * b_array.Min(j => j)} ; " +
$"{a_array.Max(i => i) * b_array.Max(j => j)}" ;
// Вы могли бы пройтись циклом по массивам а и b и найти минимальные и максимальные значения,
// но это слишком громоздко, поэтому я здесь чутка применил LINQ.
}
else { textBox1.Text = "Ошибка!"; } // если же в каком-то массиве нет элементов выводим ошибку
}
}
Это же элементарно. Но за бабки.
Братан если ты собрался стать программистом но просишь решения с первого курса, ты станешь максимум сисадмином
За бесплатно зам делай за 400р подумаю
За бесплатно никто это делать не будет
Больше по теме