¿Qué diferencia hay entre programación imperativa y declarat

Responder
Avatar de Usuario
Tachikomaia
Mensajes: 15819
Registrado: 10 Ago 2011, 20:39
Rango personalizado: 1st Year Class D

¿Qué diferencia hay entre programación imperativa y declarat

Mensaje por Tachikomaia »

Las descripciones que hallo suelen ser que una es cómo solucionar un problema y la otra es qué hacer, independientemente del cómo.

Creo que entiendo pero esas descripciones parecen ignorar el hecho de que en ambos casos se le dan instrucciones a la máquina: Qué hacer, o cómo hacer algo que se quiere que se haga. Lo veo como sinónimos.

Quiero ejemplos de una misma cosa resuelta de los 2 modos.

No busqué mucho, pero hallé muy poco de eso.

Además, en lo posible, lo quisiera con pseudocódigo.

Por ejemplo, ordenar una serie de variables:
A = 854
B = 83947
C = 93824
D = 87238

Yo lo haría más o menos así:

Código: Seleccionar todo

N1 = A
N2= B
N3 = C
N4 = D
Ordenados = 0
// Parte 2.
Cursor = 4-Ordenados
// Parte 3.
Si eval("N"+Cursor) < eval("N"+(Cursor-1))
   Recordar = eval("N"+(Cursor-1)
   eval("N"+(Cursor-1) = eval("N"+Cursor)
   eval("N"+(Cursor) = Recordar
fin del si
Cursor--
Si Cursor == 1
   Si Ordenados == 3
      fin
   sino
      ir a Parte 2.
   fin del si
sino
   ir a parte 3.
Seguramente esté mal :lol: no lo analicé mucho. Pero bueno, supuestamente eso es lenguaje imperativo ¿no?

Entonces, usando más o menos las mismas palabras o unas que yo entienda ¿cómo serían las instrucciones en una programación declarativa?

Gracias.
Imagen
Avatar de Usuario
Tachikomaia
Mensajes: 15819
Registrado: 10 Ago 2011, 20:39
Rango personalizado: 1st Year Class D

Re: ¿Qué diferencia hay entre programación imperativa y decl

Mensaje por Tachikomaia »

Puede ser así?
Hacer código tal que genere todas las posibles combinaciones en este sentido:
1er caso: N1 = A, N2= B, N3 = C, N4 = D
2ndo caso: N1 = A, N2= B, N3 = D, N4 = C
3er caso: N1 = A, N2= C, N3 = B, N4 = D
etc
En cada caso, revisar que N1 < N2 < N3 < N4
Repetir hasta que se cumpla eso.

Eso es búsqueda mediante fuerza bruta, nada raro, y aunque no estoy diciendo la solución o cómo hallarla de un modo óptimo sí digo cómo llegar a ella: Probando variaciones.

WFT then?
Imagen
Responder