Другие языки программирования и технологии

Множество. ЯП делфи 7

Помогите пожалуйста решить 2 задачки
1. Текст задан строкой. Напечатать все арифметические операции не входящие в текст
2. Дана строка-предложение на русском языке. Зашифровать ее, выполнив циклическую замену каждой буквы на следующую за ней в алфавите и сохраняя при этом регистр букв ("А" перейдет в "Б", "а" — в "б", "Б" — в "В", "я" — в "а" и т. д.) . Букву "ё" в алфавите не учитывать ("е" должна переходить в "ж"). Знаки препинания и пробелы не изменять.
Alex Krot
Alex Krot
787
var
    t, o: string;
    c: integer;
    s: set of char;
begin
    o := '+-*/';
    s := [];
    write('text? ');
    readln(t);
    for c := 1 to length(t) do s := s + [t[c]];
    for c := 1 to length(o) do if not (o[c] in s) then writeln(o[c]);
end.
Galim Tagipov
Galim Tagipov
87 529
Лучший ответ
Alex Krot Спасибо), я так и думал но просто пропустил у себя not....
Шукюр Ахмедов Здрасьте ) Критика не пугает? Вообщем так, мы проходим строку от корочки до корочки, а потом снова проводим поиск по элементам, которые уже прошли... а зачем? если можно
type
znak = ('+', '-', '*', '/')
var
s: set of znak;
k: znak;
c: integer;
begin
write('text? ');
readln(t);
s := ['+', '-', '*', '/'];
for c := 1 to length(t) do exclude(s, t[c]);
for k := Low(znak) to High(znak) do
if (not k in s) then write(k);

не проверял, но должно работать... возможно надо условие добавить типа if(t[c] in s) then exclude(s, t[c]) , но думаю без него тоже должно работать. Блин, как так можно, множества были придуманы, что бы ускорять работу (относительно обычных массивов и строк), а у Вас они её замедляют.
a:='+-*/';
readln(s);
k:=1;
wile k<=length(s) do
if pos(a[k], s)<>0 then
delete(a,k)
else
inc(k);
writeln(a);
Вы шутите? ))
1. не совсем понял условие, но.. . создаём массив арифметических знаков, потому функцией pos ищем каждый из них в строке, а те, которые не находим - выводим
2. создаём строку "А-ЯАа-яа", сами монимаете дефис значит от а до я, а потом ещё а (что бы зациклить) . А потом берём каждый символ строки и функцией pos ищем его в созданной нами строке. Если находим, то берём вместо него пишем следующий по счёту иначе пишем взятый символ (то есть, если не нашли - то и менять не надо) .

Итак, задачи ничего общего с множествами не имеют, а вторую с помощью множеств решить не возможно (по той причине, что в множествах нету порядка следования.. . в множестве можно проверить ТОЛЬКО присутствие и отсутствие элемента) .
Решение писать принципиально не буду, так как задача школьная (по крайней мере по уровню сложности).
Alex Krot спасибо)