Нахождение максимального числа после перестановки его цифр - QBasic

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

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

Условие На вход программе подаётся последовательность символов,заканчивающаяся точкой.Требуется написать программу,которая определяет,есть ли в этой последовательности десятичные цифры,и выводит наибольшее число,которое можно составить из этих цифр.Если цифр нет программа выводит "нет",если есть выводит слово "да" и в следующей строчке искомое число. вот то,что я написал:
дальше как найти максимальное число фантазия кончилась,помогите,если в моём начале что то не так скажите что,если напишите свой вариант,мой рассматривать не обязательно,и ещё появился вопрос:как застопорить программу при встрече точки,что бы дальше не считало.

Решение задачи: «Нахождение максимального числа после перестановки его цифр»

textual
Листинг программы
CLS
DIM a(9) AS INTEGER
DIM i AS INTEGER, j AS INTEGER, n AS INTEGER, m AS INTEGER
INPUT s$
FOR i = 1 TO LEN(s$)
  m = ASC(MID$(s$, i, 1))
  IF m >= 48 AND m <= 57 THEN
    n = n + 1
    a(m - 48) = a(m - 48) + 1
  END IF
NEXT
 
IF n = 0 THEN
  PRINT "NO"
ELSE
 PRINT "YES"
 FOR i = 9 TO 0 STEP -1
   FOR j = 1 TO a(i)
     PRINT LTRIM$(STR$(i));
 NEXT j, i
END IF

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

  1. Очистка экрана - команда CLS очищает экран перед выводом результатов.
  2. Подготовка массива - в цикле FOR с помощью функции LEN(s$) переменной i присваиваются значения от 1 до длины строки s$.
  3. Извлечение цифры - функция ASC(MID$(s$, i, 1)) возвращает числовое значение ASCII для каждой цифры в строке s$.
  4. Проверка на число - если полученное значение больше или равно 48 и меньше 58 (это диапазон цифр от 0 до 9), то выполняется следующий шаг.
  5. Увеличение счетчика - переменная n увеличивается на 1.
  6. Обновление массива - значение переменной n добавляется к элементу массива a(m-48).
  7. Проверка на ноль - если переменная n равна нулю, то выводится сообщение NO.
  8. Вывод сообщения и чисел - если переменная n не равна нулю, то выводится сообщение YES, а затем в цикле FOR, начиная с i=9 и до 0 по шагу -1, выводятся числа от 9 до 0 с помощью функции LTRIM$(STR$(i)) (это функция, которая возвращает строку, состоящую из указанного количества пробелов в начале).

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


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

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

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