М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Annalmak
Annalmak
24.12.2021 21:16 •  Информатика

Вычислить сумму 1+2+ складывать до тех пор пока сумма не станет больше 1000. вывести сумму и последнее прибавленное число напишите модель, схему и программный код.

👇
Ответ:
dudinaksusha06
dudinaksusha06
24.12.2021
1. Строим математическую модель

1+2+3+... - это арифметическая прогрессия с разностью d, равной единице и первым членом a₁=1.
Сумма n первых членов арифметической прогрессии может быть найдена по формуле S=(2a₁+d(n-1))*n/2.
В нашем случае формула упрощается: S = (2+1(n-1))n/2 = n(n+1)/2
По условию члены прогрессии суммируются, пока сумма не превысит 1000.
Тогда 0.5n(n+1)>1000
n(n+1)>2000; n²+n-2000>0
Найдем минимальное n, удовлетворяющее этому условию.
n²+n+2000=0; D=1+8000=8001; √D ≈ 89.4
n₁=0.5(-1-89.4) < 0 - не устраивает, поскольку n>1
n₂=0.5(-1+89.4) =44.2
Принимаем n=45.
Сумма составит 45(45+1)/2=1035, а последний член равен n, т.е .45

Непонятно, зачем нам составлять программу. Пусть для того, чтобы проверить наше решение, поэтому выберем другой алгоритм.
Будем последовательно наращивать сумму 1+2+3+4 до превышения ей значения 1000. Решение, что называется, "в лоб".

2. Блок-схема приведена во вложении.

3. Программа

// PascalABC.NET 3.3, сборка 1625 от 17.01.2018
// Внимание! Если программа не работает, обновите версию!

begin
  var (s,i):=(0,1);
  while true do begin
    s+=i;
    if s>1000 then begin
      Writeln('S=',s,', последний член ',i);
      exit
      end;
    i+=1
    end
end.

Результат
S=1035, последний член 45

Вычислить сумму 1+2+ складывать до тех пор пока сумма не станет больше 1000. вывести сумму и последн
4,4(29 оценок)
Открыть все ответы
Ответ:
Сначала смотрим на то, что происходит в цикле с переменной а. К ней добавляются по 2 единицы за шаг цикла. Так как программа выводит значение а, равное 4, делаем вывод, что цикл повторится 2 раза.
 Далее посмотрим на условие окончания. Цикл с предусловием while будет выполниться, пока x больше 0, а в самом цикле происходит целочислительное деление x на 1000, что означает "отщепление" от числа по 3 цифры младших разрядов. Из этого следует, что число должно иметь как минимум 4 цифры, чтобы цикл повторился 2 раза.
 Значение b должно быть равно 13. 13 - простое число. Следовательно, равно 1*13. Поставим 13 в левый конец числа, а 1 - в правый. Третий и второй знаки будут равны 0. Таким образом получим число 13001.
ответ: 13001
4,4(8 оценок)
Ответ:
nikita425
nikita425
24.12.2021
//Pascal ABC.NET v3.1 сборка 1219

Const
 n=10;

 Var
 ar:array[1..n] of integer;
 k,i,c:integer;
begin
 randomize;
 writeln('First array:');
 for i:=1 to n do
  begin
   ar[i]:=random(9);
   write(ar[i]:4);
  end;
 writeln;
 write('Enter index:');
readln(k);
 if (k=1) or (n=1) then
   begin
   writeln('Mwahahahaha(no)');
   exit;
  end;
 c:=ar[k+1];
 ar[k+1]:=ar[k-1];
 ar[k-1]:=c;
 writeln('Final array:');
 for i:=1 to n do
  write(ar[i]:4);
end.

Пример работы программы:
First array:
   1   8   4   2   8   5   8   7   1   8
Enter index:3
Final array:
   1   2   4   8   8   5   8   7   1   8
4,8(12 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