Приложение 4 (информатика) СОДЕРЖАНИЕ Мендель Виктор Васильевич, Ледовских Ирина Анатольевна (МИФ-2, №1, 2004) 2 Компьютерное математическое моделирование 2 Мендель Виктор Васильевич, Ледовских Ирина Анатольевна (МИФ-2, №2, 2004) 6 Компьютерное математическое моделирование 6 Звягина Анна Стефановна (МИФ-2, №4, 2004) 12 Компьютерные сети 12 Звягина Анна Стефановна (МИФ-2,№1,2005) 21 Глобальные сети, Интернет, IP-адресация 21 Вихтенко Эллина Михайловна (МИФ-2, №2, 2004) 31 Хабаровская краевая заочная олимпиада школьников по программированию 2003/2004 учебного года 31 Богоутдинов Дмитрий Гилманович, Казинец Виктор Алексеевич (МИФ-2,№2, 2005) 43 Проведение олимпиад по информатике в Хабаровском крае 43 Вихтенко Эллина Михайловна (МИФ-2, №2, 2005) 48 Геометрические задачи в олимпиадах по программированию 48 Богоутдинов Дмитрий Гилманович (МИФ-2, №3, 2005) 53 Алгоритмы: понятие, свойства, виды. Словесная форма представления алгоритмов 53 Богоутдинов Дмитрий Гилманович (МИФ-2, №4, 2005) 57 Алгоритмы и формы их представления 57 Мендель Виктор Васильевич, Ледовских Ирина Анатольевна (МИФ-2, №1, 2004) Компьютерное математическое моделирование Рассмотрим процедуру компьютерного моделирования от математического описания до алгоритма и программы. Для этого возьмем глобальную задачу. ЗАДАЧА: Внутри прямоугольной области на экране компьютера изображен лабиринт. Внутри лабиринта двигаются два шарика. Если шарики ударяются о стенки, или друг о друга, они изменяют направление движения. Разделим эту задачу на несколько элементарных фрагментов и каждый фрагмент рассмотрим отдельно. Задача 1. Шарик появляется на экране компьютера внутри прямоугольника в точке (xc, yc) и движется до достижения одной из «стенок» прямоугольника со скоростью (vx, vy). Замечание: здесь vx и vy – горизонтальная и вертикальная составляющие вектора скорости, xc, yc – координаты центра шарика в текущий момент времени. Первый этап: математическое описание. Из курса физики известно, что при прямолинейном движении координаты материальной точки изменяются по законам , . Второй этап: составление алгоритма программы Д ля составления программы требуется уточнить, как проверяется, достиг шарик границы или нет. Здесь мы будем использовать такое условие: « если (хmin+R < xc < xmax-R) и (ymin+R < yc < ymax-R), то строится «шарик», иначе – остановка». Здесь R – радиус шарика, ( ) – координаты правого нижнего, а (хmin, ymin) – координаты левого верхнего угла прямоугольника. Уточним также, что означает блок «построение шарика». В этом блоке выполняется две операции: стирается старое изображение; строится новое изображение по пересчитанным значениям xc и yc. Замечание: Стирать все изображение за каждый такт работы программы – не лучший способ, поэтому используем такой прием: на месте «старого» изображения будем строить точно такое же, но с цветом фона.
Третий этап: программа * * Текст программы приводится для языка Turbo Pascal с минимальным использованием операторов. program ball; Uses graph, crt; {подключение библиотеки графических функций и процедур} var driver,mode: integer; {переменные для установки драйвера и режима работы} xc,yc,R,vx,vy,Dt, xmin, ymin, xmax, ymax: integer; begin xc:=100; yc:=100; R:=10; {задаем начальные условия} vx:=8; vy:=5; Dt:=1; xmax:=600; ymax:=400; xmin:=10; ymin:=10; driver:=detect; Initgraph(driver,mode,'путь к драйверу'); {инициализация графического режима} SetFillStyle(1,14); {определяем стиль и цвет заливки прямоугольника} Bar(xmin, ymin, xmax, ymax); {вычерчиваем закрашенный прямоугольник} SetColor(13); while (xc>xmin+R) and (xcymin+R) and (yc begin setcolor(14); circle(xc,yc,R); xc:=xc+vx*Dt; yc:=yc+vy*Dt; setcolor(13); circle(xc,yc,R); delay(200); end; closegraph; end.
Четвертый этап: отладка программы. Варьируя значения для vx, vy и Dt добейтесь оптимальной работы программы.
Задача 2. Дополним задачу 1 еще одним условием: если шарик достигает края прямоугольника, то он отражается от стенки и продолжает движение.
Первый этап: математическое описание. Основной закон движения остается тем же, что и в задаче 1: ; . При достижении вертикальной стенки горизонтальная составляющая вектора скорости меняет знак на противоположный: vx= -vx, а при ударе о горизонтальную стенку меняет знак вертикальная составляющая скорости vy = -vy. Эти условия обеспечивают соблюдение очевидного физического факта: угол удара тела о стену равен углу отскока этого тела от стены. 
Второй этап: алгоритм программы. Третий этап: программа program ball_1; Uses graph, crt; var driver,mode: integer; {переменные для установки драйвера и режима работы} xc,yc,R,vx,vy,Dt, xmin, ymin, xmax, ymax: integer; begin xc:=100; yc:=100; R:=10; vx:=10; vy:=10; Dt:=1; xmax:=600; ymax:=400; xmin:=10; ymin:=10; driver:=detect; Initgraph(driver,mode,'путь к драйверу'); SetFillStyle(1,14); Bar(xmin, ymin, xmax, ymax); SetColor(13); while not(keypressed) do begin if (xc<=xmin+R) or (xc>=xmax-R) then vx:=-vx; if (yc<=ymin+R) or (yc>=ymax-R) then vy:=-vy; xc:=xc+vx*Dt; yc:=yc+vy*Dt; setcolor(13); circle(xc,yc,R); delay(100); setcolor(14); circle(xc,yc,R); end; closegraph; end.
Четвертый этап: отладка программы. Подбор оптимальных значений для vx, vy и Dt и обеспечение оптимальной работы программы. Контрольные задания Представленные ниже задачи являются контрольным заданием для учащихся 10-11 классов. Решения необходимо оформить в отдельной тетради и выслать по адресу 680000, г. Хабаровск, ул. Дзержинского, 48, ХКЦТТ, ХКЗФМШ
Для приведенных ниже задач выполните процесс построения компьютерной модели. 1
Задача 3. Шарик находится внутри лабиринта, внутренние перегородки которого – прямоугольники со сторонами, параллельными краям экрана. Шарик ударяется о внутренние и внешние стенки и отскакивает.
Задача 4. (об упругом ударе двух шариков). Два одинаковых шарика двигаются на экране. Ударяясь друг о друга, они изменяют направление движения. |