Получить из содержащихся в программе чисел заданную сумму - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

Программа содержит числа: X1, X2, X3, X4, X5. Программа получает число S от пользователя. Мы должны получить это число из чисел X1, X2, X3, X4, X5. Пожалуйста, напишите код для этой операции. P.S. Если число не получается из содержащих в программе чисел, вывести на экран слово "Операция невозможна.".

Решение задачи: «Получить из содержащихся в программе чисел заданную сумму»

textual
Листинг программы
Const
  N = 5;
  M : array[1..N] of Integer = (50,100,500,1000,5000);
 
Function Check(A : Integer) : String;
Var i : Byte;
Begin
  If A=0 then Check:='' else
  Begin
    I:=N;
    While (i>0) and (M[i]>A) do Dec(i);
    If i=0 then Check:='*' else Check:=M[i].ToString+'+'+Check(A-M[i]);
  end;
end;
 
Begin
  Var S:=1150;
  Var St:String:=Check(S);
  If Pos('*',St)>0 then St:='Операция невозможна.' else Delete(St,Length(St),1);
  Writeln(St);
End.

Объяснение кода листинга программы

  1. Программа начинается с объявления констант и переменных.
  2. N = 5 - количество элементов в массиве M.
  3. M[1..N] = (50,100,500,1000,5000) - массив чисел.
  4. Check(A) - функция, которая проверяет можно ли получить сумму A из чисел массива M.
  5. Если A=0, то Check возвращает пустую строку.
  6. Если A не равно 0, то выполняется следующий код:
  7. I := N - счетчик, который уменьшается, пока не найдется число, которое больше или равно A.
  8. Пока i больше 0 и M[i] больше A, уменьшается i.
  9. Если i равно 0, то Check возвращает '*', иначе Check возвращает строку, которая состоит из числа M[i], плюса и строки Check(A-M[i]).
  10. В основной части программы:
  11. S := 1150 - сумма, которую необходимо получить.
  12. St := Check(S) - значение функции Check, которое сохраняется в переменной St.
  13. Если в St есть '*', то St заменяется на 'Операция невозможна.', иначе удаляется последний символ '+' из St.
  14. St выводится на экран.
  15. Если в St есть '*', то выводится 'Операция невозможна.', иначе выводится St без последнего символа '+'.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.667 из 5
Похожие ответы