Ещё 1500 лет назад для облегчения вычислений стали использовать счёты. В 1642 г. Блез Паскаль изобрёл устройство, механически выполняющее сложение чисел, а в 1694 г. Готфрид Лейбниц сконструировал арифмометр, позволяющий механически производить четыре арифметических действия.
Первая счетная машина, использующая электрическое реле, была сконструирована в 1888 г. американцем немецкого происхождения Германом Холлеритом и уже в 1890 г. применялась при переписи населения. В качестве носителя информации применялись перфокарты. Они были настолько удачными, что без изменений просуществовала до наших дней.
Первой электронной вычислительной машиной принято считать машину ENIAC (Electronic Numerical Integrator and Computer - электронный числовой интегратор и вычислитель), разработанную под руководством Джона Моучли и Джона Экера в Пенсильванском университете в США. ENIAC содержал 17000 электронных ламп, 7200 кристаллических диодов, 4100 магнитных элементов и занимал площадь в 300 кв. метром. Он в 1000 раз превосходил по быстродействию релейные вычислительные машины и был построен в 1945 г.
Производительность современных ПК больше, чем у суперкомпьютеров, сделанных десять лет назад. Поэтому через несколько лет обыкновенные персоналки будут работать со скоростью, которой обладают современные супер ЭВМ. Кстати, в январе 1999 г. самым быстрым был компьютер SGI ASCI Blue Mountain. По результатам тестов Linpack parallel его быстродействие равнялось 1,6 TFLOPS (триллионов операций с плавающей точкой в секунду).
Объяснение:
Количество зёрен на клетке будет равно 2^(N-1)
Тут сказано использовать переменную типа integer, при этом надо помнить, что максимальный номер клетки, который можно задавать равен 31 (для номеров выше будет либо ошибка, либо неверный ответ).
Чтобы считать зерно вплоть до последней, 64-ой клетки шахматной доски- надо менять тип на uint64 либо BigInteger (но, они не везде доступны да и программу надо будет править).
Вариант с циклом loop (в нём задаётся число повторов)
function Zern2(a: integer): integer;
begin
Result := 1;
loop a-1 do
Result := Result * 2;
end;
begin
var n,m: integer;
write('Введите номер клетки: ');
Read(n);
m:=Zern2(n);
write('Зёрен на этой клетке: ',m,' шт.');
end.
Вариант с циклом while:
function Zern2(a: integer): integer;
begin
Result := 1;
while a>1 do
begin
Result := Result * 2;
a := a - 1;
end;
end;
begin
var n,m: integer;
write('Введите номер клетки: ');
Read(n);
m:=Zern2(n);
write('Зёрен на этой клетке: ',m,' шт.');
end.
Вариант без цикла:
function Zern2(a: integer): integer;
begin
Result := Trunc(power(2,a-1));
end;
begin
var n,m: integer;
write('Введите номер клетки: ');
Read(n);
m:=Zern2(n);
write('Зёрен на этой клетке: ',m,' шт.');
end.