Помогите с программкой, чтобы считала за меня

А мне то что нужно там нажимать?
Все что слева перенести в право?и дальше что то нажать?

В первых строках кода данные поменять можно, потом Run нажать.

А почему программка 3 30 пропустила?

Потому что я не знал какая именно симметричность нужна, 3 был просто 3, а не 03 )
Исправил.

1 лайк

[https://repl.it/@AlexP11223/WeirdScoreFinder ]
а тут исправлено?)

Да.

А это можно как то скачать?Если у меня инета не будет то все?((

Код скопировать )

Можно себе на комп 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 лайк