Дан символный файл f. Записать в файл g с сохранением порядка следования те символы файла f - C#

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

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

C# Дан символный файл f.Записать в файл g с сохранением порядка следования те символы файла f. a)которым в этом файле предшествует буква а; б)вслед за которым в этом файле идет буква а. Заранее спасибо большое

Решение задачи: «Дан символный файл f. Записать в файл g с сохранением порядка следования те символы файла f»

textual
Листинг программы
using System.IO;
 
interface IStateMachine
{
    void PutNext(char ch);
}
 
class StateMachineA : IStateMachine
{
    private bool _isPreviousA = false;
    private readonly StreamWriter _output;
 
    public StateMachineA(StreamWriter output)
    {
        _output = output;
    }
 
    public void PutNext(char ch)
    {
        if (_isPreviousA)
            _output.Write(ch);
        _isPreviousA = ch == 'a';
    }
}
 
class StateMachineB : IStateMachine
{
    private char? _previous = null;
    private readonly StreamWriter _output;
 
    public StateMachineB(StreamWriter output)
    {
        _output = output;
    }
 
    public void PutNext(char ch)
    {
        if (ch == 'a' && _previous != null)
            _output.Write(_previous);
        _previous = ch;
    }
}
 
class Program
{
    static void Render(StreamReader input, IStateMachine stateMachine)
    {
        int ch;
        while ((ch = input.Read()) != -1)
        {
            stateMachine.PutNext((char)ch);
        }
    }
 
    static void SolveProblemA(string inputFileName, string outputFileName)
    {
        using (var input = File.OpenText(inputFileName))
        using (var output = File.CreateText(outputFileName))
        {
            Render(input, new StateMachineA(output));
        }
    }
 
    static void SolveProblemB(string inputFileName, string outputFileName)
    {
        using (var input = File.OpenText(inputFileName))
        using (var output = File.CreateText(outputFileName))
        {
            Render(input, new StateMachineB(output));
        }
    }
 
    static void Main(string[] args)
    {
        SolveProblemA("f.txt", "gA.txt");
        SolveProblemB("f.txt", "gB.txt");
    }
}

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


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

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

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