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

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

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

> Строки
Eichhorn
сообщение 7.01.2011 9:49
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 50
Пол: Женский
Реальное имя: Сафиуллина Алёна

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


Ну, теперь у меня проблемы с задачей на строки.
Задача:
Дана непустая последовательность слов. Слова разделяются пробелами, запятыми. Текст заканчивается символом "*". Написать программу для подсчета количества слов и вывести все слова, отличные от первого слова.

Программу я написать не смогла, тк даже не знаю что там можно использовать. Считать слова-это, можно просто поставить счётчик и когда после последовательности символов встречается пробел, запятая или *-увеличивать его на еденицу. У меня также получилось выделить первое слово. Но я не знаю как можно сравнивать другие слова с ним. Можно поставить оператор if и если слова одинаковые, то удалять с помощью delete. Но как выполнить само сравнение слов? Кто-нибудь может подсказать? Я по форуму попыталась найти, но похожего не встретила...


--------------------
Жизнь похожа на собачью упряжку: если не идёшь впереди, то всё время видишь одно и то же...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Eichhorn
сообщение 14.01.2011 18:34
Сообщение #2


Пионер
**

Группа: Пользователи
Сообщений: 50
Пол: Женский
Реальное имя: Сафиуллина Алёна

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


Спасибо большое! Так даже понятнее) Я сдавала эту задачу, решенную страшекурсниками таким способом:

var
str,s1,outStr :string;
i, s, start:integer;
equal:boolean;
begin

readln(str);
writeln(str);
s := 0;
start:=0;
equal:=true;
for i:=1 to length(str) do
begin
if (str[i] <> ',') and (str[i] <> ' ') and (str[i] <> '*') and (s = 0) then
s1 := s1 + str[i];
if (str[i] <> ',') and (str[i] <> ' ') and (str[i] <> '*') and ((str[i-1] = ',') or (str[i-1] = ' ')) then
start := i;
if (start<>0)and(str[i] <> ',') and (str[i] <> ' ') and (str[i] <> s1[i - start + 1]) then
equal:=false;
if ((str[i] = ',') or (str[i] = ' ') or (str[i]='*')) and ((str[i - 1] <> ',') and
(str[i - 1] <> ' ')) then
begin
inc(s);
if not equal then
outStr:=outStr + copy(str,start,i - start) + ' ';
equal:=true;
end;
if str[i] = '*' then break;
end;
writeln(s);
writeln(outStr);
readln;
end.


повезло, что по ней не спрашивали, иначе этот вышеописанный код вряд ли смогла бы объяснить)


--------------------
Жизнь похожа на собачью упряжку: если не идёшь впереди, то всё время видишь одно и то же...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 



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