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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.06.2015, 20:35   #1
Гарри
Пользователь
 
Регистрация: 11.06.2015
Сообщений: 30
По умолчанию Множества: Дана строка, состоящая из букв и цифр. Получить две новые строки, одна из которых содержит только буквы,другая - цифры

Помогите решить:
Дана строка, состоящая из букв и цифр. Получить две новые строки, одна из которых содержит только буквы, другая только цифры.

Последний раз редактировалось Вадим Мошев; 12.06.2015 в 14:26.
Гарри вне форума Ответить с цитированием
Старый 12.06.2015, 05:50   #2
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Код:
var s,s1,s2:string;
    i:integer;
begin
   Readln(s);
   s1:='';
   s2:='';
   For i:=1 to Length(s) do
      If (s[i]>='0') and (s[i]<='9') then
         s1:=s1+s[i] else
         s2:=s2+s[i];
   Writeln(s1);
   Writeln(s2);
   Readln;
end.
Сойдет?
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 07.11.2015, 21:55   #3
Гарри
Пользователь
 
Регистрация: 11.06.2015
Сообщений: 30
По умолчанию

Данная задача на множества
Гарри вне форума Ответить с цитированием
Старый 07.11.2015, 22:01   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Ну и используй их
if s[i] in ['0'..'9'] then ... else ...
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 07.11.2015, 22:22   #5
Гарри
Пользователь
 
Регистрация: 11.06.2015
Сообщений: 30
По умолчанию Множества:Дана строка.

Я сделал так
Код:
uses crt;

var A,B:set of Char;s:string;i:integer;c:char;
begin
clrscr;
writeln('Введите строку');;
readln(s);
A:=[]
for i:=1 to length(s) do
include(A,s[i]);

B:=[];

 
 if '0' in A then B:=B+['0'];
 if '1' in A then B:=B+['1'];
 if '2' in A then B:=B+['2'];
 if '3' in A then B:=B+['3'];
 if '4' in A then B:=B+['4'];
 if '5' in A then B:=B+['5'];
 if '6' in A then B:=B+['6'];
 if '7' in A then B:=B+['7'];
 if '8' in A then B:=B+['8'];
 if '9' in A then B:=B+['9'];

A:=A-B;
      writeln('множество букв');
for c:=#1 to #255 do
      if c in A then
      
      write(c);
      writeln;
      writeln('множество цифр');
for c:=#1 to #255 do
      if c in B then
      
      write(c); 
      writeln;
      
end.
Но если вводишь одинаковые буквы или цифры они выводятся как одна и программа работает только с латинскими буквами

Последний раз редактировалось Stilet; 08.11.2015 в 08:27.
Гарри вне форума Ответить с цитированием
Старый 07.11.2015, 22:28   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

да переделай из поста #2 одну команду. Вместо
Код:
If (s[i]>='0') and (s[i]<='9') then
         s1:=s1+s[i] else
         s2:=s2+s[i];
напиши
Код:
If s[i] in ['0'..'9'] then s1:=s1+s[i] else s2:=s2+s[i];
то in и есть использование множеств. Твой способ не в дугу, проблему не решит
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 07.11.2015 в 22:58.
Аватар вне форума Ответить с цитированием
Старый 07.11.2015, 22:34   #7
Гарри
Пользователь
 
Регистрация: 11.06.2015
Сообщений: 30
По умолчанию Множества:Дана строка.

Одного in не маловато будет
Гарри вне форума Ответить с цитированием
Старый 07.11.2015, 22:39   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Не знаю, у преподавателя спроси. Для меня бы хватило
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 07.11.2015, 22:54   #9
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Дык одним можно обойтись. Строка же не имеет символов отличных он букв и цифр
В сете ковычки забыли, кстати
Poma][a вне форума Ответить с цитированием
Старый 07.11.2015, 22:59   #10
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
ковычки забыли, кстати
Точно, подправил
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Pascal ABC. Множества. Сформировать два множества из M и N элементов случайным образом. powersej Паскаль, Turbo Pascal, PascalABC.NET 0 13.12.2012 21:08
Pascal ABC. Множества. Сформировать два множества из M и N элементов случайным образом. powersej Помощь студентам 0 13.12.2012 20:58
Сравнить мощность множества, состоящего из чисел от 1 до N с мощностью множества, состоящего из отрицательных элементов вектора В MaSS93 Паскаль, Turbo Pascal, PascalABC.NET 5 24.05.2012 20:04
Через множества заданы сорта роз,выращиваемых цветоводами. Ввод множества с клавиатуры,сравнение множеств BAMbarBIO Паскаль, Turbo Pascal, PascalABC.NET 5 31.05.2011 13:17
множества Walter Помощь студентам 4 03.05.2009 15:38