![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите разобраться с программой. Строки.
oliksin © (2013-06-04 22:57:00)Дана строка символов, содержащая некоторый текст. Разработать программу, которая определяет, является ли данный текст палиндромом, т.е. читается ли он слева направо так же, как и справа налево ( например, «А роза упала на лапу Азора»)
как сделать так, чтобы пробелы не читались? если строка без пробелов, программа определяет палиндром или нет, а если с пробелами, не определяет..
procedure TForm1.Button1Click(Sender: TObject);
function IsPalindrome(const s : string) : boolean;
var
i,j: integer;
b:boolean;
begin
Edit1.Text:=s;
for j:=1 to Length(s) do
if s[j]=' ' then
while S[j]=' ' do Delete(S,j,1);
i := 1;
j := length(s);
result := false;
repeat
if s[i] <> s[j] then
exit;
inc(i);
dec(j);
until i > j;
result := true;
end;
begin
if IsPalindrome(Edit1.Text) then
ShowMessage('Строка является палиндромом')
else
ShowMessage('Строка палиндромом не является');
end;
end.
"Добрый Сок" (2013-06-06 10:25:00) [1]ну, да.
Вот я и гадаю, ЮЗ, когда про ошибку сказал, это имел ввиду или еще что-то.
Если это - то предвидел :) просто было лень стало писать
Inovet (2013-06-06 10:22:00) [2]> [19] "Добрый Сок" (06.06.13 10:08)
Так выкинуть их все.
"Добрый Сок" (2013-06-06 10:08:00) [3]
> Inovet © (06.06.13 09:53) [18]
а..
а я к тому, что знаки препинания сломают алгоритм
Inovet (2013-06-06 09:53:00) [4]> [17] "Добрый Сок" (06.06.13 09:48)
Мальвина учит Буратино писать.
"Добрый Сок" (2013-06-06 09:48:00) [5]
> Inovet © (06.06.13 09:40) [16]
звука на работе нет :)
Что там?
Inovet (2013-06-06 09:40:00) [6]> [15] "Добрый Сок" (06.06.13 09:29)
> А, роза, - упала на лапу Азора!
http://www.youtube.com/watch?v=XsuNCQLLVqs
Ещё есть какой-то известный, забыл.
"Добрый Сок" (2013-06-06 09:29:00) [7]А, роза, - упала на лапу Азора!
brother (2013-06-06 08:40:00) [8]какая, кроме [13]?
Германн (2013-06-05 19:21:00) [9]Пустая строка это тоже палиндром, но вырожденный :)
O'ShinW (2013-06-05 19:10:00) [10]{., и тп} - ?
Юрий Зотов (2013-06-05 18:54:00) [11]> O'ShinW © (05.06.13 00:12) [5]
То же самое - есть ошибка.
:o)
Юрий Зотов (2013-06-05 18:52:00) [12]> brother © (04.06.13 23:19) [2]
В программе есть логическая ошибка. Поэтому она не всегда будет правильно работать.
:o)
"Добрый Сок" (2013-06-05 15:52:00) [13]
> AnsiUpperCase(s),
> это ему нужно было для дз оставить :)
сколько раз уже накалывался..
на автомате вышло :)
> не споритвно?)
зато дешево и практично (с) :)
brother (2013-06-05 08:47:00) [14]ну, может хоть алгоритм осознает...
Anatoly Podgoretsky (2013-06-05 08:41:00) [15]
> это ему нужно было для дз оставить :)
Это еще месяц скулежа
brother (2013-06-05 06:08:00) [16]> AnsiUpperCase(s),
это ему нужно было для дз оставить :)
> ReverseString(s);
не споритвно?)
O'ShinW (2013-06-05 00:12:00) [17]uses StrUtils;
function IsPalindrom(s:string): Boolean;
begin
s := StringReplace(AnsiUpperCase(s),' ','',[rfReplaceAll]);
Result := s = ReverseString(s);
end;
oliksin (2013-06-04 23:50:00) [18]Спасибо! всё работает теперь=)
brother (2013-06-04 23:20:00) [19]хоть идею зацени чтоль ;)
brother (2013-06-04 23:19:00) [20]эх, молодежь! и что я сегодня такой добрый? :)
function IsPalindrome(const s : string) : boolean;
var
s2: string;
i: integer;
len: integer;
begin
s2:= StringReplace(s, ' ', '', [rfReplaceAll]);
len:= Length(s2);
for i:= 1 to len div 2 do
if s2[i] <> s2[len-i+1] then
begin
result:= false;
exit;
end;
result:= true;
end;