iracaenko153
?>

Составить программу в с++: 1. записать собственную функцию вычисления модуля числа n modul (n) и использовать ее для вычисления среднего арифметического модулей трех произвольных чисел. 2. создать функцию для вычисления длины отрезка, заданного координатами своих вершин на плоскости. использовать эту функцию для вычисления периметра треугольника, заданного координатами своих вершин.

Информатика

Ответы

Belokonev286
#include <iostream>
#include <ctime>
#include <cmath>

using namespace std;

struct VERT // структура для вершины многоугольника
{
  int x;
  int y;
};

// Модуль числа
int Modul( int a )
{
  return (a > 0 ? a : -a);
}

// Длина отрезка через координаты
float Len( int x1, int y1, int x2, int y2 )
{
  return sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
}

int main ()
{
  /// ЗАДАНИЕ 1 ///
  const int N = 3;
  int arr[N];
  float mid = 0;

  // Установка "зерна" для случайных чисел
  srand(time(NULL));
  // Заполнение массива случайными числами и суммирование
  for (int i = 0; i < N; i++)
    arr[i] = rand() % 100, mid += Modul(arr[i]);

  // Вычисление среднего арифм.
  mid /= M;

  /// ЗАДАНИЕ 2 ///
  
  const int V = 3; // количество вершин многоугольника
  VERT vert[V]; // массив вершин многоугольника

  cout << "Введите координаты вершин (x y): " << endl;
  for (int i = 0; i < V; i++)
  {
    cout << i + 1 << ": ";
    cin >> vert[i].x >> vert[i].y;
  }

  // Вычисление периметра
  float per = 0;
  for (int i = 0; i < V - 1; i++)
    per += Len(vert[i].x, vert[i].y, vert[i + 1].x, vert[i + 1].y);

  cout << "Периметр = " << per << endl;

  return 0;
}
moonligh3560
972₁₀ = 1111001100₂
1. Число будет иметь минимальное значение, если в нем будет минимально возможное количество значащих разрядов. Таких циклическх сдвигов в данном случае возможно 2 (запишем их друг под другом):
0011001111 - циклический сдвиг на 4 разряда влево;
0011110011 - циклический сдвиг на 8 разрядов влево;
2. При равном количестве разрядов меньшим будет то число, у которого при просмотре разрядов слева направо встретится ноль, в то время как у второго в этом же разряде будет единица (это место выделено):
11001111 - это число меньшее из двух.
11110011
ответ: 11001111₂ = 207₁₀
БашуроваОльга369
(1 + 0)*(0+0) + 1*0
(1 + 0) - истинна, т.к. дизъюнкция истинна если хотя-бы одна из переменных истинна
(0 + 0) - ложна, т.к. обе перменные ложны
(1 + 0)*(0+0) - ложна, т.к. первая скобка истинна, а вторая ложна, а в конъюнкции для истины обе скобки должны быть истинны.
1*0 - ложна, т.к. в конъюнкции обе переменные должны быть истинны.

Для удобства разделил скобками
((1 + 0)*(0+0)) + (1*0) - ложна, т.к. первая (большая) скобка ложна, вторая скобка (1*0) тоже ложна, между ними дизъюнкция, то есть хотя-бы одна из них должна быть истинна. Они обе ложны, значит результатом выражения

(1 + 0)*(0+0) + 1*0 

будет 0

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

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

Составить программу в с++: 1. записать собственную функцию вычисления модуля числа n modul (n) и использовать ее для вычисления среднего арифметического модулей трех произвольных чисел. 2. создать функцию для вычисления длины отрезка, заданного координатами своих вершин на плоскости. использовать эту функцию для вычисления периметра треугольника, заданного координатами своих вершин.
Ваше имя (никнейм)*
Email*
Комментарий*