пʼятниця, 18 березня 2011 р.

Моделирование движения тела под действием силы тяжести

На прошлой лабораторной работе мы получили программу, которая выводит на экран летающий круг, отражающийся от краёв.
10 SCREEN 9
20 CLS
30 X=60+RND*400
40 Y=60+RND*200
50 R=10+RND*40
60 C=INT(1+RND*15)
70 DT=0.1
80 VX=RND*20-10
90 VY=RND*20-10
100 CIRCLE(X,Y),R,0
110 X=X+VX*DT
120 Y=Y+VY*DT
130 CIRCLE(X,Y),R,C
140 IF X<=R OR X>=600-R THEN VX=-VX
150 IF Y<=R OR Y>=300-R THEN VY=-VY
160 GOTO 100
Теперь добавим сюда гравитацию. Вспоминаем физику. При движении брошенного тела, с ускорением g меняется вертикальная составляющая его скорости, VY. Значит, в программу нужно добавить 2 строки:
Инициализируем переменную G
75 G=1
Вычисляем новую вертикальную скорость
135 VY=VY+G*DT
Заодно отключим стирание предыдущего положення круга, чтобы он оставлял след. Это делается отключением строки 100. Её можно не удалять, а просто поставить после номера строки апостроф:
100 ‘CIRCLE(X,Y),R,0
Запускам программу, наблюдаем за изменениями в движении.
Теперь о том, как будет использоваться эта программа на рубеже.
Нужно будет в строках 30, 40, 50, 75, 80 и 90 вместо случайных значений задать некоторые числа - координаты круга, его радиус, ускорение свободного падения и начальную скорость.
Далее, запустив программу, нужно будет проследить его траекторию и зарисовать её.
Посмотрите, как ведёт себя круг при:
X
Y
R
G
VX
VY
1
100
120
80
1
4
-1
2
110
280
10
-1
-5
5
3
500
10
5
0
3
2
4
450
150
20
0.5
2
6
5
300
180
15
10
8
-15
С Днём студента!

четвер, 17 березня 2011 р.

Самостоятельная работа по теме Ввод данных

Задание 1.
Написать программу, которая реализует следующие функции:

На экране рисуется отрезок. Клавишами W, S, D, A можно изменять положение одного из концов отрезка, а клавишами 8, 4, 2, 6 - другого. Клавишами 1 и 3 можно изменять его цвет. По клавише 5 происходит очистка экрана.

Задание 2.
Написать программу, которая реализует следующие функции:

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



четвер, 17 лютого 2011 р.

Циклы


Часто в программе нужно выполнить много однотипных действий, например, нарисовать ряд окружностей.
Конечно, такую картинку можно было бы нарисовать, введя 15 команд CIRCLE, но это нерациональный путь. К тому же, если понадобится в такой программе что-то изменить, это будет очень сложно.

Поэтому нужно применить другой подход – зацикливание программы. Во-первых, следует ответить на 3 вопроса:
  1. Что общего в командах?
  2. Чем они отличаются?
  3. До каких пор нужно продолжать выполнять команды?

Для нашего конкретного случая общее здесь то, что рисуются окружности, у них равны радиусы и координаты Y. Различаются же они координатами X. Рисовать их нужно до тех пор, пока координата X не превышает ширину экрана, 550 пикселей.

Теперь можно приступить к написанию программы. Начинается она с двух стандартных строк:
10 SCREEN 9
20 CLS

Теперь производим инициализацию переменных, задаём их начальные значения.
30 X = 20: Y = 30: R = 15

Здесь мы в одной строке поместили несколько команд, разделив их двоеточиями.

Приступаем к рисованию собственно окружности:
40 CIRCLE(X,Y),R
Эта строка -  то основное, ради чего мы использовали цикл. Она называется телом цикла. В теле цикла может быть много строк.

Теперь производим шаг цикла – увеличиваем координату X окружности:
50 X = X+35

И проверяем, нужно ли вернуться и выполнить цикл ещё раз. Возвращаемся мы если X<550. Возвращаться нужно в 40ю строку. По-русски команда на возврат будет выглядеть так:
Если Х< 550 то перейти к 40й строке программы.
На Бейсике это выглядит так:

60 IF X<550 THEN GOTO 40

Обратите внимание, оператор GOTO пишется слитно.

Программа готова.

В шаге цикла можно изменять несколько параметров. Например, если мы хотим, чтобы окружности шли вот так:











Строка 50 должна выглядеть:
50 X = X+35: Y=Y+35: R=R+5

Пример 2.

Линия задаётся четырьмя числами: X1, Y1, X2, Y2. у всех линий координаты Y неизменны, координата X1 увеличивается, а X2 – уменьшается.

Пишем программу.
10 SCREEN 9
20 CLS
30 X1 = 0: Y1 = 0: X2 = 550: Y2 = 330
40 LINE(X1,Y1)–(X2,Y2)
50 X1 = X1+10: X2 = X2-10
60 IF X1<=550 THEN GOTO 40

Подумайте, как сделать, чтобы линии были разноцветными.

Задания для самостоятельной работы (для каждого из них в конспекте должна быть составлена программа)






середа, 16 лютого 2011 р.

Олимпиадные задания


Задания можно решить дома и принести мне или Сергею Тихоновичу до конца этой недели на листочке.

1. Программа может выполнять команды рисования прямоугольников произвольного цвета. С помощью какого наименьшего количества команд она можно нарисовать красно-белую шахматную доску?

2. Сколькими способами число 2011 можно представить в виде разности квадратов натуральных чисел?

3. Составьте алгоритм и программу, которая по введённой дате (число, месяц, год) определял, сколько дней осталось до следующего Нового года.

4. На столе лежит N спичек. Петя и Вася поочерёдно берут оттуда от 1 до 5 спичек, однако нельзя повторять число, взятое соперником на предыдущем ходу. Выигрывает тот, кто забирает последнюю спичку или лишает соперника возможности сделать ход согласно правилам. Начинает Петя, своим первым ходом может взять любое количество от 1 до 5. Найдите общий вид чисел N, при которых партию выиграет Вася.

5. В доме 36 комнат. В каждой комнате лежит определённая сумма денег (указана в таблице). В дом можно зайти через одну из шести дверей с северной стороны, пройти через 6 комнат, двигаясь только прямо или по диагонали, и выйти через одну из шести дверей с южной стороны. Как организовать свой маршрут, чтобы собрать максимальное количество денег? В примере, показанном на рисунке, итоговая сумма составит 27 долларов. Как  увеличить эту сумму?
 a.
1
3
5
1
1
2
4
5
7
6
2
7
2
4
0
2
8
10
2
1
12
5
4
3
4
3
9
0
14
7
16
10
5
11
8
6

b
23
61
71
87
70
61
5
57
85
63
22
10
91
78
47
35
13
11
94
85
34
23
79
77
80
0
39
70
47
40
33
95
73
83
85
5







пʼятниця, 28 січня 2011 р.

Sky Control: Нужна ваша поддержка :)

Итак, игра, о которой я вам рассказывал, готова и выходит в большой интернет. Имя сменилось на более короткое: Sky Control.


Ваша задача в игре - направить самолёты, входящие в воздушную зону, в точки выхода своего цвета, при этом не допуская столкновений, учитывая влияние ветра и остерегаясь гроз, птиц и НЛО. Чтобы повернуть самолёт, нажмите на нём левой клавишей мыши, двигайте курсор, чтоб указать новый курс, и отпустите клавишу.

Сейчас игра участвует в конкурсе флеш-игр на двух крупных порталах. Организаторы конкурса советуют разработчикам просить друзей о поддержке, что я, собственно, и делаю :)

Вот две ссылки:
Sky Control на Kongregate.com
Sky Control на Newgrounds.com

Зайдите, пожалуйста, на каждую, зарегистрируйтесь (ссылка Sign Up в правом верхнем углу экрана) и проголосуйте за мою игру (голосовалки немного ниже экрана с игрой).

На второй ссылке можно ставить по пятёрке каждый день - это будет повышать рейтинг программы :)

Ну и расскажите про игру друзьям.

Буду премного благодарен! :)

P.S. Если кто-то хочет научиться создавать подобные игры, приглашаю на спецкурс.

пʼятниця, 21 січня 2011 р.

Air Traffic Control Arcade


Скоро здесь появится моя флеш-игра. Пока предлагаю зарегистрироваться на сайтах http://www.kongregate.com/ и http://newgrounds.com/ чтобы, когда игра выйдет, поддержать её своими голосами :)

середа, 8 грудня 2010 р.

Рейтинг 80 рота

Основы Перебор Ур. Р1 Графика Граф-ДЗ Модел. Р2 Итого
Бєлов Андрій 5 4 5 9 23
Гаваза Ярослав 5 9 10 9 7 40
Гавриш Сергій 5 4 5 5 7 26
Гирман Ігор 5 4 10 9 7 35
Гусак Ігор 10 6 5 21
Деніско'ва Марина 5 4 5 8 6 7 35
Зозуля Олексій 5 9 10 9 33
Коропова Тетяна 5 8 5 9 6 7 40
Красилов Олег 5 12 10 7 34
Молчанова Ірина 5 4 9
Нестеренко Яна 10 8 5 9 6 7 45
Плута Олена 5 8 5 7 25
Погорелюк Анатолій 5 4 5 9 23
Пономаренко Олександр 5 6 5 5 7 28
Семененко Сергій 5 4 10 9 28
Семенова Анна 5 8 10 23
Сізова Катерина 5 4 10 11 7 37
Сініченко Олександр 5 4 10 8 7 34
Сокольченко Євгеній  10 6 5 8 7 36
Стасевич Катерина 5 8 10 23
Суконька Віталій 5 4 5 5 7 26
Харденко Євген 5 4 10 9 28
Шамшур Сергій 5 4 10 9 7 35
Шапошнікова Анна 10 4 5 11 7 37
Могилко Анна 5 4 5 11 7 32

Нестеренко Яна 45
Гаваза Ярослав 40
Коропова Тетяна 40
Сізова Катерина 37
Шапошнікова Анна 37
Сокольченко Євгеній  36
Гирман Ігор 35
Деніско'ва Марина 35
Шамшур Сергій 35
Красилов Олег 34
Сініченко Олександр 34
Зозуля Олексій 33
Могилко Анна 32
Пономаренко Олександр 28
Семененко Сергій 28
Харденко Євген 28
Гавриш Сергій 26
Суконька Віталій 26
Плута Олена 25
Бєлов Андрій 23
Погорелюк Анатолій 23
Семенова Анна 23
Стасевич Катерина 23
Гусак Ігор 21
Молчанова Ірина 9

Основы Перебор Ур. Р1 Графика Граф-ДЗ Модел. Р2 Итого
Бойкова Дар'я 5 4 5 22 9 15 18 78
Бондаренко Ярослав 5 4 5 30 0 15 0 59
Бутовський Владислав 5 4 5 18 0 15 0 47
Давидюк Анна 5 9 5 40 15 30 28 132
Давідюк Володимир 5 9 10 38 15 30 30 137
Дяченко Віктор 4 5 0 15 30 0 54
Жердієва Олександра 10 9 5 30 0 15 0 69
Килипенко Сергій 5 4 5 8 15 15 3 55
Колєснік Кирило 4 5 0 0 15 0 24
Коломієць Дмитро 5 4 5 30 9 15 9 77
Куклінська Марина 5 4 5 8 0 15 0 37
Момот Антон 5 4 5 34 0 15 14 77
Озьоркін Руслан 5 9 10 38 15 30 27 134
Притуленко Ірина 5 4 5 32 15 15 18 94
Рогалін Олександр 5 4 5 20 15 15 12 76
Садовніченко Анна 5 4 5 0 15 0 29
Сазанський Олег 5 4 5 22 15 30 15 96
Сироїжка Катерина 5 4 5 32 15 15 21 97
Татаренко Ольга 5 4 5 32 15 15 14 90
Царенко Євгеній 10 4 5 32 15 15 14 95
Цуркан Катерина 5 4 5 14 0 15 0 43
Шерстньов Олексій 10 4 5 26 15 15 18 93
Шерстюк Денис 8 4 10 40 15 30 0 107
Язикова Ірина 5 4 5 22 15 15 0 66
Ходорик Андрей 12 0 15 0 27
Провоторов Владислав 5 4 8 15 15 0 47

Давідюк Володимир 137
Озьоркін Руслан 134
Давидюк Анна 132
Шерстюк Денис 107
Сироїжка Катерина 97
Сазанський Олег 96
Царенко Євгеній 95
Притуленко Ірина 94
Шерстньов Олексій 93
Татаренко Ольга 90
Бойкова Дар'я 78
Коломієць Дмитро 77
Момот Антон 77
Рогалін Олександр 76
Жердієва Олександра 69
Язикова Ірина 66
Бондаренко Ярослав 59
Килипенко Сергій 55
Дяченко Віктор 54
Бутовський Владислав 47
Провоторов Владислав 47
Цуркан Катерина 43
Куклінська Марина 37
Садовніченко Анна 29
Ходорик Андрей 27
Колєснік Кирило 24

неділя, 5 грудня 2010 р.

Результаты групп 601 и 602

602
  Основы Алгоритмы Перебор Рубеж Рисование Моделирование Контроль  
Алімова Анастасія 5 5 5 30       45
Бєлоусова Єкатерина 5 5 15 38 5 5 27 100
Гуцуляк Анастасія 5 5 5 32 10 5 19 81
Дмитрук Максим 5 5 0 18 5 5   38
Жебко Олена 5 10 5 32 5 5   62
Ковальчук Анастасія 5 5 15 22 10 5   62
Матівос Антон 10 5 0 34 10 5   64
Нікітіна Юлія 5 5 15 30 10 5   70
Ніконова Валентина 5 5 10 32   5   57
Папуш ина Анна 5 5 15 20   5   50
Рудковська Марина 10 10 15 38 10 15 28 126
Сідоренко Каріна 5 5 10 24 10 5   59
Стефанішина Лілія 5 5 15 40 5 10 25 105
Сторчак Віталій 5 5 0 22 10 5   47
Урсул Ірина 10 5 10 30 10 5   70
Ушакова Катерина 5 5 10 24 10 5   59
Фогель Ксенія 10 5 10 36 5 5   71
Шевченко Юлія 5 5 10 24 10 5   59
Подсекаев       14   5   19


 

Рудковська Марина 126
Стефанішина Лілія 105
Бєлоусова Єкатерина 100
Гуцуляк Анастасія 81
Фогель Ксенія 71
Нікітіна Юлія 70
Урсул Ірина 70
Матівос Антон 64
Жебко Олена 62
Ковальчук Анастасія 62
Сідоренко Каріна 59
Ушакова Катерина 59
Шевченко Юлія 59
Ніконова Валентина 57
Папуш ина Анна 50
Сторчак Віталій 47
Алімова Анастасія 45
Дмитрук Максим 38
Подсекаев 19

601

Основы Алгоритмы Перебор Рубеж Рисование Моделирование Контроль  
Арабаджева Людмила 5 5 7 16   5   38
Бірюков Дмитро 10 5 2 28 5 5   55
Боярчук Юлія 5 5 15 32 5 5 25 92
Гаркуша Ольга 5 5 7 16 5   4 42
Гнатюк Аліна 5 10 7 38 10 5 25 100
Ільченко Юлія 10 10 15 28 5 5 30 103
Касяненко Тетяна 5 5 15 40 5 5 22 97
Кушнір Олександра 5             5
Лісничий Богдан 5 10 2 16 5 5 13 56
Миго Христина 5 5 7 48 5 5 30 105
Ободовська Альбіна 5 5 15 36 5 5 27 98
Павук Оксана 5 5 15 24 5 5 28 87
Проца Вікторія 5 5 7 34 10 5   66
Прудка Ксенія 10   7 30 5     52
Сєврін Артем 10 5 2 16 5 5 20 63
Сергієнко Наталія 5 5 7 40 5 5 28 95
Терещенко Анна 5   5 22 5 5 22 64
Юрченко Аліна 10 5 15 26 10 5 27 98

 

Миго Христина 105
Ільченко Юлія 103
Гнатюк Аліна 100
Ободовська Альбіна 98
Юрченко Аліна 98
Касяненко Тетяна 97
Сергієнко Наталія 95
Боярчук Юлія 92
Павук Оксана 87
Проца Вікторія 66
Терещенко Анна 64
Сєврін Артем 63
Лісничий Богдан 56
Бірюков Дмитро 55
Прудка Ксенія 52
Гаркуша Ольга 42
Арабаджева Людмила 38
Кушнір Олександра 5

пʼятниця, 3 грудня 2010 р.

Итоговый рейтинг группы 401

  Основные алгоритмы Системы счисления Дихотомия Контрольная Рисование Моделирование Игра  
Арсенєва Анастасія 10 5 6 20 7 7 8 63
Балаш Антоніна 5 5 9 28 7 7 8 69
Бердієв Мекан 5 5 6 10 7 7 8 48
Болвінова Анастасія 10 5 9 24 10 12 12 82
Вертянова Світлана 5 5 6 14 10 7 8 55
Дербіньова Людмила 5 5 9 28 10 7 8 72
ДоценкоІнна 5 5 6 14   7   37
Залива Марина 5 5 9 18   12 8 57
Иолдашова ДІлдар 5 5 6     7   23
Кулебакіна Юлія 10 5 6 16 7 7 12 63
Парієнко Анна 5 5 9 24 7 7 8 65
Попова Дарина 5 5 9 10 7 7 8 51
Пильщик Богдан 5 5 6 12 7 12 8 55
Самброс Валерія 10 5 6 22 10 12 15 80
Сантов Євгенія 5 5 6 20   7 8 51
Стоян Ольга 5 5 6     7   23
Тімофєєва Ксенія 10 5 6 30 10 7 15 83
ТІмофєєва Юлія 5 5 6 20 7 7 12 62
Ускова Надія 5 10 6 30 10 12 15 88
Цібрій Любов 5 5 9 12 7 12 12 62
Чумаченко Олена 5 5 9 34 7 7 12 79
Шиманська Вікторія 5 5 6 26 7 7 8 64
Атаев Гуванч       10   7   17
Атепенесов       28 10 7 8 53
Аннагулиев       10 7 7 8 32
Ханларов       10 7 7 8 32
Назаров       14 10 7 8 39
Сахетлиев         7 7 8 22
Фатуллаев           7   7

 

 

Ускова Надія 88
Тімофєєва Ксенія 83
Болвінова Анастасія 82
Самброс Валерія 80
Чумаченко Олена 79
Дербіньова Людмила 72
Балаш Антоніна 69
Парієнко Анна 65
Шиманська Вікторія 64
Арсенєва Анастасія 63
Кулебакіна Юлія 63
ТІмофєєва Юлія 62
Цібрій Любов 62
Залива Марина 57
Вертянова Світлана 55
Пильщик Богдан 55
Атепенесов 53
Попова Дарина 51
Сантов Євгенія 51
Бердієв Мекан 48
Назаров 39
ДоценкоІнна 37
Аннагулиев 32
Ханларов 32
Иолдашова ДІлдар 23
Стоян Ольга 23
Сахетлиев 22
Атаев Гуванч 17
Фатуллаев 7

середа, 1 грудня 2010 р.

Итоговый рейтинг группы 403

Алгоритмы Системы счисления Дихотомия Контрольная Рисование Моделирование Игра Итого
Бабієнко Катерина 10 10 6 26 10 12 8 82
Буша Юлія 10 5 3 24 7   8 57
Гнибіденко Анна 5 10 9 28 10 12 12 86
Гончар Надія 5 5 6 36 7 7 8 74
Демченко Олександра 10 10 6 24 7 7 8 72
Корченко Надія 5 5 3 36 10   8 67
Лавріненко Вікторія 10 12 6 38 10 12 12 100
Магро Юлія 5 5 3 24 7 12 8 64
Нечеухіна Катерина 5 10 12 28       55
Пащенко Вероніка 5 5 6 28 7     51
Сорокіна Дар'я 5 5 12 28 7 7   64
Тениченко Ксенія 5 10 6 36       57
Усатенко Анна 5 5 6 30       46
Шаповаленко Артем 5 5 6 12 10 12 12 62
Юровська Анна   10 3 26 10 12   61

Итоговый рейтинг
Лавріненко Вікторія 100
Гнибіденко Анна 86
Бабієнко Катерина 82
Гончар Надія 74
Демченко Олександра 72
Корченко Надія 67
Магро Юлія 64
Сорокіна Дар'я 64
Шаповаленко Артем 62
Юровська Анна 61
Буша Юлія 57
Тениченко Ксенія 57
Нечеухіна Катерина 55
Пащенко Вероніка 51
Усатенко Анна 46