Advertisement
marcelsmudda

ContainsWordProgram

Jul 26th, 2014
169
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.38 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Linq;
  5. using System.Text;
  6.  
  7. namespace ContainsWord
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             var result = new List<bool?[]>();
  14.             var grammars = new List<Grammar>();
  15.             var words = new List<string[]>();
  16.             using (var reader = new StreamReader("in.txt"))
  17.             {
  18.                 while(!reader.EndOfStream)
  19.                 {
  20.                     var input = new string[5];
  21.                     for (var i = 0; i < 5; i++)
  22.                         if (i != 4)
  23.                             input[i] = reader.ReadLine();
  24.                         else
  25.                             words.Add(reader.ReadLine().Split(','));
  26.                    
  27.                     grammars.Add(new Grammar(input[0], input[1], input[2], input[3]));
  28.                 }
  29.             }
  30.  
  31.             for (var i = 0; i < grammars.Count; i++)
  32.             {
  33.                 var grammar = grammars[i];
  34.                 var ws = words[i];
  35.                 var bools = new bool?[ws.Length];
  36.                 for (var j = 0; j < ws.Length; j++)
  37.                 {
  38.                     var word = ws[j];
  39.                     var set = new List<string>();
  40.                     set.Add(grammar.StartSymbol);
  41.                     for (var k = 0; k < set.Count && bools[j] != true; k++)
  42.                     {
  43.                         var form = set[k];
  44.                         foreach (var rule in grammar.Rules)
  45.                         {
  46.                             rule.Use(form, set, word);
  47.                             if (set.Contains(word))
  48.                             {
  49.                                 bools[j] = true;
  50.                             }
  51.                         }
  52.                     }
  53.                     if (bools[j] != true)
  54.                     {
  55.                         bools[j] = false;
  56.                     }
  57.                 }
  58.                 result.Add(bools);
  59.             }
  60.             using (var writer = new StreamWriter("out.txt"))
  61.             {
  62.                 foreach (var bools in result)
  63.                 {
  64.                     foreach (var b in bools)
  65.                     {
  66.                         writer.Write(b.ToString() + ";");
  67.                     }
  68.                     writer.WriteLine();
  69.                 }
  70.             }
  71.         }
  72.     }
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement