Effacement d'un tableau d'élément(s) défini(s) - page 20

 
Peter, vous avez un style de programmation unique. En bref, vous programmez en dépit de, et non à cause de.
 
Реter Konow:

Bien. Mais comment savoir si les algorithmes fournis ne laissent pas d'espaces vides ? La somme de contrôle ne le prouve pas. Le nombre d'éléments non plus. Après tout, la fonction compte les éléments qui étaient là avant que le tableau ne soit redimensionné.

Vous avez cependant trouvé une mise en œuvre qui corrige un bogue dans les tableaux statiques.

int arrayFilter2(int &Test[],const int value)
  {
   int s,_s=s=ArraySize(Test);
   bool result=false;

   for(int i=0,j=0; i<_s; i++,j++)
     {
      if(Test[i]==value)// || Test[i]==NULL)
        {
         result=true;
         s--;
         j--;
         continue;
        }
      if(result)
         Test[j]=Test[i];
     }

   if(s<_s)
      if(ArrayResize(Test,s))
         if(ArraySize(Test)==_s)
            ArrayFill(Test,s,_s-s,NULL);

   return s;
  }

Maintenant, si c'est statique, on efface la queue.

Dossiers :
 
Реter Konow:

Bien. Mais comment savoir si les algorithmes fournis ne laissent pas d'espaces vides ? La somme de contrôle ne le prouve pas. Le nombre d'éléments non plus. Après tout, la fonction compte les éléments qui étaient là avant que le tableau ne soit redimensionné.

Vous devez examiner les dernières versions du code, et non les premières.
Une telle somme de contrôle, qui tient compte de la séquence des éléments du tableau, est utilisée depuis longtemps :

double ControlSumm(int &a[]) 
  {
   double sum=0;
   for(int i=0; i<ArraySize(a); i++) sum+=(double)a[i]/(i+1);
   return sum;
  }
 

J'ai corrigé une erreur dans le 3ème test et j'ai modifié ma fonction.

Dossiers :
 
Nikolai Semko:

Il faut regarder les dernières versions du code, pas les premières.
Cela fait longtemps qu'on n'a pas utilisé une telle somme de contrôle, qui tient compte de la séquence des éléments d'un tableau :

Vous avez besoin d'une preuve démontrable de l'exactitude. Une rangée de 20 numéros est suffisante pour cela. Si l'algorithme passe ce test, il peut être testé pour sa vitesse.

Le test effectué est un test en aveugle.

Peut-être que tous les algorithmes fonctionnent correctement, et peut-être que les leaders tomberont à l'eau.

 
Реter Konow:

Vous avez besoin d'une preuve démontrable de l'exactitude. Une rangée de 20 numéros est suffisante pour cela. Si l'algorithme passe cette vérification, il peut être testé pour sa vitesse.

Le but de la somme de contrôle n'est pas de s'assurer que les tableaux sont identiques si la somme de contrôle est la même, mais de s'assurer qu'ils sont différents si la somme de contrôle est différente.

 
Nikolai Semko:

Le but de la somme de contrôle n'est pas de garantir que les tableaux sont identiques si la somme de contrôle est identique, mais de garantir qu'ils sont différents si la somme de contrôle est différente.

Nikolaï, il n'est pas difficile d'utiliser mon exemple et de vérifier les algorithmes avec un tableau de 20 éléments, n'est-ce pas ? Juste une sortie dans les résultats ?

 
Реter Konow:

Vous avez besoin d'une preuve démontrable de l'exactitude. Une rangée de 20 numéros est suffisante pour cela. Si l'algorithme passe ce test, il peut être testé pour sa vitesse.

Le test effectué est un test en aveugle.

Peut-être que tous les algorithmes fonctionnent correctement, et peut-être que les leaders laisseront leur place.

Si vous ne faites pas confiance à la somme de contrôle, quel est le problème ?

 
Реter Konow:

Nikolaï, il n'est pas difficile d'utiliser mon exemple et de vérifier les algorithmes avec un tableau de 20 éléments, n'est-ce pas ? Il suffit de l'afficher dans les résultats ?

Avec un tableau de 20 éléments, il est impossible d'estimer la vitesse de la fonction. Et c'est le but de ce fil.

 
Nikolai Semko:

Avec un tableau de 20 éléments, il est impossible d'estimer la vitesse d'une fonction. Et c'est le but de cette branche.

Il existe également une exigence pour l'algorithme - le placement correct des éléments à l'intérieur du tableau, après avoir supprimé les éléments inutiles. Cette vérification doit avoir été effectuée au préalable. Ensuite, il y a un contrôle de vitesse.