В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
мозг302
мозг302
19.03.2023 05:12 •  Информатика

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

Показать ответ
Ответ:
Lizo4ka20061
Lizo4ka20061
18.09.2020 08:03
Странноватая задача, конечно. Естественно, что в множестве нет порядка элементов, использование процедур (функций) здесь совершенно ни к чему. Если учитывать все требования, то получится весьма корявая программа. Примерно вот такая:
var s,s1:string; i:integer;
mn:set of 'a'..'z';
function f(c:char;m:set of 'a'..'z'):boolean;
begin
f:=(not (c in m))and(c in ['a'..'z'])
end;
begin
writeln('Введите строку:');readln(s);
mn:=[];s1:='';
for i:=1 to length(s) do
 if f(s[i],mn) then
  begin
   mn:=mn+[s[i]]; s1:=s1+s[i];
end;
writeln(s1);
end.

Пример работы:
Введите строку:
this is an example text.
thisanexmpl
0,0(0 оценок)
Ответ:
карамакфин
карамакфин
18.09.2020 08:03
Напишу "современный" вариант решения. Хотя бы для того, чтобы показать, насколько современные решения задач в том же паскале ушли вперед по сравнению с тем временем когда придумывались эти задачи...

// PascalABC.NET 3.0, сборка 1088
begin
  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, сборка 1088
var
  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}
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота