Помощь - Поиск - Пользователи - Календарь
Полная версия: Задачка на множества
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Buka
Надо задать с клавиатуры 3 множества целых чисел, ввод элементов множества продолжать до нажатия клавиши z. unsure.gif
Ozzя
А в чем проблема-то? Как ввести с клавиатуры? Или как занести элемент во множество?
Buka
не могу сообразить тип множества, вот смотри целые числа эт byte, а вот до клавиши z продолжать ввод элементов эт char, вот и проблема в несоответствии типов( и мозгов не хватает((
Client
Читаешь символ. Если 'z' то выходишь из цикла, если нет, проверяешь на символы '0'..'9' потом преобразуешь в число процедурой val и добавляешь в множество(еще сделай проверку на диапазон)
Buka
Цитата(Client @ 25.05.2009 20:13) *

Читаешь символ. Если 'z' то выходишь из цикла, если нет, проверяешь на символы '0'..'9' потом преобразуешь в число процедурой val и добавляешь в множество(еще сделай проверку на диапазон)

ну эт типа while true do begin
if t='z' then breake else
if t='0' or t='1' or t='2' or t='3' or t='4' or t='5' or t='6' or t='7' or t='8' or t='9' then x1:=x1+[t];
так??
А дальше как?
Client
repeat
   read(ch);
   if ch in['0'..'9'] then begin
      val(ch,a,kod_error);
      mn:=mn+[a] //mn:set of byte
   end;
until ch='z'
У меня паскаля нету, так что проверяй, писал тут
Buka
Спасибо) Щас проверю
volvo
Цитата
   if ch in['0'..'9'] then begin
      val(ch,a,kod_error);
      mn:=mn+[a] //mn:set of byte
   end;
Совершенно аналогично:
if ch in['0'..'9'] then mn := mn + [Ord(ch) - Ord('0')];
да еще и переменная не нужна... Только сдается мне - это не совсем то, что надо по заданию. Так можно вводить только числа 0 .. 9, двухзначные и трехзначные - уже выпадают, хотя во множестве Byte-ов они могут присутствовать...
Client
Можно ввести как строку, удалить все что стоит после буквы z и выделять группы цифр из строки, переводя в число и удаляя их из строки
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.