NIKOLAI
?>

20 ! надо в javascript нарисовать робота и стикмэна как на !

Информатика

Ответы

Albina

Робот:

var canvas = document.getElementById('cl');

var ctx = canvas.getContext('2d');

ctx.fillStyle = 'orange';

ctx.fillRect(25, 0, 10, 10);

ctx.fillStyle = 'blue';

ctx.fillRect(27, 2, 2, 2);

ctx.fillRect(31, 2, 2, 2);

ctx.fillStyle = 'purple';

ctx.fillRect(29, 10, 2, 5);

ctx.fillStyle = 'black';

ctx.fillRect(15, 15, 30, 2);

ctx.fillStyle = 'grey';

ctx.fillRect(22.5, 15, 15, 20);

ctx.fillStyle = 'green';

ctx.fillRect(22.5, 35, 2, 15);

ctx.fillRect(35.5, 35, 2, 15);

Стикмэн:

ctx.fillStyle = 'black';

ctx.strokeRect(25, 50, 10, 10);

ctx.fillStyle = 'blue';

ctx.fillRect(29, 60, 2, 28);

ctx.beginPath();  

ctx.lineWidth="2";

ctx.strokeStyle="black";

ctx.moveTo(29,70);

ctx.lineTo(40,62);

ctx.stroke();

ctx.beginPath();  

ctx.lineWidth="2";

ctx.strokeStyle="black";

ctx.moveTo(30,70);

ctx.lineTo(20,62);

ctx.stroke();

ctx.beginPath();  

ctx.lineWidth="2";

ctx.strokeStyle="black";

ctx.moveTo(30,86);

ctx.lineTo(20,95);

ctx.stroke();

ctx.beginPath();  

ctx.lineWidth="2";

ctx.strokeStyle="black";

ctx.moveTo(29,86);

ctx.lineTo(40,95);

ctx.stroke();

И да,надеюсь ты разбираешься в Javascript`е и знаешь что как.

ВалентиновичСуриковна1104
Используется формула Гаусса (формула "шнурования").

// PascalABC.NET 3.3, сборка 1583 от 25.11.2017
// Внимание! Если программа не работает, обновите версию!

- с функцией:

function SPolygonGauss(a:array of real):real;
// Возвращает вычисленную по формуле Гаусса площадь многоугольника,
// координаты вершин которого заданы массивами х и у
begin
  var (n,i):=(a.Length-4,0);
  Result:=0.0;
  while i<=n do begin
    Result+=a[i]*a[i+3]-a[i+1]*a[i+2];
    i+=2
    end;
  Result:=Abs(0.5*Result)
end;

begin
  var x:=ReadArrReal('Введите координаты вершин 5-угольника:',10);
  SetLength(x,12);
  x[10]:=x[0];
  x[11]:=x[1];
  Writeln('Площадь равна ',SPolygonGauss(x))
end.

Пример
Введите координаты вершин 5-угольника: 0.6 2.1 1.8 3.6 2.2 2.3 3.6 2.4 3.1 0.5
Площадь равна 3.915

- с процедурой:

procedure SPolygonGauss(a:array of real; var s:real);
// Вычисляет по формуле Гаусса площадь многоугольника,
// координаты вершин которого заданы массивами х и у
begin
  var (n,i):=(a.Length-4,0);
  s:=0.0;
  while i<=n do begin
    s+=a[i]*a[i+3]-a[i+1]*a[i+2];
    i+=2
    end;
  s:=Abs(0.5*s)
end;

begin
  var x:=ReadArrReal('Введите координаты вершин 5-угольника:',10);
  SetLength(x,12);
  x[10]:=x[0];
  x[11]:=x[1];
  var s:real;
  SPolygonGauss(x,s);
  Writeln('Площадь равна ',s)
end.
skononova01

Математика:

Подкоренное выражение всегда больше либо равно нулю.

Так как у нас модуль, то в этой части примера решение есть при всех x (модуль убирает минус).

Далее, дробь.

Знаменатель должен быть не равен нулю.

x+\frac{x^2}{4} \neq 0 \\ 4x+x^2 \neq 0\\x(4+x) \neq 0

a)

x\neq 0

b)

x\neq - 4

Получается, математические ограничение для х:

x\neq 0

x\neq - 4

Так, с математикой разобрались.

Информатика:

if (x<>0) and (x<>-4) then в 9 строчке

sqr - это возведение в квадрат

sqrt - квадратный корень

(от англ. слов square и square root)

То есть:

a:=y-sqrt(abs(x)); в 11 строчке

И ошибка в 13 строчке:

c:=ln(abs(a*b));

(было c:=ln(abs(a*c);)

Собственно, минус бесконечность выдавало именно из-за ошибки в 13 строчке.

Умножали a на c.

Так как с не было определенно, то c=0.

А значит a*c=0.

Натуральный логарифм от нуля равен минус бесконечности.

Готово!

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

20 ! надо в javascript нарисовать робота и стикмэна как на !
Ваше имя (никнейм)*
Email*
Комментарий*