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

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

10.12.2015, 22:01. Показов 1761. Ответов 4
Метки нет (Все метки)

Куда нужно добавить условие, чтобы программа удаляла пробелы?
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
program stroka;
var s:string[40];
     k,i,n:integer;
     f:boolean;
begin
readln(s);
n:=length(s);
f:=true;
for i:=1 to n div 2 do
if s[i]<>s[n-i+1] then f:=false;
if f then
writeln('да') else writeln('нет');
readln
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.12.2015, 22:01
Ответы с готовыми решениями:

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

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

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

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

4
Модератор
Эксперт Pascal/DelphiЭксперт NIX
5725 / 3435 / 2441
Регистрация: 22.11.2013
Сообщений: 9,646
Записей в блоге: 1
10.12.2015, 23:10 2
Добавлением условия дело не обойдется.
Pascal
1
2
3
4
5
6
7
8
9
var
  s: String[40];
  i: Integer;
begin
  ReadLn(s);
  i:=Length(s) div 2; while (i>0) and (s[i]=s[Length(s)-i+1]) do Dec(i);
  if i=0 then WriteLn('да') else WriteLn('нет');
  readln
end.
или
Pascal
1
2
3
4
5
6
7
8
9
var
  s: String[40];
  i: Integer;
begin
  ReadLn(s);
  i:=Length(s) div 2; while (i>0) and (s[i]=s[Length(s)-i+1]) do Dec(i);
  WriteLn(i=0);
  readln
end.
Добавлено через 2 минуты
или
Pascal
1
2
3
4
5
6
7
8
9
var
  s: String[40];
  i, j: Integer;
begin
  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);
  readln
end.
0
0 / 0 / 0
Регистрация: 10.12.2015
Сообщений: 6
17.12.2015, 23:18  [ТС] 3
программы работают конечно, но пробелы не удаляют
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
5725 / 3435 / 2441
Регистрация: 22.11.2013
Сообщений: 9,646
Записей в блоге: 1
18.12.2015, 13:35 4
Ну так и удалите пробелы после ввода строки и до проверки:
Pascal
1
  for i:=Length(s) downto 1 do if s[i]=' ' then Delete(s,i,1);
Добавлено через 4 минуты
Или так:
Pascal
1
  while Pos(' ',s)>0 do Delete(s,Pos(' ',s),1);
Добавлено через 3 часа 23 минуты
Или так:
Pascal
1
2
j:=0; for i:=1 to Length(s) do if s[i]<>' ' then begin Inc(j); s[j]:=s[i]; end;
SetLength(s,j);
0
охотник
1011 / 535 / 650
Регистрация: 29.09.2014
Сообщений: 1,083
18.12.2015, 15:14 5
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
const y:array[boolean] of string=('не','');
var s:string;
function del_p(x:string):string;
begin
 if pos(' ',x)>0 then del_p:=copy(x,1,pos(' ',x)-1)+del_p(copy(x,pos(' ',x)+1,length(x)-pos(' ',x)))
                 else del_p:=x;
end;
function pal(x:string):boolean;
begin
 if length(x)>0 then 
                 begin 
                  if x[1]=x[length(x)] then pal:=pal(copy(x,2,length(x)-2)) else pal:=false
                 end
                else pal:=true
end;    
begin
 write('s : ');readln(s);
 writeln('данная строка ',y[pal(s)],' палиндром');
 writeln('s'': ',del_p(s));
 writeln('строка без пробелов ',y[pal(del_p(s))],' палиндром')
end.
прогон:
Код
s : а роза упала на лапу азора
данная строка не палиндром
s': арозаупаланалапуазора
строка без пробелов  палиндром
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.12.2015, 15:14

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

Строки. написать программу и проверить. является ли данная строка полиндромом
Является ли данная строка полиндромом (полиндром - строка, которая читается с двух сторон...

Проверить является ли "перевертышем" символьная строка
Проверить является ли &quot;перевертышем&quot;(перевертышем называется слово,читаемое одинаково как с...

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

Регэксп: проверить состоит ли строка из всех пробелов
Привет, нужно проверить состоит ли строка из всех пробелов, как реализовать?


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

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

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