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

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

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

 
 Ответить  Открыть новую тему 
> Множества, задача на повторяющиеся элементы, Решение без массива...Как?!
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


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

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

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


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

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


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


Гость






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

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

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


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

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

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


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

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


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

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

 





- Текстовая версия 2.09.2025 2:35
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name