Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.79/19: Рейтинг темы: голосов - 19, средняя оценка - 4.79
1 / 1 / 0
Регистрация: 11.12.2009
Сообщений: 29
1

Выбрать из строки полиндромы (перевёртыши) и составит из них новую строку.

15.12.2009, 11:27. Показов 3567. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Пожалуйста, помогите составить программу решения следующей задачи:
Дана строка. Выбрать полиндромы(перевёртыши) и составит из них новую строку.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.12.2009, 11:27
Ответы с готовыми решениями:

Из данной строки выбрать буквы и сформировать из них новую строку
Доброго времени суток, помогите сделать задание, задание благодарен. Из данной строки выбрать...

Дана строка текста. Выбрать в ней палиндромы и составить из них новую строку
Дана строка текста. Выбрать в ней палиндромы и составить из них новую строку. Выяснить, является ли...

Изъять цифры из строки символов и создать из них новую строку
Ввести строку с клавиатуры, найти в ней цифры и создать из них новую строку.

Найти заданные слова и составить из них новую строку
Обработка строк должна осуществляться посимвольно (без scanf и sscanf). Нужно найти слова...

11
Платежеспособный зверь
8926 / 4354 / 1642
Регистрация: 28.10.2009
Сообщений: 11,568
15.12.2009, 12:01 2
Цитата Сообщение от crab2000 Посмотреть сообщение
Пожалуйста, помогите составить программу решения следующей задачи:
Дана строка. Выбрать полиндромы(перевёртыши) и составит из них новую строку.
Выбрать - что? Слова, кусок строки, группу слов, всю строку? Точнее надо задачу ставить.
Буква - тоже палиндром.
0
Retired
7727 / 2559 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
15.12.2009, 12:37 3
Pascal
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
36
37
38
39
40
41
uses
  crt;
const
  dividers=[' ',',','.',':',';','+','-','*','/','|','\','=','-','_'];{äîïèñàòü íóæíûå}
{ôóíêöèÿ ïðîâåðêè íà ïàëèíäðîì}
function Pa(s:string):boolean;
var
  i:integer;
  fl:boolean;
begin
  fl:=true;
  for i:=1 to length(s)div 2 do
    if s[i]<>s[length(s)-i+1] then
      fl:=false;
  Pa:=fl
end;
var
  s,temp,result:string;
  i:integer;
begin
  clrscr;
  writeln('Ââåäèòå ñòðîêó...');
  readln(s);
  temp:='';
  {ïðîáåãàåì âñþ ñòðîêó ïîñèìâîëüíî}
  for i:=1 to length(s) do
  begin
    if not (s[i] in dividers) then
      temp:=temp+s[i];
    if (s[i] in dividers) or (i=length(s)) then
    begin
      if temp<>'' then
      begin
        if Pa(temp) then
          result:=result+temp+' ';
        temp:='';
      end;
    end;
  end;
  writeln(result)
end.
1
1 / 1 / 0
Регистрация: 11.12.2009
Сообщений: 29
15.12.2009, 23:32  [ТС] 4
Именно слова...дописать забыла...
0
Платежеспособный зверь
8926 / 4354 / 1642
Регистрация: 28.10.2009
Сообщений: 11,568
16.12.2009, 00:19 5
составить новую строку из слов палиндромов (слова разделены одним пробелом)
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
var
a,t,s:string;
b:array[1..100]of string;
i,k,f,j:integer;
begin
readln(a);
a:=' '+a;
for i:=1 to length(a) do
if a[i]=' 'then inc(k)else b[k]:=b[k]+a[i];
for i:=1 to k do
begin
f:=0;
t:=b[i];
for j:=1 to length(t) div 2 do
if t[j]<>t[length(t)+1-j] then f:=1;
if f=0 then s:=s+t+' ';
end;
writeln(s);
end.
to Inadequate
что-то не то выдала у меня ваша прога, поэтому на всякий случай выложил свою
2
Retired
7727 / 2559 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
16.12.2009, 06:39 6
alexevt, думал, что накосячил, поискал ошибку, проверил, но результаты верны. Действительно не знаю, что могло не работать. Но твой вариант попроще моего.
1
Платежеспособный зверь
8926 / 4354 / 1642
Регистрация: 28.10.2009
Сообщений: 11,568
16.12.2009, 08:44 7
может, дело в версиях Pascal, но сначала он выдал "необъявленная переменная" Result в 15 строке, а когда я попытался её объявить, он в ответе написал исходную строку без знаков препинания
0
Retired
7727 / 2559 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
16.12.2009, 08:54 8
alexevt, блин а ведь точно... я её взял из своих старых программ, которые я писал именно для ABC. И по привычке (Delphi, ABC) Result пропустил мимо глаз. Result конечно в Turbo Pascal не попрет... Надо было её не объявлять а просто заместо неё написать имя функции. Ну ничего я это дело сейчас поправлю...
0
1 / 1 / 0
Регистрация: 11.12.2009
Сообщений: 29
17.12.2009, 13:24  [ТС] 9
Цитата Сообщение от alexevt Посмотреть сообщение
Pascal
1
2
3
for j:=1 to length(t) div 2 do
if t[j]<>t[length(t)+1-j] then f:=1;
if f=0 then s:=s+t+' ';
Прошу, обьясните тупому человеку, для чего это надо?
0
Retired
7727 / 2559 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
17.12.2009, 13:45 10
crab2000, тут принцип такой:
Мы сравниваем символы справа и слева между собой и если все были соответственно равны мы считаем, что это паллиндром. Т.е. допусти у нас есть слово asdfdsa
1. a=a
2. s=s
3. d=d
4. f не проверяем так и так понятно что она сама себе равна
А теперь предположим к нас есть слово asdfsa, тогда
1. a=a
2. s=s
3. d не равно f а значит слово не паллиндром.
Вот и весь алгоритм.
0
1 / 1 / 0
Регистрация: 11.12.2009
Сообщений: 29
17.12.2009, 13:52  [ТС] 11
О...на конкретном примере сразу все стало ясно...
0
0 / 0 / 0
Регистрация: 12.11.2014
Сообщений: 15
21.05.2015, 08:48 12
Нужно что бы еще подсчитывало количество палиндромов и выясняло является ли это число простым?
0
21.05.2015, 08:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.05.2015, 08:48
Помогаю со студенческими работами здесь

Определить в строках элементы, которые совпадают и из них вывести новую строку
Ребята помогите!!!! Задание: дано 2 строки, определить в них елементы(буквы), которые совпадают и...

Найти общие символы двух заданных строк и составить из них новую строку
Помогите написать программу. Две строки разной длины вводятся с экрана. Найти общие символы из...


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

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