Блок-схема: Из файла удалить слова-палиндромы - C#
Формулировка задачи:
Составить блок схему задачи по коду:
условие: Из файла удалить слова-полиндромы
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace ConsoleApplication17 { class Program { static void Main() { Console.WriteLine("введите имя входного файла: "); string inFileName = Console.ReadLine(); Console.WriteLine("введите имя выходного файла: "); string outFileName = Console.ReadLine(); FileWorker fileWorker = new FileWorker(); fileWorker.processFile(inFileName, outFileName); } } public class StringWorker { public string str; public bool needDelWord(string word) { //убираем чувствительность к регистру for (int i = 0; i < word.Length; i++) { if (word[i] != word[word.Length - 1 - i]) { return false; } } return true; } private bool isSeparator(char c) { string oneCharStr = "" + c; return " .,?!".Contains(oneCharStr); } public int getWordLength(int index) { int res = 0; for (int i = index; i < str.Length; i++) { if (isSeparator(str[i])) { break; } res = res + 1; } return res; } public void processString() { for (int i = 0; i < str.Length; i++) { if (isSeparator(str[i])) { continue; } int len = getWordLength(i); string word = str.Substring(i, len); if (needDelWord(word)) { str = str.Remove(i, len); } else { i = i + len; } } } } public class FileWorker { public void processFile(string inFileName, string outFileName) { try { string[] content = File.ReadAllLines(inFileName); string[] processLines = new string[content.Length]; for (int i = 0; i < content.Length; i++) { StringWorker worker = new StringWorker(); worker.str = content[i]; worker.processString(); processLines[i] = worker.str; } File.WriteAllLines(outFileName, processLines); } catch { Console.WriteLine("Возникла ошибка при обработке"); } } } }
Решение задачи: «Блок-схема: Из файла удалить слова-палиндромы»
textual
Листинг программы
public Form1() { InitializeComponent(); //Блок-схема //1-й блок: считываем слова из файла в массив строк ir - это у Вас есть //две строки ниже только для показа string ish = "кот сок сос топот"; string[] ir = ish.Split(new char[] { ' ', '.', ',' }); //2-й блок: прводим фильтрацию (Where) массива строк ir, //сравнивая слово с его перевертышем //3-й блок: результат фильрации заносим в массив строк string[] d = ir.Where(x => x != Flip(x)).ToArray(); //4-й блок: массив d записываем в файл - это у Вас есть } string Flip(string t)//переворачиваем слово { string r = ""; for (int i = t.Length - 1; i >= 0; i--) r += t[i]; return r; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д