В
Все
М
Математика
О
ОБЖ
У
Українська мова
Х
Химия
Д
Другие предметы
Н
Немецкий язык
Б
Беларуская мова
М
Музыка
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
У
Українська література
Р
Русский язык
Ф
Французский язык
П
Психология
О
Обществознание
А
Алгебра
М
МХК
Г
География
И
Информатика
П
Право
А
Английский язык
Г
Геометрия
Қ
Қазақ тiлi
Л
Литература
И
История
artembebko666
artembebko666
18.06.2022 15:38 •  Информатика

Определи функцию, рисующую забор. на Python сроч

Показать ответ
Ответ:
ЕленаЧернова
ЕленаЧернова
29.05.2021 04:07
Основа взята на сайте progmatem.ru. К сожалению, автор статьи там не был указан.

// PascalABC.NET 3.1, сборка 1204 от 24.03.2016
uses graphABC;
const
  w=1000;
  h=600;

function f(x:real):=0.5*x*cos(2*x);

begin
  SetWindowSize(w,h);
  // поле для графика в окне
  var xLeft:=50;
  var yLeft:=50;
  var xRight:=w-xLeft;
  var yRight:=h-yLeft;
  // интервалы по осям
  var ax:=-12.0;
  var bx:=12.0;
  var hx:=1.0;
  var ay:=-6.5; // минимум f(x) с запасом
  var by:=6.5;
  var hy:=0.5;
  // масштабы по осям
  var mx:=(xRight-xLeft)/(bx-ax);
  var my:=(yRight-yLeft)/(by-ay);
  // точка начала координат графика
  var x0:=xLeft+Trunc(abs(ax)*mx);
  var y0:=yRight-Trunc(abs(ay)*my);
  // рисование координатных осей
  Line(xLeft,y0,xRight+10,y0);
  Line(x0,yLeft-10,x0,yRight);
  SetFontSize(12); SetFontColor(clBlue);
  TextOut(xRight+15,y0-10,'X');
  TextOut(x0-4,yLeft-30,'Y');
  SetFontSize(8); SetFontColor(clGreen);
  // рисование засечек
  var s:string;
  for var i:=1 to Round((bx-ax)/hx)+1 do begin
    var num:=ax+(i-1)*hx;
    var x:=xLeft+Trunc(mx*(num-ax));
    Line(x,y0-3,x,y0+3);
    Str(num,s);
    if abs(num)>1E-15 then TextOut(x-TextWidth(s) div 2,y0+10,s)
    end;
  for var i:=1 to Round((by-ay)/hy)+1 do begin
    var num:=ay+(i-1)*hy;
    var y:=yRight-Trunc(my*(num-ay));
    Line(x0-3,y,x0+3,y);
    Str(num,s);
    if abs(num)>1E-15 then TextOut(x0+7,y-TextHeight(s) div 2,s)
    end;
    TextOut(x0-10,y0+10,'0');
  // собственно график
  var xi:=ax;
  while xi<=bx do begin
    var yi:=f(xi);
    var x:=x0+Round(xi*mx);
    var y:=y0-Round(yi*my);
    if (y>=yLeft) and (y<=yRight) then SetPixel(x,y,clRed);
    xi+=1e-3
    end
end.

*******************************************
// PascalABC.NET 3.1, сборка 1204 от 24.03.2016
uses graphABC;
const
  w=1000;
  h=600;

function f(x:real):=8*sin(x)*sin(2*x);

begin
  SetWindowSize(w,h);
  // поле для графика в окне
  var xLeft:=50;
  var yLeft:=50;
  var xRight:=w-xLeft;
  var yRight:=h-yLeft;
  // интервалы по осям
  var ax:=-15.0;
  var bx:=15.0;
  var hx:=1.0;
  var ay:=-6.5; // минимум f(x) с запасом
  var by:=6.5;
  var hy:=0.5;
  // масштабы по осям
  var mx:=(xRight-xLeft)/(bx-ax);
  var my:=(yRight-yLeft)/(by-ay);
  // точка начала координат графика
  var x0:=xLeft+Trunc(abs(ax)*mx);
  var y0:=yRight-Trunc(abs(ay)*my);
  // рисование координатных осей
  Line(xLeft,y0,xRight+10,y0);
  Line(x0,yLeft-10,x0,yRight);
  SetFontSize(12); SetFontColor(clBlue);
  TextOut(xRight+15,y0-10,'X');
  TextOut(x0-4,yLeft-30,'Y');
  SetFontSize(8); SetFontColor(clGreen);
  // рисование засечек
  var s:string;
  for var i:=1 to Round((bx-ax)/hx)+1 do begin
    var num:=ax+(i-1)*hx;
    var x:=xLeft+Trunc(mx*(num-ax));
    Line(x,y0-3,x,y0+3);
    Str(num,s);
    if abs(num)>1E-15 then TextOut(x-TextWidth(s) div 2,y0+10,s)
    end;
  for var i:=1 to Round((by-ay)/hy)+1 do begin
    var num:=ay+(i-1)*hy;
    var y:=yRight-Trunc(my*(num-ay));
    Line(x0-3,y,x0+3,y);
    Str(num,s);
    if abs(num)>1E-15 then TextOut(x0+7,y-TextHeight(s) div 2,s)
    end;
    TextOut(x0-10,y0+10,'0');
  // собственно график
  var xi:=ax;
  while xi<=bx do begin
    var yi:=f(xi);
    var x:=x0+Round(xi*mx);
    var y:=y0-Round(yi*my);
    if (y>=yLeft) and (y<=yRight) then SetPixel(x,y,clRed);
    xi+=1e-3
    end
