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

Дан массив из n-элементов. найти: произведение количества положительных чисел и чисел равных

Показать ответ
Ответ:
helpmepleasehelp1
helpmepleasehelp1
19.12.2022 16:06
Используется формула Гаусса (формула "шнурования").

// 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.
0,0(0 оценок)
Ответ:
Екатерина2987
Екатерина2987
15.11.2021 09:24
Перепроверь массив и скомпилируй.
// Example program#include <iostream>#include <string>
using namespace std;
int count_;const unsigned int DIM1 = 6;const unsigned int DIM2 = 6;int m[DIM1][DIM2] = {    { 'S', '.', '.', '.', '#', '#' },    { '#', '.', '#', '.', '.', '.' },    { '.', '.', '#', '.', '.', '#' },    { '.', '.', '#', '#', '#', '.' },    { '#', '.', '.', '.', '#', '#' },    { '#', '#', '#', '.', '.', 'F' }};int find_p(int x, int y) {    if (x < 0 || x > 5 || y < 0 || y > 5) return 0;    if (m[y] [x] == 'F') return 1;    if (m[y] [x] != '.' && m[y] [x] != 'S') return 0;    m[y] [x] = '+';    count_++;    if (find_p (x, y - 1)) return 1;    if (find_p (x + 1, y)) return 1;    if (find_p (x, y + 1)) return 1;    if (find_p (x - 1, y)) return 1;    m[y] [x] = 'x';    return 0;}int main(){  find_p(0, 0);  cout<<"\n Otvet="<<count_;}

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