ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    Використання мови програмування Visual Basic для вирішення математичних завдань
         

     

    Інформатика, програмування

    Використання мови програмування Visual Basic для вирішення математичних завдань

    Атестаційна робота з інформатики за 2005 - 2006 навчальний год.Кравченко Валерії учениці 10 Г класу Ліцею № 1

    2006

    Visual Basic

    В моїй попередній роботі «Комп'ютерне моделювання руху тіл» розглядалися можливості мови програмування QBasic для вирішення математичних (професійних) завдань в умовах навчання учнів середніх шкіл та професійних училищ.

    Подальше розвиток програмування призвело до появи нових програм адаптованих до операційній системі Windows, і зокрема до появи Visual Basic. У даній роботі я постараюся показати основні відмінності та переваги Visual Basic.

    Так що ж таке Visual Basic?

    Перед початківцями програмістами завжди постає одне й те ж питання, а саме, який мова програмування вибрати? На чому програмувати? Звичайно краще починати з легкого і в той же час потужного мови - Visual Basic (VB). Вивчивши прийоми програмування на VB, можна без особливих зусиль вивчити інші мови, такі як Pascal, C + + та ін

    Слово "БЕЙСІК" (BASIC) - "базовий, основний" - створене з початкових букв англійського виразу "Універсальний мова символічного кодування для початківців ". Це" для початківців "довго викликало зневага програмістів, причому подібне нехтування не зникло до цих пір, незважаючи на наявність професійних видань VB.

    Перший IMB PC мав 16-розрядний Бейсік - BASICA, розроблений IBM, а потім витиснений майкрософтскім GW-BASIC і QUICK-BASIC. В останньому була прибрана нумерація рядків і доданий компілятор, що перетворює Бейсік програму в повноцінний exe файл. Нарешті в 1992р. фірмою Microsoft був випущений VB 1.0 -- дуже проста мова програмування для Windows 3.1. Потім були випущені VB 3.0, VB 4.0, VB 5.0 і нарешті VB 6.0. Останні дві версії мало чим відрізняються, в шостої версії покращено ядро і додано кілька нових функцій. Існує ще мова макросів для додатків Microsoft Office (Word, Excel і т.п.). Він називається VBA (Visual Basic for Application). З його допомогою можна маніпулювати додатками Office.

    Програми написані на Visual Basic відрізняються від звичайних програм тим, що вимагають для своєї роботи бібліотеку msvbvmX0.dll, яка має бути присутня у каталозі WindowsSystem. У ролі X виступає версія компілятора VB. Для VB5 -- msvbvm50.dll, для VB6 - msvbvm60.dll. Ці бібліотеки йдуть в комплекті з WinME (обидві) і Win98 (тільки msvbvm50.dll), і природно з більш новими версіями цих ОС.

    Середа Visual Basic може з успіхом використовуватися початківцями користувачами для пізнання секретів програмування і захоплюючих занять по створенню нескладних (спочатку) програм і, в той же час, надає потужні інструменти розробки досвідченим програмістам. Розвинена довідкова система дозволить при побудові програми та роботі в Visual Basic знайти вихід з будь-якої ситуації і отримати відповідь на будь-яке питання. Починати працювати з Visual Basic можна практично з будь-яким рівнем підготовки.

    Що може Visual Basic?

    В принципі, можливості Visual Basic нічим не обмежені. Ви можете розширювати можливості VB допомогою використання додаткових функцій. Visual Basic дозволяє використовувати бібліотеки динамічного компонування (DLL бібліотеки), які також можуть широко розширити можливості Visual Basic. Ці бібліотеки можуть бути написані на будь-якій мові програмування.

    На VB можна написати будь-яку програму, від обслуговуючих рутинні операції введення даних, до складних інформаційних і комунікаційних систем. У США 60% програмних продуктів написані на VB. Є звичайно дуже невеликі обмеження, наприклад, на VB не можна написати повноцінну DLL бібліотеку, драйвер пристрою VXD, також у VB можна використовувати асемблер.

    Встановлення та налаштування VB

    Установка Visual Basic не відрізняється особливою складністю, все стандартно. У процесі інсталяції необхідно вказати компоненти, які будуть встановлені на комп'ютер. Якщо на жорсткому диску є місце, то краще вибрати всі компоненти, щоб потім їх не довелося додавати. Тут слід відзначити те, що версія VB 5.0 поставляється з файлами допомоги (приблизно 15Мб), а допомога для VB 6.0 йде в комплекті з MSDN, який поставляється на трьох дисках. Тому якщо у вас шоста версія, записана на одному диску, то будьте впевнені, допомоги там не буде. Але цілком можна взяти допомогу від п'ятої версії і використовувати її для VB 6.0. Після установки VB перезавантажте комп'ютер.

    Отже, комп'ютер перезавантажено. Перед роботою з VB його необхідно налаштувати. Для цього запустіть VB (Пуск-> Програми-> Microsoft Visual Basic 6.0-> Visual Basic 6). Необхідно зайти в меню Tools-> Options, встановити галочку "Require Variable Declaration". Це позбавить від зайвих помилок при автоматичному визначенні змінних. Далі на вкладці Editor Format, у списку Font необхідно вказати Courier New Cyr. Якщо цього не зробити, то VB не буде коректно відображати кирилицю. Також бажано встановити колір зарезервованих слів в яскраво-синій. Для цього вибрати в списку Code Colors Keyword Text і в полі Foreground вказати яскраво-синій колір (сьомий знизу). От і все! Visual Basic готовий до роботи!

    Структура проекту VB

    В Visual Basic будь-який проект складається з однієї або декількох так званих форм, кожна з яких вирішує якесь завдання і складається з наступних файлів:

    -файл форми (розширення frm) - це звичайний ASCII текстовий файл, в якому записаний весь код, поміщений у форму, а також властивості усіх поміщених на форму елементів управління і самої форми теж.

    -файл форми (розширення frx), містить бінарну інформацію (наприклад картинку в PictureBox).

    -файл проекту (розширення vbp), містить інформацію про проект

    -в файлі (розширення vbw) міститься інформація про робочої області проекту (workspace).

    Це необхідний мінімум. (Хоча, бувають і виключення, наприклад, коли в проекті не використовуються форми. Тоді замість frm файлу, буде bas файл.)

    Далі наводить додаткові файли, які можуть бути підключені до проекту:

    файл кожного модуля (розширення bas) Це текстовий файл.

    файл кожного модуля класів (розширення cls). Це текстовий файл.

    файл кожного додаткового елемента керування (розширення ctl) Це теж текстовий файл.

    файл ресурсів (розширення res)

    інші файли (ocx, tlb, і т.д. ..)

    Запам'ятовувати призначення всіх цих файлів не обов'язково, досить запам'ятати 2 файлу: frm-файл, в якому зберігаються код форми і властивості усіх поміщених на цю форму елементів управління. І bas-файл - модуль. У ньому можуть бути оголошені глобальні змінні, константи, функції і т.д. Коротше, тільки код. Без елементів управління.

    середу розробки VB

    Для того щоб зрозуміти, як проектувати інтерфейс, необхідно розібрати середовище розробки Visual Basic. Запустити VB. У вікні (Мал. 1) необхідно вказати тип проекту - "Standart EXE" і натиснути ОК.

    Рис. 1

    На екрані з'явиться таке вікно (Рис 2).

    В лівій частині розташована панель з доступними елементами управління, з якою можна перетягувати потрібні елементи на форму. У центрі знаходиться форма (вікно), іншими словами робоча область активного застосування. Назва нової форми - Form1. Вгорі розташована панель інструментів середовища розробки. Праворуч розташовані вікна проекту (Project) і властивостей поточного об'єкта (Properties).

    Рис.2

    Головне перевага роботи з об'єктами в тому, що об'єкти забезпечують програмний код, який вже не потрібно писати розробнику. Йому просто потрібно встановити властивості об'єкта і викликати методи об'єкту, щоб спонукати об'єкт виконати необхідні функції. Деякі властивості можна відредагувати тільки в період виконання програми (RunTime). Багато об'єктів мають однакові властивості. Наприклад, властивість Caption. У форми (Form) Caption - це заголовок вікна, а у елемента мітки (Label) - це текст всередині позначки.

    Для того, щоб оцінити різницю між VB і QBasic, згадаємо рішення задачі польоту ядра (Додаток 1). Наприклад: щоб намалювати лінію в QBasic, яка відповідала б сітці координат, необхідно кожну точку, лінію, межі, положення напису, колір описувати відповідними операторами. У VB цей процес значно спрощується, достатньо в лівій частині робочої форми викликати відповідні елементи управління. Для початку проведемо пару ліній і розмістимо на формі два скрол (вертикальний-Vscroll і горизонтальний -- Hscpoll), щоб вийшла приблизно картинка, як показано на рис. 3. Причому вибравши той чи інший

    Рис.3.

    елемент, відзначивши його мишкою, в правій частині форми активується вікно Properties, в якому можна переглянути параметри елементів і змінити їх. Причому це може стосуватися як кольору, розмірів, положення так і числових величин. Якщо, при цьому клікнути мишкою по робочій області форми відкриється зміст форми (Рис.4), в даному випадку поки не заповнений.

    Рис.4.

    Але не слід забувати, що все що знаходиться на робочій області форми міститься у файлі form1.frm і в міру роботи з формою вміст файлу буде мінятися.

    Щоб запустити форму необхідно натиснути RunStart або просто F5. Вихід - RunEnd.

    Рішення завдань у VB

    Рішення завдання польоту ядра (Додаток 1), почнемо з визначення необхідних умов, які повинні бути відображені на екрані:

    Положення мети прив'язати до положення горизонтального скрол (HScroll);

    Завдання кута стрільби прив'язати до положення вертикального скрол (VScroll);

    Максимально відобразити найбільш важливі числові параметри.

    Рішення першого пункту почнемо з установки параметрів для горизонтального скрол виділивши HScroll і активувавши властивості поточного об'єкта (Properties-HScroll). Припустимо, що задана максимальна дальність мети відповідає 15000 м, тоді максимальне значення скрол також повинно відповідати 15000 м. Змінимо в графі MAX величину 32767 на 15000 (Рис.5). А в графі MousePointer встановити значення 7-Size NS. Переглянути що з цього вийшло можна увійшовши через F5.

    Виведемо на екран значення скрол, яка і буде визначати дальність до цілі. Для цього в лівій частині в панелі управління елементів виберемо елемент Label і розмістимо його в будь-якій частині робочої області. Виділимо тепер горизонтальний скрол і гукнемо його мишкою. Активується вікно Project1 (зміст форми). Між рядків: Private Sub HScroll1_Change () і End Sub введемо нові дані:

    Label1 = HScroll1

    Cls

    X1 = Label1 * 0.55 + 500

    Line (X1, 4300) - (X1 + 100, 4450), 11, BF

    Загальний вид запису представлений на рис. 6.

    Рис. 5.

    Рис. 6.

    При цьому треба враховувати різницю в масштабах координати Х1 і значення HScroll. Їх узгодження забезпечується виразом:

    X1 = Label1 * 0.55 + 500

    В принципі, для кожного конкретного випадку, значення коефіцієнтів (0,55 та 500) можуть бути різними і вимагають індивідуального підбору.

    Оператор CLS забезпечує обнулення зображення цілі після кожного звернення до HScroll.

    Другим кроком буде редагування вертикального скрол (VScroll). Для цього створимо і розмістимо на робочій області елемент управління Label 2. Виберемо VScroll і в властивості об'єкта (Properties-VScroll) змінимо значення параметра MAX і Value на 80, що буде відповідати максимальному куті стрілянини в 80 градусів і початкового стану вертикального скрол в нижній частині шкали. У графі Mouse Pointer можна встановити значення 9-Size WE. А щоб нижнє положення курсору VScroll1, що наведено елементом Label2 відповідало 0, необхідно, активувавши вікно Properties для VScroll1 і записати у зміст форми:

    Private Sub VScroll1_Change ()

    Label2 = 80 - VScroll1

    End Sub

    Загальний вид змісту форми представлений на Рис. 7.

    Рис. 7.

    Наступним кроком буде введення активної кнопки, натиснувши на яку здійснюватиметься старт (Пуск, Постріл). Для цього на панелі управління виберемо новий елемент Command1 і встановлюємо його в будь-якому зручному місці робочої області форми. При цьому у властивостях елементу Properties-Command1 в рядку Caption пропишемо нове ім'я «Start». Активувавши зміст форми запишемо для елемента Command1 наступні рядки, що взяті з вже вирішеною завдання польоту ядра в QBasic (Додаток 1), правда поки без урахування опору повітря:

    Private Sub Command1_Click ()

    x0 = 480

    y0 = 4440

    X2 = x0

    Y2 = y0

    v = 150

    g = 9.8

    a = Label2

    f = a * 3.14/180

    100 q = 0.0001

    t = t + q

    s = v * t * Cos (f) * 2

    h = (v * t * Sin (f) - (g * t ^ 2) / 2) * 5.5

    Line (X2, Y2) - (x0 + s, y0 - h), 14

    X2 = x0 + s

    Y2 = y0 - h

    If h <0 Then GoTo 200

    GoTo 100

    200 End Sub

    Значення координат х0 і у0 (початкова точка старту) підбираються індивідуально.

    В Загалом, на цьому, завдання можна вважати виконаною. На рисунку 8 і 9 відображений загальний вигляд форми.

    Для більшої наочності можна вести ще ряд елементів, змінити колір, ввести коефіцієнт опору повітря. Як варіант, у додатку 2 показано зміст файла form *. frm , Для даного випадку, а рис. 10 і рис. 11 відображає загальний вигляд форми.

    Рис. 8.

    Рис. 9

    Рис. 10

    Рис. 11

    Використання таймера в VB

    В більшості випадків вирішуються завдання у тій чи іншій мірі прив'язані до реального часу. У VB так само при вирішенні завдань можна використовувати час - таймер, причому таймерів може бути кілька, вони можуть працювати як разом, так і по черзі, при цьому один процес вирішення може зупинятися, а інший -- починатися.

    В запропонованому прикладі (Додаток 3), вирішена задача наведення в ручну ракети (ПТУРС) на ціль. Для вирішення завдання використані п'ять таймерів, причому дане рішення не є найбільш вдалим і має ряд похибок. Але для одержання початкових навичок у програмуванні в VB цілком прийнятний. Загальний вигляд форми представлений на Рис. 12.

    Рис.12.

    Особливістю складання, у цьому випадку, програми є те, що на самому початку вказується перелік елементів, які, так чи інакше, залежать від таймерів:

    Private Sub Form_Load ()

    Label1.Caption = 0

    Label2.Caption = 0

    Label3.Caption = 0

    Label4.Caption = 0

    Label5.Caption = 0

    Label6.Caption = 0

    Label13.Caption = 0

    Label15.Caption = 0

    Label17.Caption = 0

    End Sub

    Перший таймер (Private Sub Timer1_Timer ()), запускається відразу після початку програми, так як за замовчуванням у властивостях елементу Timer1 у графі interval встановлена 1, що відповідає 1мл.сек. При цьому положення цілі (танка) починає змінюватися у відповідності із записом:

    Label1.Caption = Label1.Caption + Timer1.Interval

    a = Label1.Caption

    Timer1 працює до тих пір, поки ракета не вийде за боковий вівтар 13000 або не потрапить до мета:

    If X0> 13000 Then Timer1.Interval = 0

    If Label17.Caption <150 Then Timer1.Interval = 0

    Решта таймери в початковий момент відключені, тобто для кожного таймера в графі interval встановлений 0.

    Робота таймер, 3 починається після натискання кнопки ПУСК:

    Private Sub Command1_Click ()

    Rem старт ПТУРС

    Timer3.Interval = 1

    End Sub

    Політ ракети описується таким блоком:

    T = Timer3.Interval

    Rem Політ ПТУРС

    X1 = V * T * Cos (f - Rnd * 0.1)

    Y1 = V * T * Sin (f + Rnd * 0.1)

    Label5.Caption = (Label5.Caption + X1)

    Label4.Caption = (Label4.Caption + Y1)

    Label6.Caption = 12000 - a * k

    X0 = Label5.Caption

    Y0 =-Label4.Caption

    Початковий кут стрільби задається положенням скрол і може змінюватися в межах від 25 до -15. Положення скрол, за замовчуванням, у властивостях встановлено як: max 40; value 10.

    А рядок:

    Label3.Caption = (25 - VScroll1)

    визначає, що початковий кут стрільби Label3.Caption = 15.

    Таймер 2 починає працювати, якщо висота польоту ПТУРС стає менше -50, тобто снаряд врізався в землю:

    If Y0> 50 Then Timer2.Interval = 1,

    при запускається тільки програма вибуху:

    Private Sub Timer2_Timer ()

    Rem: фе?? ерверк

    Rem: a кут розльоту

    Rem: r радіус розльоту, n кількість осколків

    Rem: коефіцієнти 1 і 4 визначають ширину і висоту розльоту

    X1 = Label5.Caption

    Y1 =-Label4.Caption

    r = 200

    n = 500

    Dim x (10), y (10)

    Randomize (Label2.Caption)

    For i = 1 To 2

    a = -6.28 * Rnd/2

    rn = r * Rnd

    xc = X1 + 400 + rn * 1.5 * Cos (a)

    yc = Y1 + 5600 + rn * 5 * Sin (a)

    PSet (xc, yc), & HFFFF80 * Rnd + & HC0C0FF * Rnd

    Next

    If Label1.Caption> 200 Then Timer2.Interval = 0

    End Sub

    При це таймер 3 зупиниться при подальшому опусканні снаряди до -100:

    If Y0> 100 Then Timer3.Interval = 0

    При досягненні мети ракети по дальності:

    If Label5.Caption> 11500 -- (Label1.Caption) Then Timer4.Interval = 1

    починає працювати таймер 4. У цьому випадку перевіряється висота польоту, і якщо вона менша 200 включається таймер 5:

    Private Sub Timer4_Timer ()

    If Label4.Caption <200 Then Timer5.Interval = 1

    End Sub

    Запускається програма вибуху:

    Private Sub Timer5_Timer ()

    X0 = Label5.Caption

    Y0 =-Label4.Caption

    r = 100

    n = 100

    Dim x (100), y (100)

    Randomize (Label2.Caption)

    For i = 1 To 5

    a = -6.28 * Rnd/2

    rn = r * Rnd

    xc = X0 + 400 + rn * 3 * Cos (a)

    yc = Y0 + 5600 + rn * 5 * Sin (a)

    PSet (xc, yc), & HFFFF80 * Rnd + & HC0C0FF * Rnd

    Next

    End Sub

    І якщо зберігається тенденція до зниження снаряда, то таймер 1 зупиняється:

    If Label17.Caption <150 Then Timer1.Interval = 0

    Мета вражена (Рис.13).

    Рис.13

    Висновок

    Таким чином, мова програмування Visual Basic, наочно дозволяє змоделювати фізичний процес, отримати конкретні результати і навики. Відмінною особливістю VB, є можливість роботи його безпосередньо в середовищі Windows, що значно підвищує наочність, барвистість програми і гнучкість в її застосуванні.

    Необхідно ще раз підкреслити, що створювані об'єкти одразу ж забезпечені програмним кодом і для них прийнятний метод перетягування, що досить поширено Windows.

    Отже, отримані навички дозволять надалі самостійно вирішувати завдання різної складності, розширити набутий досвід і поглибити свої знання в питаннях програмування.

    Список літератури

    Кравченко В. Програмування. «Комп'ютерне моделювання руху тіл». Навчально -- дослідницька робота учнівської 9 класу м. Кунгур 2005 - 30 с.

    Дж. Радер., К. Міллсап. Бейсик для персонального комп'ютера фірми IBM: Пер. з англ. - М.: Радіо і зв'язок, 1991. - 30 л.: Ил.

    Р. Мкдона. Основи мікрокомп'ютерних обчислень: Пер. с англ./Т. Г. Микільської; Під ред. В. Ф. Шальгіна. - М.: Висш. Школа., 1989. - 272 с.: Ил.

    Завдання і вправи з програмування: Практ. Посібник для ПТУ/Под ред. А. Я. Савельева. Кн. 2. Важка промисловість і транспорт/В. Е. Алексєєв, А.С. Ваулин. - 2-е изд., доп. - М.: Висш. шк., 1989-112 с.: ил.

    А. В. Перишкін., Е. М. Гутник. Фізика. 10 кл.: «Учеб. для общеобразоват. учеб. закладів - М.: Дрофа, 2002.

    І. Д. Помбрік, Н. А. Шевченко. Аеродинаміка. Изд. третє, виправлене і доповнене. М., Військове видавництво, 1972 - 96 с.: СПД

    Г. І. Свєтозаровим. ОСНОВИ ПРИКЛАДНОЇ ІНФОРМАТИКИ. Розділ: Опис мови Турбо-Бейсік. Довідковий посібник.

    http://www.codenet.ru/progr/vbasic/first.php

    http://vb.hut.ru/vbnovice/lessons.htm

    http://vbzero.narod.ru/loading.htm

    http://vbzero.narod.ru/site.htm

    http://vbzero.narod.ru/project.htm

    http://www.tam.ru/guide/

    http://www.codenet.ru/progr/vbasic/menu/vbhelp_01.php

    Додаток 1

    REM ЯДРО

    5 INPUT «Ввести кут стрілянини від 5 до 80 град»; a

    7 IF a <5 THEN 10

    IF a> 80 THEN 20

    GOTO 40

    10 INPUT «Кут повинен бути> = 5"; a

    GOTO 7

    20 INPUT «Кут повинен бути <= 80»; a

    GOTO 7

    40 INPUT «Ввести дальність до цілі від 200 до 5000 м»; l

    45 IF l <200 THEN 50

    IF l> 5000 THEN 60

    GOTO 70

    50 INPUT «Відстань до цілі має бути> = 200»; l

    GOTO 45

    60 INPUT «Відстань до мети повинно бути <= 5000»; l

    GOTO 45

    70 INPUT «Для пострілу натиснути F1»; enter

    REM побудова координат

    SCREEN 9:

    x0 = 50

    y0 = 300

    x1 = 600

    y1 = 50

    x2 = 50

    y2 = 300

    REM координата Y

    LINE (x0, y0) - (x0, y1), 12

    LOCATE 18, 4: PRINT "250"

    LOCATE 14, 4: PRINT "500"

    LOCATE 10, 4: PRINT "750"

    LOCATE 6, 4: PRINT "1000"

    LINE (48, 245) - (52, 245), 11

    LINE (48, 190) - (52, 190), 11

    LINE (48, 135) - (52, 135), 11

    LINE (48, 80) - (52, 80), 11

    REM координата X

    LINE (x0, y0) - (x1, y0), 12

    LOCATE 23, 19: PRINT "1000"

    LOCATE 23, 31: PRINT "2000"

    LOCATE 23, 44: PRINT "3000"

    LOCATE 23, 56: PRINT "4000"

    LOCATE 23, 69: PRINT "5000"

    LINE (150, 302) - (150, 298), 11

    LINE (250, 302) - (250, 298), 11

    LINE (350, 302) - (350, 298), 11

    LINE (450, 302) - (450, 298), 11

    LINE (550, 302) - (550, 298), 11

    REM МЕТА

    LINE (x0 + l/10, 299) - (x0 + l/10 + 5, 299), 10

    LINE (x0 + l/10, 298) - (x0 + l/10 + 5, 298), 10

    REM свідчення

    LOCATE 1, 6: PRINT "V m/s"

    LOCATE 2, 6: PRINT "H m"

    LOCATE 2, 24: PRINT "S m"

    LOCATE 1, 24: PRINT "T s"

    80 KEY (1) ON

    ON KEY (1) GOSUB 90

    GOTO 80

    REM політ

    90 v = 200

    g = 9.8

    f = A * 3.14/180

    100 q = .01

    t = T + q

    REM k коефіцієнт опору повітря

    k = .016

    vs = v * COS (f) - (k - k/(k + v * COS (f )))

    vh = v * SIN (f) - (k - k/(k + v * SIN (f )))

    s = vs * t * 2

    h = (vh * t - (g * t ^ 2)/2) * 5.5

    v = SQR (vs ^ 2 + vh ^ 2)

    LINE (x2, y2) - (x0 + s/20, y0 - h / 25), 14

    x2 = x0 + s/20

    y2 = y0 - h/25

    LOCATE 1, 12: PRINT v

    LOCATE 2, 12: PRINT h/5.5

    LOCATE 2, 28: PRINT s/2

    LOCATE 1, 28: PRINT t

    IF h <0 THEN 200

    GOTO 100

    200 REM вибух

    r = 30

    n = 500

    REM: a кут розльоту

    REM: r радіус розльоту, n кількість осколків

    REM: коефіцієнти 0.5 і 1 визначають ширину і висоту розльоту

    DIM x (n), y (n)

    RANDOMIZE (TIMER)

    FOR I = 1 TO n

    a = -6.28 * RND/2

    rn = r * RND

    xc = x2 + rn * .5 * COS (a)

    yc = y2 + rn * 1 * SIN (a)

    PSET (xc, yc), 9 + 9 * RND

    PRESET (x (i), y (i))

    NEXT

    END

    Додаток 2

    VERSION 5.00

    Begin VB.Form Form1

    BackColor = & H8000000D &

    BorderStyle = 1 'Fixed Single

    Caption = "Form1"

    ClientHeight = 7770

    ClientLeft = 45

    ClientTop = 435

    ClientWidth = 8670

    FillColor = & H00C0FFFF &

    LinkTopic = "Form1"

    MaxButton = 0 'False

    MinButton = 0 'False

    ScaleHeight = 7770

    ScaleWidth = 8670

    StartUpPosition = 3 'Windows Default

    Begin VB.CommandButton Command1

    Caption = "Пуск"

    Height = 495

    Left = 720

    TabIndex = 2

    Top = 5280

    Width = 1215

    End

    Begin VB.VscrollBar Vscroll1

    Height = 1935

    Left = 240

    Max = 80

    MousePointer = 9 'Size W E

    TabIndex = 1

    TabStop = 0 'False

    Top = 2400

    Value = 80

    Width = 255

    End

    Begin VB.HscrollBar Hscroll1

    Height = 255

    Left = 240

    Max = 15000

    Min = 10

    MousePointer = 7 'Size N S

    TabIndex = 0

    Top = 4800

    Value = 100

    Width = 8295

    End

    Begin VB.Label Label9

    Caption = "Помилка"

    Height = 375

    Left = 2160

    TabIndex = 11

    Top = 5400

    Width = 975

    End

    Begin VB.Line Line1

    X1 = 600

    X2 = 600

    Y1 = 4680

    Y2 = 480

    End

    Begin VB.Label Label8

    Caption = "0"

    Height = 375

    Left = 3120

    TabIndex = 10

    Top = 5400

    Width = 1095

    End

    Begin VB.Label Label7

    Caption = "Дальність"

    Height = 375

    Left = 2160

    TabIndex = 9

    Top = 5880

    Width = 975

    End

    Begin VB.Label Label6

    Caption = "кут (градус)"

    Height = 375

    Left = 4800

    TabIndex = 8

    Top = 5880

    Width = 975

    End

    Begin VB.Label Label5

    Caption = "дист (м)"

    Height = 375

    Left = 4800

    TabIndex = 7

    Top = 5400

    Width = 975

    End

    Begin VB.Label Label4

    Caption = "Label4"

    Height = 15

    Left = 5040

    TabIndex = 6

    Top = 6000

    Width = 135

    End

    Begin VB.Label Label3

    BackColor = & H80000018 &

    Caption = «0»

    Height = 375

    Left = 3120

    TabIndex = 5

    Top = 5880

    Width = 1095

    End

    Begin VB.Label Label2

    BackColor = & H80000018 &

    Caption = «0»

    Height = 375

    Left = 5760

    TabIndex = 4

    Top = 5880

    Width = 1095

    End

    Begin VB.Label Label1

    BackColor = & H80000018 &

    Caption = «0»

    Height = 375

    Left = 5760

    TabIndex = 3

    Top = 5400

    Width = 1095

    End

    Begin VB.Line Line2

    X1 = 600

    X2 = 8400

    Y1 = 4680

    Y2 = 4680

    End

    End

    Attribute VB_Name = "Form1"

    Attribute VB_GlobalNameSpace = False

    Attribute VB_Creatable = False

    Attribute VB_PredeclaredId = True

    Attribute VB_Exposed = False

    Private Sub Hscroll1_Change ()

    Cls

    Label1 = Hscroll1

    X1 = Hscroll1 * 0.507

    Line (X1 + 550, 4500) - (X1 + 600, 4650), & HC0FFFF, BF

    End Sub

    Private Sub Vscroll1_Change ()

    Label2 = 80 - Vscroll1

    End Sub

    Private Sub Command1_Click ()

    X0 = 600

    Y0 = 4680

    X2 = X0

    Y2 = Y0

    v = 300

    g = 9.8

    a = Label2

    f = A * 3.14/180

    100 q = 0.00005

    t = T + q

    Rem k - коефіцієнт опору повітря

    k = 0.0001

    vs = v * Cos (f) - (k - k/(k + v * Cos (f )))

    vh = v * Sin (f) - (k - k/(k + v * Sin (f )))

    s = vs * t

    h = (vh * t - (g * t ^ 2)/2)

    s = v * t * Cos (f)

    h = v * t * Sin (f) - (g * t ^ 2)/2

    v = Sqr (vs ^ 2 + vh ^ 2)

    Line (X2, Y2) - (X0 + s, Y0 - h), & HFF &

    X2 = X0 + s

    Y2 = Y0 - h

    If h <0 Then GoTo 200

    GoTo 100

    200 Label3 = s * 4.32 1

    v = X1 2 * 2

    Label8 = Hscroll1 - s * 4.32 1

    End Sub

    Додаток 3

    Private Sub Form_Load ()

    Label1.Caption = 0

    Label2.Caption = 0

    Label3.Caption = 0

    Label4.Caption = 0

    Label5.Caption = 0

    Label6.Caption = 0

    Label13.Caption = 0

    Label15.Caption = 0

    Label17.Caption = 0

    End Sub

    Private Sub Timer1_Timer ()

    Label1.Caption = Label1.Caption + Timer1.Interval

    Label2.Caption = Label2.Caption + Timer2.Interval

    Label13.Caption = Label13.Caption + Timer3.Interval

    Label15.Caption = Label15.Caption + Timer4.Interval

    Label17.Caption = Label17.Caption + Timer5.Interval

    a = Label1.Caption

    T = Timer3.Interval

    k = 1.2

    V = 30

    Label3.Caption = (250 - VScroll1) 10

    q = Label3.Caption

    f = q * 3.14/180

    Rem Поверхня

    Line (14850, 5640) - (350, 5820), & H80000002, BF

    Rem Танк

    Line (12000 - a * k, 5620) - (12850 -- a * k, 5520), & HFFFF &, BF

    Line (11920 - a * k, 5540) - (12000 -- a * k, 5530), & HFFFF &, BF

    Line (11900 - a * k, 5550) - (12000 -- a * k, 5540), & HFFFF &, BF

    Line (11920 - a * k, 5560) - (12000 -- a * k, 5550), & HFFFF &, BF

    Line (11940 - a * k, 5570) - (12000 -- a * k, 5560), & HFFFF &, BF

    Line (11950 - a * k, 5590) - (12000 -- a * k, 5570), & HFFFF &, BF

    Line (11970 - a * k, 5600) - (12000 -- a * k, 5590), & HFFFF &, BF

    Line (12825 - a * k, 5600) - (12900 -- a * k, 5580), & H8000000F, BF

    Line (12800 - a * k, 5620) - (12900 -- a * k, 5600), & H8000000F, BF

    Line (12850 - a * k, 5620) - (13950 -- a * k, 5520), & H8000000F, BF

    Rem башта танка

    Line (12200 - a * k, 5440) - (12650 -- a * k, 5500), & HFFFF &, BF

    Line (11900 - a * k, 5460) - (12200 -- a * k, 5460), & HFFFF &

    Line (12650 - a * k, 5440) - (12750 -- a * k, 5500), & H8000000F, BF

    Rem Політ ПТУРС

    X1 = V * T * Cos (f - Rnd * 0.1)

    Y1 = V * T * Sin (f + Rnd * 0.1)

    Label5.Caption = (Label5.Caption + X1)

    Label4.Caption = (Label4.Caption + Y1)

    Label6.Caption = 12000 - a * k

    X0 = Label5.Caption

    Y0 =-Label4.Caption

    Rem ПТУРС

    Line (X0 + 300, 5550 + Y0) - (X0 + 400, 5500 + Y0), & H8000000F, BF

    Line (X0 + 300, 5550 + Y0) - (X0 + 500, 5600 + Y0), & H8000000F, BF

    Line (X0 + 300, 5450 + Y0) - (X0 + 550, 5500 + Y0), & H8000000F, BF

    Line (400 + X0, 5500 + Y0) - (420 + X0, 5550 + Y0), & HFF &, BF

    Line (400 + X0, 5525 + Y0) - (550 + X0, 5525 + Y0), & HFF &

    Rem дим

    X2 = 12820 - a * k

    Y2 = 5620

    r = 30

    n = 1

    Dim x (10), y (10)

    Randomize (Label1.Caption)

    For i = 1 To 50

    a = -6.28 * Rnd/6

    rn = r * Rnd

    xc = X2 + rn * 9 * Cos (a)

    yc = Y2 + rn * 3 * Sin (a)

    PSet (xc, yc), & HFFFF80 * Rnd + & HC0C0FF * Rnd

    Next

    If X0> 13000 Then Timer1.Interval = 0

    If Y0> 50 Then Timer2.Interval = 1

    If Y0> 100 Then Timer3.Interval = 0

    If Label5.Caption> 11500 -- (Label1.Caption) Then Timer4.Interval = 1

    End Sub

    Private Sub Command1_Click ()

    Rem старт ПТУРС

    Timer3.Interval = 1

    End Sub

    Private Sub Timer2_Timer ()

    Rem: феєрверк

    Rem: a кут розльоту

    Rem: r радіус розльоту, n кількість осколків

    Rem: коефіцієнти 1 і 4 визначають ширину і висоту розльоту

    X1 = Label5.Caption

    Y1 =-Label4.Caption

    r = 200

    n = 500

    Dim x (10), y (10)

    Randomize (Label2.Caption)

    For i = 1 To 2

    a = -6.28 * Rnd/2

    rn = r * Rnd

    xc = X1 + 400 + rn * 1.5 * Cos (a)

    yc = Y1 + 5600 + rn * 5 * Sin (a)

    PSet (xc, yc), & HFFFF80 * Rnd + & HC0C0FF * Rnd

    Next

    If Label1.Caption> 200 Then Timer2.Interval = 0

    End Sub

    Private Sub Timer4_Timer ()

    If Label4.Caption <200 Then Timer5.Interval = 1

    End Sub

    Private Sub Timer5_Timer ()

    X0 = Label5.Caption

    Y0 =-Label4.Caption

    r = 100

    n = 100

    Dim x (100), y (100)

    Randomize (Label2.Caption)

    For i = 1 To 5

    a = -6.28 * Rnd/2

    rn = r * Rnd

    xc = X0 + 400 + rn * 3 * Cos (a)

    yc = Y0 + 5600 + rn * 5 * Sin (a)

    PSet (xc, yc), & HFFFF80 * Rnd + & HC0C0FF * Rnd

    If Label17.Caption <150 Then Timer1.Interval = 0

    Next

    End Sub

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status