Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/18: Рейтинг темы: голосов - 18, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 28.03.2021
Сообщений: 7
Excel

Задумать число от 1 до 10 и запросить ответ. В зависимости от введенного числа вывести больше, меньше или равно

30.09.2021, 15:20. Показов 3990. Ответов 20
Метки vb (Все метки)

Студворк — интернет-сервис помощи студентам
Столкнулся с проблемой, рандом чисел происходит но вместо одного числа он рандомит 2 числа, помогите исправить



Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Function random(num As Integer)
Dim Value As Integer
Value = Int((10 * Rnd) + 1)
If num > Value Then
random = "неверно число меньше"
ElseIf num < Value Then
random = "неверно число больше"
ElseIf num = Value Then
random = "верно"
End If
End Function
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.09.2021, 15:20
Ответы с готовыми решениями:

При вводе целого числа вывести, больше, меньше или равно 40
Составить программу, через операторы ветвления. Что бы при вводе целого числа выводилось, больше, меньше или равно 40. P.S. Знаю что...

Вывести числа 1/1, 1/2, 1/3, 1/4, и т.д., пока число не станет меньше или равно x (0<x<1) (repeat until)
Во всех заданиях необходимо использовать цикл с постусловием и только его. Ввести с клавиатуры вещественное число x (0&lt;x&lt;1). ...

Сравнить числа и вывести Больше/Равно/Меньше
Создайте программу с кнопкой и двумя TextBox. В каждый из TextBox вводится число. При нажатии на кнопку, надпись на ней становится...

20
 Аватар для KoGG
5640 / 1622 / 418
Регистрация: 23.12.2010
Сообщений: 2,430
Записей в блоге: 1
30.09.2021, 15:38
Непонятно, зачем эту задачу делать через функцию.
Тем не менее можно. С одним единственным задуманным числом.
Visual Basic
1
2
    Static Value As Integer
    If Value = 0 Then Value = Int((10 * Rnd) + 1)
Добавлено через 3 минуты
или с сигналом на задумывание нового при num=0
Visual Basic
1
2
    Static Value As Integer
    If Value = 0 Or num = 0 Then Value = Int((10 * Rnd) + 1)
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
30.09.2021, 15:44
Цитата Сообщение от Polydeusec Посмотреть сообщение
но вместо одного числа он рандомит 2 числа
Не может быть. Value = Int((10 * Rnd) + 1) - присвоение происходит 1 раз в данной функции.
Может вы сами её вызываете 2 раза? Она будет рандомить столько чисел, сколько раз вы её вызываете.
Т.е. на угадывание числа у вас в коде всего 1 попытка.
Если нужно несколько раз вызывать функцию, то генерацию случайного числа нужно вынести за пределы этой функции.
0
0 / 0 / 0
Регистрация: 28.03.2021
Сообщений: 7
30.09.2021, 15:45  [ТС]
Все равно происходит генерация двух чисел, и почему то теперь вместо радомной генерации остановился на 8
Изображения
 
0
0 / 0 / 0
Регистрация: 28.06.2019
Сообщений: 4
30.09.2021, 15:46
есть вообще предположения почему в момент ввода аргумента функция как будто срабатывает 2 раза?
Миниатюры
Задумать число от 1 до 10 и запросить ответ. В зависимости от введенного числа вывести больше, меньше или равно  
0
0 / 0 / 0
Регистрация: 28.03.2021
Сообщений: 7
30.09.2021, 15:52  [ТС]
Я согласен с тем что она присваивает 1 значение но почему то она вызывается 2 раза вместо одного, в то время как я вызываю функцию только один раз
0
 Аватар для KoGG
5640 / 1622 / 418
Регистрация: 23.12.2010
Сообщений: 2,430
Записей в блоге: 1
30.09.2021, 16:11

Не по теме:

Видимо не в коня корм.


Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub random2()
    Dim Value As Integer, num As Integer
    Value = Int((10 * Rnd) + 1)
    Do
        num = CInt(InputBox("Введите число"))
        If num > Value Then
            MsgBox "неверно число меньше"
        ElseIf num < Value Then
            MsgBox "неверно число больше"
        ElseIf num = Value Then
            MsgBox "верно"
            Exit Do
        End If
    Loop
End Sub
1
0 / 0 / 0
Регистрация: 28.03.2021
Сообщений: 7
30.09.2021, 16:20  [ТС]
спасибо большое но к сожалению преподаватель по заданию требует использовать функции для решения этой задачи, и из за этого я уже сломал себе мозг
0
 Аватар для KoGG
5640 / 1622 / 418
Регистрация: 23.12.2010
Сообщений: 2,430
Записей в блоге: 1
30.09.2021, 16:21
Для функции - все написано выше. Нужно только правильно ее использовать.
0
ᴁ ©
Эксперт MS Access
 Аватар для АЕ
4151 / 2442 / 506
Регистрация: 13.12.2016
Сообщений: 8,299
Записей в блоге: 5
30.09.2021, 16:52
Цитата Сообщение от KoGG Посмотреть сообщение
Нужно только правильно ее использовать.
Абсолютно согласен. А если ее (функцию) вызвать 3 раза, то будет 3 значения.
0
 Аватар для KoGG
5640 / 1622 / 418
Регистрация: 23.12.2010
Сообщений: 2,430
Записей в блоге: 1
30.09.2021, 17:36
После вставки моих добавлений для функции:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Function random(num As Integer)
    Static Value As Integer
    If Value = 0 Or num = 0 Then Value = Int((10 * Rnd) + 1)
    If num > Value Then
        random = "неверно число меньше"
    ElseIf num < Value Then
        random = "неверно число больше"
    ElseIf num = Value Then
        random = "верно"
    End If
End Function
Первый вызов или вызов с аргументом 0 - задумывается число.
Последующие с аргументом, например 2, отвечает на вопрос больше, меньше или равно число 2 загаданному.

Добавлено через 17 минут
.....
0
ᴁ ©
Эксперт MS Access
 Аватар для АЕ
4151 / 2442 / 506
Регистрация: 13.12.2016
Сообщений: 8,299
Записей в блоге: 5
30.09.2021, 21:21
Цитата Сообщение от Polydeusec Посмотреть сообщение
Столкнулся с проблемой
Вводите число через форму и проблем не будет. Функция отрабатывает пока вы ее пишите мастером, и потом после ввода в ячейку. Это нормально.
0
Наивное Существо
 Аватар для vedunasv
666 / 141 / 27
Регистрация: 09.05.2020
Сообщений: 750
Записей в блоге: 15
01.10.2021, 00:02
Polydeusec, для начала название функции уберите RANDOM - это всё таки команда, а не переменная - тут тоже могут быть глюки (без спец команды такие фокусы не делайте).
А потом, нигде не вижу как вы всё таки вызываете эту функцию, где она располагается?

Добавлено через 59 секунд
делайте по примеру
Цитата Сообщение от KoGG Посмотреть сообщение
Sub random2()
0
 Аватар для Narimanych
2751 / 1725 / 779
Регистрация: 23.03.2015
Сообщений: 5,449
01.10.2021, 00:37
vedunasv,
Цитата Сообщение от vedunasv Посмотреть сообщение
RANDOM - это всё таки команда
Про Value = Int((10 * Rnd) + 1)- понятно ...

Подскажите, где в VBA есть команда random
0
4089 / 1469 / 401
Регистрация: 07.08.2013
Сообщений: 3,670
01.10.2021, 07:52
Функция Rnd() применяется совместно с Randomize
в противном случае могут быть проблемки

Добавлено через 52 секунды
это я вот к этому
Цитата Сообщение от Polydeusec Посмотреть сообщение
и почему то теперь вместо радомной генерации остановился на 8
0
sleep
 Аватар для I can
