// PascalABC.NET 3.1, сборка 1250 от 28.05.2016 begin var a:array[1..3] of string; var l:array[1..3] of integer; for var i:=1 to 3 do begin Write('Город ',i,': '); Readln(a[i]); l[i]:=Length(a[i]) end; var imin:=1; var imax:=1; for var i:=2 to 3 do begin if l[i]<l[imin] then imin:=i; if l[i]>l[imax] then imax:=i end; Writeln('Самое длинное название- ',a[imax]); Writeln('Самое короткое название- ',a[imin]) end.
Тестовое решение Город 1: Москва Город 2: Минск Город 3: Киев Самое длинное название- Москва Самое короткое название- Киев
Алгоритм содержит ошибку: необъявленную переменную d. Фактически она вообще не нужна, потому что d=x и не меняется. Выводится значение l, которое вычисляется по формуле l=30+kx, где k - количество выполнений тела цикла while. Получаем уравнение 30 + k·x = 102 → k·x = 72. Но 72 = 2 × 2 × 2 × 3 × 3 если значение х нечетное, то оно может быть или 3, или 3 × 3 = 9. В вопросе спрашивается о максимальном х, поэтому проверим, подходит ли х=9. В этом случае k = 72 / 9 = 8 Значение k определяется условием выполнения цикла l ≤ m, где m = 456 - 5·x·k. При k= 8 получаем 102 ≤ 456 - 5×8×9; 102 ≤ 96 - ложно, но еще при k=7 получаем 30+7×9 ≤ 456-5×7×9; 93 ≤ 141 истинно.
begin
var a:array[1..3] of string;
var l:array[1..3] of integer;
for var i:=1 to 3 do begin
Write('Город ',i,': '); Readln(a[i]);
l[i]:=Length(a[i])
end;
var imin:=1; var imax:=1;
for var i:=2 to 3 do begin
if l[i]<l[imin] then imin:=i;
if l[i]>l[imax] then imax:=i
end;
Writeln('Самое длинное название- ',a[imax]);
Writeln('Самое короткое название- ',a[imin])
end.
Тестовое решение
Город 1: Москва
Город 2: Минск
Город 3: Киев
Самое длинное название- Москва
Самое короткое название- Киев
Выводится значение l, которое вычисляется по формуле l=30+kx, где k - количество выполнений тела цикла while.
Получаем уравнение 30 + k·x = 102 → k·x = 72.
Но 72 = 2 × 2 × 2 × 3 × 3 если значение х нечетное, то оно может быть или 3, или 3 × 3 = 9.
В вопросе спрашивается о максимальном х, поэтому проверим, подходит ли х=9.
В этом случае k = 72 / 9 = 8
Значение k определяется условием выполнения цикла l ≤ m,
где m = 456 - 5·x·k.
При k= 8 получаем 102 ≤ 456 - 5×8×9; 102 ≤ 96 - ложно,
но еще при k=7 получаем 30+7×9 ≤ 456-5×7×9; 93 ≤ 141 истинно.
Следовательно, x=9 подходит.
ответ: 9