Отчет по домашнему заданию должен содержать: 1. Постановка задачи. 2. Краткое описание метода сортировки. 3. Достоинства и недостатки метода сортировки.. 4. Работающая программа на языке Паскаль или СИ (текст программы + файл). В программе должны быть комментарии, поясняющие принцип сортировки. Выполнить сортировку главной диагонали двумерного массива случайных целых чисел по возрастанию методом прямого выбора.
Відповідь:
import math
a = float(input(" Перша сторона трикутника = "))
b = float(input(" Друга сторона трикутника = "))
c = float(input(" Третя сторона трикутника = "))
d = [a, b, c]
e = (sum(d)-(min(d)+max(d))) #знайдемо сторону,що має середнє значення у списку d
if a and b and c > 0:
if max(d) == math.sqrt(min(d)**2 + e**2) :
print("Трикутник - прямокутникй")
else:
print("Трикутник не є прямокутним")
else:
print("Сторона трикутника не може мати від'ємних значень або дорівнювати нулю")
Пояснення:
На малюнку доказ,що програма правильно працює
var input,output:text;
n,i,j,g,nm,ans,t:integer;
ara:array[0..1000] of integer;
ar,arq:array[0..1000] of integer;
ts,sum,a:integer;
begin assign(input,'f.in');
reset(input);
assign(output,'f.out');
rewrite(output);
readln(input,a,n);
ans:=10000;
for i:=1 to n do begin read (input,ar[i]);ts:=ts+2*ar[i];
end;
if ts<a then writeln(output,'no') else
begin
ara[1]:=3;
for i:=2 to 15 do
begin
ara[i]:=3*ara[i-1];
end;
for i:=1 to ara[n] do
begin
if arq[n]<2 then
begin
inc(arq[n]);
sum:=sum+ar[n];
inc(nm);
end else begin
g:=n;while arq[g]>1 do
begin sum:=sum-ar[g]*arq[g];
dec(nm,arq[g]);arq[g]:=0;
dec(g);
end;
inc(arq[g]);
sum:=sum+ar[g];
inc(nm);
end;
if sum=a then begin
if nm<ans then ans:=nm;
end;
end;
if ans>1000 then writeln(output,'yes') else
writeln(output, ans);
end;
close(output);
close(input);
end.