4931 / 4593 / 840
Регистрация: 13.04.2015
Сообщений: 9,750
01.10.2021, 08:32
Цитата Сообщение от BakalaWr Посмотреть сообщение
есть вообще предположения почему в момент ввода аргумента функция как будто срабатывает 2 раза?
Я не понял, кто ТС, и кто спрашивает? Но у Вас на скрине код, в котором меняется исходное значение.
Миниатюры
Задумать число от 1 до 10 и запросить ответ. В зависимости от введенного числа вывести больше, меньше или равно  
0
Наивное Существо
 Аватар для vedunasv
666 / 141 / 27
Регистрация: 09.05.2020
Сообщений: 750
Записей в блоге: 15
02.10.2021, 09:55
Narimanych,
Цитата Сообщение от Narimanych Посмотреть сообщение
Подскажите, где в VBA есть команда random
Открыть доступ к файлу произвольного доступа.
0
 Аватар для Narimanych
2751 / 1725 / 779
Регистрация: 23.03.2015
Сообщений: 5,449
02.10.2021, 10:22
Цитата Сообщение от vedunasv Посмотреть сообщение
Открыть доступ к файлу произвольного доступа.
Покажите код пожалуйста....
0
Наивное Существо
 Аватар для vedunasv
666 / 141 / 27
Регистрация: 09.05.2020
Сообщений: 750
Записей в блоге: 15
02.10.2021, 11:36
Narimanych,

Это всё работа с файлами:

Open "proba.txt" for random as #2 len=50

из справочника Open "TESTFILE" For Random As #1 Len = Len(MyRecord)

я постоянно этим пользуюсь ))))

Дальше Open "TESTFILE" For Input As #1
дальше Open "TESTFILE" For Binary Access Write As #1
дальше Open "TESTFILE" For Output as #5
1
 Аватар для Narimanych
2751 / 1725 / 779
Регистрация: 23.03.2015
Сообщений: 5,449
02.10.2021, 12:36
vedunasv,
Цитата Сообщение от vedunasv Посмотреть сообщение
постоянно этим пользуюсь

Подскажите , а что такое в этой записи
Цитата Сообщение от vedunasv Посмотреть сообщение
For Random As #1 Len = Len(MyRecord)
особенно Len = Len(MyRecord)

Я не пользуюсь - хочу попробовать, но не знаю как...

Добавлено через 1 минуту
И чем отличается
Цитата Сообщение от vedunasv Посмотреть сообщение
For Random
от
Цитата Сообщение от vedunasv Посмотреть сообщение
For Binary
Добавлено через 18 минут
vedunasv,

Вообще то спасибо за наводку...
Сам попробую разобраться...

еще раз спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.10.2021, 12:36
Помогаю со студенческими работами здесь

Запросить число и вывести на экран максимальный и минимальный нечетные делители введенного числа
Запросить число и вывести на экран максимальный и минимальный нечетные делители введенного числа. Написать программу и составить...

Найти сумму квадратов всех целых чисел от а до 50 (значение а вводится с клавиатуры: а больше или равно 0 и меньше или равно 50)
Найти сумму квадратов всех целых чисел от а до 50 (значение а вводится с клавиатуры: а больше или равно 0 и меньше или равно 50) ...

В зависимости от введенного числа вывести то или иное слово
Вообщем нужно напечатать прогу вот такую Выводится сообщение на экране: Выберите число 1,2,3 И нужно сделать так чтобы при нажатии на 1...

Нужно заново запросить ввод N и M, если они больше 20 или меньше 1, или равны 1 одновременно
Проблема в том, что когда ввожу 1, происходит запрос заново. Например, ввожу 1 и 5. А когда 20, то всё хорошо. Помогите разобраться,...

Даны два действительных числа. замените первое число нулём, если оно меньше или равно второму, и оставьте числа без изме
Даны два действительных числа. замените первое число нулём, если оно меньше или равно второму, и оставьте числа без изменения в противном...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru