Проведение исследования на основе готовой компьютерной модели



Скачать 36.79 Kb.
Дата05.03.2019
Размер36.79 Kb.
ТипПрактическая работа
Практическая работа №7

Тема: Проведение исследования на основе готовой компьютерной модели

Цель: провести исследование на основе готовой компьютерной модели, изучить на основе готовой программы графические и анимационные операторы языка PascalABC. Реализация на компьютере математической модели движения тела.

Теоретические сведения

Моделирование – это метод познания, состоящий в создании и исследовании моделей.

Модель (фр.сл. мodele, ит. сл. modelo, лат. сл. modelus) – мера, образец. Модель - некий новый объект, который отражает некоторые существенные свойства изучаемого явления или процесса

Один и тот же объект может иметь множество моделей, а разные объекты могут описываться одной моделью.

Всё разнообразие моделей можно разделить на два больших класса: натуральные модели и информационные модели.

Типы информационных моделей:

Табличные – объекты и их свойства представлены в виде списка, а их значения размещаются в ячейках прямоугольной формы. Перечень однотипных объектов размещен в первом столбце (или строке), а значения их свойств размещаются в следующих столбцах (или строках)

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

Сетевые – применяют для отражения систем, в которых связи между элементами имеют сложную структуру

Предметом изучения информатики являются методы и технологии информационного моделирования с помощью компьютера – компьютерное моделирование.



Компьютерной моделью называют модель, построенную для исполнителя, ориентированного на вычислительное устройство. Это не особый вид модели, а способ изучения известных моделей с помощью компьютера.

Компьютерная математическая модель – это программа, реализующая расчёты состояния моделируемой системы по её математической модели.

Математическое моделирование – это связь между объектами в виде математических соотношений. При этом информационные объекты представляются в виде математических объектов.

Пример. Модель равноускоренного движения: St = So + VoT + aT^2/2

Если исходить из общих задач моделирования, то наиболее естественна такая классификация:



  • дескриптивные (описательные) модели;

  • оптимизационные модели;

  • многокритериальные модели;

  • игровые модели.

Дескриптивные (описательные) модели. Например, моделирование движения кометы, вторгшейся в Солнечную систему, производится с целью предсказания траектории ее полета, расстояния, на котором она пройдет от Земли, и т.д. В этом случае цели моделирования носят описательный характер, поскольку нет никаких возможностей повлиять на движение кометы, что-то в нем изменить.

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

Многокритериальные модели. Нередко приходится оптимизировать процесс по нескольким параметрам одновременно, причем цели могут быть весьма противоречивыми. Например, зная цены на продукты и потребность человека в пище, нужно организовать питание больших групп людей (в армии, детском летнем лагере и др.) физиологически правильно и, одновременно с этим, как можно дешевле. Ясно, что эти цели совсем не совпадают, т.е. при моделировании будет использоваться несколько критериев, между которыми нужно искать баланс.

Игровые модели могут иметь отношение не только к компьютерным играм, но и к весьма серьезным вещам. Например, полководец перед сражением при наличии неполной информации о противостоящей армии должен разработать план: в каком порядке вводить в бой те или иные части и т.д., учитывая и возможную реакцию противника. Есть специальный раздел современной математики — теория игр, — изучающий методы принятия решений в условиях неполной информации.

 Компьютерная реализация моделей может быть осуществлена:



  • с помощью табличного процессора (MS Excel);

  • путем создания программ на традиционных языках программирования (Паскаль, Бейсик и др.), а также на их современных версиях;

  • с помощью специальных пакетов прикладных программ для решения математических задач (3D MAX и т.п.).

Основные этапы разработки и исследования моделей на компьютере

  1. Построение описательной информационной модели

  2. Формализация модели (формальный язык)

  3. Преобразование в компьютерную модель:

  • запись алгоритма на языке программирования

  • использование одного из приложений (электронных таблиц, СУБД)

  1. Проведение компьютерного эксперимента (запуск программы, сортировка или поиск данных, построение графиков и диаграмм)

  2. Анализ полученных результатов и корректировка исследуемой модели.

Задание 1. Построение формальной модели движения тела. Протестировать готовую программу, зная, что:

А-угол бросания мяча;

Н-высота стенки;

V0-начальная скорость мяча

S-расстояние до стенки

L-высота мячика



program myach;

uses crt,graphABC;

const g=9.81;

var a,h,s,v0,x0,y0,xn,yn,x:integer;

    L,m:real;

    st:string;

begin

repeat

write('Введите угол бросания 0<=s<=60 a=');

read(a);

until(a>=0)and(a<=60);

repeat

write('Высота стенки 2<=h<=20 h=');

read(h);

until h in [2..20];

repeat

write('Начальная скорость мяча 1<=>v0<=20 v0=');

read(v0);

until v0 in [1..20];

repeat

write('Расстояние до стенки ',2*h,'<=s>=',10*h,' s=');

read(s);

until (s>=2*h)and(s<=10*h);

x0:=0; //левый край

y0:=windowheight-40; //низ

xn:=windowwidth-40; //правый край

m:=(windowwidth-40)/s;//масштаб

yn:=y0-round(h*m); //верх

hidecursor;

clearwindow;

line(x0,y0,xn,y0); //основание

setpencolor(clBlue);

setpenwidth(5);

line(xn,y0,xn,yn);//стенка

x:=x0;

L:=1;


setpencolor(clRed);

setpenwidth(1);

moveto(x0,y0);

while(xand(L>=0) do

 begin

  x:=x+1;

  L:=x*Sin(A*Pi/180)/Cos(A*Pi/180)-G*Sqr(x)/(2*Sqr(V0*Cos(A*Pi/180)));

  lineto(x0+round(x*m),y0-round(L*m));

  sleep(100);

 end;

str(L:0:0,st);



if L<0 then st:=st+' Недолет'

else if L>h then st:=st+' Перелет'

else st:=st+' Попадание';

textout(windowwidth div 2-50,y0+20,'L='+st);



end.

Задание 2. Построение формальной модели движения тела. Протестировать готовую программу Программа должна рассчитывать дальность полета, время полета и максимльную высоту подъема тела, вылетевшего под углом A к горизонту со скоростью V0.

const g=9.82;

var a,v0,v0x,v0y,ar,t,h,s:real;

begin

write('Введите угол (в градусах) и начальную скорость (в м/с) : '); readln(a,v0);



if (a>90) or (a<=0) then begin writeln('Угол должен быть в диапазоне от 0 до 90 градусов'); exit; end;

if v0<=0 then begin writeln('Скорость должна быть строго положительна'); exit; end;

ar:=a*pi/180;

v0y:=v0*sin(ar); v0x:=v0*cos(ar);

t:=2*v0y/g; h:=sqr(v0y)/(2*g);

s:=v0x*t;

writeln('Дальность полета ',s:0:2,'м; ');

writeln('Время полета ',t:0:3,'с; ');

writeln('Максимальная высота подъема тела ',h:0:2,'м; ');



end.

Задание 3. Движение фигуры по форме. Протестировать программу и ускорить движение.


  1. uses GraphABC;

  2. var i,x0,y0: integer;

  3.     kx,ky: byte;

  4.  

  5. Begin

  6. setwindowsize(800,500);

  7. lockdrawing;

  8. //слева направо

  9. x0:=50; y0:=150;

  10. kx:=2; ky:=0;

  11. while x0<=650 do

  12.       begin

  13.       clearwindow;

  14.       line(x0,y0-125,x0+50,y0-100);

  15.       line(x0,y0-125,x0,y0-75);

  16.       line(x0,y0-75,x0-50,y0-50);

  17.       line(x0-50,y0-50,x0,y0-25);

  18.       line(x0,y0-25,x0,y0+25);

  19.       line(x0,y0+25,x0+50,y0);

  20.       line(x0+50,y0,x0+100,y0+25);

  21.       line(x0+100,y0+25,x0+100,y0-25);

  22.       line(x0+100,y0-25,x0+150,y0-50);

  23.       line(x0+150,y0-50,x0+100,y0-75);

  24.       line(x0+100,y0-75,x0+100,y0-125);

  25.       line(x0+100,y0-125,x0+50,y0-100);

  26.       line(x0+50,y0-100,x0+50,y0-50);

  27.       line(x0+50,y0-50,x0+100,y0-75);

  28.       line(x0+50,y0-50,x0,y0-75);

  29.       line(x0+50,y0-50,x0,y0-25);

  30.       line(x0+50,y0-50,x0+50,y0);

  31.       line(x0+50,y0-50,x0+100,y0-25);

  32.       floodfill(x0,y0-50,clblue);

  33.       floodfill(x0+25,y0-25,clmaroon);

  34.       floodfill(x0+75,y0-75,clLightGray);

  35.       floodfill(x0+25,y0-100,clMoneyGreen);

  36.       floodfill(x0+100,y0-50,clBrown);

  37.       floodfill(x0+75,y0-25,clPurple);

  38.       sleep(5);

  39.       redraw;

  40.       x0:=x0+kx; y0:=y0+ky;

  41.       end;

  42. end.

Задание 4. Движение фигуры по форме. Протестировать программу и ускорить движение.

uses GraphABC;

var i:integer;

   x,y,ugol,xs,ys: real;

begin

  xs:=100;

  ys:=100;

  ugol:=30;

  LockDrawing;

  for i:=1 to 500 do

  begin

    clearwindow;//window.clear

    x:=xs+i*sin(ugol*pi/180);

    y:=ys+i*cos(ugol*pi/180);

    Circle(round(x),round(y),20);

    sleep(10);

    Redraw;

    if y+20>windowheight then break;

  end;

end.

Задание 5. Движение фигуры по форме. Протестировать программу и ускорить движение.

program animation;

uses GraphABC;

var i : integer;

begin

SetWindowSize(400,400);

LockDrawing;

//Движение от первой точки до второй

for i:=100 to 300 do

begin

SetBrushColor(clWhite);

Circle (100, 100, 20);

Circle (300, 100, 20);

Circle (100, 300, 20);

Circle (300, 300, 20);

SetBrushColor(clBlack);

Circle (i, 100, 20);

RedRaw;

ClearWindow(clWhite);



end;

//Движение от второй точки до третьей

for i:=100 to 300 do

begin

SetBrushColor(clWhite);

Circle (100, 100, 20);

Circle (300, 100, 20);

Circle (100, 300, 20);

Circle (300, 300, 20);

SetBrushColor(clBlue);

Circle (300, i, 20);

RedRaw;

ClearWindow(clWhite);



end;

//Движение от третьей точки до четвертой

for i:=300 downto 100 do

begin

SetBrushColor(clWhite);

Circle (100, 100, 20);

Circle (300, 100, 20);

Circle (100, 300, 20);

Circle (300, 300, 20);

SetBrushColor(clRed);

Circle (i, 300, 20);

RedRaw;

ClearWindow(clWhite);



end;

//Движение от четвертой точки до первой

for i:=300 downto 100 do

begin

SetBrushColor(clWhite);

Circle (100, 100, 20);

Circle (300, 100, 20);

Circle (100, 300, 20);

Circle (300, 300, 20);

SetBrushColor(clGreen);

Circle (100, i, 20);

RedRaw;

ClearWindow(clWhite);



end;

end.

Задание 6. Движение фигуры по форме. Протестировать программу и ускорить движение.

uses graphABC;

var x,i: integer;

begin

lockdrawing;

x:=700;

while x>-200 do

    begin

    clearwindow;

    setbrushcolor(clNavy);

    rectangle(x,230,x+180,300);

    setbrushcolor(clGray);

    rectangle(x-60,180,x,300);

    setbrushcolor(clSkyBlue);

    rectangle(x-50,190,x-10,230);

    setbrushcolor(clBlack);

    circle(x,320,20);

    circle(x+140,320,20);

    sleep(40);

    redraw;

    x:=x-10;

    end;

 

end.

Задание 7. Движение фигуры по форме. Протестировать программу и ускорить движение.

uses graphABC;

var x,i: integer;

begin

lockdrawing;

x:=700;

while x>-200 do

    begin

    clearwindow;

    setbrushcolor(clNavy);

    rectangle(x,230,x+180,300);

    setbrushcolor(clGray);

    rectangle(x-60,180,x,300);

    setbrushcolor(clSkyBlue);

    rectangle(x-50,190,x-10,230);

    setbrushcolor(clBlack);

    circle(x,320,20);

    circle(x+140,320,20);

    sleep(40);

    redraw;

    x:=x-10;

    end;



 

end.

Задание №8. Охарактеризовать каждую команду



uses graphABC;







setbrushcolor(clGray);






end.







rectangle(x,230,x+180,300);






redraw;







lockdrawing;







ClearWindow(clWhite);






if L<0 then st:=st+






y0:=y0+ky;






while x>-200 do






LockDrawing;






Redraw;




Задание №8. Оформить отчет. Структура отчета: титульный лист, цель, теоретические сведения, содержание работы (скриншоты и измененные коды), вывод о работе.



Поделитесь с Вашими друзьями:


База данных защищена авторским правом ©uverenniy.ru 2019
обратиться к администрации

    Главная страница