3 задачи по паскалю

Ответить
romanphpbb
Сообщения: 2
Зарегистрирован: 31 мар 2009, 15:22

Всем доброго времени суток.
Нам по информатике задали написать 3 программы по паскалю

1. Дана сторона квадрата а. Найти его периметр P=4*a. Найти его площадь S=a^2

2. На числовой оси расположена 3 точки: А, В, С. Определить, какая из двух последних точек (В или С) расположена ближе к А, и вывести эту точку и ее расстояние от точки А.

3. Начальный вклад в банке равен 1000 руб. Через каждый месяц размер вклада увеличивается на Р процентов от имеющейся суммы (Р-вещественное число, 0<H<25). по данному Р определить, через сколько месяцев размер вкалада превысит 1100 руб., и вывести найденное количество месяцев К (целое число) и итоговый размер вклада S (вещественное).

Я по информатике мало пенькаю
BBB
Сообщения: 1298
Зарегистрирован: 27 дек 2005, 13:37

1. Ответ уже дан:
P = 4 * a
S = sqr (a)

2. Если точки на одной прямой, то расстояние будет модуль разности координат:

ac := abs (xc - xa);
ab := abs (xb - xa);

if (ac > ab) then
{ точка с дальше точки b от a}

3. Непонятно, что такое H.
Начальную сумму обозначим как S0, требуемую как S1.
Тогда черед месяц будкт S0 * (1 + P) , через два - S0 * (1 + P)^2, через K: S0 * (1 + P)^K

Т.е. S0 * (1 + P)^K >= S1
И далее через логарифмы находим K

(1 + P)^K >= S1 / S0
K * Ln (1 + P) >= Ln (S1 / S0)

K >= Ln (S1/S0) / Ln (1 + P)

Т.е. миниимальное K - минимальное целое число, не меньшее, чем Ln (S1/S0) / Ln (1 + P).
romanphpbb
Сообщения: 2
Зарегистрирован: 31 мар 2009, 15:22

3. 0<P<25 (Я просто не правильно написал)

Пишу без паскаля поэтому могу ошибиться
1.
program a;
var a,P,S:real;
begin
writeln('введите сторону квадрата');
read(a);
P:=4*a;
writeln('периметр равен P=',a);
S:=sqr(a);
writeln('площадь равна S=',a);
end.

Может я не правильно составил?
Ответить