Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 14.05.2020
Сообщений: 17

Напишите код для "безопасного" вычисления периметра и площади прямоугольника в виде модуля

22.05.2020, 11:48. Показов 2594. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Напишите код для "безопасного" вычисления периметра и площади прямоугольника в виде модуля.
Сторонами прямоугольника может быть только число (тип данных Number, значения других типов данных нельзя устанавливать), значение которого, строго больше 0.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.05.2020, 11:48
Ответы с готовыми решениями:

Написать программу для вычисления площади и периметра прямоугольника
Даны стороны прямоугольника a и b.Написать на языке программирования C++ программу,вычисляющую его площадь S и периметр P.

Создать процедуру для вычисления периметра и площади прямоугольника по длинам его сторон
Создать процедуру для вычисления периметра и площади прямоугольника по длинам его сторон. 1. Как можно передавать данные из вызывающей...

Написать программу вычисления периметра и площади прямоугольника (файловый ввод/вывод)
Помогите написать программу вычисления периметра и площади прямоугольника, через данные из файла и запись результата в другой. ...

2
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
22.05.2020, 13:46
На языке TypeScript:
JavaScript
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
export class Rectangle {
    #side1: number;
    public get side1(): number {
        return this.#side1;
    }
    public set side1(value: number) {
        assertIsNumber(value);
        assertIsPositive(value);
        this.#side1 = value;
    }
    #side2: number;
    public get side2(): number {
        return this.#side2;
    }
    public set side2(value: number) {
        assertIsNumber(value);
        assertIsPositive(value);
        this.#side2 = value;
    }
    constructor(side1: any, side2: any) {
        this.side1 = side1;
        this.side2 = side2;
    }
    public perimeter() {
        return 2 * (this.#side1 + this.#side2);
    }
    public area() {
        return this.#side1 * this.#side2;
    }
}
 
function assertIsNumber(value: any): asserts value is number {
    if (!Number.isFinite(value)) throw new Error("Argument is not finite number.");
}
function assertIsPositive(value: number) {
    if (value <= 0) throw new Error("Argument is not positive number.");
}
// ----------------------
// Тестирование
{
    let square = new Rectangle(10, 20);
    console.log(square.perimeter());
    console.log(square.area());
}
{
    try {
        let square = new Rectangle(10, "20");
        console.log(square.perimeter());
        console.log(square.area());
    }
    catch (error) {
        console.log(error.message);
    }
}
На языке JavaScript:
JavaScript
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
export class Rectangle {
    constructor(side1, side2) {
        this.side1 = side1;
        this.side2 = side2;
    }
    #side1;
    get side1() {
        return this.#side1;
    }
    set side1(value) {
        assertIsNumber(value);
        assertIsPositive(value);
        this.#side1 = value;
    }
    #side2;
    get side2() {
        return this.#side2;
    }
    set side2(value) {
        assertIsNumber(value);
        assertIsPositive(value);
        this.#side2 = value;
    }
    perimeter() {
        return 2 * (this.#side1 + this.#side2);
    }
    area() {
        return this.#side1 * this.#side2;
    }
}
function assertIsNumber(value) {
    if (!Number.isFinite(value))
        throw new Error("Argument is not finite number.");
}
function assertIsPositive(value) {
    if (value <= 0)
        throw new Error("Argument is not positive number.");
}
// ----------------------
// Тестирование
{
    let square = new Rectangle(10, 20);
    console.log(square.perimeter());
    console.log(square.area());
}
{
    try {
        let square = new Rectangle(10, "20");
        console.log(square.perimeter());
        console.log(square.area());
    }
    catch (error) {
        console.log(error.message);
    }
}
1
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
23.05.2020, 06:13
Цитата Сообщение от Alis_K Посмотреть сообщение
Напишите код для "безопасного" вычисления периметра и площади прямоугольника в виде модуля.
Тут ещё пара основных вариантов вычислений:
1) экспортировать две разрозненных функции периметра и площади (Традиционная идеология JavaScript).
2) сделать две функции статическими методами "статического" класса Utils и экспортировать "статический" класс Utils. Смысл не сильно отличается от разрозненных функций.
На языке TypeScript:
JavaScript
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
33
34
35
36
export function perimeter(side1: any, side2: any) {
    assertIsNumber(side1);
    assertIsPositive(side1);
    assertIsNumber(side2);
    assertIsPositive(side2);
    return 2 * (side1 + side2);
}
export function area(side1: any, side2: any) {
    assertIsNumber(side1);
    assertIsPositive(side1);
    assertIsNumber(side2);
    assertIsPositive(side2);
    return side1 * side2;
}
 
