Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
 Аватар для Shoshona
30 / 30 / 37
Регистрация: 03.06.2014
Сообщений: 1,055

Игра "Города": организовать поиск последнего и первого символа и их сравнение

13.07.2015, 13:47. Показов 2364. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте форумчане! Пишу игру "Города", но столкнулся с проблемой. мне нужно в методе класса организовать поиск последнего и первого символа и их сравнение. Вот тут и беда. Получается мне нужно в конце хода менять местами номера едитов. Это вообще возможно?
C++
1
2
3
4
5
6
7
8
9
10
void string::find(int k, int l)
{   char a,b,c;
    a=Edit1->Text[Edit1->Text.Length()];  // последний
    b=Edit2->Text[1];                       // первый
    if(a!=b)
       {
           ShowMessage("Не тот город");
         // и вот тут нужно что-то делать, но я не знаю что :cry:
       }
}
Прошу вашей помощи как можно скорее, идо не могу из-за этого дальше продвигатся.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.07.2015, 13:47
Ответы с готовыми решениями:

Поиск первого и последнего вхождения символа
Прошу помощи в реализации поиска первого и последнего вхождения символа (пусть будет 'm'),в приведен ниже коде выскакивает ошибка:...

Поменять местами название первого города таблицы и последнего города, начинающегося с буквы К
Задан список из 10 городов.(массив string ). Поменять местами название первого города таблицы и последнего город,начинающегося с буквы К. ...

Поиск первого символа справа или последнего слева
Всем здрасти! Короткий вопрос, как найти первый символ в тексте, но справа. Или последний слева. Спасибо!

28
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,142
Записей в блоге: 3
13.07.2015, 15:09
Но тут как бы ни класс, а функция. А Зачем менять местами компоненты, если достаточно поменять текст местам у компонентов?
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
13.07.2015, 15:11
Цитата Сообщение от Shoshona Посмотреть сообщение
менять местами номера едитов. Это вообще возможно?
Конечно. Вот:
C++
TEdit *CurrEdit = FindComponent( "Edit" + IntToStr( 1 ) );
CurrEdit->Text;
Цитата Сообщение от Shoshona Посмотреть сообщение
вот тут нужно что-то делать, но я не знаю что
А что надо делать?

Не по теме:

Может быть делить на ноль? Танцевать при луне?

0
 Аватар для Shoshona
30 / 30 / 37
Регистрация: 03.06.2014
Сообщений: 1,055
13.07.2015, 15:35  [ТС]
SatanaXIII, по идее, нужно с 1 едита вытягивать последнюю букву а с 2 - первую. после нажатия кнопки наоборот с 2 - последнюю с 1 - первую....

Добавлено через 4 минуты
Может Вы знаете решение по проще?
Р.S. void string::find(int k, int l) - это метод класса string
C++
1
2
3
4
5
6
7
8
9
10
11
class string
{
public:
    Cities();
   virtual  void input()=0;
 //  virtual    string output()=0;
    char *inputCity;
    char *outputCity;
    void find(int, int);
  //    void remember();
};
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
13.07.2015, 15:48
Цитата Сообщение от Shoshona Посмотреть сообщение
Может Вы знаете решение по проще?
Конечно:
C++
1
2
3
4
5
6
7
8
9
10
void __fastcall TForm1::Button1Click(TObject *Sender)
{
static bool trigger;
trigger ^= 1;
 
char a, b;
 
a = trigger? Edit1->Text[Edit1->Text.Length()]: Edit2->Text[Edit1->Text.Length()];
b = trigger? Edit2->Text[1]: Edit1->Text[1];
}
До вашего класса я ничего не знаю.
0
 Аватар для Shoshona
30 / 30 / 37
Регистрация: 03.06.2014
Сообщений: 1,055
13.07.2015, 15:51  [ТС]
А как работает этот trigger? Оно будет что-то менять?

