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