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

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

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

Условие На вход программе подаётся последовательность символов,заканчивающаяся точкой.Требуется написать программу,которая определяет,есть ли в этой последовательности десятичные цифры,и выводит наибольшее число,которое можно составить из этих цифр.Если цифр нет программа выводит "нет",если есть выводит слово "да" и в следующей строчке искомое число. вот то,что я написал:
Листинг программы
  1. INPUT a$
  2. l=LEN(a$)
  3. FOR i =1 TO l
  4. x$=MID$(a$,i,1)
  5. IF ASC(x$)>47 AND ASC(x$)<58 THEN b$=b$+x$
  6. NEXT i
  7. k=LEN(b$)
  8. FOR j=1 TO k
дальше как найти максимальное число фантазия кончилась,помогите,если в моём начале что то не так скажите что,если напишите свой вариант,мой рассматривать не обязательно,и ещё появился вопрос:как застопорить программу при встрече точки,что бы дальше не считало.

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

textual
Листинг программы
  1. CLS
  2. DIM a(9) AS INTEGER
  3. DIM i AS INTEGER, j AS INTEGER, n AS INTEGER, m AS INTEGER
  4. INPUT s$
  5. FOR i = 1 TO LEN(s$)
  6.   m = ASC(MID$(s$, i, 1))
  7.   IF m >= 48 AND m <= 57 THEN
  8.     n = n + 1
  9.     a(m - 48) = a(m - 48) + 1
  10.   END IF
  11. NEXT
  12.  
  13. IF n = 0 THEN
  14.   PRINT "NO"
  15. ELSE
  16.  PRINT "YES"
  17.  FOR i = 9 TO 0 STEP -1
  18.    FOR j = 1 TO a(i)
  19.      PRINT LTRIM$(STR$(i));
  20.  NEXT j, i
  21. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы