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

Предприниматель вложил деньги в банк под 5 % годовых и хочет узнать, через сколько лет он накопит определённую сумму. Напишите программу, которая запрашивает на ввод сумму начального вклада, сумму конечного вклада и выводит на экран одно число — сколько лет пройдёт до накопления.

Накопление вклада.
Смысл заработка на вкладе денег заключается в том, что банк платит вкладчику определённый денежный процент за право пользоваться его деньгами.
Доход от вклада рассчитывается таким образом: сумма вклада + сумма вклада * процент / 100. Таким образом, вклад ежегодно увеличивается на величину процента от имеющейся на данный момент суммы денег.

Язык: Python​

👇
Ответ:
Py4KaJKJLACC
Py4KaJKJLACC
18.02.2023

balance = float(input("Сумма вклада: "))

target = float(input("Цель: "))

years = 0

while balance < target:

   balance = balance + balance * 5 / 100

   years = years + 1

print(years)

4,6(47 оценок)
Ответ:

Алгоритм:

Составим математическую модель. Заметим, что каждый раз текущая сумма умножается на некоторое число k=1+\dfrac{r}{100}, где r — процент. То есть начальная сумма вклада S и конечная сумма вклада F связаны следующим отношением: S\cdot k^x=F, где x — срок вклада. Его можно выразить следующим образом:

k^x=\dfrac{F}{S}\\x=\log_{k}{\dfrac{F}{S}}

Если результат получается не целым, нужно округлять вверх, иначе сумма будет недоставать от необходимой.

Защиту от дурака, например, проверка на 0, отрицательные значения, делать не будем, считаем, что все данные введены корректно.

Программа:

from math import log, ceil

start_s = float(input())

finish_s = float(input())

k = 1.05 #percent

print(ceil(log(finish_s / start_s, k)))

4,8(49 оценок)
Открыть все ответы
Ответ:
matvee1
matvee1
18.02.2023
Если элементы массива идут по возрастанию, то вот так

program wstawka;
uses crt;
const min=1;
max=20;
type zona=min..max;
massiw=array[zona] of integer;
var mas:massiw;
i,j:zona;
a,N,M:integer;
T:boolean;
BEGIN randomize;
clrscr; N:=random(20);
writeln('4ucJlo N = ',N);
 M:=random(20); Writeln('4ucJlo M = ',M);
for i:=min to max-2 do
begin
mas[i+1]:=mas[i]+random(5);
write(mas[i],' ');
end;
for i:=min to max-2 do
if (mas[i]>N) and (t=false) then
begin
t:=true;
a:=mas[i];
mas[i]:=N;
for j:=i+1 to max do
begin
N:=mas[j];
mas[j]:=a;
a:=N;
end;
end;
for i:=min to max-1 do
if (mas[i]>M) and (t=true) then
begin
t:=false;
a:=mas[i];
mas[i]:=M;
for j:=i+1 to max do
begin
M:=mas[j];
mas[j]:=a;
a:=M;
end;
end;
writeln;
for i:=min to max do
write(mas[i],' ');
readkey;
END.
4,7(52 оценок)
Ответ:
nikitagarin2
nikitagarin2
18.02.2023
1. Вот так сейчас решают подобные задачи:

// PascalABC.NET 3.1, сборка 1174 от 22.02.2016
begin
  Writeln(Range(1,100).Select(i->sin(i)*cos(i)).Where(x->x<>0).Average)
end.

Тестовое решение:
-0.00136006072493969

2. А вот так учат писать это же школьные учителя:

// PascalABC.NET 3.1, сборка 1174 от 22.02.2016
var
  m:array[1..100] of real;
  i,k:integer;
  s:real;

begin
  s:=0;
  k:=0;
  for i:=1 to 100 do begin
    m[i]:=sin(i)*cos(i);
    if m[i]<>0 then begin
      s:=s+m[i];
      k:=k+1
      end
    end;
  Writeln(s/k)
end.

Тестовое решение:
-0.00136006072493969
4,7(55 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