ОСТОРОЖНО МОШЕННИКИ! В последнее время в социальных сетях участились случаи предложения помощи в написании программ от лиц, прикрывающихся сайтом vscode.ru. Мы никогда не пишем первыми и не размещаем никакие материалы в посторонних группах ВК. Для связи с нами используйте исключительно эти контакты: vscoderu@yandex.ru, https://vk.com/vscode


Определение палиндрома на C#


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

Создадим простенький дизайн:

Определение палиндрома на C# - vscode.ru

Здесь у нас TextBox, Label и Button. Вердикт о принадлежности или непринадлежности данных к палиндрому мы выведен в MessageBox’е. 

Дважды щёлкаем на кнопку «Проверить текст» и переносимся в область кода, где будем творить.

Для начала мы считываем строку, которую введёт пользователь и записываем её в переменную text. Затем мы создаём массив символов с типом char, чтобы по одному символу считать нашу строку. Благодаря этому мы в последствии перевернём введённый текст по символу в обратный порядок. Конвертируем текст из строкового формата в символьный массив благодаря .ToCharArray.


Теперь мы переворачиваем символы введённых данных в обратном порядке благодаря следующему методу:

Иначе говоря, если пользователь ввёл в TextBox строку «12345», то данный метод позволяет по символам перевернуть его до «54321».

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

Теперь нам осталось лишь сравнить изначально введённую строку текста со строкой текста, которую мы перевернули. Если они равны, то введённые данные — палиндром.

Вот и всё, наша программа готова!

Определение палиндрома на C# - vscode.ru

Скачать исходник

 

4.7/5 - (12 голосов)



Поделиться в соц. сетях:

5 комментария(ев) к статье “Определение палиндрома на C#

    1. Юлия Автор статьи

      finaltext — это переменная типа string (строковый тип, данные в котором представлены именно в виде строки а не, например, посимвольно).
      Когда пользователь вводит какое-либо слово, оно записывается в строковую переменную text. Но строковой формат нельзя перевернуть задом наперед (то есть, например «12345» перевернуть в «54321»). Поэтому приходится конвертировать переменную text (и то, что в ней записано) в массив символов char (у нас это — переменная obrtext). В массиве char уже можно по одному символу перевернуть введенное пользователем слово, что мы и делаем.
      Затем нам надо сравнить перевернутое слово с словом, введенным пользователем — переменной text. Однако нельзя сравнивать между собой переменные с разными типами данных(string и char). Поэтому мы создаем строковую переменную finaltext и как бы конвертируем символы из переменной obrtext обратно в строковой формат, записывая полученный результат в finaltext, чтобы потом сравнить его с содержимым переменной text.

  1. qpMAXqp

    Спасибо за урок! Подскажите пожалуйста, а что нужно добавить, что бы проверять только буквы, без пробела? Например фраза «милашка как шалим» будет определятся как не палиндром из-за пробелов.
    И как знаки препинания игнорировать при проверке?
    =)

    1. admin

      После того, как взяли текст из textBox’а:
      string text = textBox1.Text;
      удалите из этой строки пробелы так:
      text = text.Replace(» «, «»);
      то есть пробелы заменятся на пустую строку. Аналогично можете убрать знаки препинания.

Добавить комментарий

Ваш адрес email не будет опубликован.