Между населёнными пунктами A, B, C, D, E построены дороги. Нужно определить длину кратчайшего пути между пунктами А и Е. Передвигаться можно только по дорогам, протяжённость которых указана в таблице.
Не особо знаю паскаль, так что дабы не накосячить с синтаксисом, покажу на примере. Тут всё просто - тебе лишь нужен цикл For и расчет процентов.
FOR i = 1 TO 100 percents = FIX(x * p / 100) ' здесь у нас есть переменная percents, которой присваиваются округленные функцией fix проценты (насколько я знаю, в паскале аналогичная функция называется Round) x = x + percents 'тут всё понятно - переменной X присваивается она сама и годовые проценты по вкладу IF x >= y THEN 'проверяем, не равен или не превысил ли наш вклад ожидаемую сумму PRINT i 'в цикле For можно не заморачиваться с отслеживанием лет, переменная i сама подсчитает количество итераций-лет END 'завершаем программу END IF NEXT i ' конец цикла Можно ещё чисто для себя добавить в условие вывод переменной X, чтобы было нагляднее.
Изначально в переменной x хранится значение 11, в переменной y хранится значение 5. Переменной z присваивается значение y, т.е фактически в переменную z записывается значение 5.
Далее в y записывается значение остатка от деления x на y. Остаток от деления x на y равен остатку от деления 11/5.
11 = 2*5 + 1.
Остаток от деления 11 на 5 = 1. Т.е в y на данном этапе записывается значение 1.
Далее в x записывается значение z, т.е 5.
На следующем шаге в переменную y записывается значение: (y + 2)*z.
(y + 2)*z = (1 + 2)*5 = 15.
Таким образом после выполнения фрагмента программы в переменных хранятся такие значения:
x = 5; y = 15; z = 5.
2.
Изначально в переменной x хранится значение 13, в переменной y хранится значение 3. Переменной z присваивается значение x, т.е фактически в переменную z записывается значение 13.
Далее в z записывается результат деления нацело z на y.
z div y = 13 div 3;
13 = 3*4 + 1;
13 div 3 = 4;
Т.е в z на данном этапе записывается значение 4.
На следующем шаге в переменную y записывается значение переменной x, т.е 13;
Таким образом после выполнения фрагмента программы в переменных хранятся такие значения:
FOR i = 1 TO 100
percents = FIX(x * p / 100) ' здесь у нас есть переменная percents, которой присваиваются округленные функцией fix проценты (насколько я знаю, в паскале аналогичная функция называется Round)
x = x + percents 'тут всё понятно - переменной X присваивается она сама и годовые проценты по вкладу
IF x >= y THEN 'проверяем, не равен или не превысил ли наш вклад ожидаемую сумму
PRINT i 'в цикле For можно не заморачиваться с отслеживанием лет, переменная i сама подсчитает количество итераций-лет
END 'завершаем программу
END IF
NEXT i ' конец цикла
Можно ещё чисто для себя добавить в условие вывод переменной X, чтобы было нагляднее.
1.
Изначально в переменной x хранится значение 11, в переменной y хранится значение 5. Переменной z присваивается значение y, т.е фактически в переменную z записывается значение 5.
Далее в y записывается значение остатка от деления x на y. Остаток от деления x на y равен остатку от деления 11/5.
11 = 2*5 + 1.
Остаток от деления 11 на 5 = 1. Т.е в y на данном этапе записывается значение 1.
Далее в x записывается значение z, т.е 5.
На следующем шаге в переменную y записывается значение: (y + 2)*z.
(y + 2)*z = (1 + 2)*5 = 15.
Таким образом после выполнения фрагмента программы в переменных хранятся такие значения:
x = 5; y = 15; z = 5.
2.
Изначально в переменной x хранится значение 13, в переменной y хранится значение 3. Переменной z присваивается значение x, т.е фактически в переменную z записывается значение 13.
Далее в z записывается результат деления нацело z на y.
z div y = 13 div 3;
13 = 3*4 + 1;
13 div 3 = 4;
Т.е в z на данном этапе записывается значение 4.
На следующем шаге в переменную y записывается значение переменной x, т.е 13;
Таким образом после выполнения фрагмента программы в переменных хранятся такие значения:
x = 13; y = 13; z = 4.