Добавлено через 1 минуту
или оно меняется, после нажатия кнопки?
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
13.07.2015, 16:20
Цитата Сообщение от Shoshona Посмотреть сообщение
оно меняется, после нажатия кнопки?
Именно.
Нажали один раз в a и b занеслись первая и последняя буква эдитов. Нажали второй раз - наоборот последняя и первая. И так чередуется.
Попробуйте куда-нибудь пихнуть, да поглядите.
0
 Аватар для Shoshona
30 / 30 / 37
Регистрация: 03.06.2014
Сообщений: 1,055
13.07.2015, 17:31  [ТС]
Еще вопрос можно? Как мне это в .h файл закинуть? Там ведь вроде объекты не читаются?
0
 Аватар для Shoshona
30 / 30 / 37
Регистрация: 03.06.2014
Сообщений: 1,055
13.07.2015, 17:43  [ТС]
Можно ли работать с объектами в h файле? Ну... скажем так? Если да, что для этого нужно?
C++
1
2
3
4
5
6
7
8
9
10
11
void string::find()
{   char a,b;
    static bool trigger;
    trigger ^= 1;
        a = trigger? *Edit1->Text[Edit1->Text.Length()]: Edit2->Text[Edit1->Text.Length()]; // последний символ едита
        b = trigger? *Edit2->Text[1]: Edit1->Text[1]; // первый символ
    if(a!=b)
       {
           ShowMessage("Города не сходятся!");
       }
}
0
1408 / 572 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
14.07.2015, 06:59
Цитата Сообщение от Shoshona Посмотреть сообщение
Еще вопрос можно? Как мне это в .h файл закинуть? Там ведь вроде объекты не читаются?
Какие объекты?
*.h - файл для объявления функций, *.cpp - для реализации.

Ограничений нет. Компилятору все равно, в какой ты файл закинешь, главное, если с другого файла подтягиваешь, не забудь сделать #include.
Но, имхо, это плохая практика.

Не уверен, правильно ли я тебя понял ....
0
1408 / 572 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
14.07.2015, 08:39
ничего не нужно, просто работаешь. Только что в твоем случае string?

Добавлено через 47 секунд
Если форма, то не очень удачное название....
0
 Аватар для Shoshona
30 / 30 / 37
Регистрация: 03.06.2014
Сообщений: 1,055
14.07.2015, 09:08  [ТС]
тут такая беда
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// .h файл
class Text
{
public:
    Cities();
   virtual  void input()=0;
 //  virtual    string output()=0;
    char *inputCity;
    char *outputCity;
    void find();
  //    void remember();
};
void Text::find()
{   char a,b;
    static bool trigger;
    trigger ^= 1;
    a = trigger? *Edit1->Text[Edit1->Text.Length()]: Edit2->Text[Edit1->Text.Length()];
    b = trigger? *Edit2->Text[1]: Edit1->Text[1];
    if(a!=b)
       {
           ShowMessage("Города не похожи");
       }
}
Но при компиляции выбивает ошибку: неизвестный символ Edit1 i Edit2. В чем может быть проблема?
0
 Аватар для Shoshona
30 / 30 / 37
Регистрация: 03.06.2014
Сообщений: 1,055
14.07.2015, 09:15  [ТС]
Ясно, спасибо.