function assertIsNumber(value: any): asserts value is number {
    if (!Number.isFinite(value)) throw new Error("Argument is not finite number.");
}
function assertIsPositive(value: number) {
    if (value <= 0) throw new Error("Argument is not positive number.");
}
// ----------------------
// Тестирование
{
    console.log(perimeter(10, 20));
    console.log(area(10, 20));
}
{
    try {
        console.log(perimeter(10, "20"));
        console.log(area(10, "20"));
    }
    catch (error) {
        console.log(error.message);
    }
}
На языке JavaScript:
JavaScript
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
33
34
35
36
37
export function perimeter(side1, side2) {
    assertIsNumber(side1);
    assertIsPositive(side1);
    assertIsNumber(side2);
    assertIsPositive(side2);
    return 2 * (side1 + side2);
}
export function area(side1, side2) {
    assertIsNumber(side1);
    assertIsPositive(side1);
    assertIsNumber(side2);
    assertIsPositive(side2);
    return side1 * side2;
}
function assertIsNumber(value) {
    if (!Number.isFinite(value))
        throw new Error("Argument is not finite number.");
}
function assertIsPositive(value) {
    if (value <= 0)
        throw new Error("Argument is not positive number.");
}
// ----------------------
// Тестирование
{
    console.log(perimeter(10, 20));
    console.log(area(10, 20));
}
{
    try {
        console.log(perimeter(10, "20"));
        console.log(area(10, "20"));
    }
    catch (error) {
        console.log(error.message);
    }
}
Добавлено через 4 минуты
Разница между созданием объекта и разрозненными функциями:
1) Для объекта данные передаем один раз и потом многократно их используем для различных методов с вычислениями.
2) В разрозненные функции при каждом вызове данные передаем (многократно). Получили результат функции, и для второй функции опять загружаем пачку данных в параметры.

Добавлено через 3 минуты
----
Можно подумать, что пачку данных можно повесить на переменные/одну переменную.
Но здесь мы получим суррогатную эмуляцию объекта. С разбросанными внутренностями.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.05.2020, 06:13
Помогаю со студенческими работами здесь

Дописать код для вычисления площади прямоугольника
Дорогие форумчане! Делаю первые шаги в автотетсировании, застрял на решении задачи: Напишите реализацию метода getArea(width, height),...

Разработать класс «Прямоугольник» Определить в нем конструкторы и метод вычисления периметра и площади прямоугольника
Помогите пожалуйста, начал работать с классами. Хочу узнать как это реализовывается:umnik: Ввод и вывод данных осуществить в форме....

Вычисление площади и периметра квадрата и прямоугольника, описанных вокруг круга заданной площади S
Составить программу для вычисления площади и периметра квадрата и прямоугольник, описанных вокруг круга заданной площади S.

Вычисление периметра и площади квадрата для модуля square
Создайте для модуля 'square': функции square_perimeter() – вычисляет периметр квадрата, square_area() – вычисляет площадь фигуры. ...

Объявите класс Квадрат и определите методы для вычисления площади и для вычисления периметра. Создайте net приложение
Здравствуйте! Очень прошу помочь с решением задачи. Заранее спасибо! Объявите класс Квадрат и определите 2 метода для вычисления площади...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью в конфигурации КА2. Данные берутся из регистра сведений, по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru