С клавиатуры вводится матрица n*m. 1. Определить произведение всех чётных чисел в каждой строке и записать это произведение в по
С клавиатуры вводится матрица n*m. 1. Определить произведение всех чётных чисел в каждой строке и записать это произведение в последний столбец. 2. Найти максимальный и минимальный элементы в каждой строке и поменять их местами 3. Повернуть матрицу на 90 градусов по часовой стрелке
Будем считать, что числа n, m заранее известны. Делать в Паскале динамические массивы - это очень большой геморрой. 1. PROGRAM Even var i, j, P: integer; var array A[1..n, 1..m] of integer; BEGIN for i:=1 to n do for j:=1 to m do readln (A[i, j]); // цикл ввода начального массива for i:=1 to n do // цикл по строкам begin P:=1; // произведение четных чисел for j:=1 to m do // цикл по столбцам
begin
if (A[i, j] mod 2 = 0) then P:= P*A[i, j]; // умножаем очередное четное число end; A[i, m] := P; // вместо последнего числа записываем произведение четных end;
for i:=1 to n do for j:=1 to m do writeln (A[i, j]); // цикл вывода конечного массива END.
2.
PROGRAM MinMax var i, j, Q, min, nmin, max, nmax: integer; var array A[1..n, 1..m] of integer; BEGIN for i:=1 to n do for j:=1 to m do readln (A[i, j]); // цикл ввода начального массива for i:=1 to n do // цикл по строкам begin min:=A[i, 1]; nmin:=1; max:=A[i, 1]; nmax:=1; // начальные значения for j:=1 to m do // цикл по столбцам
begin
if (A[i, j] > max) then max:= A[i, j]; nmax = j;// устанавливаем максимум if (A[i, j] < min) then min:= A[i, j]; nmin = j;// устанавливаем максимум end; Q:=A[i, nmin]; A[i, nmin]:=A[i, nmax]; A[i, nmax]:=Q; // меняем их местами
end;
for i:=1 to n do for j:=1 to m do writeln (A[i, j]); // цикл вывода конечного массива END.
3. PROGRAM Povorot var i, j, k, Q: integer; var array A[1..n, 1..m], B[1..m, 1..n] of integer; BEGIN for i:=1 to n do for j:=1 to m do readln (A[i, j]); // цикл ввода начального массива
for i=1 to m do // цикл по m строкам нового массива (их m, как столбцов в А) begin for j:=1 to n do // цикл по n столбцам нового массива (как строк в А) B[i, j]:=A[j, n-i+1]; // формируем новый массив end; for i:=1 to m do for j:=1 to n do writeln (B[i, j]); // цикл вывода конечного массива END.
Рассмотрим простейшую схему кредитования (и самую невыгодную для заёмщика), когда за каждый год отдается фиксированный процент p от первоначальной суммы кредита k без учета того, что часть кредита уже погашена за предыдущие годы. В этом случае ежегодная сумма процентов по кредиту составит Sk=k×p%/100%. За n лет будет отдано n×Sk. И еще нужно вернуть саму сумму кредита k. Итого нужно вернуть k+n×Sk. Доход за это время составит n×r и получаем неравенство n×r ≥ n×Sk+k n×(r-Sk) ≥ k → n ≥ k/(r-Sk) с округлением до целых в большую сторону.
<em>// PascalABC.NET 3.3, сборка 1583 от 25.11.2017</em> <em>// Внимание! Если программа не работает, обновите версию!</em>
begin var (k,p):=ReadReal2('Сумма кредита и процент годовых:'); var r:=ReadReal('Предполагаемый годовой доход:'); var Sk:=k*p/100; if r<=Sk then Writeln('Рассчитаться за кредит невозможно') else Writeln('Количество лет на погашение кредита: ',Floor(k/(r-Sk))) end.
<u>Пример</u> Сумма кредита и процент годовых:10 0000 16 Предполагаемый годовой доход: 24000 Количество лет на погашение кредита: 12
Составной оператор -это конструкция языка программирования ,состоящая из несколько команд языка программирования ,но учащая в программе в качестве единого оператора .