Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.10.2015, 22:36   #1
Denton72
Пользователь
 
Регистрация: 11.10.2015
Сообщений: 25
По умолчанию vba цыкл do loop until нужна поверка

и опять здрасти опять надо проверить
Даётся натуральное число x. В какой минимальной степени нужно возвести 2, что бы получить число, которое меньше x.
Код:
Dim x As Integer,i As Integer,n As Integer


i<=x(vienads tikai divas gadijumas)")
x = InputBox("любое натуральное число(1,2,3...) x")
Do
i = i + 1
n = (2 ^ i)
Loop Until n > x
i это число степень и оно во всех случиях меньше х

я смысл задания понел?если нет можно обеснение

Последний раз редактировалось Stilet; 27.10.2015 в 07:31.
Denton72 вне форума Ответить с цитированием
Старый 26.10.2015, 23:23   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Даётся натуральное число x. В какой минимальной степени нужно возвести 2, что бы получить число, которое меньше x.
некорректный вопрос.
ответ - в минус первую степень для любого натурального X.
согласитесь, что 1/2 меньше любого числа
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.10.2015, 23:41   #3
Denton72
Пользователь
 
Регистрация: 11.10.2015
Сообщений: 25
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
некорректный вопрос.
ответ - в минус первую степень для любого натурального X.
согласитесь, что 1/2 меньше любого числа
да но как это будет выглядеть на do loop

do
n= (2 ^ -1)
loop until n < x
Denton72 вне форума Ответить с цитированием
Старый 26.10.2015, 23:43   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
да но как это будет выглядеть на do loop
да никак не будет выглядеть.
задание составлено неверно (а может Вы его исказили)!
Поэтому тут не нужно никакого цикла.
И решать тут тоже нечего.
разберитесь для начала с заданием.
А потом уже можно думать, как это задание можно решить.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.10.2015, 23:57   #5
Denton72
Пользователь
 
Регистрация: 11.10.2015
Сообщений: 25
По умолчанию

ок спрошу

и спросил я учителя разбудив его и дал мне он тругое задание просто (ain't that great?)
Дано число x(вводим с клавиатуры),есть интервал [1,x]
найти числа которые находятся друг от друга в шести шагах
Код:
Dim n As Integer, x As Integer,count As Integer, checker as Integer
Dim result As String
n = InputBox() `написал  в задание x использую n (разница?(некакой))
но я уже незнаю это простокак сделать(наверное знаюно думать уже нехочу)
я сечас сделал програму

Код:
Do 
x = x + 1 `идёт интервал
checker = x
If count = checker \ 6 Then `проверка если число делитсяна 6 без остатка то х записиваем  если нет то нечего
result = result + " " & x
Else
End If
Loop Until x > n
MsgBox (result)
я уже здаюсь с vba
и неправильно ....

Последний раз редактировалось Denton72; 27.10.2015 в 09:17. Причина: точность
Denton72 вне форума Ответить с цитированием
Старый 27.10.2015, 09:41   #6
AleksandrH
Форумчанин
 
Аватар для AleksandrH
 
Регистрация: 15.02.2010
Сообщений: 148
По умолчанию

Цитата:
Сообщение от Denton72 Посмотреть сообщение
Дано число x(вводим с клавиатуры),есть интервал [1,x]
найти числа которые находятся друг от друга в шести шагах
Код:
Sub fk()
    Dim x As Integer, i As Integer, l As Integer, r As Integer
    Dim s As String
    x = CInt(InputBox("Input X (X>1)"))
    i = 1
    Do While i <= x
        s = CStr(i) & ": "
        l = i - 6: r = i + 6
        If l >= 1 Then s = s & " left : " & CStr(l)
        If r >= 1 Then s = s & " right : " & CStr(r)
        If Len(s) <> Len(CStr(i)) Then
            Debug.Print s
            s = ""
        End If
        i = i + 1
    Loop
End Sub
WIX-FILTERS. A Filter for every application.
AleksandrH вне форума Ответить с цитированием
Старый 27.10.2015, 10:27   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Дано число x(вводим с клавиатуры),есть интервал [1,x]
найти числа которые находятся друг от друга в шести шагах
я это вижу примерно так:
Код:
Sub fk()
    Dim x As Integer, i As Integer
    x = CInt(InputBox("Input X (X>1)"))
    i = 1
    Do While (i + 6) <= x
        Debug.Print "в шести шагах находятся числа " + CStr(i) + " и " + CStr(i + 6)
        i = i + 1
    Loop
End Sub
Serge_Bliznykov вне форума Ответить с цитированием
Старый 27.10.2015, 11:05   #8
AleksandrH
Форумчанин
 
Аватар для AleksandrH
 
Регистрация: 15.02.2010
Сообщений: 148
По умолчанию

Сложно что-то писать, если ТС не хочет поделиться даже примером входных/выходных данных.
WIX-FILTERS. A Filter for every application.
AleksandrH вне форума Ответить с цитированием
Старый 27.10.2015, 14:34   #9
Denton72
Пользователь
 
Регистрация: 11.10.2015
Сообщений: 25
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
я это вижу примерно так:
Код:
Sub fk()
    Dim x As Integer, i As Integer
    x = CInt(InputBox("Input X (X>1)"))
    i = 1
    Do While (i + 6) <= x
        Debug.Print "в шести шагах находятся числа " + CStr(i) + " и " + CStr(i + 6)
        i = i + 1
    Loop
End Sub

Debug.Print неработает я понимаю это выводит на экран результат
MsgBox как будет выглядеть?
Dim x As Integer, i As Integer, l As Integer, r As Integer
Dim s As String
x = CInt(InputBox("Input X (X>1)"))
i = 1
Do While i <= x
s = CStr(i) & ": "
l = i - 6: r = i + 6
If l >= 1 Then s = s & " left : " & CStr(l)
If r >= 1 Then s = s & " right : " & CStr(r)
If Len(s) <> Len(CStr(i)) Then
End If
i = i + 1
Loop
MsgBox(s)
End Sub[/CODE][/QUOTE]
работает спасибо братья!!!

Но дали теперь ещё одну работу теперь (
Дано число x(вводим с клавиатуры),есть интервал [1,x](copy paste no?)
найти числа у которых 6 есть делителей
иногда кажется что задания предумывают находу что была у всех работа
чуть позже тут выложу наработку---

Последний раз редактировалось Denton72; 27.10.2015 в 18:24.
Denton72 вне форума Ответить с цитированием
Старый 27.10.2015, 18:23   #10
Denton72
Пользователь
 
Регистрация: 11.10.2015
Сообщений: 25
По умолчанию

наработку я преставил так
Код:
  Dim x As Integer, i As Integer
    Dim s As String
    x = CInt(InputBox("ввести X (!должно быть!X>1)"))
    i = 1
    Do While i <= x
    If i Mod 6 = 6 Then
    s = s + i
    End If
    i = i + 1
    Loop
    MsgBox ("у чисел" & s & "  6 делителей" & )
`MsgBox пустой
Denton72 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Цыкл vebster Паскаль, Turbo Pascal, PascalABC.NET 2 30.09.2012 21:06
[С++] Цыкл kaznachey1993 Помощь студентам 2 25.04.2012 20:39
Проблема с ошибкой.FOR-Loop variable 'i' may be undefined after loop Loadgame Помощь студентам 1 15.11.2011 23:08
Поверка данных (Данные/Проверка...) FoxRiver Microsoft Office Excel 4 05.02.2011 09:28
Richedit и поверка на пробелы fakir9999 Помощь студентам 5 29.05.2009 20:35