end.

Составьте программу, которая строит график зависимости: а) y(x)=0.5x *cos 2x на промежутке [-12; 12]
Составьте программу, которая строит график зависимости: а) y(x)=0.5x *cos 2x на промежутке [-12; 12]
0,0(0 оценок)
Ответ:
mani09091
mani09091
14.12.2021 15:56

1.Скретч 3.0 (текущая версия) является улучшенной версией Скретч 2.0 и сделана на HTML5, используя движок WebGL, что даёт ему возможность работать на мобильных устройствах и планшетах. Скретч разрабатывается небольшой командой программистов для детей[3] в Массачусетском технологическом институте. Текущая версия — Скретч 3.0, выпущена в январе 2019 года. В 2008 году Скретч был портирован для микроконтроллерного модуля Arduino. Проект носит название S4A[4].

2.Создадим в Scratch такую программу. На холсте находится смайлик, пульт и

указатель. В зависимости от того, где указатель располагается на пульте, смайлик

меняет выражение своего "лица". Положение указателя пусть определяется с цвета, а не координат.

3.    Представьте, что мы создаем игру, в которой герой, управляемый

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

комнаты герой может попасть только в одну или несколько других, а не во все.

Например, пусть схема расположения комнат будет такой:

Т.е. из комнаты 1 можно попасть в комнату 2. Из второй комнаты возможен

переход в первую и третью и т.п. Событием, после которого будет производиться

переход, будет местонахождение героя у соответствующего края сцены. Так для

первой комнаты это будет правый край.

В среде программирования Scratch к фону сцены обращаются по его имени,

(если программный код составляется для объекта Сцена) или по номеру фона (для

других объектов). В нашей программе важно правильно расставить фоны по-порядку

и назвать их.

39

Теперь выберем какой-нибудь объект в качестве героя и заставим его

двигаться. Управляемое перемещение объекта может осуществляться с мыши и клавиатуры. Если выбрать мышь, то код может быть таким:

Здесь, когда пользователь нажимает мышь, то объект движется по

направлению к курсору.

Вспомним, что размер холста в Scratch равен 480х360 пикселей, а начальная

точка системы координат находится в центре. Поэтому у правого края значение x =

240, у левого x = -240. Верхний край: y = 180; нижний край: y = -180. Пусть в

дальнейшем фон меняется, когда соответствующая координата объекта равна по

модулю 200 или 150. Это связано с удобством управления.

Алгоритм перехода объекта из комнаты 1 (лаборатория) в комнату 2 (спальня)

может быть таким, как описано ниже.

Для героя:

• Когда координата x объекта становится равной 200, он посылает

соответствующее сообщение (например, "в спальню из лаборатории").

40

• Значение координаты x изменяется на противоположное, а y остается

прежним. Это создаст эффект вхождения в другую комнату.

Для сцены:

• В зависимости от того, какое сообщение получено для сцены устанавливается

соответствующий сообщению фон.

Программный код для объекта:

Программный код для сцены:

Сценарии перехода в другие комнаты аналогичны приведенным выше, за

исключением значений. Всего должно получиться восемь комбинаций перехода из

комнаты в комнату. Запрограммируйте эти переходы самостоятельно. Для воспользуйтесь таблицей ниже.

фон от сцена = ... положение от … … ... передать ... идти в … ...

1 > 200 В спальню из лаборатории x: -200

y: положение y

2 < -200 В лабораторию из спальни x: 200

y: положение y

2 > 200 В гостиную из спальни x: -200

y: положение y

3 < -200 В спальню из гостиной x: 200

y: положение y

3 > 150 В студию из гостиной x: положение x

y: -150

4 < -150 В гостиную из студии x: положение x

y: 150

3 < -150 В кабинет из гостиной x: положение x

y: 150

5 > 150 В гостиную из кабинета x: положение x  y: -150

4.    По идее в нашей программе смайлик должен изменять свою "улыбку" и

"выражение глаз"; т.е. он должен оставаться, с одной стороны, самим собой, а с

другой, все-таки меняться.

Для изменения объектов в Scratch используется понятие костюмов. Каждый

объект имеет хотя бы один костюм. В этом можно убедиться, если перейти на

вкладку костюмы в среднем столбце окна Scratch. Чтобы добавить новый костюм

надо нажать на кнопку Рисовать, Импорт или Камера. Однако чаще всего, придется

изменять уже готовый костюм. В этом случае копируют уже существующий костюм, а

затем редактируют его.                                                                                                                          

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота