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