Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.01.2014, 22:10   #1
adaptes
Пользователь
 
Регистрация: 04.12.2013
Сообщений: 25
По умолчанию множественные типы данных (delphi)

пожалуйста помогите!
как сделать так чтобы программа выдавала только те символы, которые входят в множество, 1 раз. то есть сейчас программа выдает все символы введенные пользователем, а нужно чтобы выдавала только по 1 символу
Код:
program laba9;
{$APPTYPE CONSOLE}
uses
  SysUtils,
  windows,
  math;

const mnog=['3'..'9','A'..'F',':','!','.',';','?','&'];
var stroka:string;
s: set of char;
i:integer;
begin
setconsoleoutputcp(1251);
write('Введите строку произвольных символов: ');
readln(stroka);
writeln;
write('Символы строки входящие в множество: ');
for i:=1 to length(stroka) do
begin
if stroka[i] in mnog then include(s,stroka[i]);
if stroka[i] in s then write(stroka[i]);
end;
readln;
end.
adaptes вне форума Ответить с цитированием
Старый 07.01.2014, 22:36   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Предлагаю так:
Код:
for i:=1 to length(stroka) do
begin
 if stroka[i] in mnog then include(s,stroka[i]);
end;
for c:=#0 to #255 do if c in s then write(c);
Где с:char;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.01.2014, 14:25   #3
adaptes
Пользователь
 
Регистрация: 04.12.2013
Сообщений: 25
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Предлагаю так:
Код:
for i:=1 to length(stroka) do
begin
 if stroka[i] in mnog then include(s,stroka[i]);
end;
for c:=#0 to #255 do if c in s then write(c);
Где с:char;
все равно не получается
adaptes вне форума Ответить с цитированием
Старый 08.01.2014, 14:40   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Да прям не получается. Добавь var s: TSysCharSet; c: Char;
можно и s: set of char; оставить, не заметил

и перед первым циклом s:=[];
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 08.01.2014 в 14:43.
Аватар вне форума Ответить с цитированием
Старый 08.01.2014, 17:55   #5
adaptes
Пользователь
 
Регистрация: 04.12.2013
Сообщений: 25
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Да прям не получается. Добавь var s: TSysCharSet; c: Char;
можно и s: set of char; оставить, не заметил

и перед первым циклом s:=[];
спасибо большое! но что значит строчка: s:=[];
и как сделать чтобы символы выводились в порядке их ввода
adaptes вне форума Ответить с цитированием
Старый 08.01.2014, 18:06   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
s:=[]; //присвоили пустое множество
for i:=1 to length(stroka) do
  if stroka[i] in mnog then begin
    if not (stroka[i] in s) then write(stroka[i]);
    include(s,stroka[i]);
  end;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 08.01.2014, 18:14   #7
adaptes
Пользователь
 
Регистрация: 04.12.2013
Сообщений: 25
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Код:
s:=[]; //присвоили пустое множество
for i:=1 to length(stroka) do
  if stroka[i] in mnog then begin
    if not (stroka[i] in s) then write(stroka[i]);
    include(s,stroka[i]);
  end;
но зачем пустое множество присваивать, объясните пожалуйста
adaptes вне форума Ответить с цитированием
Старый 08.01.2014, 18:19   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Для инициализации чтоб исключить мусор перед циклом в множестве.
Это не то чтобы необходимость, но признак хорошего тона.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Типы данных Renge Помощь студентам 1 29.10.2012 12:53
множественные типы данных Миша_misha Паскаль, Turbo Pascal, PascalABC.NET 1 06.03.2012 10:27
Типы данных в Delphi. Ввод, вывод данных в Delphi Dark Raven Помощь студентам 1 06.12.2011 11:38
Delphi: ошибка - типы данных Sianessa Помощь студентам 20 20.11.2010 00:15