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

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

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

 
 Ответить  Открыть новую тему 
> Множества, задача на повторяющиеся элементы, Решение без массива...Как?!
Clerick
сообщение 5.03.2006 11:46
Сообщение #1


студент..
***

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

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


Помогите решить задачу!!!
Нужно составить программу, которая будет искать в множестве повторяющиеся болле 2-х раз элементы и выводить их на экран!!!
Есть решение через массивы на примеры строки букв, но училка сказала, что можно и без них как??? blink.gif

uses crt;
const n=255;
type alarm=set of char;
var c: array [1..255] of integer;
a:alarm;
s:string [25];
i,j:integer;
begin
clrscr;
readln(s);
for i:=1 to n do
for j:=1 to length(s) do
begin
if s[j]=chr(i) then c[i]:=c[i]+1;
end;
for i:=1 to n do
if c[i]>=2 then a:=a+[chr(i)];
for i:=1 to n do
if chr(i) in a then write (chr(i));
end.


Заранее спасибо!!!


--------------------
После дождя обязательно выглянет солнце)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 5.03.2006 11:53
Сообщение #2


Гость






Цитата
искать в множестве повторяющиеся болле 2-х раз элементы
Трудно искать черную кошку в темной комнате... blink.gif Особенно если ее там НЕТ и быть не может (как и двух одинаковых элементов в множестве).

Вариант:
var
i, j, count: integer;
s, rs: string;

begin
readln(s);

rs := '';
for i := 1 to length(s) do
if pos(s[i], rs) = 0 then begin
count := 0;
for j := 1 to length(s) do
if s[i] = s[j] then inc(count);

if count > 1 then rs := rs + s[i];
end;
writeln(rs);
end.
 К началу страницы 
+ Ответить 
Clerick
сообщение 5.03.2006 12:31
Сообщение #3


студент..
***

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

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


Извиняюсь за некорректное условие. Нужно в строке отыскать одинаковые символы!!!
А Что такое inc(count)??? blink.gif

Сообщение отредактировано: Clerick - 5.03.2006 12:41


--------------------
После дождя обязательно выглянет солнце)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 5.03.2006 12:43
Сообщение #4


Гость






То же самое, что
Count := Count + 1;

Так больше нравится?

Цитата
Нужно в строке отыскать одинаковые символы!!!
Судя по твоей программе - нужно отыскать символы, встречающиеся более одного раза...
 К началу страницы 
+ Ответить 
Clerick
сообщение 5.03.2006 12:50
Сообщение #5


студент..
***

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

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


Ну да!!! Опять некорректность... wink.gif Спасибо за помошь!!! smile.gif smile.gif smile.gif

Сообщение отредактировано: Clerick - 5.03.2006 12:50


--------------------
После дождя обязательно выглянет солнце)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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