№ 1. Какие из следующих языков над алфавитом {0, 1} являются регулярными? (несколько вариантов ответа)
1 строки из числа нулей
2 строки из составного числа нулей
3 строки, в которых число единиц сравнимо с числом нулей по модулю n для фиксированного n
4 строки, в которых сумма числа нулей и удвоенного числа единиц делится на n для фиксированного n
5 строки, в любом префиксе которых нулей строго больше, чем единиц
6 строки, начинающиеся на 010 и не являющиеся палиндромами
№ 2.
A — подмножество натуральных чисел.
U = {0^n | n ∈ A}
B = {bin(n) | n ∈ A}, где bin(n) — двоичное представление числа n.
Какие из следующих утверждений верны?
1 Если U — регулярный язык, то и B — регулярный язык.
2 Если B — регулярный язык, то и U — регулярный язык.
Усложнённый вариант(всё работает исправно,при вводе больше или меньше 3 чисел выводится сообщение "Это не трёхзначное число!"):
var
i,a,d:integer;
s:string;
begin
writeln('Введите трёхзначное число ');
read(s);
d:=length(s);
if d<>3 then
write('Это не трёхзначное число!');
if d=3 then
if (s[1]=s[2])or(s[1]=s[3])or(s[2]=s[3]) then
write('Да')
else
write('Нет');
end.
Простой вариант(выводится ошибка если цифр больше или меньше трёх!):
var
i,a,d:integer;
s:string;
begin
writeln('Введите трёхзначное число ');
read(s);
if (s[1]=s[2])or(s[1]=s[3])or(s[2]=s[3]) then
write('Да')
else
write('Нет');
end.
Даю 2 варианта, так-как незнаю,проходили ли вы функцию "length" или нет.
Если нет,то препад заподозрит что вы списали откуда нибудь или вам кто-то подсказал.
1)
var
s: string;
i: integer;
begin
writeln('Введите слово');
readln(s);
for i:= 1 to length(s) do
if i mod 2 = 1 then s[i]:= ' ';
writeln('Полученная строка: ', s);
end.
2)
var
s: string; {Программа определяет только английские буквы x или e, т.к. в задании указаны английские буквы}
i: integer;
xchar, echar: integer;
begin
writeln('Введите строку');
readln(s);
for i:= 1 to length(s) do
begin
if s[i] = 'x' then xchar:= i;
if s[i] = 'e' then echar:= i;
end;
if xchar < echar then writeln('буква "x" встретилась раньше');
if echar < xchar then writeln('буква "e" встретилась раньше');
if (echar = 0) or (xchar = 0) then writeln('одна из букв "x" или "e" не встретилась');
end.
3-е задание вообще непонятно. Произведение каких цифр описать содержание задания подробнее.