Var r, i: integer;
begin
write('r = ');
readln(r);
for i := r downto 1 do
if Tan(i) < 0 then
break;
write(i);
<span>end.</span>
Переведем скорость в байты, для этого разделим на 8:
(128*1000) / 8 = (2^7 * 1000) / 2^3 = 2^4 * 1000 = 16000 байт/с
261 Кбайт = 261 * 1024 байт = 261 * 2^10 байт.
Разделим объем на скорость и получим время:
(261 * 2^10 байт.) / (2^4 * 1000) = (261 * 2^6) / 1000 = 16,704 = 17 секунд.
Вот точки в десятичной системе: (4,7),(6,11),(10,11),(12,7),(12,4),(13,3),(12,2),(12,3),(11,6),(8,3),(8,1),(6,1),(6,3),(4,3),(4,1),(2,1),(2,5)
Получилось что-то такое.
<em>Как говорится, это вам не С++ - тут все очень быстро и коротко ))))
// PascalABC.NET 3.3, сборка 1531 от 30.08.2017</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
begin
var L:=new List<(string,real)>;
// это не решение задачи, это ввод данных
Writeln('Введите в каждой строке фамилию, пробел, время');
var i:=1;
repeat
var s:=ReadlnString(i+': ');
if s[1]='*' then break;
var w:=s.ToWords;
L.Add(Rec(w[0],real.Parse(w[1])));
i+=1;
until false;
// а теперь само решение
Writeln(L.MinBy(x->x[1]))
end.
<u>Пример</u>
Введите в каждой строке фамилию, пробел, время
1: Иванов 10.3
2: Петров 9.9
3: Уточкин 10.1
4: *
(Петров,9.9)
Каждое уравнение имеет вид
(A | B) & (~A | ~B) = 1
Отсюда следует, что
(A | B) = 1 и (~A | ~B) = 1
Из первой скобки следует, что по крайней мере одно из высказываний А, В истинно. Из второй - что по крайней мере одно из высказываний ~A, ~B истинно. Поэтому ровно одно из высказываний A, B истинно, а другое ложно.
Пусть мы знаем x1, x2, x3, x5, x7, x9. Тогда остальные переменные определены однозначно: если x1=x2, то x4=~x3, x6=x5, x8=~x7, x10=x9; иначе всё наоборот.
Эти 6 переменных независимы, поэтому общее количество решений = количеству всевозможных наборов x1, x2, x3, x5, x7, x9 = 2^6 = 64