Аватар для Shoshona
31 / 31 / 37
Регистрация: 03.06.2014
Сообщений: 1,055

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

13.07.2015, 13:47. Показов 2502. Ответов 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
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
14.07.2015, 09:39
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Shoshona Посмотреть сообщение
В чем может быть проблема?
В том, что класс это самостоятельная обособленная единица. Он ничего не знает ни о каких других классах, если ему о них не сказать принудительно.

Если вы хотите сделать нормальный класс, то следует ввести в него дополнительные приватные переменные и функции, заполняющие из вне эти переменные. Таким образом ваш класс будет работать только со своими данными.

Вариант номер раз
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
// .h файл
class Text
{
private:
    char a, b; // <--------------- Собственные приватные переменные класса
public:
    Cities();
   virtual  void input()=0;
 //  virtual    string output()=0;
    char *inputCity;
    char *outputCity;
    void find();
  //    void remember();
 
    void FillAAndB( char a_, char b_ ); // <---------------- Метод заполнения их
};
void Text::FillAAndB( char a_, char b_ ) // <---------------- Реализация метода
{
    this->a = a_;
    this->b = b_;
}
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("Города не похожи");
       }
}
Далее где-то в основной программе:
C++
1
2
3
4
5
6
7
8
Text text_ex;
 
static bool trigger;
trigger ^= 1;
 
text_ex.FillAAndB( trigger? *Edit1->Text[Edit1->Text.Length()]: Edit2->Text[Edit1->Text.Length()];
                         trigger? *Edit2->Text[1]: Edit1->Text[1] );
text_ex.find();

Вариант номер два

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
// .h файл
#include <vcl.h> // <-------------- В этом файле лежит описание класса TEdit
                 // Подключив его можно будет работать со стандартными компонентами (типа Edit) внутри вашего класса, но
                 //  взамен вы получите утяжеление всей конструкции и невозможность переноса класса в другую среду
class Text
{
private:
    TEdit *Edit1, *Edit2; // <------------- Объявляем указатели на поля ввода
public:
    Cities();
   virtual  void input()=0;
 //  virtual    string output()=0;
    char *inputCity;
    char *outputCity;
    void find();
  //    void remember();
 
    void FillEdits( TEdit *Edit1_, TEdit *Edit2_ ); // <----------- Объявление
};
void FillEdits( TEdit *Edit1_, TEdit *Edit2_ ) // <-------------- Реализация
{
    this->Edit1 = Edit1_;
    this->Edit2 = Edit2_;
}
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("Города не похожи");
       }
}
Где-то в основной программе:
C++
1
2
3
4
Text text_ex;
 
text_ex.FillEdits( Edit1, Edit2 );
text_ex.find();
0
14.07.2015, 09:40

Не по теме:

taras atavin, какие люди без охраны )))

0
 Аватар для Shoshona
31 / 31 / 37
Регистрация: 03.06.2014
Сообщений: 1,055
14.07.2015, 09:42  [ТС]
Если я опишу функцию в начале СРР файла, а потом допустим, в кнопке буду ее вызывать, это будет правильно?
0
1409 / 573 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
14.07.2015, 09:46
правильно, главное чтоб вызываемая функция была описана выше

Добавлено через 2 минуты
это и делает #include *.h
0
 Аватар для Shoshona
31 / 31 / 37
Регистрация: 03.06.2014
Сообщений: 1,055
14.07.2015, 10:07  [ТС]
SatanaXIII, я попробывал реализовать вариант номер 1 но тут выбило кучу ошибок... кидаю скрин и саму прогу, может так удобней будет! (в двух частях кинул, потому что много весят).
Миниатюры
Игра "Города": организовать поиск последнего и первого символа и их сравнение  
Вложения
Тип файла: rar Visua p1l.rar (7.48 Мб, 2 просмотров)
Тип файла: rar Visual p2.rar (307.8 Кб, 2 просмотров)
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33462 / 21561 / 8249
Регистрация: 22.10.2011
Сообщений: 37,017
Записей в блоге: 12
14.07.2015, 10:43
Цитата Сообщение от _Dimon_ Посмотреть сообщение
нужно
C++
1
a = trigger? Form1->Edit1->Text[Form1->Edit1->Text.Length()]: Form1->Edit2->Text[Form1->Edit1->Text.Length()];
Не нужно. Нужно вот так:
C++
1
a = trigger? Form1->Edit1->Text[Form1->Edit1->Text.Length()]: Form1->Edit2->Text[Form1->Edit2->Text.Length()];
, и я уже писал об этом выше, но за оффтопом о Дельфи, это, конечно, прошло незамеченным, и ошибка тянется до сих пор.
0
 Аватар для Shoshona
31 / 31 / 37
Регистрация: 03.06.2014
Сообщений: 1,055
14.07.2015, 10:55  [ТС]
Это я уже давно исправил, но все равно не работает. Я описываю функцию... а как потом вызвать ее в любом месте программы? я пишу например
C++
1
2
Text a;
a.find(char a,char b);
мне выдает ошибку.

Добавлено через 53 секунды
и вот так не работает
C++
1
void Text::find(char a,char b);
0
 Аватар для Shoshona
31 / 31 / 37
Регистрация: 03.06.2014
Сообщений: 1,055
14.07.2015, 11:31  [ТС]
Ребята, с одной проблемой я разобрался. Там у меня виртуальный класс был, а к виртклассу объекты не подключаются. Исправил, но все-равно ошибка... вот новый файл. Прошу посмотрите, потому что я уже не знаю что делать.
Суть в том, что компилятор не видит класс в программе. он думает, что это переменная.
Вложения
Тип файла: rar Visual2.rar (1.23 Мб, 4 просмотров)
Тип файла: rar Visual1.rar (9.96 Мб, 4 просмотров)
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
14.07.2015, 19:53
К классу вообще ничего не подключается и объекты вообще никуда не подключаются и виртуальность здесь не причём.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.07.2015, 19:53

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
29
Ответ Создать тему
Опции темы

Новые блоги и статьи
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов. Логика кажется понятной: 1. Находим ключевые слова. 2. Добавляем их на. . .
Знание — сила: Доктрина интенциональности знаний против массовых профанаций
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302 Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
SUNO Ai - Река Без Дна
zorxor 31.07.2026
Автор стихотворения - астрофизик Марина Катыс Ссылка на сгенерированную музыкальную композицию: https:/ / suno. com/ song/ 6f6e5464-b290-4650-be6c-44c85f8d8013 Я говорю, что Время- как вода течет. . .
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла: Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет Салют, шампанское, овации! :drink:
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru