Вправа 28
Скласти програму, яка запитує значення n кількості кутів
багатокутника і креслить фігуру, що має n кутів.
1) Запустить Python IDLE і створіть файл Вправа 28. Завантажте
модуль для роботи з «черепашачою» графікою.
2) Запишіть оператор для введення значення n.
3) Якщо n = 3, програма креслить трикутник. Запишіть оператор
неповного розгалуження, який перевіряє умову n == 3. Блок дій, який виконується, якщо умова істинна, має містити оператори малювання
трикутника.
if n == 3:
forward(50)
right(120)
forward(50)
right(120)
forward(50)
right(120)
4) Якщо n = 4, програма має накреслити квадрат. Запишіть оператор
неповного розгалуження, який перевіряє умову n == 4, і, якщо умова істинна,
креслить квадрат.
5) Якщо n = 5, програма креслить п’ятикутник. Запишіть оператор
неповного розгалуження, який перевіряє умову n == 5, і, якщо умова істинна,
креслить п’ятикутник.
6*) Запишіть оператор розгалуження, який виконує таку дію: якщо
n < 3 або n > 5, вивести повідомлення Такої фігури не передбачено.
Перевірте роботу програми.
#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;
}