Страница 1 из 1
Помогите пожалуйста решить 3 задачи в Паскале!
Добавлено: 22 сен 2008, 10:54
VistBacK
Помогите пожалуйста решить 3 задачи в Паскале! Буду очень благодарен!
Собственно вот и задачи:
1) Дано слово,состоящее из четного количества букв. Вывести на экран его первую половину.
2) Дано слово,состоящее из четного количества букв. Поменять местами его половины и вывести на экран.
3) Является ли введенное слово поллиндромом?
Заранее СПАСИБО!!!=)
Re: Помогите пожалуйста решить 3 задачи в Паскале!
Добавлено: 22 сен 2008, 12:28
Alex_Burn
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]
Остальные потом посмотрю
Re: Помогите пожалуйста решить 3 задачи в Паскале!
Добавлено: 23 сен 2008, 12:02
YouROK
Первая задача делал в уме так что не проверял.
Код: Выделить всё
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;
Re: Помогите пожалуйста решить 3 задачи в Паскале!
Добавлено: 24 сен 2008, 13:45
Хыиуду
Можно и так
Код: Выделить всё
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;