• Дан текст из строчных латинских букв, за которыми следует точка. Включить в множество первые вхождения букв в текст, сохраняя их исходный взаимный порядок.Pascal.Решить с использованием процедур

Ответы 10

  • Множества в Турбо Паскаль изначально были организованы на битовой шкале длиной 8 байт (что и повлияло на ограничение мощности множества размером 256 элементов). Такая реализация определяла порядок следования элементов множества на основании некоей хеш-функции, отображающей позицию включаемого элемента на [0;255]. В современных "паскалях" множество реализуется другими способами и в случае использования динамических массивов, либо списков, исходный порядок включения элементов может сохраняться.
    • Автор:

      hulknkf0
    • 6 лет назад
    • 0
  • Но это особенность реализации и её нельзя требовать при программировании работы со множеством.
    • Автор:

      noel89
    • 6 лет назад
    • 0
  • Увы, я таких подробностей не знаю.
  • Теперь знаете)))
  • "Ты написал какой-то Inc и переменную double, а мы это не проходили, двойка!" - такой учитель являет печальное зрелище.
    • Автор:

      huff
    • 6 лет назад
    • 0
  • Вы, как всегда, правы. Только вот в то, что за Inc и double учителя ставят двойки как-то не очень верится. Хотя, может быть, и такое бывает. Вначале страшно ученикам признаваться, что что-то не знаешь, но потом это проходит.
    • Автор:

      callie21
    • 6 лет назад
    • 0
  • Это не моя фантазия, знакомые рассказывали. Да что далеко ходить, тут у нас есть такой старшеклассник, которого учительница информатики гоняет за любое отклонение от Турбо Паскаля. Хотите пообщаться? Дам ссылку на его профиль...
    • Автор:

      lala8xmr
    • 6 лет назад
    • 0
  • Все, наверное, может быть. Но все-таки, не все так однозначно. Если ученик/студент использует в программе Inc, double и т.д., но при этом понятия не имеет что это такое, то учитель вполне может поставить 2 хотя бы за списывание. Я не против списывания (иначе что я тут вообще делаю?), однако настаиваю, что в этом списанном надо хотя бы немного разобраться.
  • А тут нет даже повода для разногласий. Однозначно тот, кто использует те или иные конструкции, должен знать все необходимое о них. А иначе- вердикт: "списано!" и закономерные "два балла".
  • Напишу "современный" вариант решения. Хотя бы для того, чтобы показать, насколько современные способы решения задач в том же паскале ушли вперед по сравнению с тем временем когда придумывались эти задачи...// PascalABC.NET 3.0, сборка 1088begin  var s:=ReadString('Введите строку: ');  var MySet:=s.Where(x->x in ['a'..'z']).Distinct;  Writeln(MySet)end.Тестовое решение:Введите строку: this is an example text.[t,h,i,s,a,n,e,x,m,p,l]А вот если воспользоваться "традиционной" работой с множеством, исходный порядок следования символов будет нарушен:// PascalABC.NET 3.0, сборка 1088var  MySet:set of char;procedure AddToSet(s:string; var pSet:set of char);begin    foreach var c in s do    if c in ['a'..'z'] then Include(pSet,c)end;begin  var s:=ReadString('Введите строку: ');  AddToSet(s,MySet);  Writeln(MySet)end.Тестовое решение:Введите строку: this is an example text.{n,e,m,l,t,s,a,i,h,p,x}
    • Автор:

      kenya6nw0
    • 6 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years