Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Олимпиады

Страница: 1 |

 

  Вопрос: Help ME!!! Добавлено: 13.11.04 17:55  

Автор вопроса:  ashdan87 | Web-сайт: www.ashdan87.narod.ru/index1.html | ICQ: 347384533 
Помогите решить задачу: Составить алгоритм нахождения двузначных чисел, сумма квадратов цифр которых делиться на 13.
Вот как я ее решаю на VisualBasic:

Dim i As Long
Dim n1 As Long
Dim n2 As Long
For i = 10 To 99’ все двузначные числа
    n1 = Mid(i, 1, 1)’режем первую цифру
    n2 = Mid(i, 2, 1)’режем вторую цифру
    If (n1 ^ 2 + n2 ^ 2) Mod 13 = 0 Then’ если остаток от деления равен = 0 то число делиться на 13
    List1.AddItem n1 & n2’добавляем найденное число в листбокс…
    End If
Next i

Такой код прекрасно работает на VisuaBasic’e, но как решить такую задачу на QBASIC???
Ведь если написать такую строку: n1 = Mid(i, 1, 1) он выдаст ошибку Subscript out of range? Получается, что оно хавает его как строку а не число, а I и n1- числовые переменные… Помогите… Если не трудно пришлите ответ мне на мыло: ashdan87@mail.ru

Ответить

  Ответы Всего ответов: 7  

Номер ответа: 1
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #1
Добавлено: 13.11.04 18:07
 Мда, на QBasic применить MID$ к целочисленному типу крайне сложно ;)

Ответить

Номер ответа: 2
Автор ответа:
 ashdan87



ICQ: 347384533 

Вопросов: 3
Ответов: 5
 Web-сайт: www.ashdan87.narod.ru/index1.html
 Профиль | | #2
Добавлено: 13.11.04 18:27
а как сделать? подскажи....

Ответить

Номер ответа: 3
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #3
Добавлено: 13.11.04 18:59
Очень просто
 ;Dim i2 as String
 ...
 i2=Ltrim$(Str$(i))

 А затем применяешь MID$ к i2

Ну и ещё по поводу Long'а у меня сомнения. По моему, раз QB 16-битный, то такого целочисленного типа может и не быть. А вообще, для твоих целей хватит и типа BYTE, у которого диапазон от 0 до 255.

Ответить

Номер ответа: 4
Автор ответа:
 ashdan87



ICQ: 347384533 

Вопросов: 3
Ответов: 5
 Web-сайт: www.ashdan87.narod.ru/index1.html
 Профиль | | #4
Добавлено: 13.11.04 19:43
Нет, так тоже пашет. мне друг помог решить, получилось так:
For i = 10 to 99
n1 = (i - i mod 10)/10' пераое число
n2 = (i) mod 10'второе число
if (n1^2) + (n2^2) mod 13 = 0 Then
print n1, n2
end if
next i

Ответить

Номер ответа: 5
Автор ответа:
 ashdan87



ICQ: 347384533 

Вопросов: 3
Ответов: 5
 Web-сайт: www.ashdan87.narod.ru/index1.html
 Профиль | | #5
Добавлено: 13.11.04 19:44
я имел в виду что так, как ты предложил неработает..

Ответить

Номер ответа: 6
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #6
Добавлено: 13.11.04 20:42
 Скорее это ты предложил. Твой алгоритм заранее был неверен, но я не стал его поправлять, т.к. не знаю уровня твоих знаний.

Ответить

Номер ответа: 7
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #7
Добавлено: 13.11.04 20:49
 А то что в ответе 3 по идее должно работать. Покажи код как ты это записал.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам