Вопрос задан 16.06.2023 в 20:29. Предмет Информатика. Спрашивает Сміхура Оля.

Написать метод в WINFORMS, который находит сумму чисел в переданной строке. Числом считается

непрерывная последовательность цифр, отделенная от остального текста пробелами или расположенная в начале либо конце строки. Допустимо использовать метод Split класса String. С помощью этого метода обработать пять разных строк и отобразить результаты на экране
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Лимонов Дмитрий.

// Строку получал из TextBox, в методе для подсчета суммы убирал из нее всё лишнее, разбивал по пробелу, преобразовывал в последовательность чисел, считал их сумму.

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

// Результаты отображаются в ListBox.

// .cs файлы прикрепил как .txt файлы.

// ParseNumSequence -- метод, который находит сумму чисел в переданной строке.

using System;

using System.Collections.Generic;

using System.Data;

using System.Linq;

using System.Windows.Forms;

namespace WindowsFormsApp1

{

   public partial class Form1 : Form

   {

       private const int STORED_RESULTS = 5;

       private readonly List<Tuple<string, int>> _results = new List<Tuple<string, int>>();

       public Form1()

       {

           InitializeComponent();

       }

       private void GetSumBtn_Click(object sender, EventArgs e)

       {

           var result = ParseNumSequence(NumSequenceTextBox.Text);

           if (result == null)

           {

               MessageBox.Show("Incorrect sequence.");

               return;

           }

           _results.Add(result);

           if (_results.Count == STORED_RESULTS)

           {

               var formattedResults = _results

                   .Select(t => $"{t.Item1}: {t.Item2}")

                   .ToArray();

               ResultsListBox.Items.Clear();

               ResultsListBox.Items.AddRange(formattedResults);

           }

           else if (_results.Count == STORED_RESULTS + 1)

           {

               ResultsListBox.Items.Clear();

               _results.RemoveRange(0, _results.Count - 1);

           }

           NumSequenceTextBox.Clear();

           InfoLabel.Text = $"обработано {_results.Count} из {STORED_RESULTS} строк";

       }

       private Tuple<string, int> ParseNumSequence(string text)

       {

           var acceptedSymbols = text

               .Where(t => char.IsDigit(t) || t == ' ')

               .ToArray();

           string sequence = new string(acceptedSymbols).Trim();

           if (string.IsNullOrEmpty(sequence) || string.IsNullOrWhiteSpace(sequence))

               return null;

           int sum = sequence

               .Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries)

               .Select(t => int.Parse(t))

               .Sum();

           return new Tuple<string, int>(sequence, sum);

       }

   }

}





0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения данной задачи, можно написать следующий метод в WinForms:

```csharp private int FindSumOfNumbers(string input) { // Разделяем строку на массив подстрок, используя пробел как разделитель string[] words = input

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос