плз!
(Pascal)
Задача 1.
Дана масса предмета в тоннах. Перевести это значение в центнеры и килограммы (масса в тоннах вводится с клавиатуры)
Задача 2.
Дана зарплата некоторого работника в час в рублях. Узнать его месячный доход, исходя из того, что он работает 5 дней в неделю по 8 часов в день. В месяце среднее количество дней - 30 (часовая оплата работника вводится с клавиатуры)
const
AOper: array [0..3] of string = ('+', '-', '*', '/');
var
a, b, Oper: Integer;
r: Real;
begin
Randomize; // инициализация датчика случайных чисел
a := Random (1001);
b := Random (1001);
Oper := Random (4);
case Oper of
0: r := a + b;
1: r := a - b;
2: r := a * b;
3:if b <> 0 then begin
r := a / b;
end else begin
WriteLn ('Произошла ошибка при делении на ноль');
Exit;
end
else r := -1;
end;
WriteLn (a);
WriteLn (b);
WriteLn (Aoper [Oper]);
if (r >= 0) and (r - Trunc (r) = 0) then begin // если в результате получилось положительное целое число
WriteLn ('yes');
WriteLn (r :6 :0);
end else
WriteLn (' no');
ReadLn;
end.
Объяснение:
r - Trunc (r) // это выделение дробной части числа
1. 10
2. 1001
3. 10010110
4. 1001011010010110
5. 10010110100101101001011010010110
После четвёртого шага я заметил, что наша строка состоит из подстрок "1001" и "0110". Количество таких подстрок после третьего шага начинает увеличиваться в два раза с каждым шагом. Например, в третьем шаге подстрока"10010110" - одна, а в четвёртом - две. Исходя из этого можно вынести, что в пятом шаге их - четыре (кто сомневается - проверьте). Составим таблицу, благодаря которой мы узнаем, сколько подстрок "10010110" будет в строке после одиннадцатого шага:
3. 1
4. 2
5. 4
6. 8
7. 16
8. 32
9. 64
10. 128
11. 512
После одиннадцатого шага строка будет иметь 512 подстрок "10010110" - то есть, состоять из 512 * 8 = 4096 символов. Это всего лишь отступление.
В одной подстроке "10010110" - 4 единицы. Значит, в 512 таких подстроках их будет 512 * 4 = 2048 штук.
ответ: 2048.