Блок-схема: Из файла удалить слова-палиндромы - 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;
}
}