Добавлено через 15 минут
_Dimon_, Я поставил инклуд, но все равно беда какая-то...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// .h файл
class Text
{
public:
    Cities();
   virtual  void input()=0;
 //  virtual    string output()=0;
    char *inputCity;
    char *outputCity;
    void find();
  //    void remember();
};
void Text::find()
{   char a,b;
    static bool trigger;
    trigger ^= 1;
    a = trigger? Edit1->Text[Edit1->Text.Length()]: Edit2->Text[Edit1->Text.Length()];
    b = trigger? Edit2->Text[1]: Edit1->Text[1];
    if(a!=b)
       {
           ShowMessage("Города не похожи");
       }
}
При компиляции выбивает ошибку: неизвестный символ Edit1 i Edit2. Что можно сделать?
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
14.07.2015, 09:18
Shoshona, в .h файле у вас будет лежать только объявление
C++
1
2
3
4
5
6
class string
{
...
void find();
...
};
А в .cpp файле уже реализация:
C++
1
2
3
4
5
6
7
8
9
10
11
void string::find()
{   char a,b;
    static bool trigger;
    trigger ^= 1;
        a = trigger? *Edit1->Text[Edit1->Text.Length()]: Edit2->Text[Edit1->Text.Length()]; // последний символ едита
        b = trigger? *Edit2->Text[1]: Edit1->Text[1]; // первый символ
    if(a!=b)
       {
           ShowMessage("Города не сходятся!");
       }
}
P.S. Вот отсюда ноги темы растут: Игра "Города": организовать поиск последнего и первого символа и их сравнение
0
1408 / 572 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
14.07.2015, 09:19

Не по теме:

тебе в какой теме отвечать? :D


нужно
C++
1
a = trigger? Form1->Edit1->Text[Form1->Edit1->Text.Length()]: Form1->Edit2->Text[Form1->Edit1->Text.Length()];
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33192 / 21488 / 8233
Регистрация: 22.10.2011
Сообщений: 36,873
Записей в блоге: 12
14.07.2015, 09:21
Shoshona, собственно, почему метод find должен быть привязан к содержимому формы, и должен знать что-то о том, какие компоненты на ней лежат? Это плохо.

Гораздо лучше будет передать две строки параметрами, и пускай метод ищет в содержимом этих строк, хоть заищется. Тогда хоть где реализуй, хоть в CPP, хоть в H-файле, ошибки не будет.

К тому же, в 5-ой строке у тебя явная логическая ошибка. Edit2->Text[Edit1->Text.Length()] выглядит не очень правильно...
0
1408 / 572 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
14.07.2015, 09:24
SatanaXIII, все-таки class string я б не создавал. Можно и другое имя придумать

Добавлено через 2 минуты
volvo, возможно человек с делфи перешел, там все в одном файле ...
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33192 / 21488 / 8233
Регистрация: 22.10.2011
Сообщений: 36,873
Записей в блоге: 12
14.07.2015, 09:27
В Дельфи тоже есть возможность вынести описание/реализацию класса в отдельный модуль, и сделать его независимым от интерфейса, так что не надо про Дельфи.
0
14.07.2015, 09:29

Не по теме:

volvo, но обычно после implementation

0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
14.07.2015, 09:33
Цитата Сообщение от Shoshona Посмотреть сообщение
Но при компиляции выбивает ошибку: неизвестный символ Edit1 i Edit2.
Заинкладь файл с декларацией класса, либо размести её в том же h файле, где работаешь.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.07.2015, 09:33
Помогаю со студенческими работами здесь

Задан список из десяти городов, поменять местами название первого города таблицы и последнего города,
Задан список из десяти городов, (массив string)поменять местами название первого города таблицы и последнего города, начинающегося с буквы...

На место первого символа записать код FF, на место последнего символа- старший байт первого исходного числа
Сегмент данных содержит два символьных кода. На место первого символа записать код FF, на место последнего символа- старший байт первого...

Не работает сравнение двух слов по первой и последней букве (игра в города)
Подскажите. Только начал осваивать PHP самостоятельно, хочу в порядке обучения написать игру в города. База слов берется из тектсового...

Вывести все символы исходной строки а$, начиная от первого заданного символа x$ до последнего заданного символа y$
Мужики, спасайте ^^ 2)Вывести все символы исходной строки а$, начиная от первого заданного символа x$ до последнего заданного символа...

Определить последнее вхождение символа “р” в строке и вывести строку, начиная с первого символа и до последнего “р” в строке
Заданы 2 строки, состоящие из слов, разделенных пробелами. Определить последнее вхождение символа “р” в строке и вывести строку, начиная с...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
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