Обозначим Б - число быков, К - число коров, Т - число телят. Тогда можно записать, что Б+К+Т=100 (1) 10Б+5К+0.5Т=100 (2) Из (2) найдем ограничения на количества Б, К, и Т. Б ∈ [0;10], К ∈ [0;20]. Из (1) находим, что Т=100-Б-К, Т - четное (иначе сумма не будет целой). Эти ограничения позволят правильно построить циклы в программе.
PascalABC.NET 3.3.5, сборка 1662 от 29.04.2018 Внимание! Если программа не работает, обновите версию!
begin for var Б:=0 to 10 do for var K:=0 to 20 do begin var T:=100-Б-K; // из уравнения (1) if T.IsEven and (10*Б+5*K+T div 2=100) then Writeln(Б,'Б, ',K,'K, ',T,'T') end end.
var A: array[1..m, 1..n] of real; L, R, i, j, S: integer; x, k: real; Sort: boolean;
begin
clrscr;
randomize; for i := 1 to m do for j := 1 to n do A[i, j] := random(100) / 10; writeln('Матрица A');
repeat Sort := False; for i := 1 to m do for j := 1 to n - 1 do if A[i, j] > A[i, j + 1] then begin k := A[i, j]; A[i, j] := A[i, j + 1]; A[i, j + 1] := k; Sort := True; end; until sort = False;
for i := 1 to m do begin for j := 1 to n do write(A[i, j]:6:1); writeln; end; writeln;
writeln('Ввод x'); readln(x);
for i := 1 to m do begin L := 1; R := n; while L < R do begin j := trunc((L + R) / 2); if A[i, j] < x then L := j + 1 else R := j; end; if A[i, R] = x then writeln('В ', i, ' строке позиция x:', i, ',', R) else writeln('В ', i, ' элемент не найден'); end;
Тогда можно записать, что
Б+К+Т=100 (1)
10Б+5К+0.5Т=100 (2)
Из (2) найдем ограничения на количества Б, К, и Т.
Б ∈ [0;10], К ∈ [0;20].
Из (1) находим, что Т=100-Б-К, Т - четное (иначе сумма не будет целой).
Эти ограничения позволят правильно построить циклы в программе.
PascalABC.NET 3.3.5, сборка 1662 от 29.04.2018
Внимание! Если программа не работает, обновите версию!
begin
for var Б:=0 to 10 do
for var K:=0 to 20 do begin
var T:=100-Б-K; // из уравнения (1)
if T.IsEven and (10*Б+5*K+T div 2=100) then
Writeln(Б,'Б, ',K,'K, ',T,'T')
end
end.
Результат
1Б, 9K, 90T