Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Русский_Проект: Изучение Visual Basic


Служба Рассылок Subscribe.Ru
Русский_Проект: Рассылка Вступление
Разбор прошлого задания
Задачки
Советы
Функции Windows API

Вступление

Здравствуйте!

Разбор прошлого задания

Напомним условие. Задачка 1
Разложить число 10 на 2 слагаемых, сумма квадратов которых равняется 58
Некоторые слишком уж серьезно отнеслись к заданию как к задаче комбинаторного типа. Хотя по сути это так, но решить ее можно очень просто. Достаточно определить величину X, удовлетворяющую равенству
x*x+(10-x)*(10-x)=58
Составим программу
Dim x
For x = 1 To 10
If x * x + (10 - x) * (10 - x) = 58 Then
Debug.Print x; 10 - x
End If
Next x
Первыми прислали правильное решение Эмин Рустамов (ere@...) и Владимир Кирко (vlyrki@...)

Задачка 2
Определить, сколько существует вариантов дать сдачу 27 рублей монетами в 1, 2 и 5 рублей так, чтобы общее количество монет было равно 10
Эта задача чуть посложнее. Здесь уже используются вложенные циклы. Но если вдуматься, то ничего сложного

' Пусть i - 5 руб. j - 2 руб. k - 1 руб
For i = 0 To 5
 For j = 0 To 10
  For k = 0 To 25
a = i * 5 + j * 2 + k * 1
b = i + j + k
If a = 27 And b = 10 Then Debug.Print i, j, k '
Next k, j, i
Здесь нужно сделать несколько замечаний. В переборных задачах нужно постараться уяснить себе поставленную задачу и отбросить заведомо лишние переборы. Например, 5 рублевых монет не может быть больше 5 штук. Если их будет 6 (5руб*6=30руб), то это противоречит условию задачи

Задачки

Рубрика для любителей решать задачки.
Продолжаем изучать комбинаторику. На сайте выложена первая часть статьи. (http://rusproject.narod.ru/article/combinatorika.htm")
Нужно перевести математическую формулу вычисления факториала на великий и могучий язык Visual Basic. Ваши решения принимаются только с комментариями!
Решения задачи можете присылать по адресам vbasic@rambler.ru или wwwind@aport.ru

Советы

Объект Shell

Используя объект Microsoft® Windows® Shell, вы можете использовать многие возможности оболочки Windows и системных диалоговых окон. Например, вы можете получить доступ к файловой системе, запустить программу, изменять системные настройки.
Чтобы получить доступ к объекту Shell, необходимо установить ссылку на Microsoft Internet Controls и Microsoft Shell Controls and Automation : Project-References-Microsoft Internet Controls (файл SHDOCVW.DLL) и Shell Controls and Automation (Shell32.dll). Затем введите следующий код

Dim o As New Shell
 o.MinimizeAll
 Set o = Nothing
Этот пример сворачивает все окна. Существуют множество других методов. Приведу небольшой список некоторых методов
o.FileRun - Выводит окно Запуск программы (Пуск->Выполнить)
o.CascadeWindows - Окна каскадом (Аналогично правому щелчку на панели задач и выбор меню Окна каскадом
o.ControlPanelItem ("desk.cpl") - Выводит апплет Панели управления
o.FindComputer - Диалоговое окно Найти: Компьютер (Пуск-Найти-Компьютер...)
o.SetTime - Диалоговое окно Настройка: Дата и время (Аналогично щелчку на системных часиках внизу экрана

Функции API: Сообщения

Сообщение PBM_SETBKCOLOR

Const PBM_SETBKCOLOR =&H2001

Сообщение PBM_SETBKCOLOR устанавливает цвет фона для индикатора прогресса

Возвращаемое значение
Сообщение PBM_SETBKCOLOR возвращает предыдущий цвет индикаторной полоски или CLR_DEFAULT, если используетая цвет по умолчанию

Пример

' Установим красный фон для индикатора прогресса

Call SendMessage(ProgressBar1.hwnd, PBM_SETBKCOLOR, 0&, ByVal vbRed)
Полный текст с описанием этой функции вы найдете в справочнике по функциям Windows API

Не стесняйтесь, высылайте ваши предложения по адресу vbasic@rambler.ru
Посетите сайт Русский_Проект, где вы найдете другую интересную информацию
Давайте делать рассылку вместе! Удачи!



http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное