Форум программистов, компьютерный форум, киберфорум
QBasic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
198 / 10 / 3
Регистрация: 30.04.2016
Сообщений: 732

Числа возрастают или в беспорядке

11.11.2018, 10:24. Показов 3994. Ответов 46
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
«Числа возрастают или в беспорядке».
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
12
CLS
INPUT  “ A = “; A
   FOR I = 1 TO 3
      B = A
INPUT “ A = “; A
    IF A < = B THEN
PRINT “  Числа в беспорядке “
    GOTO 800
     END IF
   NEXT 
PRINT “ Числа возрастают”
   800
При первом запуске:
QBasic/QuickBASIC
1
2
3
А = ?  8
А = ?  4
Числа в беспорядке
При втором запуске:
QBasic/QuickBASIC
1
2
3
4
5
А = ? 4
А ? = 7
А ? = 12
А ? = 15
Числа возрастают
Почему то при первом запуске выполняется два цикла,
а при втором – надо делать четыре цикла. Почему же так.
Но главная проблема не решена – чтобы Числа в бес-
порядке и Числа возрастают, выходили бы при одном
запуске, а не при двух.
Чтобы было так, как при двух циклах:
QBasic/QuickBASIC
1
2
3
4
Ввести число:   4
Ввести числа:    7
Ввести число:   12
Числа возрастают
QBasic/QuickBASIC
1
2
3
4
Ввести число:   8
Ввести число:   4
Ввести число:   12
Числа в беспорядке
И та же проблема с циклом WHILE. Можно это сделать
в одной программе. В двух отдельных программах это
было сделано.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.11.2018, 10:24
Ответы с готовыми решениями:

Числа в беспорядке
И опять двадцать пять! Всё об том же. CLS WHILE A &lt;= 0 INPUT “ Ввести число: “, A WEND IF A &lt; 0 THEN PRINT “ Числа...

Найти количество строк матрицы, числа в которых возрастают
Найти количество строк матрицы, числа в которых возрастают.

Определить, возрастают или убывают значения массива
Доброго времени суток Имеется массив чисел - например Если массив такого вида т.е. элементы возрастают - выдать сообщение что массив...

46
1104 / 480 / 33
Регистрация: 05.07.2018
Сообщений: 1,870
Записей в блоге: 7
11.11.2018, 12:30
Уважаемый Petro29,
1. чтобы было как у вас, надо объявить массив. И в цикле этот
массив заполнять
2. Потом должен быть второй цикл, в котором будет проверка введенных
чисел. После проверки можно сделать вывод на экран.

примечание
если порядок нарушен, то возможен досрочный выход из цикла
с помощью оператора GOTO в конец программы
0
198 / 10 / 3
Регистрация: 30.04.2016
Сообщений: 732
24.02.2019, 10:55  [ТС]
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
12
CLS
INPUT  “ A = “; A
   FOR I = 1 TO 3
      B = A
INPUT “ A = “; A
    IF A < = B THEN
PRINT “  Числа в беспорядке “
    GOTO 800
     END IF
   NEXT 
PRINT “ Числа возрастают”
   800
При первом запуске:
QBasic/QuickBASIC
1
2
3
А = ?  8
А = ?  4
Числа в беспорядке
При втором запуске:
QBasic/QuickBASIC
1
2
3
4
5
А = ? 4
А ? = 7
А ? = 12
А ? = 15
Числа возрастают
Почему то при первом запуске выполняется два цикла,
а при втором – надо делать четыре цикла. Почему же так.
Но главная проблема не решена – чтобы Числа в бес-
порядке и Числа возрастают, выходили бы при одном
запуске, а не при двух.
Чтобы было так, как при двух циклах:
QBasic/QuickBASIC
1
2
3
4
Ввести число:   4
Ввести числа:    7
Ввести число:   12
Числа возрастают
QBasic/QuickBASIC
1
2
3
4
Ввести число:   8
Ввести число:   4
Ввести число:   12
Числа в беспорядке
И та же проблема с циклом WHILE. Можно это сделать
в одной программе. В двух отдельных программах это
было сделано.
0
Платежеспособный зверь
 Аватар для кот Бегемот
8966 / 4389 / 1655
Регистрация: 28.10.2009
Сообщений: 11,647
24.02.2019, 17:42
Цитата Сообщение от нтч Посмотреть сообщение
Уважаемый Petro29,
1. чтобы было как у вас, надо объявить массив. И в цикле этот
массив заполнять
2. Потом должен быть второй цикл, в котором будет проверка введенных
чисел. После проверки можно сделать вывод на экран.
примечание
если порядок нарушен, то возможен досрочный выход из цикла
с помощью оператора GOTO в конец программы
Фигню Вы пишете, товарищ. Забудьте про GOTO, это каменный век. Не нужен здесь массив, чтобы определить, возрастающая последовательность или нет, достаточно флажка.
QBasic/QuickBASIC
1
2
3
4
5
6
7
INPUT "vvedite chislo: ", a
FOR i = 1 TO 3
b = a
INPUT "vvedite chislo: ", a
IF a <= b THEN f = 1
NEXT
IF f = 0 THEN PRINT "vozrastaet" ELSE PRINT "ne vozrastaet"
0
0 / 0 / 0
Регистрация: 02.03.2019
Сообщений: 33
25.03.2019, 18:15
А так не подойдет?:
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
12
CLS
DIM a AS INTEGER
DIM b AS INTEGER
DIM c AS INTEGER
INPUT "", a
INPUT "", b
INPUT "", c
IF (a < b) AND (b < c) THEN
        PRINT "По возрастанию"
ELSE
        PRINT "Без порядка"
END IF
P.S. Сколько именно чисел должно вводиться? Пока не введут 0? Определенное число? Случайное число?
0
Платежеспособный зверь
 Аватар для кот Бегемот
8966 / 4389 / 1655
Регистрация: 28.10.2009
Сообщений: 11,647
25.03.2019, 19:27
Цитата Сообщение от Useringo Посмотреть сообщение
А так не подойдет?:
Пойдёт только для этого случая. Если чисел станет больше, программу придётся полностью переделывать.
Пятое свойство алгоритма - массовость: программа должна решать не только данную конкретную задачу, но и весь круг аналогичных задач.
0
0 / 0 / 0
Регистрация: 02.03.2019
Сообщений: 33
26.03.2019, 12:52
Цитата Сообщение от кот Бегемот Посмотреть сообщение
QBasic/QuickBASIC
1
2
3
4
5
6
7
INPUT "vvedite chislo: ", a
FOR i = 1 TO 3
b = a
INPUT "vvedite chislo: ", a
IF a <= b THEN f = 1
NEXT
IF f = 0 THEN PRINT "vozrastaet" ELSE PRINT "ne vozrastaet"
Ну да, четыре числа, а не три, совсем другое дело,
QBasic/QuickBASIC
1
массовость = массовость ^ 999
0
Платежеспособный зверь
 Аватар для кот Бегемот
8966 / 4389 / 1655
Регистрация: 28.10.2009
Сообщений: 11,647
26.03.2019, 13:59
Цитата Сообщение от Useringo Посмотреть сообщение
Ну да, четыре числа, а не три,
Ваша программа для 4 чисел уже не будет работать.
Прежде, чем хамить, научитесь программировать
0
0 / 0 / 0
Регистрация: 02.03.2019
Сообщений: 33
26.03.2019, 14:55
Я что-то не понял, кто и когда начал хамить. Я лишь резонно ответил.
Цитата Сообщение от кот Бегемот Посмотреть сообщение
Ваша программа для 4 чисел уже не будет работать.
А Ваша даст сбой при введении пяти чисел, и что?
0
Платежеспособный зверь
 Аватар для кот Бегемот
8966 / 4389 / 1655
Регистрация: 28.10.2009
Сообщений: 11,647
26.03.2019, 15:06
Цитата Сообщение от Useringo Посмотреть сообщение
А Ваша даст сбой при введении пяти чисел, и что?
Где это Вы увидели?
Вот программа для 5 чисел
QBasic/QuickBASIC
1
2
3
4
5
6
7
INPUT "vvedite chislo: ", a
FOR i = 1 TO 4
b = a
INPUT "vvedite chislo: ", a
IF a <= b THEN f = 1
NEXT
IF f = 0 THEN PRINT "vozrastaet" ELSE PRINT "ne vozrastaet"
а вот для 25:
QBasic/QuickBASIC
1
2
3
4
5
6
7
INPUT "vvedite chislo: ", a
FOR i = 1 TO 24
b = a
INPUT "vvedite chislo: ", a
IF a <= b THEN f = 1
NEXT
IF f = 0 THEN PRINT "vozrastaet" ELSE PRINT "ne vozrastaet"
Меняем только количество чисел, а программа работает. Неточность только в исходной программе, там вместо
FOR i = 1 TO 3
надо было написать
FOR i = 1 TO 2, но это не меняет принципа.
А вот Ваша программа кроме как для 3 чисел больше ни на что не пригодна. Учите матчасть.
А хамство Ваше вот оно:
Цитата Сообщение от Useringo Посмотреть сообщение
Ну да, четыре числа, а не три, совсем другое дело,
Отвечать надо по делу.
0
0 / 0 / 0
Регистрация: 02.03.2019
Сообщений: 33
26.03.2019, 19:34
Менять числа в коде - не очень хорошая идея. Лучше так:
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
DIM mass(2) AS INTEGER
DIM i AS INTEGER
DIM tr AS INTEGER
DIM num AS INTEGER
INPUT "KOL-VO: ", num
INPUT "*",mass(1)
FOR i = 1 TO num-1
    INPUT "*",mass(2)
    IF (mass(1)>= mass(2))THEN
        tr = 1
    END IF
    
    mass(1) = mass(2)
NEXT i
IF (tr <> 1)THEN
    PRINT"Vozrastayt"
ELSE
    PRINT"Randomno"
EndIf
Добавлено через 16 минут
PS:в конце не Endif, а END IF
0
Платежеспособный зверь
 Аватар для кот Бегемот
8966 / 4389 / 1655
Регистрация: 28.10.2009
Сообщений: 11,647
26.03.2019, 20:15
Цитата Сообщение от Useringo Посмотреть сообщение
Лучше так:
Нет, не лучше. Вы используете массив там, где легко можно было обойтись без него. А это нерациональное использование памяти.

Можно было просто добавить input с количеством чисел и оставить программу без изменения.
0
0 / 0 / 0
Регистрация: 02.03.2019
Сообщений: 33
26.03.2019, 22:00
Ну так-то Вы правы. По сути, я только заменил две переменные на массив из двух элементов. А
Цитата Сообщение от кот Бегемот Посмотреть сообщение
нерациональное использование памяти.
очень актуально было бы на заре компьютерной эры, но никак не сейчас и никак не в коде, весящем 1 КБ.

Добавлено через 5 минут
Код:
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
12
13
14
INPUT "KOL-VO: ", num
INPUT "vvedite chislo: ", a
FOR i = 1 TO num-1
    b = a
    INPUT "vvedite chislo: ", a
    IF a <= b THEN
        f = 1
    ENDIF
NEXT
IF f = 0 THEN 
    PRINT "vozrastaet" 
ELSE 
    PRINT "randomno"
ENDIF
0
Платежеспособный зверь
 Аватар для кот Бегемот
8966 / 4389 / 1655
Регистрация: 28.10.2009
Сообщений: 11,647
26.03.2019, 22:52
Цитата Сообщение от Useringo Посмотреть сообщение
очень актуально было бы на заре компьютерной эры, но никак не сейчас и никак не в коде, весящем 1 КБ.
Не всегда. Прочтите, к примеру, что пишут об оценке заданий ЕГЭ по информатике (программирование):

Требуется написать эффективную по времени и памяти программу для
решения описанной задачи.
Программа считается эффективной по памяти, если память, необходимая
для хранения всех переменных программы… не увеличивается с ростом N.

Вот Вы бы уже потеряли бы минимум 2 первичных балла (6 баллов ЕГЭ). Согласитесь, это много.
0
0 / 0 / 0
Регистрация: 02.03.2019
Сообщений: 33
27.03.2019, 11:10
Да, это многовато.
Цитата Сообщение от кот Бегемот Посмотреть сообщение
увеличивается с ростом N.
Что имеется ввиду под N? Кол-во переменных? Числа в переменных? Если кол-во переменных, то массив из двух элементов таким и остается в ходе выполнения программы. Если числа в самих переменных, то их вообще надо увеличивать, integer может не хватить.

Добавлено через 1 минуту
Но вообще да, лучше не использовать массив в данной программе.
0
Платежеспособный зверь
 Аватар для кот Бегемот
8966 / 4389 / 1655
Регистрация: 28.10.2009
Сообщений: 11,647
27.03.2019, 11:35
N в подобных задачах - это количество чисел в последовательности, оно вводится. Если у Вас массив, то с ростом N растёт число элементов, а значит программа неэффективна по памяти
Если ваша программа вместо одиночного цикла использует вложенный, то она неэффективна по времени потому что вложенный цикл выполняется в N раз дольше простого.
Задача хорошего программист не просто составить работоспособную программу, а и сделать её эффективной. Вот к этому и надо стремиться.
0
0 / 0 / 0
Регистрация: 02.03.2019
Сообщений: 33
27.03.2019, 13:11
Уважаемый кот Бегемот, присмотритесь повнимательнее, в моей программе массив из двух элементов, выполняющий роль двух переменных, так что хоть 2 числа, хоть 999 - разницы не будет, так что Вы не правы (в данной программе, а так-то я согласен).
0
Платежеспособный зверь
 Аватар для кот Бегемот
8966 / 4389 / 1655
Регистрация: 28.10.2009
Сообщений: 11,647
27.03.2019, 13:48
Да, я просто не внимательно посмотрел Вашу программу. Точнее, вообще не смотрел. Вы правы, здесь массив никак не влияет на решение, но он и не нужен, достаточно просто двух переменных
0
198 / 10 / 3
Регистрация: 30.04.2016
Сообщений: 732
05.05.2019, 10:44  [ТС]
Реплика на программу – Числа возрастают или в
беспорядке – от кота Бегемота:
Да, программа ловкая и короткая и работающая при
любых числах. Неужели Вы сами её придумали?
(Заодно и повеселили нас за «неуважительный» отзыв
в адрес НТЧ за его предложение про GOTO
для такой программы).
Вот Ваша программа:
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
CLS
INPUT “ Ввести числа: “, A
   FOR I = 1 TO 3
      b = a
INPUT “ Ввести числа: “, A
   IF A <= b THEN f = 1
   NEXT 
IF f = 0 THEN PRINT “ Возрастают”; ELSE PRINT “ Не возрастают”
На выходе имеем то, что и должно быть.
Но всё-таки возник вопрос: Можно из длинной строки с условием
IF = 0 и т. д. сделать две короткие строки? Пробовал – не
получилось. Куда я только не вставлял END IF – получал отказ
(хотя по идее его следовало бы вставить после 1-го условия
«Возрастает»)
Так можно всё-таки сделать две короткие строки из одной
длинной?
0
0 / 0 / 0
Регистрация: 02.03.2019
Сообщений: 33
05.05.2019, 11:11
В Вашей программе не хватает двух endif. В конце 6 и 8 строк. Непонятно, как вообще она скомпилировалась.

Добавлено через 9 минут
Хотя нет, будет, виноват.
Но лучше их там поставить.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.05.2019, 11:11
Помогаю со студенческими работами здесь

Проверить, возрастают ли или убывают ли цифры в числе, вводимом с клавиатуры
Добрый день! Решал простую задачу на паскале: &quot;проверить возрастают ли или убывают ли цифры в числе, вводимом с клавиатуры&quot; Я...

Найти количество наборов, элементы которых возрастают или убывают.
Дано целое число K, а также K наборов ненулевых целых чисел.Каждый набор содержит не менее двух элементов, признаком его завершения...

Найти количество наборов, элементы которых возрастают или убывают
&quot;Дано целое число K, а также K наборов ненулевых целых чисел. Каждый набор содержит не менее двух элементов, признаком его завершения...

Найти количество наборов, элементы которых возрастают или убывают
дана такая задачка: Дано целое число K, а также K наборов ненулевых целых чисел. Каждый набор содержит не менее двух элементов, признаком...

Найти количество участков на которых числа возрастают и вывести их
Масив задан рандомным количеством рандомных чисел через список. Нужно вывести на экран количество участков на которых эти числа возрастают....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru