Imperativo, POO y funcional en lenguaje C?

Iniciado por remphenter, 15 Agosto 2018, 05:20 AM

0 Miembros y 1 Visitante están viendo este tema.

remphenter

Pues estoy llevando un curso gratuito de lenguaje C y los demás proyectos no lo veo difícil pero vaya que el primero no le veo como...

Se tiene que sacar el promedio de 3 alumnos y se tiene que hacer un código en modo imperativo, otro en funcional y otro en orientado a objetos (es decir, 3 paradigmas).

Estuve investigando y hay lenguajes de programación específicos para programar en modo funcional como: Haskell, Lisp, SAP, etc... (entendí que es programar con puras fórmulas matemáticas)

Orientado a objetos como: C++

¿pero se puede emplear cada uno de los paradigmas sin mezclarlos en un sólo código como en lenguaje C?

Este es mi código: http://prntscr.com/khj9vl

Pero no tengo idea de como se diferencia o cual paradigma usé... :(

Serapis

#1
- El imperativo es a base de líneas de código usando exclusivamente las instrucciones específicas del lenguaje... el resultado es una sopa (de código) normalmente muy veloz, pero difícil de seguir y mantener. Se resuelve todo en una única función (en general).
Esta forma de programar exige volver a diseñar cada vez, cada nuevo programa desde cero y a lo sumo, se toman trozos por el método copy-paste.

- El funcional supone analizar qué se debe hacer y crear pequeñas funciones que son invocadas, desde el código principal. En general hay una función que se ejecuta linealmente pero invoca a varias funciones (ya construídas-existentes) para llevar a término todo el objetivo.
Esta forma de programar reutiliza funciones que en general se han agrupado en librerías, por tanto ahorra código y tiempo de programación.

- La orientación a objetos, requiere pensarlo aún bastante más, definir cuántos y cuales objetos pueden ser necesarios y dotarles de atributos y métodos. El código para programar luego crea instancias de estos objetos e invocas sus atributos y métodos.
Esta forma de programar, redefine más específicamente la funcionalidad que se engloba junta... ahora no es 'meterlo todo en el saco' (como se hacía con las funciones en librerías para reutilizarlas), si no que tiene una lógica detrás... una rueda (por ejemplo) gira, tiene un eje, se sujeta con 'x' tornillos, tiene 'y' presión, puede llevar o no una cámara de aire, y una llanta, gira a determinada velocidad... se comunica con un objeto 'eje' de quien recibe el 'par' y con un objeto 'freno', para limitar la velocidad, etc... es decir un objeto rueda engloba la funcionalidad que requiere una rueda y los atributos que tiene una rueda, y nada más, cualquier otra funcionalidad irá en otro (u otros) objetos. Programando con objetos (ya creados) se ahorra aún mucho más código y se acaba más rápido o bien puede hacerse un proyecto más grande (con más pretensiones) dado el tiempo disponible (por ejemeplo).

MAFUS

C es imperativo, así que sin problemas.
Para trabajar de forma funcional debes tener cuidado de que tus finciones no modifiquen otros datos del programa: nada de pasos por referencia. De igual forma debes pensar en los bucles como funciones recursivas.
En C no se puede trabajar con POO, no tiene capacidad para ello.