С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 25.05.2017
Сообщений: 4
1

Не могу реализовать алгоритм с FileStream

27.05.2017, 18:52. Показов 584. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Не могу реализовать алгоритм с помощью чтения из файла (FileStream). Помогите пожалуйста.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
using System;
using System.Collections.Generic;
using System.Linq;
using System.IO;
using System.Text;
using System.Threading.Tasks;
 
namespace К
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] Slova= { "привет","пока","ок","вет" };//Слова которые нужно найти в строке   
            string Stroka = "приветпока";//Строка
 
            List<int> Sostoyaniya = FindAllSostoyaniya(Stroka, Slova);
 
            int count = 3;
            foreach (var item in Sostoyaniya)
            {
                Console.WriteLine(" Слово " + Slova[count] + " начинается с " + item + " позиции. ");
                count--;
            }
            Console.ReadLine();
 
        }
        private const int Stroka = 20;
        private const int Alphavit = 32;
 
        private static int[] Out = new int[Stroka];
        private static int[] FF = new int[Stroka];
        private static int[,] GF = new int[Stroka, Alphavit];
 
        private static int Algoritm(string[] Words, char NizkiyChar = 'а', char NaibolshiyChar = 'я')
        {
            Out = Enumerable.Repeat(0, Out.Length).ToArray();
            FF = Enumerable.Repeat(-1, FF.Length).ToArray();
 
            for (int i = 0; i < Stroka; ++i)
            {
                for (int j = 0; j < Alphavit; ++j)
                {
                }
            }
 
            int Sostoyaniya = 1;
 
            for (int i = 0; i < Words.Length; ++i)
            {
                string KeyWord = Words[i];
                int StartSostoyanie = 0;
 
                for (int j = 0; j < KeyWord.Length; ++j)
                {
                    int c = KeyWord[j] - NizkiyChar;
 
                    if (GF[StartSostoyanie, c] == -1)
                    {
                        GF[StartSostoyanie, c] = Sostoyaniya++;
                    }
 
                    StartSostoyanie = GF[StartSostoyanie, c];
                }
 
                Out[StartSostoyanie] |= (1 << i);
            }
 
            for (int c = 0; c < Alphavit; c++)
            {
                if (GF[0, c] == -1)
                {
                    GF[0, c] = 0;
                }
            }
 
            List<int> q = new List<int>();
            for (int c = 0; c <= NaibolshiyChar - NizkiyChar; ++c)
            {
                if (GF[0, c] != -1 && GF[0, c] != 0)
                {
                    FF[GF[0, c]] = 0;
                    q.Add(GF[0, c]);
                }
            }
 
            while (Convert.ToBoolean(q.Count))
            {
                int Sostoyanie = q[0];
                q.RemoveAt(0);
 
                for (int c = 0; c <= NaibolshiyChar - NizkiyChar; ++c)
                {
                    if (GF[Sostoyanie, c] != -1)
                    {
                        int Otkaz = FF[Sostoyanie];
 
                        while (GF[Otkaz, c] == -1)
                        {
                            Otkaz = FF[Otkaz];
                        }
 
                        Otkaz = GF[Otkaz, c];
                        FF[GF[Sostoyanie, c]] = Otkaz;
                        Out[GF[Sostoyanie, c]] |= Out[Otkaz];
                        q.Add(GF[Sostoyanie, c]);
                    }
                }
            }
 
            return Sostoyaniya;
        }
 
        private static int FindNextSostoyaniya(int StartSostoyanie, char NextVvod, char NizkiyChar = 'а')
        {
            int Otvet = StartSostoyanie;
            int c = NextVvod - NizkiyChar;
 
            while (GF[Otvet, c] == -1)
            {
 
                Otvet = FF[Otvet];
            }
 
            return GF[Otvet, c];
        }
 
        public static List<int> FindAllSostoyaniya(string Text, string[] KeyWord, char NizkiyChar = 'а', char NaibolshiyChar = 'я')
        {
            Algoritm(KeyWord, NizkiyChar, NaibolshiyChar);
 
            int StartSostoyanie = 0;
            List<int> Value = new List<int>();
 
            for (int i = 0; i < Text.Length; ++i)
            {
                StartSostoyanie = FindNextSostoyaniya(StartSostoyanie, Text[i], NizkiyChar);
 
                if (Out[StartSostoyanie] == 0)
                    continue;
 
                for (int j = 0; j < KeyWord.Length;j++)
                {
                    if (Convert.ToBoolean(Out[StartSostoyanie] & (1 << j)))
                    {
                        Value.Insert(0, i - KeyWord[j].Length + 1);
                    }
                }
            }
            return Value;
        }
    }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.05.2017, 18:52
Ответы с готовыми решениями:

FileStream.Close(), FileStream.Dispose() - что использовать?
Здравствуйте! Использую в программе объект типа FileStream. Когда он становится ненужен, закрываю...

Не могу реализовать алгоритм линейного поиска
У меня некорректно работает алгоритм линейного поиска. При любом заданном значении возвращает...

Реализовать алгоритм(А*)
Программный интерфейс должен обеспечить возможности: - задать произвольное количество вершин...

Реализовать алгоритм
Вообщем-то задание такое. Реализовать алгоритм показанный на картинке:...

3
1151 / 743 / 483
Регистрация: 21.01.2014
Сообщений: 1,903
27.05.2017, 20:18 2
А что должен делать код и что он делает не так, мы должны выяснить у хрустального шара?

Добавлено через 26 секунд

Не по теме:

Цитата Сообщение от Lewka Посмотреть сообщение
FindAllSostoyaniya
Свят, свят, свят...

1
1454 / 846 / 150
Регистрация: 06.06.2012
Сообщений: 2,370
27.05.2017, 20:41 3
Lexeq,

Не по теме:

а это тебе как?

C#
1
char NizkiyChar = 'а'

0
SkyBy
27.05.2017, 20:45     Не могу реализовать алгоритм с FileStream
  #4

Не по теме:


Как и это, например:

C#
1
NaibolshiyChar - NizkiyChar
EngРус вариантов именования переменных я не видел давненько.

0
27.05.2017, 20:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.05.2017, 20:45
Помогаю со студенческими работами здесь

Реализовать алгоритм I-P
Доброго времени суток, нужна помощь с заданием: 1. Реализовать алгоритм I-P на языке...

Не получается реализовать алгоритм
Попалась задача на реализацию алгоритма, уже несколько дней бьюсь головой об стену, потому что...

Реализовать волновой алгоритм
Pojalusta pomogite mne pisac program volnovoy algoritm na VB6 Пожалуйста помогите реализовать...

Реализовать итерационный алгоритм
Реализовать итерационный алгоритм вычисления суммы сходящегося ряда функции...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Администрирован­­­ие Git, продвинутые техники работы с Git
InfoMaster 11.01.2025
Основы управления репозиторием Эффективное управление Git-репозиторием требует глубокого понимания механизмов контроля доступа и инструментов администрирования. Рассмотрим ключевые аспекты. . .
Что такое HCL Notes и как с ним работать
InfoMaster 10.01.2025
HCL Notes (ранее известный как IBM Notes и Lotus Notes) представляет собой комплексную платформу для совместной работы и обмена информацией в корпоративной среде. Это многофункциональное решение,. . .
Как работать с Git из Windows и Visual Studio
InfoMaster 10.01.2025
Работа с Git в Windows Работа с Git в операционной системе Windows может быть осуществлена с помощью различных инструментов, каждый из которых обладает своими уникальными возможностями и. . .
Аналог оператора switch case в Python
InfoMaster 10.01.2025
Оператор switch case используется в программировании для выбора одного из нескольких вариантов исполнения кода. Однако в языке Python этот оператор отсутствует. Понимание аналогов switch case в. . .
Отличия абстрактного класса от интерфейса
InfoMaster 10.01.2025
В современной разработке программного обеспечения существуют два основных механизма реализации абстракции: абстрактные классы и интерфейсы. Эти инструменты, хотя и схожи в своей основной цели -. . .
Как работать в Git
InfoMaster 10.01.2025
Git — это одна из наиболее популярных систем контроля версий, которая активно используется разработчиками по всему миру. Она позволяет эффективно управлять изменениями в коде, координировать работу. . .
Реализация передвижения персонажа в Unity3d на C#
InfoMaster 10.01.2025
Реализация передвижения персонажа в Unity3D начинается с правильной настройки проекта. Этот этап критически важен для создания отзывчивого и плавного управления. Рассмотрим основные шаги для создания. . .
Docker: руководство для начинающих
InfoMaster 10.01.2025
В современном мире разработки программного обеспечения контейнеризация стала неотъемлемой частью процесса создания и развертывания приложений. Docker, как ведущая платформа контейнеризации, произвела. . .
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
Что такое NullReferenceEx­­­ception и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru