Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/21: Рейтинг темы: голосов - 21, средняя оценка - 4.76
0 / 0 / 0
Регистрация: 08.07.2014
Сообщений: 6
1

Проверка строки на симметричность (определение палиндрома)

08.07.2014, 09:40. Показов 4101. Ответов 5
Метки faq+ (Все метки)

Author24 — интернет-сервис помощи студентам
Строка содержит одно слово. Проверить, будет ли оно читаться одинаково справа налево и слева направо (т.е. является ли оно палиндромом). Напишите, пожалуйста, программу
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.07.2014, 09:40
Ответы с готовыми решениями:

Определение строки-палиндрома
Помогите пожалуйста написать программу:) На вход программе подается предложение на английском...

Определение строки-палиндрома
open F, ">2.txt"; $/=\0;$_=<>; for(split/\s|\,|\.|\;|\:|\'|\"|\!|\?/,$_){print F$_,' ' if($_ eq...

Проверка строки матрицы на симметричность
Как проверить строку матрицы на симметричность, если строка симметрична то в вектор b занести 1...

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

5
5243 / 3571 / 379
Регистрация: 02.04.2012
Сообщений: 6,473
Записей в блоге: 17
08.07.2014, 11:20 2
До GUI руки не доходят, но можно сделать так:
1. определить длину слова, четная она или нет.
2. перевести символы в числа (ASCII код)
3. отобразить слева на право вторую половинку
4. вычесть половинки
5. если был палиндром, то должны получить все нули
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
clear
clc
 
str = input('Введите слово: ','s');
 
S = double(str); % преобразуем символы в числа
n = length(str); % длинна слова
 
if mod(n,2)~=0 % если длинна нечетная
    m = floor(n/2); % индекс предсрединного элемента
    b1 = S(1:m); % первая половинка
    b2 = S(n:-1:m+2); % вторая половинка (переворачиваем)
else
    b1 = S(1:n/2); % первая половинка
    b2 = S(n:-1:n/2+1); % вторая половинка (переворачиваем)
end
 
if all( (b1-b2)==0 ) % если все разности равны нулю
    disp('Слово - палиндром')
else
    disp('Слово не палиндром')
end
вот что получается:
Код
Введите слово: никотинамидадениндинуклеотидфосфат
Слово не палиндром

Введите слово: шалаш
Слово - палиндром
0
0 / 0 / 0
Регистрация: 08.07.2014
Сообщений: 6
09.07.2014, 08:15  [ТС] 3
нужно именно в GUI
0
5243 / 3571 / 379
Регистрация: 02.04.2012
Сообщений: 6,473
Записей в блоге: 17
09.07.2014, 10:03 4
Лучший ответ Сообщение было отмечено Ksyushenka как решение

Решение

держи
Вложения
Тип файла: zip palindrom.zip (4.4 Кб, 40 просмотров)
1
Эксперт по электронике
939 / 839 / 121
Регистрация: 23.11.2012
Сообщений: 2,489
09.07.2014, 10:11 5
Лучший ответ Сообщение было отмечено Зосима как решение

Решение

Зосима, а разве не канает условие
Matlab M
1
all(str==str(end:-1:1))
?
1
5243 / 3571 / 379
Регистрация: 02.04.2012
Сообщений: 6,473
Записей в блоге: 17
09.07.2014, 10:28 6
R2D2, действительно, я перемудрил
1
09.07.2014, 10:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.07.2014, 10:28
Помогаю со студенческими работами здесь

Определение палиндрома
Народ, помогите прогу составить. Является ли введенное число с клавиатуры палиндромом. В языке Си

Определение палиндрома
Пример взят из книжки В.Фаронова Программирование на языке C#. Программа элементарная, должна...

Определение палиндрома
Здравствуйте. Нужно определить является ли словосочетание в строке палиндромом на JavaScript....

Рекурсивное определение палиндрома
Напишите рекурсивную программу, которая определяет, является ли данное предложение палиндромным или...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru