Форум программистов, компьютерный форум, киберфорум
Наши страницы

ООП и паттерны

Войти
Регистрация
Восстановить пароль
 
Патогеныч
0 / 0 / 0
Регистрация: 29.11.2014
Сообщений: 8
#1

Написать код задачи через ООП - ООП и паттерны

19.02.2015, 13:54. Просмотров 623. Ответов 6
Метки нет (Все метки)

Площадь квадрата равна S кв.м. Найти периметр квадрата.

Уважаемые,пожалуйста объясните код подробнее,если можно.Заранее благодарен.)

P.S. Так же,если возможно,напишите код попроще
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.02.2015, 13:54
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Написать код задачи через ООП (ООП и паттерны):

На сколько соответствует код концепции ООП - ООП и паттерны
Доброго времени суток форумчане. Я понимаю что вопрос может звучать глупо, но мне это важно знать. Суть вопроса вот в чем. Есть...

Проектирование сложных систем - ООП. Покритикуйте код, пожалуйста! - ООП и паттерны
Добрых суток. Недавно начал делать первые шаги в проектировании. Вроде, разобрался как строить классы, как выполнять их декомпозицию и...

Проектирование сложных систем - ООП. Покритикуйте код, пожалуйста! Заключение (надеюсь) - ООП и паттерны
Доработал программу. Постарался учесть замечания 0x10, на счёт запутанности и глобальных переменных, так же других людей, на счёт сильной...

Акинатор через ООП: модернизировать код - C#
Как написать программу в С# через ООП, дерево решений создано. using System; using System.Collections.Generic; using System.Linq; ...

Написать приведенный код в стиле ООП - C#
Есть код, но мне нужно реализовать его в стиле ООП, с классами и т.д. Я немного понимаю ООП, но я совершенно не могу его приписать к своему...

Как написать данный код средствами ООП? - C++
Всем привет! Недавно начал изучать с++ и написал простенькую задачу: Задание: Найти произведение компонент вектора , удовлетворяющих...

6
korvin_
1968 / 1453 / 228
Регистрация: 28.04.2012
Сообщений: 5,207
19.02.2015, 16:12 #2
Цитата Сообщение от Патогеныч Посмотреть сообщение
Площадь квадрата равна S кв.м. Найти периметр квадрата.
Уважаемые,пожалуйста объясните код подробнее,если можно.Заранее благодарен.)
P.S. Так же,если возможно,напишите код попроще
Haskell
1
perimeter s = 4 * sqrt s
http://ideone.com/odnVT6
0
Казерская Ирина
95 / 31 / 6
Регистрация: 22.08.2014
Сообщений: 102
21.02.2015, 21:22 #3
Хоть язык бы писал
Как-то так
C++
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
#include <iostream>
#include <cmath>
using namespace std;
class Rectangle
{
private:
    double length;
public:
 
Rectangle(double a)
{
    length = a;
}
    ~Rectangle() {}
 
    double area()// нахождение площади
{
    return (length*length);
} 
    double perimeter()//нахождение периметра
{
    return (4*sqrt(area));
}
 
};
 
 
int main()
{
    Rectangle theRect(12);
   cout << "area: " << theRect.area();
    cout << "perimeter: "<< theRect.perimeter();
 
    system("pause");
    return 0;
}
2
ildwine
Модератор
2914 / 1767 / 638
Регистрация: 04.03.2013
Сообщений: 4,372
Записей в блоге: 1
22.02.2015, 18:38 #4
То же самое на Java (то есть 99.9% ООП языке):
Java
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
package ru.ildwine.java;
 
public class Solution1 //тестовый класс
{
    public static void main(String[] args) {     //запускающий метод
        Square kv1 = new Square(16); //создаем квадрат с площадью 16
        Square kv2 = new Square(10); //создаем квадрат с площадью 10
        //выводим периметры
        System.out.println("Периметр квадрата 1 =  " + kv1.getPerimetr());
        System.out.println("Периметр квадрата 2 =  " + kv2.getPerimetr());
    }
}
 
class Square {
 
    //поля:
    private double a; //сторона
    private double s; // площадь
    private double p; //периметр
 
    //конструкторы:
    //конструктор, создает объект, через указание площади
    Square(double s) {
        this.s = s;
        this.a = Math.sqrt(s);
        this.p = 4 * a;
    }
 
    //метод получения периметра
    public double getPerimetr() {
        return this.p;
    }
}
Добавлено через 3 минуты
Учел инкапсуляцию полей...
Объект создается через конструктор, в котором инициализируется площадь...
Доступ к полю "периметр" также реализован через геттер...

То есть, постарался соблюсти принципы ООП по полной...
1
korvin_
1968 / 1453 / 228
Регистрация: 28.04.2012
Сообщений: 5,207
22.02.2015, 19:32 #5

Не по теме:

Цитата Сообщение от ildwine Посмотреть сообщение
то есть 100% ООП языке
Это как бы немного не так. Там есть примитивные типы, не являющиеся объектами, например. =)



(GNU) SmallTalk
Objective-C
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
Object subclass: #Square.
Square instanceVariableNames: 'side'.
Square class extend [
    new: square [
        | r |
        <category: 'instance creation'>
        r := super new.
        r init: square.
        ^r
    ]
]
Square extend [
    init: square [
        <category: 'initialization'>
        side := square sqrt.
    ]
    perimeter [
        | p |
        <category: 'perimeter calculation'>
        p := 4 * side.
        ^p
    ]
]
 
Object subclass: #App.
App class extend [
    run [
        | s |
        s := Square new: 4.
        [s perimeter] printNl
    ]
]
App run.
0
ildwine
22.02.2015, 19:41
  #6

Не по теме:

korvin_, ну... мелочь а в мой огород... Согласен...

0
korvin_
22.02.2015, 19:47     Написать код задачи через ООП
  #7

Не по теме:

Я там со скобками в одной строчке ошибся. =)
Должно быть: (s perimeter) printNl
И точка в конце (после App run) не обязательна. http://ideone.com/LF9L3g
Как и сам класс App в общем-то. http://ideone.com/jldd0i

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.02.2015, 19:47
Привет! Вот еще темы с ответами:

Как правильно написать код в рамках ООП (C# + ADO.NET) - C#
Добрый день. Перешел в Delphi на C# стараюсь изменить свое мышление, что-бы писать в рамках ООП, но не всегда получается. Вот чувствую...

Написать код для развязывания задачи - PascalABC.NET
Создать программу на языке Паскаль для развязывания задачи (она ниже) с использованием типа данных &quot;объект&quot;. uses GraphABC,...

Написать код решение задачи на Visual C++ - C++
Вiдомі щільність р і геометричні розміри (R-радіус основи і h-висота) циліндрового злитка, отриманого в металургійній лабораторії. Знайти...

Нужно создать код задачи через консоль - Delphi
Админ,пропусти скрин пожалуйста. Вложение удалено.


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

Или воспользуйтесь поиском по форуму:
7
22.02.2015, 19:47
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.