Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 07.04.2017
Сообщений: 2

Сравнение слова с образцом

09.06.2017, 21:20. Показов 886. Ответов 0
Метки js (Все метки)

Студворк — интернет-сервис помощи студентам
Очень нужна помощь. Вот сама задача:
Часть образца, заключенная в квадратные скобки показывает, что эту часть можно исключать. Таким образом, образец описывает множество строк. Образец всегда правильный.

Например:
образец: [a[b]]c
описывает строки: c, ac, abc

Слово подходит под образец, если оно совпадает с одним из слов, описываемых образцом.

Задача написать программу, которая по заданным образцу и слову печатает «НЕТ», если слово подходит под образец, и «ДА», если не подходит.

Пример

На входе:
образец: [a[b]]c
слово: ab
ответ: ДА

Проблема следующая. Задачу необходимо решить на С++, я никак не мог понять с чего все-таки начать. С трудом удалось решить задачу на JS, все работает как надо. Попробовал перевести код на C++ и возникли трудности. Код, можно сказать, совсем не работает, не знаю как исправить. Помогите, пожалуйста.
Код на JS:
JavaScript
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
function delsk(obr){
  var mas=new Array()
  for(var i=0;i<obr.length;i++)
    mas[i]=( (obr.substr(i,1)=="]" || obr.substr(i,1)=="[") ? "" : obr.substr(i,1) )
  return mas.join("")   
}
 
function delskoba(i,j,obr){  
  var str=""
  for(var k=0;k<obr.length;k++)
    if(k<i || k>j) str+=obr.substr(k,1)     
  return str
}
 
function secsk(i,obr){
  var ind=0
  for(var j=(i+1);j<obr.length;j++){
    if(obr.substr(j,1)=="]") if(ind==0) return j
    else ind--
    if(obr.substr(j,1)=="[") ind++ 
  }
}
 
function tester(wrd,obr,nach){
  var obr1=obr
  if(wrd==delsk(obr)){
    globalotv="Нет" 
    return 0
  }
  for(var i=nach;i<obr.length;i++)
    if(obr.substr(i,1)=="["){
      obr1=delskoba(i,secsk(i,obr),obr)
      if(wrd==delsk(obr1)){
    globalotv="Нет" 
    return 0
      }
      else tester(wrd,obr1,i)
    }
}
 
function main(wrd,obr){
  globalotv="Да"
  tester(wrd,obr,0)
  return globalotv
}
Код на C++:
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
#include <windows.h>
#include <string>
#include <iostream>
 
using namespace std;
 
string globalotv;
 
string delsk(string obr) {
    string mas[30];
    for (unsigned int i = 0; i < obr.length(); i++)
        mas[i] = ((obr.substr(i, 1) == "]" || obr.substr(i, 1) == "[") ? "" : obr.substr(i, 1));
    return mas[obr.length()];
}
 
string delskoba(unsigned int i, unsigned int j, string obr) {
    string str = "";
    for (unsigned int k = 0; k < obr.length(); k++)
        if (k<i || k>j) str += obr.substr(k, 1);
    return str;
}
 
int secsk(int i, string obr) {
    unsigned int ind = 0;
    for (unsigned int j = (i + 1); j<obr.length(); j++) {
        if (obr.substr(j, 1) == "]") if (ind == 0) return j;
        else ind--;
        if (obr.substr(j, 1) == "[") ind++;
    }
    return ind;
}
 
int tester(string wrd, string obr, int nach) {
    string obr1 = obr;
    if (obr == delsk(wrd)) {
        globalotv = "<<Нет>>";
        return 0;
    }
    for (unsigned int i = nach; i < obr.length(); i++) {
        if (obr.substr(i, 1) == "[") {
            obr1 = delskoba(i, secsk(i, obr), obr);
            if (obr1 == delsk(wrd)) {
                globalotv = "<<Нет>>";
                return 0;
            }
            else tester(wrd, obr1, i);
        }
    }
}
 
int main() {
    setlocale(LC_ALL, "rus");
    globalotv = "<<Да>>";
    string str, str1;
    cout << "Введите образец: ";
    cin >> str;
    cout << "Введите слово: ";
    cin >> str1;
    tester(str, str1, 0);
    cout << globalotv << endl;
    return 0;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.06.2017, 21:20
Ответы с готовыми решениями:

Сравнение введенного слова и слова в файле
Есть задача, где пользователь вводит слово, а программа находит такое-же слово в фале, проверяя поочередно все строки. Подразумевается, что...

Сравнение слова взятого из файла
добрый день, мне нужно взять из файла слово, ну или как еще можно назвать и проверить как бы совпадает оно с тем что мне нужно вот как я...

Сравнение первого и последнего слова в тексте
Всем привет! Задача: Написать функцию для определения одинаковы или нет второе и последнее слово в этой строке. Сделал вывод второго и...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.06.2017, 21:20
Помогаю со студенческими работами здесь

Сравнение слова файла со значением массива
Помогите исправить ошибки.Сама задача такова найти в текстовом файле слова begin end и заменить их на { и }. #include...

Оформить вывод в соответствии с образцом
код есть. #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;sstream&gt; #include &lt;Windows.h&gt; #include &lt;locale&gt; using namespace std; ...

Сравнение текста из файла и сравнение с текстом в программе char - Dev C++
Доброго времени суток! Имеется код программы: ifstream test(&quot;primer.txt&quot;); char awm = &quot;kod&quot;; char buff; test &gt;&gt; buff; if...

Сравнение слова с образцом
Очень нужна помощь. Могу написать скрипт, который просто сравнивает 2 слова, а с квадратными скобками проблема. Вот задание: ...

c+builder сравнение картинки с образцом...
уважаемые не могли бы помочь? у меня на форме есть image1, и две кнопки, при нажатии на button1 должно происходить сравнение опрделенной...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru