Замена цифр в числе - QBasic

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

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

Задача Дано десятизначное число (вообще говоря произвольное) в виде стоковой переменной. Требуется заменить в этом числе две цифры. Одну цифру на знак плюс (+), а другую цифру на знак минус (-). Эти знаки разобьют данное число на три числа соединенные двумя арифметическими операциями. Если произвести эти операции, то получится некоторое число. Так вот. Задача состоит в том, чтобы так разместить эти две операции, чтобы в результате их выполнения получилось минимальное положительное число. На экран надо вынести 1. Начальное число 2. Строку из чисел и операций 3. Результат этих операций (min) (Программа проверена) Удачи Вам!

Решение задачи: «Замена цифр в числе»

textual
Листинг программы
Sub main()
    S$ = "8371219727"
    For i% = 2 To 9
        For j% = 2 To 9
            If Abs(i% - j%) > 1 Then
               Z$ = S$
               Mid$(Z$, i%, 1) = "+"
               Mid$(Z$, j%, 1) = "-"
               Debug.Print Z$; "="; Calc(Z$)
            End If
         Next j%
    Next i%
End Sub
 
Function Calc(Stri As String) As Double
Dim r(1 To 3) As Double
    Z# = 1
    k% = 1
    For i% = 1 To Len(Stri)
        S$ = Mid(Stri, i%, 1)
        Select Case S$
               Case "+"
                   Z# = 1
                   k% = k% + 1
               Case "-"
                   Z# = -1
                   k% = k% + 1
               Case Else
                   r(k%) = r(k%) * 10 + Z# * Val(S$)
        End Select
    Next i%
    Calc = r(1) + r(2) + r(3)
End Function

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

  1. Задача программы - замена цифр в числе 8371219727 на плюс и минус в соответствующих позициях.
  2. Код начинается с двух вложенных циклов от 2 до 9, которые выполняются поочередно.
  3. Внутри циклов проверяется абсолютное значение разности текущих позиций циклов, если оно больше 1, то выполняется замена символа на соответствующую позицию в строке S$.
  4. Значение переменной Z$ используется для временного хранения исходной строки S$.
  5. Значение переменной M$ используется для хранения результата вычисления функции Calc.
  6. Функция Calc вычисляет сумму цифр в строке Stri, используя вложенный цикл для прохода по каждому символу строки.
  7. В зависимости от текущего символа S$ выбирается соответствующее действие для переменной Z# и переменной k%.
  8. Если S$ равно +, то Z# становится равным 1 и k% увеличивается на 1.
  9. Если S$ равно -, то Z# становится равным -1 и k% увеличивается на 1.
  10. Если S$ не равно +, - или цифре, то значение переменной r(k%) становится равным сумме умножения r(k%) на 10 и Z# на значение S$.
  11. Функция Calc возвращает сумму цифр в строке Stri.
  12. Значение переменной M$ становится равным результату функции Calc.
  13. Значение переменной M$ выводится в консоль с помощью функции Debug.Print.
  14. Значение переменной M$ вычисляется как равенство исходной строки S$.

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


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

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

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