1. реализуйте: класс круг класс ошибки на основе встроенного в php класса exception 2. для класса круг определите: свойства достаточные для реализации функционала методов, а также статическое свойство для подсчета количества созданных объектов метод для вычисления длинны окружности (длинна окружности вычисляется по формуле p = 2 · π · r, где p - длина окружности, r - радиус окружности, π = 3.141592) 3. в конструкторе класса реализуйте функционал проверки переданных аргументов (радиус круга должны быть больше нуля): если данное условие не соблюдается, то выбрасывается исключение для пользовательского класса ошибки с сообщением об ошибке в противном случае, происходит запись значений в свойства и увеличение счетчика созданных объектов. 4. продемонстрируйте работу разработанного функционала. так как некоторые из значений при инициализации экземпляра класса могут к выбросу исключения, то реализуйте функционал для ловли исключений класса из п.1. после перехвата исключения класса из п.1 выведите на экран сообщение, переданное при выбросе исключения с метода getmessage, который наследуется из exception) проверьте количество объектов класса с статического свойства. на php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <stdio.h>
#include <stdlib.h> // предоставляет rand() и srand()
#include <time.h> // предоставляет time()
// число строк в массиве:
#define M 5
// длина каждой строки:
#define N 7
int main ()
{
srand(time(NULL)); // новая точка отсчета рнд
int B[M][N]; // массив
int cnt; // число отрицательных
int i, j;
// заполняем массив случайными:
for (i=0; i<M; i++)
for (j=0; j<N; j++)
B[i][j] = rand() %21 - 10;
// считаем отрицательные:
for (i=0; i<N; i++)
{
cnt = 0; // перед каждым новым столбцом сбрасываем счетчик отрицательных
for (j=0; j<M; j++)
if (B[i][j] < 0) cnt++;
printf("column #%i, count is: %d\n", i, cnt);
}
return 0; // конец программы
begin
var a:=ReadLines('m17.txt').JoinIntoString.ToIntegers;
a.Println;
var b:=a.Select((x,i)->Rec(x,i)).Where(x->x.Item1<0)
.Select(x->x.Item2).ToArray;
if b.Count<>2 then
Writeln('Количество отрицательных элементов не равно двум')
else begin
a:=SeqFill(b[0],0).Concat(a.Skip(b[0]).Take(b[1]-b[0]+1))
.Concat(SeqFill(a.Length-b[1]-1,0)).ToArray;
a.Println
end
end.
Тестовое решение:
23 14 7 15 0 13 -6 41 18 13 8 42 27 -11 3 19 10
0 0 0 0 0 0 -6 41 18 13 8 42 27 -11 0 0 0
Файл с исходными данными имеет имя m17.txt. Тестовый файл находится во вложении. Разбивка на строки сделана по 5 значений, но может быть совершенно произвольной. Также нет привязки именно к 17 числам, главное - чтобы отрицательных чисел было ровно два, иначе будет выдано сообщение о их неверном количестве.