Назаров588
?>

Дан абстрактный класс Point, описывающий точку в массив с координатами по осям size_t size; //размерность вывод координат }; Задание: 1. Добавить в класс Point конструктор(ы) 2. Унаследовать от класса Point два класса - Point2D и Point3D, в которых переопределить метод print. Для хранения координат использовать массив arr 3. Добавить в классы Point, Point2D и Point3D деструкторы Point2D - описывает точку в двумерном на вход конструктору подаются координаты по осям x и y) Point3D - описывает точку в трёхмерном на вход конструктору подаются координаты по осям x, y и z) Пример использования классов: int main (int argc, char *argv[]) { Point *p1 = new Point2D(1.5, 4.8); Point *p2 = new Point3D(1.0, 10.2, 3.3); p1->print(); p2->print(); delete p1; delete p2; return 0; } Вывод: x = 1.5 y = 4.8 x = 1.0 y = 10.2 z = 3.3

Информатика

Ответы

andreu420082132
                                     PascalABC.NET                                       function ToBinary (x:integer):string; beginif (x>0) then ToBinary := ToBinary(x div 2) + (x mod 2).ToString;end; function FromBinary (x:string):integer; beginif (x.Length>0) then FromBinary := FromBinary(x.Substring(1)) + x[1].ToDigit*Round(Power(2,x.Length-1));end; function func (x:integer):integer; beginvar s := ToBinary(x); loop 2 do s += s.AsEnumerable.Sum(c->c.ToDigit) mod 2; func:=FromBinary(s);end; begin Println('f(N):',func(ReadInteger('N:'))); Println('Количество:',(1..160).Count(x->func(x) in 90..160)); end.

Примечание:

Если к числу в двоичной системе счисления приписывать в конец цифры, то число увеличивается и никак не может уменьшится. Поэтому, n<f(n). Следовательно, перебор различных чисел, принадлежащих отрезку [90;160], можно смело ставить до 160 (можно и меньше, но лень расписывать вычисления).

ToBinary - функция перевода числа из десятичной СС в двоичную. Можно писать любой алгоритм, необязательно в точности использовать мой.

FromBinary - функция перевода числа из двоичной СС в десятичную. Можно писать любой алгоритм, необязательно в точности использовать мой.

func - функция, которая выполняет преобразования числа согласно условию (пункты 1, 2, 3, 4).

Код кажется большим только из-за процедур и begin/endов. Без них - всего то 7 строчек :). В скринах можно проверить, действительно ли 19 (40-22+1).

Пример работы:


Автомат обрабатывает натуральное число N по следующему алгоритму: 1. Строится двоичная запись числа
Автомат обрабатывает натуральное число N по следующему алгоритму: 1. Строится двоичная запись числа
Автомат обрабатывает натуральное число N по следующему алгоритму: 1. Строится двоичная запись числа
zaseche99

Задание 1

#include <iostream>

#include <string>

using std::cout;

using std::cin;

using std::endl;

int main()

{    

       int arr[10];  //если у тебя дни недели то заменяй int на string

       // Заполняем массив с клавиатуры

       for (int i = 0; i < 10; i++) {

           cout << "[" << i + 1 << "]" << ": ";

           cin >> arr[i];

       }

       // И выводим заполненный массив.

       cout << "\nВаш массив: ";

       for (int i = 0; i < 10; ++i) {

           cout << arr[i] << " ";

       }

       cout << endl;

       return 0;

}

Объяснение:

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

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

Дан абстрактный класс Point, описывающий точку в массив с координатами по осям size_t size; //размерность вывод координат }; Задание: 1. Добавить в класс Point конструктор(ы) 2. Унаследовать от класса Point два класса - Point2D и Point3D, в которых переопределить метод print. Для хранения координат использовать массив arr 3. Добавить в классы Point, Point2D и Point3D деструкторы Point2D - описывает точку в двумерном на вход конструктору подаются координаты по осям x и y) Point3D - описывает точку в трёхмерном на вход конструктору подаются координаты по осям x, y и z) Пример использования классов: int main (int argc, char *argv[]) { Point *p1 = new Point2D(1.5, 4.8); Point *p2 = new Point3D(1.0, 10.2, 3.3); p1->print(); p2->print(); delete p1; delete p2; return 0; } Вывод: x = 1.5 y = 4.8 x = 1.0 y = 10.2 z = 3.3
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Aleksei Biketova
morsh9345
Рожков Зейдан460
Avdeeva Inga1505
andrey
infooem
Тамара_Григорьевна897
lidiya08083268
maxkuskov2485
elmiro4ka868617
shilinmikhaillg
ВадимСмирнов116
xarfagr
vorota-grupp
Ямпольский