//Язык. Паскаля. Язык Паскаля, Карл!
//Pascal ABC.NET v3.1 сборка 1172
Var
a,b,c:integer;
d:boolean;
begin
d:=false;
readln(a);
readln(b);
repeat
c:=a mod 10;
a:=a div 10;
if c=b then d:=true;
until (c=b) or (a=0);
if d=true then writeln('Есть') else writeln('Нет');
end.
<span>Пример ввода:
34457
8
Пример вывода:
Нет
</span>
Function Transform(n:longint):longint;
Var
k,B:longint;
Begin
B:=n;
k:=1;
While B <> 0 do
Begin
k:=k*10;
WriteLn('k = ',k);
B:=B div 10;
End;
if n >= 0 then
Begin
WriteLn('n:= k + n = ',k,' + ',n,' = ',n+k);
WriteLn('n:= 10*n + 1 = ',10*(k+n),' + ',1,' = ',(k+n)*10+1);
Transform:=(k+n)*10+1
End;
End;
Var
A:longint;
Begin
Write('Введите целое число: ');ReadLn(A);
WriteLn(Transform(A))
End.
Вы вводите 2 числа,затем он выведет произведение суммы и разности этих чисел.
Тут нужно перевести число из одной системы счисления в другую. Как это сделать? Легко и просто.
Для начала давай нарисуем таблицу тетрад: пишем сначала в столбик 8 нулей, затем 8 единиц, во втором ряду пишем уже 4 нуля, затем 4 единицы, а потом повторяем эту запись. С третьим и четыертым рядами проделываем такое же действие. Затем каждой тетраде(ряду) присвоим значение цифрами от 0 до 9 и буквами латинского алфавита от А до F. Затем отделим для удобства вложенную в таблицу тетрад таблицу триад. Должна получиться таблица как на рисунке.
Для чего она нам нужна? Для упрощения перевода чисел в системах счисления, основаниями которых являются степени двойки.
Так как перевести числа с одной системы счисления в другую? Например, число 1001001 двоичной системы счисления в десятичную? Начертим над числом справа налево ряд цифр от 0. Затем, умножим каждую цифру в этом числе на основание(2) в степени, которая надписана над этой цифрой и сложим то, что получится(нули пропустим, по понятным причинам):
1 × 2 в 6 + 1 × 2 в 3 + 1 × 2 в 0 = 64 + 8 + 1 = 73
Это что касается перевода с 2-ой в 10-ую.
С 2-ой в 8-ую и в 16-ую переводить гораздо проще. Для этого воспользуемся нашей таблицей. Для перевода в 8-ую нужна таблица триад, для 16-ой - тетрад. Переведем наше число, например, в 8-ую систему. Разбиваем наше число в 2-ой системе на триады. Получаем:
1 | 001 | 001
Первая триада не полная, её можно дополнить нулями, а можно просто знать, что 1 и 001 - одно и тоже. Теперь слева направо сверяемся с таблицой триад и записываем нужную цифру.
001 - это 1. Значит мы получим число 111.
Для 16-ой действия аналогичные, только мы разбиваем на тетрады:
100 | 1001
4 9
49
Для перевода чисел в системах с основаниями степеней двойки в 2-ую, нам поможет все та же таблица. Теперь мы смотрим какой тетради (триаде/диаде) соответствует каждая цифра числа. Например, переведем 49 16-ой в 2-ую:
4 9
01001001
С остальными примерами также проделываем.
В результате должна получиться такая таблица:
*После точки идет основание числа*
Строка 1:
1001001•2
111•8
73•10
49•16
Строка 2:
10101001•2
251•8
169•10
А9•16
Строка 3:
100001000•2
410•8
264•10
108•16
Строка 4:
111000000•2
448•10
700•8
1С0•16
1)8 восемь раз т.к. 8-1+1=8
2)1 один раз т.к.8-8+1=1
3)0 т.к. ошибка
4)2
5)1
6)0