Вычислить сумму значений из всех строк, на которые указывает первый элемент строки - C#

Узнай цену своей работы

Формулировка задачи:

Доброго всем времени, задали нам такую лабораторную: Файл in.csv (текст с разделителями «;») содержит строки с числами. Самый первый элемент строки имеет индекс 0. Его значение определят то, с каким элементом строки будет вестись работа. 1.Вычислить сумму значений из всех строк, на которые указывает первый элемент строки (с индексом 0). 2.Подсчитать и вывести кол-во строк с ошибками. Примеры входных данных Пример 1 in.csv: 3;qw;4;5,2;2,7 15;;;k;5 1;-3,14;fgh;5 0;;e1;2;3
-2,3;a;b;c b;d;e
Output: result(5,2 - 3,14 + 0,0) = 2,06 error-lines = 3 Замечания к задаче 1. В алгоритме запрограммировать ход работы программы в случае корректных данных, ошибочные ситуации (не число, выход за границы массива) обрабатывать через исключения. 2. Строки csv – файла разбивать на элементы методом Split( ). 3. Не использовать регулярные выражения. 4. Не выводить строку с результатом отдельными фрагментами. Согласно условию нужно сформировать ответ в виде строки. Обратите внимание на наличие пробелов в выходной строке. В частности, если первое число отрицательное, то после знака минус нет пробела. Далее каждый знак (плюс, минус, равно) окружен пробелами. 5. Обязательно проверить тест, в котором отсутствует входной файл. Начинаю разбираться и понимаю что все туго, из набросок только сделал чтение из файла, на остальном что дальше делать пока не понимаю, как мне проверить на начале считывания элементы под индексом [0], присвоить значению переменной число с этого индекса и вынять число со значением нужного нулевого индекса помогите чем можете. Как понимаю в примечании 4 потребуется построить строки?

Решение задачи: «Вычислить сумму значений из всех строк, на которые указывает первый элемент строки»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
 
namespace Stings1
{
    class Program
 
        {
       
        public static void Main(string[] args)
        {
            int error = 0;
            double value = 0;
            double result = 0;
            string plus = " + ";
            string minus = " - ";
            StringBuilder strResult = new StringBuilder("Result(");
            StringBuilder strError = new StringBuilder("Error-lines = ");
            int resultLenght = strResult.Length;
            StreamReader sr = File.OpenText(@"in.csv");
            List<string[]> allElements = new List<string[]>();
            while (true)
            {
                string str = sr.ReadLine();
                if (str == null)
                    break;
                string[] elements = str.Split(';');
                allElements.Add(elements);
                try
                {
                   int num = Int32.Parse(elements[0]);
                    value = Double.Parse(elements[num].Replace('.',','));
                    result += value;
                    strResult.Append(value < 0 ? minus : plus).Append(Math.Abs(value));
                }
                catch (FormatException e)
                {
                    error++;
                }
                catch(SystemException)
                {
                    error++;
                }
            }
           
            strResult.Append(") = " + result);
            Console.WriteLine(strResult);
            strError.Append(error);
            Console.WriteLine(strError);
            sr.Close();

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.273 из 5
Похожие ответы