<u>// PascalABC.NET 3.3, сборка 1600 от 23.12.2017</u>
<u>// Внимание! Если программа не работает, обновите версию!</u>
begin
var r:integer;
var x:real;
while true do begin
Write('Выберите тип единицы длины:',NewLine,
'1-дециметр, 2-километр, 3-метр, 4-миллиметр, 5-сантиметр, 0-выход.' );
Read(r);
if r=0 then begin Writeln('Пока!'); Exit end;
Write('Введите длину в этой единице: '); Read(x);
case r of
1:Writeln(x, ' дм = ',10*x,' см = ',100*x,' мм = ',x/10,' м = ',
x/10000,' км');
2:Writeln(x, ' км = ',1000*x,' м = ',10000*x,' дм = ',100000*x,' см = ',
x*1000000,' мм');;
3:Writeln(x, ' м = ',10*x,' дм = ',100*x,' см = ',x*1000,' мм = ',
x/1000,' км');
4:Writeln(x, ' мм = ',x/10,' см = ',x/100,' дм = ',x/1000,' м = ',
x/1000000,' км');
5:Writeln(x, ' cм = ',10*x,' мм = ',x/10,' дм = ',x/100,' м = ',
x/100000,' км');
end
end
end.
<span>Любознательный малыш
Взял компьютерную мышь</span><span>И кричит:
«Борис, Борис!
Кушай мышку,
Кис-кис-кис!»
Кот из кухни прибежал,
Мышь понюхал и сказал:
«Кушай сам её, глупыш,
<span> Мне нужна живая мышь!»
</span></span><span>***
На компьютерную мышку
Виртуальный смотрит кот,
Виртуальными когтями
Изнутри экран скребёт.
Но коту послала мышка
Мэйл:
СОБАКА
ТОЧКА
Р – Р – У -У!
Испугался кот-трусишка
И удрал в свою игру.</span>
»
Разберем оператор по шагам. Обозначим Т - промежуточный результат операции.
y:= round(y*(7 div 4) mod 7/3)/y - trunc(0.724);
1) T:= 7 div 4 ⇒ T:=1, тип T целочисленный.
2) T:=y*T, тип Т определяется типом y.
3) T:=T mod 7, в операции mod операнды могут быть только целочисленными, следовательно, тип у в 2) может быть только целочисленным, иначе мы получим на данном шаге ошибку. Результат операции - Т целочисленного типа.
4) T:=T/3; T - вещественного типа.
5) T;=round(T); T - целочисленного типа.
6) T:=T/y, T - вещественного типа.
7) Trunc(0.724)
вернет 0 целочисленного типа.
8) Т:=T-0 не изменит значения и типа Т: Т по-прежнему остается вещественным.
9) y:=T; для корректного присваивания y должен иметь вещественный тип, но это, как указано в 3), вызовет ошибку при выполнении 2).
Итог: оператор недопустим и будет отмечен ошибочным при компиляции.
110111-10101=100010
1100111*1011=1013212221