Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Задачка

12K
26 октября 2007 года
Asu2007
41 / / 19.09.2007
Выдать натуральное число, сумма предшествующих которому будет превышать число, заданное при вводе.
276
26 октября 2007 года
Rebbit
1.1K / / 01.08.2005
Я с бейсиком не знаком, потому напишу в абстрактном виде
 
Код:
ввести А
если А < 4 тогда нет ответа
иначе
  Б = А / 2 (деление нацело)
  если А парное
    С = Б + 2
  иначе
    С = Б + 3

вывести С
5.9K
26 октября 2007 года
SPB-667
119 / / 23.06.2007
От такой формулировки этой задачи можно голову сломать :eek: , но решение очень простое :D :

Код:
Dim N As Long                           ' Задаваемое число
Dim X As Long                           ' Ответ
Dim i As Long                            ' Думаю, величины переменных типа Long будет достаточно
Dim SUM  As Long

Private Sub Command1_Click()     ' Я решил сделать так, чтобы прога запускалась при нажатии кнопки, но можно, конечно, и иначе, напрмер, через Form_Load
  N = InputBox ("Введите натуральное число:")  ' Здесь появляется окошко, в которое нужно ввести число
  If N < 4 or IsNumeric(N) = False Then MsgBox "Нет решений": Exit Sub ' Если введёное число меньше 4 или введено чёрт знает что :D , то прога завершает свою работу (это следует из логики вещей ;) )
  SUM = 0 ' обнуление переменной (необязательная строка, если переменная SUM не используется в других процедурах)
  For i = 1 To N  ' вместо N можно было конечно написать и максимальное значение типа Long равное 2 147 483 647  :p
   SUM = SUM + i ' Здесь происходит простое увеличение суммы на величину i, значение которой, каждый раз увеличивается на один
   If SUM > N Then X = i + 1: MsgBox "Это число " & X: Exit Sub ' Дословно: если сумма нат. чисел больше введёного числа, то искомое число будет на один больше (по условию)
  Next i
End Sub


Я проверял, вроде всё правильно работает! :cool:
276
26 октября 2007 года
Rebbit
1.1K / / 01.08.2005
Прошу прощения за мой неправильній ответ. Я грешнім делом подумал что сума только двух предидущих за ответом должна біть больше. Чтото на меня затмение нашло.
12K
26 октября 2007 года
Asu2007
41 / / 19.09.2007
А можно как-нибудь описать этот процесс.
Как он действует и подсчитывает значение I и x
5.9K
27 октября 2007 года
SPB-667
119 / / 23.06.2007
Откомментировал тамже
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог