Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Математическая задача


Автор: oli 27.12.2008, 00:25
Есть одна задача:

«Заданное двузначное число n представить в виде суммы квадратов двух натуральных чисел или выдать сообщение, что это невозможно»
Для решения придумал следующее:

--------
Код

Dim j As Integer
Dim i As Integer
Dim n As Integer
Dim k As String

Private Sub Command1_Click()
n = Val(Text1.Text)
For i = 1 To n

For j = 1 To n
If n = (i * i) + (j * j) Then
k = "можно"
Else
k = "нельзя"
End If

Next
Next
Print k
End Sub
Но код неправильно выводить результат-всегда"Нельзя"
Помогите пожалуйста исправить или дополнить код до раб состояния
Спасибо заранее!

Автор: Aloha 27.12.2008, 00:58
oli

Проблема вот в чем: не предусмотрен выход из цикла при достижении нужного результата. Можно использовать конструкцию GoTo, либо сделать так:

Код
Private Sub Command1_Click()
  n = Val(Text1.Text)
  
  k = "нельзя"
  
  For i = 1 To n
    For j = 1 To n
      If n = (i * i) + (j * j) Then
        k = "можно"
      End If
    Next j
  Next i
  
  Print k
End Sub

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