//PascalABC.NET версия 3.4.2.1991 от 03.03.19
//Если программа не запускается, то обновите версию
const
handsfree = true;
nmax = 100;
random_min = -50;
random_max = 50;
var
a: array[1..nmax] of real;
i, n, count: integer;
procedure QuickSort(first, last: Integer);{ Быстрая сортировка массива A[] , использует массив как глобальную переменную}
i, j: integer;
x, y: real;
begin
i := first;
j := last;
x := a[(first + last) div 2];
repeat
while (A[i] < x) do inc(i);
while (x < A[j]) do dec(j);
if (i <= j) then
y := A[i]; a[i] := a[j]; a[j] := y;
inc(i); dec(j);
end;
until (i > j);
if (first < j) then QuickSort(first, j);
if (i < last) then QuickSort(i, last);
{ввод массива}
n := nmax;
if handsfree then begin
n := random(nmax - 5) + 5;
for i := 1 to n do
a[i] := random(random_max - random_min) + random_min;
write(a[i], ' ');
end
else begin
write('n = ');
readln(n);
readln(a[i]);
writeln();
QuickSort(1, n);
{вывод массива}
writeln('Вывод массива[', n, ']:');
{подсчет разных}
count := 1; {первый элемент точно разный}
for i := 2 to n do
if a[i] <> a[i - 1] then
count := count + 1;
writeln('Разных элементов = ', count);
end.
import turtle
from math import tan, sqrt, pi
def prepare(x, y, color):
turtle.penup()
turtle.goto(x, y)
turtle.pendown()
turtle.color(color)
turtle.begin_fill()
def draw_polygon(num_sides, side_length):
angle = 360.0 / num_sides
for i in range(num_sides):
turtle.forward(side_length)
turtle.right(angle)
turtle.end_fill()
def calc_s(num_sides, side_length):
return num_sides * side_length ** 2 / (4 * tan(pi/num_sides))
def calc_side(square):
return sqrt(4 * square * tan(pi/num_sides) / num_sides)
turtle.hideturtle()
turtle.speed(10)
colors = ['red', 'green', 'blue', 'cyan', 'magenta', 'black', 'yellow', 'pink', 'brown']
xcoords = [0, 150, -150, 150, -150, 270, -270, 270, -270]
ycoords = [0, 150, -150, -150, 150, 270, -270, -270, 270]
squares = []
numsides = []
for i in range(9):
num_sides = i + 3
square = round(calc_s(num_sides, 100), 2)
side_length = round(calc_side(10000), 3)
squares.append(square)
numsides.append(num_sides)
print("Углов:", num_sides, "была площадь:", square, "стала длина грани:", side_length,
"изменение в", round(side_length/100, 2), "раз")
prepare(xcoords[i], ycoords[i], colors[i])
draw_polygon(num_sides, side_length)
turtle.exitonclick()
print("Список количество углов:", numsides, end="")
print("Список площади:", squares)
Объяснение:
//PascalABC.NET версия 3.4.2.1991 от 03.03.19
//Если программа не запускается, то обновите версию
const
handsfree = true;
nmax = 100;
random_min = -50;
random_max = 50;
var
a: array[1..nmax] of real;
i, n, count: integer;
procedure QuickSort(first, last: Integer);{ Быстрая сортировка массива A[] , использует массив как глобальную переменную}
var
i, j: integer;
x, y: real;
begin
i := first;
j := last;
x := a[(first + last) div 2];
repeat
while (A[i] < x) do inc(i);
while (x < A[j]) do dec(j);
if (i <= j) then
begin
y := A[i]; a[i] := a[j]; a[j] := y;
inc(i); dec(j);
end;
until (i > j);
if (first < j) then QuickSort(first, j);
if (i < last) then QuickSort(i, last);
end;
begin
{ввод массива}
n := nmax;
if handsfree then begin
n := random(nmax - 5) + 5;
for i := 1 to n do
begin
a[i] := random(random_max - random_min) + random_min;
write(a[i], ' ');
end
end
else begin
write('n = ');
readln(n);
for i := 1 to n do
readln(a[i]);
end;
writeln();
QuickSort(1, n);
{вывод массива}
writeln('Вывод массива[', n, ']:');
for i := 1 to n do
write(a[i], ' ');
writeln();
{подсчет разных}
count := 1; {первый элемент точно разный}
for i := 2 to n do
if a[i] <> a[i - 1] then
count := count + 1;
writeln('Разных элементов = ', count);
end.
import turtle
from math import tan, sqrt, pi
def prepare(x, y, color):
turtle.penup()
turtle.goto(x, y)
turtle.pendown()
turtle.color(color)
turtle.begin_fill()
def draw_polygon(num_sides, side_length):
angle = 360.0 / num_sides
for i in range(num_sides):
turtle.forward(side_length)
turtle.right(angle)
turtle.end_fill()
def calc_s(num_sides, side_length):
return num_sides * side_length ** 2 / (4 * tan(pi/num_sides))
def calc_side(square):
return sqrt(4 * square * tan(pi/num_sides) / num_sides)
turtle.hideturtle()
turtle.speed(10)
colors = ['red', 'green', 'blue', 'cyan', 'magenta', 'black', 'yellow', 'pink', 'brown']
xcoords = [0, 150, -150, 150, -150, 270, -270, 270, -270]
ycoords = [0, 150, -150, -150, 150, 270, -270, -270, 270]
squares = []
numsides = []
for i in range(9):
num_sides = i + 3
square = round(calc_s(num_sides, 100), 2)
side_length = round(calc_side(10000), 3)
squares.append(square)
numsides.append(num_sides)
print("Углов:", num_sides, "была площадь:", square, "стала длина грани:", side_length,
"изменение в", round(side_length/100, 2), "раз")
prepare(xcoords[i], ycoords[i], colors[i])
draw_polygon(num_sides, side_length)
turtle.exitonclick()
print("Список количество углов:", numsides, end="")
print("Список площади:", squares)
Объяснение: