Var x,y,z: real; t: integer; begin writeln('введите х и у'); readln(x,y); z:=sqrt(sqr(x)-sqr(y)); t:=0; while (z>0,1) do begin t:=t+1; z:=0,98*z; {если 2% от изменяющегося расстояния до пола; если же имеется ввиду 2% от исходного расстояния, то нужно будет ввести новую переменную или присвоить исходное значение z, например х, то есть сразу после z:=sqrt(sqr(x)-sqr(y)); написать x:=z; Формула (оператор) z:=0,98*z; изменится так: z:=z-x*0,98} end; writeln('палка упадет через ', t,' мин.'); end.
// PascalABC.NET 3.1, сборка 1250 от 28.05.2016 procedure MatPrint(a:array[,] of integer); begin for var i:=0 to Length(a,0)-1 do begin for var j:=0 to Length(a,1)-1 do Write(a[i,j]:4); Writeln end end;
procedure MatReplaceOdd(a:array[,] of integer; value:integer); begin for var i:=0 to Length(a,0)-1 do for var j:=0 to Length(a,1)-1 do if a[i,j].IsOdd then a[i,j]:=value end;
begin var n,m:integer; Write('Задайте число строк и столбцов матрицы: '); Read(n,m); var a:=MatrixRandom(n,m,-99,99); Writeln('Исходный массив'); MatPrint(a); MatReplaceOdd(a,26); Writeln('Результирующий массив'); MatPrint(a) end.
t: integer;
begin writeln('введите х и у');
readln(x,y);
z:=sqrt(sqr(x)-sqr(y));
t:=0;
while (z>0,1) do
begin t:=t+1;
z:=0,98*z; {если 2% от изменяющегося расстояния до пола;
если же имеется ввиду 2% от исходного расстояния,
то нужно будет ввести новую переменную
или присвоить исходное значение z, например х,
то есть сразу после z:=sqrt(sqr(x)-sqr(y)); написать x:=z;
Формула (оператор) z:=0,98*z; изменится так:
z:=z-x*0,98}
end;
writeln('палка упадет через ', t,' мин.');
end.
procedure MatPrint(a:array[,] of integer);
begin
for var i:=0 to Length(a,0)-1 do begin
for var j:=0 to Length(a,1)-1 do Write(a[i,j]:4);
Writeln
end
end;
procedure MatReplaceOdd(a:array[,] of integer; value:integer);
begin
for var i:=0 to Length(a,0)-1 do
for var j:=0 to Length(a,1)-1 do
if a[i,j].IsOdd then a[i,j]:=value
end;
begin
var n,m:integer;
Write('Задайте число строк и столбцов матрицы: ');
Read(n,m);
var a:=MatrixRandom(n,m,-99,99);
Writeln('Исходный массив');
MatPrint(a);
MatReplaceOdd(a,26);
Writeln('Результирующий массив');
MatPrint(a)
end.
Тестовое решение
Задайте число строк и столбцов матрицы: 5 7
Исходный массив
-14 86 52 -85 -52 -79 78
20 -80 68 89 -45 -45 -36
-41 -60 96 43 16 56 -58
-39 81 1 26 -15 -98 89
57 -51 79 -28 -24 -63 -74
Результирующий массив
-14 86 52 26 -52 26 78
20 -80 68 26 26 26 -36
26 -60 96 26 16 56 -58
26 26 26 26 26 -98 26
26 26 26 -28 -24 26 -74