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

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

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

 
 Ответить  Открыть новую тему 
> Первые вхождения
18192123
сообщение 5.01.2007 13:26
Сообщение #1


Профи
****

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

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


Дан текст, заканчивающийся точкой. Вывести первые вхождения каждой латинской буквы.
(задача должна решаться с помощью множеств)

Помогите разобраться , что понимается под первыми вхождениями.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 5.01.2007 13:48
Сообщение #2


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


ну допустим текст:
'lala happy new year'
смотришь:
первый символ l, еще не встречался. выводишь.
a - не встречался, выводишь
l- уже был, не выводишь
а - был, не выводишь
h - первый раз встретился, выводишь
а - был
ну и т.д.
в итоге получишь: 'lahpynewr'
(пробелы же не являются латинскими буквами, их не выводим)


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 5.01.2007 14:01
Сообщение #3


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

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

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


Цитата(мисс_граффити @ 5.01.2007 14:48) *

в итоге получишь: 'lahpynewr'

А может, нужны номера позиций первых вхождений?
Типа так:
a - 2
e - 13
h - 6
n - 12
...


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
18192123
сообщение 5.01.2007 14:06
Сообщение #4


Профи
****

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

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


Вот что у меня получилось

uses crt;
var
s, s1 : string;
i : integer;
mn : set of char;
c : char;
begin
clrscr;
repeat
s := '';
repeat
c := readkey;
write ( с );
s := s+c;
until (c = '.')or (c = #13);
writeln;
until c = #13;
s1 := '';
mn := [];
i := 0;
while i <= length(s) do
begin
mn := mn + [s[i]];
inc (i);
if s[i] in mn then writeln ('Error!!!') else
begin
mn := mn+ [s[i]];
s1 := s1 + s[i];
end;
end;
writeln (s1);
readkey;
end.




но у меня получается, что пробелы тоже выводятся. ( а как без них?)
и ещё, не получается учесть самый первый символ текста

Цитата(Lapp @ 5.01.2007 14:01) *

А может, нужны номера позиций первых вхождений?
Типа так:
a - 2
e - 13
h - 6
n - 12
...


вроде нужны именно первые вхождения, и не их позиции

Сообщение отредактировано: 18192123 - 5.01.2007 14:04
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 5.01.2007 14:10
Сообщение #5


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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



...
else
if s[i] in ['a'..'z'] then
begin
mn := mn+ [s[i]];
s1 := s1 + s[i];
end;

это если только строчные рассматривать

Lapp, а зачем тогда множества? хотя, конечно, может быть и так... и множества приделать реально.

Сообщение отредактировано: мисс_граффити - 5.01.2007 14:21


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 5.01.2007 14:15
Сообщение #6


Гость






if upcase(s[i]) in ['A'..'Z'] then
begin
mn := mn+ [upcase(s[i])];
...
- будут рассматриваться любые...
 К началу страницы 
+ Ответить 
Lapp
сообщение 5.01.2007 14:24
Сообщение #7


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

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

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


Цитата(мисс_граффити @ 5.01.2007 15:10) *

а зачем тогда множества? хотя, конечно, может быть и так... и множества приделать реально.

почему приделать?.. вполне по делу, чтобы проверять на первость вхождения smile.gif


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 5.01.2007 14:30
Сообщение #8


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


потому что pos и так возвращает первое... сделать цикл от a до z - и никаких множеств не надо.
или чтобы выводить в порядке "встречания"? но тогда будет не
Цитата
a - 2
e - 13
h - 6
n - 12


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 5.01.2007 14:41
Сообщение #9


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

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

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


Цитата(мисс_граффити @ 5.01.2007 15:30) *

потому что pos и так возвращает первое... сделать цикл от a до z - и никаких множеств не надо.
или чтобы выводить в порядке "встречания"? но тогда будет не

А кто сказал, что "текст, заканчивающийся точкой" есть string? Логично воспринимать это как файл (возможно, с переводами строк), и заодно никаких ограничений на длину (255 в строке) не будет
Относительно порядка - мои фантазии.. smile.gif

Сообщение отредактировано: Lapp - 5.01.2007 14:43


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 5.01.2007 14:48
Сообщение #10


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


Цитата(Lapp @ 5.01.2007 14:41) *

А кто сказал, что "текст, заканчивающийся точкой" есть string? Логично воспринимать это как файл (возможно, с переводами строк), и заодно никаких ограничений на длину (255 в строке) не будет
Относительно порядка - мои фантазии.. smile.gif

согласна.
просто читала по диагонали задание... а потом уже больше ориентировалась на приведенный автором темы код, где вполне четко написано:
Цитата
s, s1 : string;


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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