Написать подпрограмму, которая ищет а четырехзначном числе минимальную четную цифру. Если...

0 голосов

Написать подпрограмму, которая ищет а четырехзначном числе минимальную четную цифру. Если таких цифр нет, то вернуть -1.

Требования к подпрограмме:

Процедура должна называться "search" и иметь два параметра: первый - четырехзначное натуральное число. Второй - результат работы подпрограммы.


(Паскаль абц (Pascal abc))


спросил от (19 баллов) в категории Информатика
2 Ответы
0 голосов
ответил от Архангел (148k баллов)
 
Лучший ответ

Procedure search(n: integer; var mineven: integer);
begin
  mineven := 10;
  while n > 0 do
  begin
    var last := n mod 10;
    if (last mod 2 = 0) and (last < mineven) then
      mineven := last;
    n := n div 10;
  end;
  if mineven = 10 then
    mineven := -1;
end;

0 голосов
ответил от Отличник (7.2k баллов)

Program prog;
function Search(n: integer): integer;
var
  input: array[1..4] of integer;
  even: array[1..4] of integer;
  atLestOne: boolean;
begin
  input[1] := n div 1000;
  input[2] := n mod 1000 div 100;
  input[3] := n mod 100 div 10;
  input[4] := n mod 10;
  if (input[1] mod 2 = 0)
    begin
      even[1] := input[1];
      atLestOne := True;
    end;
  if (input[2] mod 2 = 0)
    begin
      even[2] := input[2];
      atLestOne := True;
    end;
  if (input[3] mod 2 = 0)
    begin
      even[3] := input[3];
      atLestOne := True;
    end;   
  if (input[4] mod 2 = 0)
    begin
      even[4] := input[4];
      atLestOne := True;
    end;
  if atLestOne = True then
    Search := Low(even)
  else
    Search := -1;
end;

...