2. const n=5; var a:array[1..n,1..n] of integer; i,j:integer; begin Randomize; writeln('Исходный массив:'); for i:=1 to n do begin for j:=1 to n do begin a[i,j]:=random(100); write(a[i,j]:4); end; writeln; end; for i:=1 to n do for j:=i+1 to n do a[i,j]:=0; writeln('Полученный массив:'); for i:=1 to n do begin for j:=1 to n do write(a[i,j]:4); writeln; end; end.
Сначала задача должна быть решена геометрически. Очевидно, что круг войдет в прямоугольник если его диаметр D будет меньше, чем меньшая из сторон этого прямоугольника min(a,b). Вот и все решение.
По этому решению составляем алгоритм: 1. Ввести a, b, D 2. Найти m - минимум (a,b) 3. Если D<m, то вывести сообщение "Войдет", иначе вывести сообщение "Не войдет". 4. Завершить работу.
Осталось написать программу.
1. Современное решение
// PascalABC.NET 3.3, сборка 1611 от 06.01.2018 // Внимание! Если программа не работает, обновите версию!
begin var (a,b,d):=ReadReal3('Введите через пробел a,b,D:'); var m:=Min(a,b); if D<m then Writeln('Войдет') else Writeln('Не войдет') end.
Пример Введите через пробел a,b,D: 14.5 11 10.6 Войдет
2. "Школьный" вариант - так писали наши отцы и деды
var a,b,D,m:real;
begin Write('Введите через пробел a,b,D: '); Read(a,b,d); if a<b then m:=a else m:=b; if D<m then Writeln('Войдет') else Writeln('Не войдет') end.
const n=5;
begin
writeln('До:');
var a:=MatrRandom(n,n,-10,10); a.Println(5);
var b:=a.ElementsWithIndexes.Select(k->k[2]>k[1]?0:k[0]).ToArray;
writeln('После:');
a:=MatrGen(n,n,(i,j)->b[i*n+j]); a.Println(5);
end.
Пример:
До:
-7 3 8 -6 -5
-2 6 -1 -6 -8
5 7 2 -10 0
9 3 -8 5 -6
-4 1 1 0 -10
После:
-7 0 0 0 0
-2 6 0 0 0
5 7 2 0 0
9 3 -8 5 0
-4 1 1 0 -10
2.
const n=5;
var
a:array[1..n,1..n] of integer;
i,j:integer;
begin
Randomize;
writeln('Исходный массив:');
for i:=1 to n do
begin
for j:=1 to n do
begin
a[i,j]:=random(100);
write(a[i,j]:4);
end;
writeln;
end;
for i:=1 to n do
for j:=i+1 to n do a[i,j]:=0;
writeln('Полученный массив:');
for i:=1 to n do
begin
for j:=1 to n do write(a[i,j]:4);
writeln;
end;
end.
Пример:
Исходный массив:
62 25 21 54 22
71 39 41 49 63
26 93 50 79 35
81 45 40 99 45
46 87 63 36 15
Полученный массив:
62 0 0 0 0
71 39 0 0 0
26 93 50 0 0
81 45 40 99 0
46 87 63 36 15
По этому решению составляем алгоритм:
1. Ввести a, b, D
2. Найти m - минимум (a,b)
3. Если D<m, то вывести сообщение "Войдет", иначе вывести сообщение "Не войдет".
4. Завершить работу.
Осталось написать программу.
1. Современное решение
// PascalABC.NET 3.3, сборка 1611 от 06.01.2018
// Внимание! Если программа не работает, обновите версию!
begin
var (a,b,d):=ReadReal3('Введите через пробел a,b,D:');
var m:=Min(a,b);
if D<m then Writeln('Войдет')
else Writeln('Не войдет')
end.
Пример
Введите через пробел a,b,D: 14.5 11 10.6
Войдет
2. "Школьный" вариант - так писали наши отцы и деды
var
a,b,D,m:real;
begin
Write('Введите через пробел a,b,D: ');
Read(a,b,d);
if a<b then m:=a
else m:=b;
if D<m then Writeln('Войдет')
else Writeln('Не войдет')
end.