Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Function

Автор: Dima 22.02.2007 23:51

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

Без функции я это задание решил, но я еще не понимаю как его правильно прописать в функции. Подскажите плз. А еще лучше покажите...

Автор: Артемий2 23.02.2007 1:34

Вот посмотри:

function SetWord(var s: string): string;
var
len,i,o: Integer;
c: char;
begin
len:=length(s);
c:=s[1];
if (c>='a') and (c<='z') then
begin
SetWord:='';
exit;
end
else
s:=s+' ';
s[len+1]:=c;
Delete(s,1,1);
SetWord:=s;
end;

Автор: volvo 23.02.2007 1:45

Артемий2, 2 вопроса:
1) с чего функция возвращает пустую строку, если 1-ый символ переданной ей строки 'a' .. 'z'? Может, лучше было вернуть исходную строку?
2) 'A' .. 'Z' - уже НЕ буквы латинского алфавита?

Автор: Артемий2 23.02.2007 1:49

Замечательно! Простите! smile.gif

function SetWord(var s: string): string;
var
len,i,o: Integer;
c: char;
begin
len:=length(s);
c:=s[1];
if ((c>='a') and (c<='z')) or ((c>='A') and (c<='Z')) then
begin
SetWord:=s;
exit;
end
else
s:=s+' ';
s[len+1]:=c;
Delete(s,1,1);
SetWord:=s;
end;

Автор: TarasBer 23.02.2007 2:04

Зачем?


s:=s+' ';
s[len+1]:=c;


Может:

s:=s+с;


Автор: Артемий2 23.02.2007 2:30

Компактность! smile.gif

Автор: volvo 23.02.2007 2:36

Ну, раз компактность, то:

function SetWord(s: string): string;
begin
if upcase(s[1]) in ['A' .. 'Z'] then SetWord := s
else SetWord := Copy(s, 2, length(s)) + s[1];
end;

Автор: Артемий2 23.02.2007 2:39

good.gif Крут! good.gif

Автор: Гость 23.02.2007 11:10

Цитата(TarasBer @ 22.02.2007 22:04) *

Зачем?

s:=s+' ';
s[len+1]:=c;


Может:

s:=s+с;



TarasBer, ты правда думаешь, что это эвивалентная замена?

Автор: Lapp 23.02.2007 11:12

Последний пост - мой. Извиняюсь, забыл войти..

Автор: volvo 23.02.2007 13:09

Lapp, да, я тоже так думаю. В чем возражение?

Автор: Гость 23.02.2007 16:19

Цитата(volvo @ 23.02.2007 9:09) *

Lapp, да, я тоже так думаю. В чем возражение?

Да, все верно, извиняюсь. Бес попутал smile.gif. Или перегрев под конец дня..

Автор: Lapp 23.02.2007 16:22

И опять гостем!.. Фу ты ну ты.. Но я же не выходил, вроде.. башка уже ни к черту..
Простите!