Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.10.2015, 16:49   #1
Poopy
Пользователь
 
Регистрация: 13.10.2015
Сообщений: 16
Вопрос Pascal. Является ли введенная фраза 'автосимметричной'

Pascal.
Является ли введенная фраза 'автосимметричной'?Этим термином обозначим фразы,в которых совпадают первый символ с последним,второй с предпоследним и т.д.
Помогите дальше доделать.

Код:
var
s:string;
i,h,f:integer;
begin
writeln('Введите фразу');
readln(s);

h:=length(s);
if s[1] =s[h] then 
writeln('Слово автосимметрично')
else 
writeln('Слово не автосимметрично');
end.
_____
1) Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
2) Название темы должно отражать суть решаемой задачи (читайте правила форума!)
Модератор

Последний раз редактировалось Serge_Bliznykov; 13.10.2015 в 16:58.
Poopy вне форума Ответить с цитированием
Старый 13.10.2015, 16:57   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Код:
  writeln('Введите фразу');
  readln(s);
  h:=Length(s);
  f:=1; // признак, что фраза является автосимметричной
  for i:=1 to h div 2 do
    if s[i]<>s[h+1-i] then begin
      f:=0; { признак, что фраза НЕ является автосимметричной }
      break; {и прервали цикл}
    end;

  if f=1 
   then writeln('Фраза автосимметрична')
   else  writeln('Фраза не автосимметрична');
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.10.2015, 17:22   #3
Poopy
Пользователь
 
Регистрация: 13.10.2015
Сообщений: 16
По умолчанию

Цитата:
writeln('Введите фразу');
readln(s);
h:=Length(s);
f:=1; // признак, что фраза является автосимметричной
for i:=1 to h div 2 do
if s[i]<>s[h+1-i] then begin
f:=0; { признак, что фраза НЕ является автосимметричной }
break; {и прервали цикл}
end;

if f=1
then writeln('Фраза автосимметрична')
else writeln('Фраза не автосимметрична');
не работает
Poopy вне форума Ответить с цитированием
Старый 13.10.2015, 17:25   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

как именно не работает? Не компилируется? Выдаёт ошибку при работе? Если да - то какую именно ошибку?
если не ошибку, тогда укажите фразу, которую Вы вводите и что именно Вам выдаёт программа.

честное слово, такое впечатление, что это мне нужно, а не Вам!!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.10.2015, 17:31   #5
Poopy
Пользователь
 
Регистрация: 13.10.2015
Сообщений: 16
По умолчанию

Когда ввожу так называемое "автосимметричное" слово,пишет что слово не автосимметрично
Poopy вне форума Ответить с цитированием
Старый 13.10.2015, 17:54   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

всё работает. значит, Вы вводите НЕ АВТОСИММЕТРИЧНУЮ фразу.

дополните код программы выдачей сообщения о введённой фразе.
ну, например,
Код:
  writeln('Введите фразу');
  readln(s);
  h:=Length(s);
  WriteLn('Вы ввели фразу>',s,'< длиной ',h,' букв.' );
  f:=1; // признак, что фраза является автосимметричной
и тогда увидите, где Вы ввели не симметрично. (предполагаю, что Вы лишние пробелы вводите либо в начале, либо в конце, либо - внутри.)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.10.2015, 18:10   #7
Poopy
Пользователь
 
Регистрация: 13.10.2015
Сообщений: 16
По умолчанию

Извините,моя вина я думал что если первая буква совпадает с последней или 2 с предпоследней и т.д, то тогда они автосимметричны. И если вы знаете как реализовать такой код , не подскажете как?
Poopy вне форума Ответить с цитированием
Старый 13.10.2015, 21:54   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Poopy Посмотреть сообщение
Извините,моя вина я думал что если первая буква совпадает с последней или 2 с предпоследней и т.д, то тогда они автосимметричны. И если вы знаете как реализовать такой код , не подскажете как?
тот код, что я Вам написал, именно так и проверяет - первую букву с последней, вторую с предпоследней, третью с пред-предпоследней и т.д.
если все пары совпали, то фраза автосимметрична, если хоть в одном месте несовпадение, то фраза не является автосимметричной.

Вы, когда проверяете, какую фразу вводите для проверки?!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 14.10.2015, 08:07   #9
FPaul
Форумчанин
 
Регистрация: 25.01.2015
Сообщений: 472
По умолчанию

Возможно, имеется ввиду не строка-палиндром, а строка, которую нужно анализировать без учёта разделителей слов и регистра букв. Наподобие
Код:
А роза упала на лапу Азора.
.арозА упал ан алапу азор А
Но пусть ТС уточнит.
FPaul вне форума Ответить с цитированием
Старый 14.10.2015, 09:03   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
'автосимметричной'
ППЦ, это теперь так преподы палиндромы называют?? О_о
Не-е-е... В мое время и трава зенелее и ласточка свеснее была...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль: является ли введенная с клавиатуры последовательность символов записью двоичного или шестнадцатеричного числа Студент ММИ Помощь студентам 12 14.11.2014 14:22
Написать программу, которая проверяет, является ли введенная с клавиатуры строка дробным числом. (язык C) Степан Симаков Помощь студентам 3 01.04.2014 23:10
Дана фраза, слова разделены пробелом. Определить, сколько в ней наречий и однобуквенных местоимений. (Turbo Pascal) brahmanchik Помощь студентам 5 22.01.2012 01:32
является ли введенная строка 16-ым числом Ялок Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 03.04.2011 14:52