Вычислить сумму значений из всех строк, на которые указывает первый элемент строки - 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();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д