CCCPaste

Scilab, place function

function [i] = place(T, t)
    
// Fonction qui prend en paramètre un vecteur colonne
// et un nombre réel et renvois la position de ce nombre
// Le vecteur peut être trié ou non.

    i = 0;
    
    // Pour trier le vecteur de façon croissante
    T = gsort(T, 'g', 'i');
    
    // Algo de dichtomie proposée dans l'énoncé
    imin = 1;
    imax = size(T, 1);
    mil = 0;
    
    if ((t < T(1)) | (t > T(imax))) then
        error("t n`est pas dans l`intervalle");
    end
    
    while (imax - imin) > 1
        mil = int((imax + imin)/2);
        if t >= T(mil)
            imin = mil;
        else
            imax = mil;
        end;
    end;
    
    i = imin;
    
endfunction