segundo parcial 2022 ejercicio 6

segundo parcial 2022 ejercicio 6

de Felipe Barizo Sena -
Número de respuestas: 1

una consulta sobre la solución del ejercicio 6 parte b, no estaría faltando el caso en el que el largo del vector u1 sea 1?

b) function [u2 p2 v2]=darDeBaja(u1,p1,v1,u) 

 lu1=length(u1); 

 if lu1==0 

 u2=[]; 

 p2=[]; 

 v2=[]; 

 else 

 [u2 p2 v2] = darDeBaja(u1(2:lu1),p1(2:lu1),v1(2:lu1),u); 

if u1(1)~=u 

u2=[u1(1) u2]; 

 p2=[p1(1) p2]; 

 v2=[v1(1) v2];

 end 

 end

 endfunction

En respuesta a Felipe Barizo Sena

Re: segundo parcial 2022 ejercicio 6

de Eduardo Fernandez -

Hola,

Lo probaste y no te funcionó?

No siempre es necesario el paso base con un elemento. En este caso el paso base con los 3 vectores vacíos alcanza. Cuando hay un solo elemento en cada vector se lo trabaja de forma recursiva. La línea 

[u2 p2 v2] = darDeBaja(u1(2:lu1),p1(2:lu1),v1(2:lu1),u); 

queda así   

[u2 p2 v2] = darDeBaja([],[],[],u); 

porque si lu1==1 entonces u1(2:lu1) genera el vector vacío.

Espero haya quedado claro.
Eduardo