// PascalABC.NET 3.0, сборка 1157 от 02.02.2016 begin var n:=ReadInteger('n='); if n<0 then Writeln(n,'! не определено: n<0') else if n=0 then Writeln('0!=1') else begin var p:BigInteger:=1; for var i:=2 to n do p*=i; Writeln(n,'!=',p) end end.
Информационный поток - процесс передачи информации от одного объекта другому.При этом информация может видоизменяться, кодироваться, преобразововаться из одного вида сигналов в другие.Основные устройства компьютера - клавиатура, мышь, монитор, видео плата, процессор, ОЗУ, контроллеры, запоминающие устройства(накопители).Процессор это сердце компьютера, главный наблюдатель в процессе информационных потоков компьютера.При включении процессор инициирует процесс загрузки программ из накопителей в озу, он просит котроллеры чтобы поток данных загружался напрямую, по возможности, из накопителей в ОЗУ, минуя внутреннюю память процессора.Время от времени он опрашивает устройства ввода, мышь клавиатуру, на предмет сигналов, в которых закодированны нажатые кнопки, позиции курсора, итд... Если процессор зависнет, зациклится, то нажатия на кнопки не приведут ни к чему,т.к эти устройства никто не опрашивает.Программы, выполняющиеся на процессоре, могут "попросить" процессор выводить информацию на монитор, подавая комманды.Обрабатывая эти комманды процессор, отправляет данные в видео плату, или в котроллер видеоплаты.Видеоплата, получая данные из процессора в свой видео буфер, преобразует их в аналого-цифровой формат для подачи уже в монитор через кабель.
begin
var n:=ReadInteger('n=');
if n<0 then Writeln(n,'! не определено: n<0')
else
if n=0 then Writeln('0!=1')
else begin
var p:BigInteger:=1;
for var i:=2 to n do p*=i;
Writeln(n,'!=',p)
end
end.
Тестовое решение:
n= 138
138!=691778647261948849222819828311491035886734385827028118707676848307166514238979223884785249055995983385450621636277440066920043595627074569065446040152660143904127838730788278294186615891819670506731208704000000000000000000000000000000000