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

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

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

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

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

textual
Листинг программы
  1. using System.IO;
  2.  
  3. interface IStateMachine
  4. {
  5.     void PutNext(char ch);
  6. }
  7.  
  8. class StateMachineA : IStateMachine
  9. {
  10.     private bool _isPreviousA = false;
  11.     private readonly StreamWriter _output;
  12.  
  13.     public StateMachineA(StreamWriter output)
  14.     {
  15.         _output = output;
  16.     }
  17.  
  18.     public void PutNext(char ch)
  19.     {
  20.         if (_isPreviousA)
  21.             _output.Write(ch);
  22.         _isPreviousA = ch == 'a';
  23.     }
  24. }
  25.  
  26. class StateMachineB : IStateMachine
  27. {
  28.     private char? _previous = null;
  29.     private readonly StreamWriter _output;
  30.  
  31.     public StateMachineB(StreamWriter output)
  32.     {
  33.         _output = output;
  34.     }
  35.  
  36.     public void PutNext(char ch)
  37.     {
  38.         if (ch == 'a' && _previous != null)
  39.             _output.Write(_previous);
  40.         _previous = ch;
  41.     }
  42. }
  43.  
  44. class Program
  45. {
  46.     static void Render(StreamReader input, IStateMachine stateMachine)
  47.     {
  48.         int ch;
  49.         while ((ch = input.Read()) != -1)
  50.         {
  51.             stateMachine.PutNext((char)ch);
  52.         }
  53.     }
  54.  
  55.     static void SolveProblemA(string inputFileName, string outputFileName)
  56.     {
  57.         using (var input = File.OpenText(inputFileName))
  58.         using (var output = File.CreateText(outputFileName))
  59.         {
  60.             Render(input, new StateMachineA(output));
  61.         }
  62.     }
  63.  
  64.     static void SolveProblemB(string inputFileName, string outputFileName)
  65.     {
  66.         using (var input = File.OpenText(inputFileName))
  67.         using (var output = File.CreateText(outputFileName))
  68.         {
  69.             Render(input, new StateMachineB(output));
  70.         }
  71.     }
  72.  
  73.     static void Main(string[] args)
  74.     {
  75.         SolveProblemA("f.txt", "gA.txt");
  76.         SolveProblemB("f.txt", "gB.txt");
  77.     }
  78. }

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


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

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

8   голосов , оценка 3.75 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы