Форум программистов, компьютерный форум, киберфорум
Free Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
1 / 1 / 0
Регистрация: 06.10.2016
Сообщений: 17
1

Проверять, является ли строка палиндромом

06.10.2016, 21:43. Показов 2103. Ответов 15
Метки нет (Все метки)

Помогите. Как написать решение к этой сверхсложной задаче.
Дана последовательность символов s1, s2, ..., sn, 1 <= n <= 200, si либо является пробелом, либо принадлежит множеству {A,B,...,Z,a,b,...,z}. Группы символов, разделенные пробелами (одним или несколькими) и не содержащие пробелов внутри себя, будем называть словами. Палиндромом назовем такое слово s1, s2, ..., sk, что s1 = sk, s2 = sk-1, s3 = sk-2, ..., k <= 30, при этом учитывается регистр символов, т.е. A <> Проверять, является ли строка палиндромом?
(ПАЛИНДРОМЫ (перевертыши) - слова или группа символов, читающиеся одинаково в обоих направлениях. )
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.10.2016, 21:43
Ответы с готовыми решениями:

Определить, является ли введенная с консоли строка палиндромом
Программа определяет, является ли введенная с консоли строка симметричной. Например, строка «казак»...

Определить, является ли данная строка палиндромом, не учитывая пробелов
Прошу помочь решить 5 задач в Free pascal-е: 3. Определить, является ли данная строка...

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

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

15
Модератор
Эксперт Pascal/DelphiЭксперт NIX
5728 / 3437 / 2442
Регистрация: 22.11.2013
Сообщений: 9,653
Записей в блоге: 1
07.10.2016, 11:36 2
Палиндромом назвали слово. Вводится строка из слов, каждое длиной до 30 символов.
Что такое палиндром в отношении строки не сказано.
Так что же именно нужно проверить?
0
1 / 1 / 0
Регистрация: 06.10.2016
Сообщений: 17
07.10.2016, 15:57  [ТС] 3
Я не пойму что конкретно вы не понимаете. Я условие понимаю, но на паскале мне трудно реализовать решение. Т.к. сам паскаль туго понимаю. Но я не пойму почему условие задачи вам не понятно. Дана последовательность символов 1 <= n <= 200, узнать является ли она палиндромом. Я не пойму как написать код. Регистр учитывается. Помогите написать код к ней. Что конкретно вам непонятно. Спрашивайте. Очень надо решение на паскале.
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
5728 / 3437 / 2442
Регистрация: 22.11.2013
Сообщений: 9,653
Записей в блоге: 1
07.10.2016, 16:00 4
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Цитата Сообщение от annya_anya Посмотреть сообщение
Дана последовательность символов 1 <= n <= 200, узнать является ли она палиндромом.
Если вас не смущает, что это совсем другая задача и устроит ее решение (вместо исходной), не вопрос:
Pascal
1
2
3
4
5
6
7
8
9
10
11
var
  s: String;
  i, j: Integer;
begin
  Write('Фраза: '); ReadLn(s);
  i:=1; j:=Length(s);
  while (i<j) and (s[i]=s[j]) do begin
    Inc(i); Dec(j);
  end;
  WriteLn(i>=j);
end.
0
1 / 1 / 0
Регистрация: 06.10.2016
Сообщений: 17
07.10.2016, 16:07  [ТС] 5
Почему другая?
А что вам непонятно в моей задаче? Напишите пожалуйста.
0
Модератор
63400 / 47085 / 32454
Регистрация: 18.05.2008
Сообщений: 114,134
07.10.2016, 16:33 6
Цитата Сообщение от annya_anya Посмотреть сообщение
Проверять, является ли строка палиндромом?
Так строка (вся последовательность S), или отдельные группы символов в ней?
Последовательность какого типа
string; ?
arrray[1..20] of char?
0
1 / 1 / 0
Регистрация: 06.10.2016
Сообщений: 17
07.10.2016, 17:10  [ТС] 7
Ну строка же палиндром, как я понимаю. Значит строка. Я тоже не до конца понимаю эту задачу. Не думала что она всем настолько сложна.
0
Модератор
63400 / 47085 / 32454
Регистрация: 18.05.2008
Сообщений: 114,134
07.10.2016, 17:12 8
Она не сложна, просто условие написано через ж....
0
1 / 1 / 0
Регистрация: 06.10.2016
Сообщений: 17
07.10.2016, 17:18  [ТС] 9
Но что же делать? Как ее решить тогда?
0
Модератор
Эксперт по электронике
7537 / 3723 / 1459
Регистрация: 01.02.2015
Сообщений: 11,571
Записей в блоге: 2
07.10.2016, 17:25 10
Наверное, нужны примеры:
"А роза упала на лапу Азора" - палиндром, но нужно удалить пробелы и знаки препинания
"шалаш" - палиндром

Добавлено через 2 минуты
Напишите дословно условие и возможные примеры из методички.
0
1 / 1 / 0
Регистрация: 06.10.2016
Сообщений: 17
07.10.2016, 17:35  [ТС] 11
Цитата Сообщение от ФедосеевПавел Посмотреть сообщение
Напишите дословно условие и возможные примеры из методички.
Я как раз дословно и написала. Если б еще было что дополнительно написано, я б написала. А так есть что есть. Сама в недоумении.
0
Модератор
Эксперт по электронике
7537 / 3723 / 1459
Регистрация: 01.02.2015
Сообщений: 11,571
Записей в блоге: 2
07.10.2016, 17:46 12
Тогда берите решение bormant, а потом с преподавателем разберётесь. Или сформулируйте задание самостоятельно - что считать палиндромом, применительно к строке.

Добавлено через 5 минут
Вот как несколькими способами решалась задача на палиндром строки, когда не учитывались пробелы и знаки препинания, а также не учитывался регистр букв Как сделать чтоб программа не воспринимала Заглавные буквы
Удалите UpCase и будет поиск палиндрома с учётом регистра и без учёта разделителей.
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
5728 / 3437 / 2442
Регистрация: 22.11.2013
Сообщений: 9,653
Записей в блоге: 1
07.10.2016, 17:59 13
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Игнорирование пробелов добавить несложно:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
var
  s: String;
  i, j: Integer;
begin
  Write('Фраза: '); ReadLn(s);
  i:=1; j:=Length(s);
  while (i<j) and (s[i]=s[j]) do begin
    repeat Inc(i); until (i>=j) or (s[i]<>' ');
    repeat Dec(j); until (j<1) or (s[j]<>' ');
  end;
  WriteLn(i>=j);
end.
0
1 / 1 / 0
Регистрация: 06.10.2016
Сообщений: 17
07.10.2016, 18:39  [ТС] 14
В задании написано, что слова разделены одним пробелом, и si либо является пробелом, либо принадлежит множеству {A,B,...,Z,a,b,...,z}. Вы это учли?
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
5728 / 3437 / 2442
Регистрация: 22.11.2013
Сообщений: 9,653
Записей в блоге: 1
07.10.2016, 22:13 15
В вашей интерпретации задание выглядит как
Дана последовательность символов 1 <= n <= 200, узнать является ли она палиндромом.
Каким же образом предлагаете учесть, что
слова разделены одним пробелом, и si либо является пробелом, либо принадлежит множеству {A,B,...,Z,a,b,...,z}
Можно на примерах.
0
1 / 1 / 0
Регистрация: 06.10.2016
Сообщений: 17
12.10.2016, 19:12  [ТС] 16
Пример, слова разделенные пробелом, это могут быть любые слова. Программа должна проверить являются ли они палиндромом, соответственно учитывать и пробелы, и регистры.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.10.2016, 19:12

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Выяснить является ли заданная строка палиндромом
Дело в том, что в 10 классе мы проходим Паскаль поверхностно, поэтому надо решеть задачу так...

Написать программу, определяющую, является ли строка палиндромом
Написать программу, определяющую, является ли строка палиндромом (слово, которое читается слева...

Создать программу, которая будет проверять, является ли слово из пяти букв, палиндромом
Помогите решить вот такую задачу на Java:Создать программу, которая будет проверять, является ли...

Дана строка символов. Проверьте,является ли данная строка палиндромом
Парни нужна помощь,нужен код решения этой задачи на языке с++. Дана строка символов....


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.