IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> задачка на строки, ну как сказать
Ученик
сообщение 23.12.2008 0:17
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 17
Пол: Мужской

Репутация: -  0  +


кароче
Найти самое длинное слово в предложении, преобразовать его в предложении - поменять порядок следования букв на обратный.
Вот чо у меня вышло

var
a,so:string[30];
c,b,i,k:integer;
buf:char;
begin
readln(so);
writeln(so);
a:='';
for i:=1 to length(so) do begin
inc(k); if (so[i]=' ') or (i=length(so)) then begin
if length(copy(so,i-k+1,k))>length(a) then a:=copy(so,i-k+1,k); k:=0;
end;
end;
writeln(a);
c:=length(a);
b:=pos(a,so);
k:=1;
for i:= b to b+(c div 2) do begin
inc(k);
buf:=so[i];
so[i]:=so[b+c-k];
so[b+c-k]:=buf;
end;
writeln(so);
readln;
end.

прастите не умею оформлять их
М
- выдели код блоком и выбери нужный пункт в меню CODE над окном ввода
Lapp



1)как сделать штобы в длину слов не входили запятые или точки?
2)упростить какнить можно?(меня терзают сомнения, што я наворотил лишнего)
Спасибо
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 23.12.2008 0:47
Сообщение #2


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Ученик @ 23.12.2008 0:17) *
1)как сделать штобы в длину слов не входили запятые или точки?
Сделай множество символов и присвой ему значения всех разделителей:
var
Separators: set of char;
...
Separators:=[' ',',','.','!','?',';',':']; // добавь сам, что еще нужно

Дальше, вместо сравнения с пробелом вставь проверку на наличие в этом множестве:
if (so[i] in Separators) or (i=length(so)) then


Добавлено через 7 мин.
Можно наоборот, проверять не является ли сивол разделителем, а является ли он буквой. Это тоже можно сделать через множество.

var
Letters: set of char;
...
Letters:=['A'..'Z']+['a'..'z'];


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 18:41
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"