Por supuesto, aquí te muestro dos códigos fuente diferentes para una misma aplicación en C++, uno estructurado y otro orientado a objetos:

Código estructurado:

    #include <iostream>
    #include <string>
    #include <cmath>

    using namespace std;

    int main() {
        double base, altura, area;
        string unidad;

        cout << "Ingresa la base del triángulo: ";
        cin >> base;

        cout << "Ingresa la altura del triángulo: ";
        cin >> altura;

        cout << "Ingresa la unidad de medida (cm, m, etc.): ";
        cin >> unidad;

        area = (base * altura) / 2;

        cout << "El área del triángulo es " << area << " " << unidad << " cuadrados." << endl;

        return 0;
    }


Código orientado a objetos:

    #include <iostream>
    #include <string>
    #include <cmath>

    using namespace std;

    class Triangulo {
        private:
            double base;
            double altura;
            string unidad;

        public:
            Triangulo(double b, double h, string u) {
                base = b;
                altura = h;
                unidad = u;
            }

            double calcular_area() {
                return (base * altura) / 2;
            }

            void imprimir_area() {
                double area = calcular_area();
                cout << "El área del triángulo es " << area << " " << unidad << " cuadrados." << endl;
            }
    };

    int main() {
        double base, altura;
        string unidad;

        cout << "Ingresa la base del triángulo: ";
        cin >> base;

        cout << "Ingresa la altura del triángulo: ";
        cin >> altura;

        cout << "Ingresa la unidad de medida (cm, m, etc.): ";
        cin >> unidad;

        Triangulo triangulo(base, altura, unidad);
        triangulo.imprimir_area();

        return 0;
    }


La diferencia principal entre estos dos códigos es que el primero está estructurado como una serie de instrucciones secuenciales, mientras que el segundo está estructurado como una clase que encapsula los datos y métodos necesarios para realizar una tarea específica.

En el código orientado a objetos, la clase Triangulo define los datos (base, altura y unidad) y los métodos (calcular_area e imprimir_area) necesarios para calcular y mostrar el área del triángulo. El programa principal crea un objeto Triangulo y llama a su método imprimir_area para mostrar el resultado.

En cambio, en el código estructurado, todas las variables son globales y el programa utiliza funciones simples para realizar los cálculos necesarios y mostrar el resultado.

La programación orientada a objetos permite una mayor modularidad y reutilización del código, ya que se pueden crear múltiples instancias de una clase y cada una de ellas puede realizar la misma tarea de forma independiente. Además, la encapsulación de los datos y métodos dentro de una clase reduce la complejidad del código y lo hace más fácil de mantener y depurar. Por otro lado, la programación estructurada es más adecuada para problemas simples y lineales, donde no se requiere una estructura más compleja como la que ofrece la programación orientada a objetos.
แน่นอน ที่นี่ฉันจะแสดงซอร์สโค้ดที่แตกต่างกันสองซอร์สสำหรับแอปพลิเคชัน C++ เดียวกัน อันหนึ่งมีโครงสร้างและอีกอันเชิงวัตถุ: โค้ดที่มีโครงสร้าง: #include <iostream> #include <string> #include <cmath> โดยใช้ namespace std; int main() { ฐานคู่, ความสูง, พื้นที่; หน่วยสตริง ศาล << "ป้อนฐานของรูปสามเหลี่ยม:"; ซิน >> ฐาน; ศาล << "ป้อนความสูงของรูปสามเหลี่ยม:"; cin >> ความสูง; ศาล << "ใส่หน่วยวัด (ซม., ม. ฯลฯ): "; cin >> หน่วย; พื้นที่ = (ฐาน * สูง) / 2; ศาล << "พื้นที่ของสามเหลี่ยมคือ " << พื้นที่ << " " << หน่วย << " สี่เหลี่ยม" << จบ; กลับ 0; } รหัสเชิงวัตถุ: #include <iostream> #include <string> #include <cmath> โดยใช้ namespace std; คลาสสามเหลี่ยม { ส่วนตัว: ฐานคู่; ความสูงสองเท่า; หน่วยสตริง สาธารณะ: สามเหลี่ยม (double b, double h, string u) { base = b; ความสูง = ชั่วโมง; หน่วย = คุณ; } double Calculator_area() { กลับ (ฐาน * สูง) / 2; } เป็นโมฆะ print_area() { พื้นที่คู่ = Calculator_area(); ศาล << "พื้นที่ของสามเหลี่ยมคือ " << พื้นที่ << " " << หน่วย << " สี่เหลี่ยม" << จบ; } }; int main() { ฐานคู่, ความสูง; หน่วยสตริง ศาล << "ป้อนฐานของรูปสามเหลี่ยม:"; ซิน >> ฐาน; ศาล << "ป้อนความสูงของรูปสามเหลี่ยม:"; cin >> ความสูง; ศาล << "ใส่หน่วยวัด (ซม., ม. ฯลฯ): "; cin >> หน่วย; สามเหลี่ยม สามเหลี่ยม(ฐาน ความสูง หน่วย); สามเหลี่ยม.print_area(); กลับ 0; } ข้อแตกต่างที่สำคัญระหว่างรหัสทั้งสองนี้คือ รหัสแรกมีโครงสร้างเป็นชุดคำสั่งตามลำดับ ในขณะที่รหัสที่สองมีโครงสร้างเป็นคลาสที่ห่อหุ้มข้อมูลและวิธีการที่จำเป็นในการทำงานเฉพาะ ในโค้ดเชิงวัตถุ คลาส Triangle จะกำหนดข้อมูล (ฐาน ความสูง และหน่วย) และวิธีการ (calculate_area และ print_area) ที่จำเป็นในการคำนวณและแสดงพื้นที่ของรูปสามเหลี่ยม โปรแกรมหลักสร้างวัตถุ Triangle และเรียกใช้เมธอด print_area เพื่อแสดงผลลัพธ์ ในทางกลับกัน ในโค้ดที่มีโครงสร้าง ตัวแปรทั้งหมดเป็นแบบโกลบอล และโปรแกรมใช้ฟังก์ชันง่ายๆ เพื่อทำการคำนวณที่จำเป็นและแสดงผลลัพธ์ การเขียนโปรแกรมเชิงวัตถุช่วยให้มีความเป็นโมดูลและการนำโค้ดกลับมาใช้ใหม่ได้มากขึ้น เนื่องจากสามารถสร้างอินสแตนซ์หลายอินสแตนซ์ของคลาสได้ และแต่ละอินสแตนซ์สามารถทำงานเดียวกันได้อย่างอิสระ นอกจากนี้ การห่อหุ้มข้อมูลและวิธีการภายในคลาสจะช่วยลดความซับซ้อนของโค้ด และทำให้ง่ายต่อการบำรุงรักษาและดีบัก ในทางกลับกัน การเขียนโปรแกรมแบบมีโครงสร้างเหมาะสำหรับปัญหาเชิงเส้นแบบง่ายและซับซ้อนมากกว่า โดยที่ไม่จำเป็นต้องมีโครงสร้างที่ซับซ้อนกว่าเช่นโปรแกรมเชิงวัตถุ
spam fails_task lang_mismatch pii not_appropriate hate_speech sexual_content quality toxicity humor helpfulness creativity violence