В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
Сергейtrek9
Сергейtrek9
11.09.2020 08:08 •  Информатика

Написать программу в паскале, которая определяет сумму натуральных чисел кратных 3 и оканчивающихся на 6. последнее число последовательности 0. количество чисел не превышает 1000. количество введённых чисел неизвестно.

Показать ответ
Ответ:
АГОСЯ
АГОСЯ
05.10.2020 17:26
Поскольку тут речь о последовательности неизвестной длины, вводимой с клавиатуры до появления нуля, а условие позволяет для каждого вводимого числа сразу решить, должно ли оно входить в сумму, задача решается без использования массива и условие "Количество чисел не превышает 1000" - это просто ловушка для наивных с тем, чтобы в случае использования массива длиной 1000 объявить затем решение неэффективным по памяти.

1. Решение на современной версии Паскаля
PascalABC.NET 3.2, сборка 1389 от 01.03.2017
Внимание! Если программа не работает, обновите версию!

begin
  var s:=ReadSeqIntegerWhile(n->n<>0)
      .Where(n->(n mod 3=0) and (n mod 10=6)).Sum;
  Writeln('Сумма отобранных чисел равна ',s)   
end.

Пример
15 36 26 72 25 96 83 0
Сумма отобранных чисел равна 132

2. Решение "по-школьному"

var
  n,s:integer;
begin
  s:=0;
  repeat
    Read(n);
    if (n mod 3=0) and (n mod 10=6) then s:=s+n
  until n=0;
  Writeln('Сумма отобранных чисел равна ',s)
end.

Пример
15 36 26 72 25 96 83 0
Сумма отобранных чисел равна 132
0,0(0 оценок)
Ответ:
Браснуев21
Браснуев21
05.10.2020 17:26
Uses crt;
var  n, i, s: integer; 
a: array [1..1000] of integer;
begin  writeln('Введите количество чисел последовательности');
read(n); 
s := 0; 
writeln('Введите числа'); 
for i := 1 to n do 
begin  
read(a[i]);   
a[n] := 0; 
end; 
writeln(); 
for i := 1 to n do   
write(a[i], ' '); 
writeln(); 
for i := 1 to n do   
s := s + a[i]; 
writeln('Сумма=', s);
end.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота