В двумерном массиве с числами винтервале от -20 до 20 заменить все элементы строк с номером от А до В на противоположные по знаку. Подсчитать сумму каждой строки, входящей в диапазон от А до В. Выводить все промежуточные значения. Написать на Delphi
Алгоритм содержит ошибку: необъявленную переменную 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 истинно.
a1
program a1;
uses graphABC;
var i:integer;
begin
SetWindowSize(400,400);
for i:=0 to 7 do
begin
line(0,50*i,50*i,0);
line(400,50*i,50*i,400)
end
end.
b1
program b1;
uses graphABC;
var i:integer;
begin
SetWindowSize(400,400);
for i:=0 to 7 do
begin
line(50*i,0,400,400-50*i);
if i <> 0 then line(0,50*i,400-50*i,400)
end
end.
a2
program a2;
uses graphABC;
var i:integer;
begin
SetWindowSize(400,400);
for i:=0 to 7 do
begin
line(0,50*i,50*i,0);
line(400,50*i,50*i,400);
line(50*i,0,400,400-50*i);
if i <> 0 then line(0,50*i,400-50*i,400)
end
end.
b2
program b2;
uses graphABC;
var i:integer;
begin
SetWindowSize(400,400);
for i:=1 to 7 do line(50*i,0,50*i,400);
for i:=1 to 7 do line(0,50*i,400,50*i)
end.
Объяснение:
используем циклы с параметром
Выводится значение 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