Помогите пожалуйста решить 3 задачи в Паскале!

Ответить
VistBacK
Сообщения: 9
Зарегистрирован: 19 сен 2008, 09:59

Помогите пожалуйста решить 3 задачи в Паскале! Буду очень благодарен!
Собственно вот и задачи:
1) Дано слово,состоящее из четного количества букв. Вывести на экран его первую половину.
2) Дано слово,состоящее из четного количества букв. Поменять местами его половины и вывести на экран.
3) Является ли введенное слово поллиндромом?
Заранее СПАСИБО!!!=)
Аватара пользователя
Alex_Burn
Сообщения: 147
Зарегистрирован: 13 апр 2007, 17:49
Контактная информация:

3)
[Syntax='Pascal']
uses crt;
function is_palindrom(s: string): boolean;
begin
is_palindrom := true;

if length(s) <= 1 then exit
else begin

if s[1] = s[length(s)] then
is_palindrom := is_palindrom(copy(s, 2, length(s) - 2))
else is_palindrom := false;

end;
end;
var str : string;
begin
clrscr;
write('Input string '); readln(str);
writeln(is_palindrom(str));
readkey;
end.
[/Syntax]

Остальные потом посмотрю
YouROK
Сообщения: 1
Зарегистрирован: 23 сен 2008, 11:50

Первая задача делал в уме так что не проверял.

Код: Выделить всё

Function GetPolSlova(Str:String):String;
Begin
 GetPolSlova:=Copy(Str,Length(Str)div 2, Length(Str)div 2);
End;

Код: Выделить всё

Function GetPolSlova(Str:String):String;
var
 i: integer;
Begin
 For i:=1 to length(str) div 2 do
 GetPolSlova[i]:=str[i];
End;
Вторая

Код: Выделить всё

Function GetSlovo(Str:String):String;
var
 i: integer;
 c: char;
Begin
 For i:=1 to length(str) div 2 do
 begin
  GetSlova[i]:=str[i];
  GetSlova[i+length(str) div 2]:=str[i+length(str) div 2];
 end;
End;
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

Можно и так

Код: Выделить всё

function is_palindrome(s: string): boolean;
var res: boolean; i: byte;
begin
   res:=true;
   for i:=1 to length(s) div 2 do
   if s[i]<>s[length(s)-i+1] then begin res:=false; break; end;
   is_palindrome:=res;

Первая половина слова
copy(s,1, length(s) div 2);

Поменять местами половины слова
copy(s, length(s) div 2+1, length(s) div 2)+copy(s,1, length(s) div 2);
end;
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Ответить