Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [VB6] Ввод действительных чисел


Автор: Гость_Студент 27.5.2005, 11:16
Помогите решить задачи на Visual Basic, без применения всяких компонентов, только Input Box и MsgBox:
1.
В одну и ту же переменную последовательно вводятся действительные числа. Количество вводимых чисел заранее не известно. Определить номер и значение ПОСЛЕДНЕГО максимального числа. Определить номер и значение ПЕРВОГО минимального числа.

М
 
Один топик - один вопрос!

Автор: ChofCh 27.5.2005, 18:47
Чёрт, лишний раз на Enter нажал...

Автор: ChofCh 27.5.2005, 19:27
Т.к. явно в запросе версия языка была не указана, писал на VB6.
1. Не уверен, что правильно понял условие, но вроде бы так:
Код

Private Sub Main()
Dim X As Double, Xmin As Double, Xmax As Double
Dim I As Long, Imin As Long, Imax As Long
I=1
Imin=1
Imax=1
X=InputBox("Введите число")
Xmax=X
Xmin=X
Do While MsgBox("Продолжить последовательность?", vbYesNo)=vbYes
X=InputBox("Введите число")
I=I+1
If If X<Xmax Then
  If X<Xmin Then
    Xmin=X
    Imin=I
  End If
Else
  Xmax=X
  Imax=I
End If
Loop
MsgBox "Минимальное значение " & Xmin & " номер первого минимального значения - " & Imin
MsgBox "Максимальное значение " & Xmax & " номер первого максимального значения - " & Imax
End Sub

2. Где-то так:
Код

Private Sub Main()
Dim X As Double
Dim Sum As Double
Dim Pos As Long, Zeros As Long, ZerosMax As Long
Dim ZeroChain As Boolean
Pos=0
Sum=0
ZeroMax=0
ZeroChain=False
Do
X=InputBox("Введите число")
If X=0
 If ZeroChain Then Zeros=Zeros+1 Else Zeros=1
Else
 Sum=Sum+X
 Pos=Pos+1
 If ZeroChain Then
   If Zeros>ZerosMax Then ZerosMax=Zeros
 End If
End If
Loop Until MsgBox ("Закончить ввод?", vbYesNo)=vbYes
MsgBox "Длина максимальной цепочки нулей: " & ZerosMax
MsgBox "Количество положительных чисел: " & Pos
MsgBox "Их сумма: " & Sum
End Sub

3. Метод стремный, но должен работать:
Код

Private Sub Main()
Dim Sum As Long, X As Integer, S As String, i As Long
S=InputBox("Введите число")
For i=1 to Len(S)
X = Asc(Mid$(S,i,1))-Asc(0)
If (X<10) And  (X>=0) Then Sum=Sum+X
Next i
MsgBox "Сумма цифр во введенном числе:" & Sum
End Sub

Автор: Гость_Студент 30.5.2005, 06:53
Спасибо за помощь! Первая задача правильно сделана, а вот вторая несчитает чепочки введенных нулей. А в третьей задаче кажется надо найти сумму чисел вещественного числа, т.е. число до запятой и после, и посчитать их сумму, например, 22,2 значит
22+2=24 вот вроде. С 3 третьей задачей у меня запарка только в том, что я незнаю как разделить целую часть и дробную.

Автор: Yanis 30.5.2005, 10:54
И что тебе нужно то?

Автор: Гость_Студент 30.5.2005, 21:23
Как отделить целую и дробную часть в вещественном числе, например 22,2 Как отделить 22 и 2, чтобы потом сложить?

Автор: ChofCh 30.5.2005, 22:16
Пропатченый вариант второй задачки (блин, забыл написать пару тривиальных вещей):
Код

Private Sub Main()
Dim X As Double
Dim Sum As Double
Dim Pos As Long, Zeros As Long, ZerosMax As Long
Dim ZeroChain As Boolean
Pos=0
Sum=0
ZeroMax=0
ZeroChain=False
Do
X=InputBox("Введите число")
If X=0
 If ZeroChain Then
  Zeros=Zeros+1
 Else
  Zeros=1
  ZeroChain=True
 End If
Else
 Sum=Sum+X
 Pos=Pos+1
 If ZeroChain Then
   If Zeros>ZerosMax Then ZerosMax=Zeros
   ZeroChain=False
 End If
End If
Loop Until MsgBox ("Закончить ввод?", vbYesNo)=vbYes
If ZeroChain Then
 If Zeros>ZerosMax Then ZerosMax=Zeros
End If
MsgBox "Длина максимальной цепочки нулей: " & ZerosMax
MsgBox "Количество положительных чисел: " & Pos
MsgBox "Их сумма: " & Sum
End Sub

3. Ну, елы-палы:
Код

Private Sub Main()
Dim X As Double, S As Long
X=InputBox("Введите число")
S=Int(X)
X=X-Int(X)
Do While Int(X)<>X
 X=X*10
Loop
S=S+X
MsgBox "Сумма цифр во введенном числе:" & S
End Sub

Автор: Гость_Студент 1.6.2005, 05:56
ОГРОМНОЕ СПАСИБО!!!

Автор: volk 29.1.2007, 11:16
Помогите, пожалуйста, решить 2 задачки на Visual Basic. Заранее благодарю!
1. Задана строка символов. Группы символов, разделенные пробелом и не содержащие пробелов внутри себя, будем называть словами. Вывести все буквы, которые входят в наибольшее количество слов строки.

2.Одномерные массивы. Решить следующую задачу.
Дана последовательность а1,а2,...,а40. Расположить положительные элементы последовательности, стоящие на нечетных местах, по возрастанию.



M
Alexeis
Модератор: Пожалуйста, один топик - один вопрос.


Автор: Strannik 29.1.2007, 11:46
Цитата

Помогите, пожалуйста, решить 2 задачки на Visual Basic.

А обязательно на бейсике? А то задачи тривиальные, а помочь не могу, т.к. бейсика не знаю...

Добавлено @ 11:47 
Так что могу только алгоритм рассказать...

Автор: volk 29.1.2007, 12:07
надо обязательно на VB 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)