А мне то что нужно там нажимать?
Все что слева перенести в право?и дальше что то нажать?
А почему программка 3 30 пропустила?
Потому что я не знал какая именно симметричность нужна, 3
был просто 3
, а не 03
)
Исправил.
1 лайк
Да.
А это можно как то скачать?Если у меня инета не будет то все?((
Код скопировать )
Можно себе на комп Python 3 поставить.
Не знаю как проще всего это сделать, я PyCharm использую, но это большая IDE с кучей лишнего, если не страшен cmd, то можно установить как-то так, сохранить код в файл (например, с именем program.py
) и из cmd запустить python3 program.py
.
https://beginpc.ru/windows/komandnaya-stroka
Или вместо cmd открыть файл в стандартном IDLE.
1 лайк
спасибо
Если вдруг не будет интернета, то можешь попробовать такой “калькулятор”
FindPairs.rar (2.1 КБ)
EXE файл - FindPairs_EXE.rar (173.8 КБ)
Исходный код Delphi
procedure TForm1.Button1Click(Sender: TObject);
const N=4;
type arr4 = array[0..N-1] of integer;
{сортировка}
procedure Sort(var A : arr4);
var i,j,t : Integer;
begin
for i:=0 to N-2 do
for j:=i+1 to N-1 do
if A[i]>A[j] then begin
t := A[i]; A[i] := A[j]; A[j] := t
end;
end;
var A0, B0 : array[0..N-2] of integer;
A, B, Res : arr4;
TS : TStringList;
i, cnt, p1, p2 : integer;
S : string;
begin
TS := TStringList.Create;
TS.Delimiter := ',';
TS.DelimitedText := Edit1.Text;
if TS.Count<>(N-1) then begin
Application.MessageBox(
PChar('Внесите три целых числа в первую тройку чисел (внесено '+Format('%d',[TS.Count])+' ) '),
'Ошибка исходных данных', MB_OK or MB_ICONERROR);
TS.Free;
Exit
end;
i:=0;
try
for i := 0 to TS.Count - 1 do A0[i] := StrToInt(TS.Strings[i]);
except
Application.MessageBox(PChar(Format(
'Ошибка! %d-е значение %s не является целым число. Внесите три целых числа в первую тройку чисел ',
[i+1, TS.Strings[i]])),
'Ошибка исходных данных', MB_OK or MB_ICONERROR);
TS.Free;
Exit
end;
// вторая тройка чисел
TS.DelimitedText := Edit2.Text;
if TS.Count<>(N-1) then begin
Application.MessageBox(
PChar('Внесите три целых числа во вторую тройку чисел (внесено '+Format('%d',[TS.Count])+' ) '),
'Ошибка исходных данных', MB_OK or MB_ICONERROR);
TS.Free;
Exit
end;
try
for i := 0 to TS.Count - 1 do B0[i] := StrToInt(TS.Strings[i]);
except
Application.MessageBox(PChar(Format(
'Ошибка! %d-е значение %s не является целым число. Внесите три целых числа во вторую тройку чисел ',
[i+1, TS.Strings[i]])),
'Ошибка исходных данных', MB_OK or MB_ICONERROR);
TS.Free;
Exit
end;
TS.Free;
// вот, собственно, алгоритм
Memo1.Lines.Clear;
cnt := 0;
for p1 := 1 to 100 do
for p2 := 1 to 100 do begin
for i := 0 to N-2 do A[i] := A0[i];
A[N-1] := p1;
Sort( A );
for i := 0 to N-2 do B[i] := B0[i];
B[N-1] := p2;
Sort( B );
for i := 0 to N - 1 do Res[i] := A[i] + B[N-1-i];
if Abs(Res[0]-Res[1]) = Abs(Res[2]-Res[3]) then begin
if Not CheckBox1.Checked or
( ((p1 div 10) = (p2 mod 10)) and ((p2 div 10) = (p1 mod 10))) then begin
Inc(cnt);
S := Format('Пара: %.2u %.2u [ ',[p1,p2]);
for I := 0 to N-1 do S := S + Format('%.2u ',[ Res[i] ]);
S := S +' ] ';
Memo1.Lines.Append(S);
end;
end;
end;
if cnt=0 then Memo1.Lines.Append('Подходящих значений не найдено!');
end;
1 лайк