program amountnumbers3;
var
quantity, amount, number, counter: integer;
begin
counter := 0;
amount := 0;
write('Введите количество чисел: ');
read(quantity);
while counter <> quantity do
begin
read(number);
if (number mod 3 = 0) then
inc(amount, number);
inc(counter);
end;
write('Сумма чисел, кратных 3 = ', amount);
end.
Объяснение:
program amountnumbers3; // Название программы
var
quantity, amount, number, counter: integer; // Создание целочисленных переменных:
quantity - количество чисел в последовательностиamount - сумма чисел, кратных 3number - числа - переменная счетчикbegin // Начало программы
counter := 0; // Переменная счетчик = 0
amount := 0; // Переменная, хранящая сумму = 0
write('Введите количество чисел: '); // Вывод сообщения в консоль
read(quantity); // Считывание количества чисел в последовательности с клавиатуры
while counter <> quantity do // Пока значение переменной counter ≠ значению переменной quantity, выполняй
begin // Начало цикла
read(number); // Считываем число последовательности с клавиатуры
if (number mod 3 = 0) then // Если остаток от деления при делении значения переменной number на 3 = 0, тогда
inc(amount, number); // Увеличиваем значение переменной amount на number
inc(counter); // Увеличиваем значение переменной counter на единицу
end; // Конец цикла
write('Сумма чисел, кратных 3 = ', amount); // Вывод ответа
end. // Конец программы
ОбъяснениеВ языке Паскаль описатель типа integer требует выделить под каждую переменную или элемент массива количество памяти, необходимое для размещения чисел из диапазона , т.е. отвести не менее двух байт, что и выполнялось в ранних системах, таких как Turbo Pascal, созданных во времена дорогой оперативной памяти. В современных разработках может выделяться и большее количество байт, например, в PascalABC.Net под переменную типа integer отводится 4 байта.
Описатель array [1..20] of integer требует отвести память под 20 элементов типа integer, следовательно, если говорить о минимально необходимом количестве байт, то ответом будет в) 20, 40.
А для PascalABC.Net ответ должен быть 20, 80
Подробнее - на -