Member 13736730 Ответов: 1

Может ли кто - нибудь помочь мне с этой проблемой


using System;
using System.IO;

namespace ProfitCalculator
{
/// ==============================================================================

public class RangeFinder
{
/// <summary>
/// Performs calculations to find the start and end of the "best" data sequence
/// which has the greatest sum of data values over that sequence.
///
/// <param name="data">the data to be examined
/// <param name="bestStart">the start point found by the search
/// <param name="bestEnd">the end point found by the search
/// <param name="bestTotal">the sum of data values over that range
/// <param name="loops">the number of executions of the inner loop
public static void MaxSum1(double[] data, out int bestStart,
out int bestEnd, out double bestTotal, out int loops)
{
bestTotal = 0;
bestStart = 0;
bestEnd = 0;
loops = 0;
for
(int i = 0; i < data.Length; i++)
{
Console.WriteLine("Value {0}", data[i]);
}

}
public static void MaxSum2(double[] data, out int bestStart,
out int bestEnd, out double bestTotal, out int loops)
{
bestTotal = 0;
bestStart = 0;
bestEnd = 0;
loops = 0;
}
public static void MaxSum3(double[] data, out int bestStart,
out int bestEnd, out double bestTotal, out int loops)
{
bestTotal = 0;
bestStart = 0;
bestEnd = 0;
loops = 0;
}

/// ==============================================================================
/// <summary>
/// Tests the Profits Calculator
///
class Test
{
/// <summary>
/// The main entry point for the application.
///
static void Main()
{
double[] data;
int bestStart, bestEnd;
double bestTotal;
int loops;

/// name of the file and the number of readings
string filename = "week52.txt";
int items = 52;

data = new double[items]; /// create the data array

try
{
TextReader textIn = new StreamReader(filename);
for (int i = 0; i < items; i++) /// input and store the data values
{
string line = textIn.ReadLine();
data[i] = double.Parse(line);
}
textIn.Close();
}
catch
{
Console.WriteLine("File Read Failed");
return;
}

/// ---------------------------------------------------------------------
/// call the process method to find the best profit period
/// ---------------------------------------------------------------------

RangeFinder.MaxSum1(
data, out bestStart, out bestEnd, out bestTotal, out loops);

Console.WriteLine("Start : {0} End : {1} Total {2} Loops {3}",
bestStart, bestEnd, bestTotal, loops);

RangeFinder.MaxSum2(
data, out bestStart, out bestEnd, out bestTotal, out loops);

Console.WriteLine("Start : {0} End : {1} Total {2} Loops {3}",
bestStart, bestEnd, bestTotal, loops);

RangeFinder.MaxSum3(
data, out bestStart, out bestEnd, out bestTotal, out loops);

Console.WriteLine("Start : {0} End : {1} Total {2} Loops {3}",
bestStart, bestEnd, bestTotal, loops);



вопрос в том как расшифровать этот следующий псевдокод:


Для каждой возможной начальной позиции // каждый индекс массива в свою очередь
Для каждой возможной конечной позиции // остальная часть массива от текущего старта
{ Установить промежуточный итог равным 0 для каждого значения в subseq // между текущим началом и концом добавить значение прибыли к промежуточному итогу
Обновление информации о подсекторе, когда промежуточный итог превышает текущий лучший итог
}

Первоначально вы можете игнорировать переменную loops, показанную в качестве выходного параметра метода MaxSum, и просто сосредоточиться на создании программы, которая возвращает значения bestStart, bestEnd и bestTotal. Обратите внимание, что вы можете использовать свойство Length массива данных, чтобы определить его размер

я изо всех сил пытаюсь понять или расшифровать это может ли кто нибудь помочь

Что я уже пробовал:

{
bestTotal = 0;
bestStart = 0;
bestEnd = 0;
петель = 0;
для
(int i = 0; i < data.Длина; i++)
{
Приставка.WriteLine("Value {0}", data[i]);
}

}

Patrice T

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

Patrice T

Воспользуйся Улучшить вопрос чтобы обновить ваш вопрос.
Чтобы каждый мог обратить внимание на эту информацию.
Вам также необходимо выполнить это требование

1 Ответов

Рейтинг:
2

OriginalGriff

Прочитайте инструкцию, возьмите бумагу и карандаш и попробуйте сделать это вручную.
В сочетании с остальной частью вопроса - которой у нас нет - это должно иметь некоторый смысл.

Мы не можем понять из этого фрагмента вашего домашнего задания, что именно ваш учитель просит вас сделать - похоже, он ищет "самый высокий доходный промежуточный итог", но мы понятия не имеем, каковы правила для этого.

Так что прочитайте весь вопрос и попробуйте сами - когда он у вас работает, его должно быть легко перевести в компьютерный код!