Top.Mail.Ru
Ответы
Аватар пользователя
6мес
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+4

Задачa по программированию

Никак не могу понять как взять числа из текстбоксов в массивы , а потом проводить умножение массивов , умножение то понятно , но не понятно как массив сделать из строкового в дабл , чтоб потом перемножить... Понимаю что говногод , да еще и написан бездарем и даже не рабочий.
И желательно чтоб без наворотов , хотелось бы понимать что происходит в коде ,а не копипастить.

Коротко по данным

A и X - массивы , n и m - количество чисел в массиве(ну или размер массива как написано в задании)

minF и maxF - минимальное и максимальное значение функцииY = Ai * Xj

А это мое чудо :\

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows .Forms;

namespace WindowsFormsApp4._1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
string[] A = textBox1.Text.Split(new char[] { ' ', ',' }, StringSplitOptions.RemoveEmptyEntries);
double n = Convert.ToDouble(textBox1.Lines.Length);


string[] X = textBox2.Text.Split(new char[] { ' ', ',' }, StringSplitOptions.RemoveEmptyEntries);
double m = Convert.ToDouble(textBox2.Lines.Length);

//double minF = A[0] * X[0];
//double maxF = A[0] * X[0];
}
}
}

По дате
По рейтингу
Аватар пользователя
Новичок
6мес
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
 using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 
 
namespace WindowsFormsApp4._1 
{ 
    public partial class Form1 : Form 
    { 
        public Form1() 
        { 
            InitializeComponent(); 
        } 
 
        private void button1_Click(object sender, EventArgs e) 
        { 
            // Получаем строки из текстовых полей и разбиваем их на массивы строк 
            string[] AStrings = textBox1.Text.Split(new char[] { ' ', ',' }, StringSplitOptions.RemoveEmptyEntries); 
            string[] XStrings = textBox2.Text.Split(new char[] { ' ', ',' }, StringSplitOptions.RemoveEmptyEntries); 
 
            // Преобразуем массивы строк в массивы double 
            double[] A = Array.ConvertAll(Astrings, double.Parse); 
            double[] X = Array.ConvertAll(Xstrings, double.Parse); 
 
            // Получаем количество элементов в массивах 
            int n = A.Length; 
            int m = X.Length; 
 
            // Инициализируем минимальное и максимальное значение функции 
            double minF = double.MaxValue; 
            double maxF = double.MinValue; 
 
            // Выполняем умножение элементов массивов и находим минимальное и максимальное значение 
            for (int i = 0; i < n; i++) 
            { 
                for (int j = 0; j < m; j++) 
                { 
                    double Y = A[i] * X[j]; 
                    if (Y < minF) minF = Y; 
                    if (Y > maxF) maxF = Y; 
                } 
            } 
 
            // Выводим результаты 
            MessageBox.Show($"Минимальное значение функции: {minF}"); 
            MessageBox.Show($"Максимальное значение функции: {maxF}"); 
        } 
    } 
} 
 
Аватар пользователя
Мудрец
6мес
1234567891011121314151617181920212223242526272829303132333435363738394041424344
 private void button1_Click(object sender, EventArgs e)  
{ 
    try 
    { 
        var A = textBox1.Text.Split(new[] { ' ', ',' }, StringSplitOptions.RemoveEmptyEntries) 
                          .Select(double.Parse) 
                          .ToArray(); 
                           
        var X = textBox2.Text.Split(new[] { ' ', ',' }, StringSplitOptions.RemoveEmptyEntries) 
                          .Select(double.Parse) 
                          .ToArray(); 
 
        if (!A.Any() || !X.Any()) 
        { 
            MessageBox.Show("Массивы не могут быть пустыми"); 
            return; 
        } 
 
        double minF = A[0] * X[0]; 
        double maxF = minF; 
 
        foreach (var a in A) 
        { 
            foreach (var x in X) 
            { 
                var product = a * x; 
                minF = Math.Min(minF, product); 
                maxF = Math.Max(maxF, product); 
            } 
        } 
 
        label1.Text = $"Минимальное значение: {minF}"; 
        label2.Text = $"Максимальное значение: {maxF}"; 
    } 
    catch (FormatException) 
    { 
        MessageBox.Show("Ошибка: Введите корректные числовые значения"); 
    } 
    catch (Exception ex) 
    { 
        MessageBox.Show($"Произошла ошибка: {ex.Message}"); 
    } 
}