• Помогите с прогой.

    Вклад составляет x рублей. Ежегодно он увеличивается на p процентов, после чего дробная часть копеек отбрасывается. Каждый год сумма вклада становится больше. Определите, через сколько лет вклад составит не менее y рублей.

    Входные данные
    Программа получает на вход три натуральных числа: x, p, y.

    Выходные данные
    Программа должна вывести одно целое число.

    Написал:

    program u1;
    var x,p,y,year:longint;
    s: real;
    begin
    readln (x);
    readln (p);
    readln (y);
    s:=x;
    year:=0;
    while s begin
    while s s:= s+(1+p/100);
    year:=year+1;end;
    writeln (year);
    end.

    Не выводит ответ. Помогите найти ошибку. Я новичок.

Ответы 1

  • Не особо знаю паскаль, так что дабы не накосячить с синтаксисом, покажу на примере. Тут всё просто - тебе лишь нужен цикл For и расчет процентов.FOR i = 1 TO 100percents = FIX(x * p / 100) ' здесь у нас есть переменная percents, которой присваиваются округленные функцией fix проценты (насколько я знаю, в паскале аналогичная функция называется Round)x = x + percents 'тут всё понятно - переменной X присваивается она сама и годовые проценты по вкладуIF x >= y THEN 'проверяем, не равен или не превысил ли наш вклад ожидаемую суммуPRINT i 'в цикле For можно не заморачиваться с отслеживанием лет, переменная i сама подсчитает количество итераций-летEND 'завершаем программуEND IFNEXT i ' конец циклаМожно ещё чисто для себя добавить в условие вывод переменной X, чтобы было нагляднее.  
    • Автор:

      nikoqpcs
    • 6 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years