7
votes

Comment trouver le plus petit et le plus grand nombre dans un tableau?

Bonjour Comment puis-je trouver le plus petit et le plus grand nombre de Delphes?

Supposons que j'ai 10 numéros différents stockés dans un tableau:

Comment puis-je trouver le plus grand nombre et les plus petits numéros de mon tableau?


0 commentaires

3 Réponses :


6
votes

Tout simplement en boucle à travers la matrice de manière linéaire. Gardez une variable pour la valeur minimale et une pour les valeurs maximales. Initialiser les deux à la première valeur de la matrice. Ensuite, pour chaque élément, mettez à jour la valeur min ou max si cet élément est inférieur ou supérieur à la valeur minute ou maximale respectivement.

minval := a[0];
maxval := a[0];
for i := 1 to Count-1 do
begin
  if a[i]<minval then
    minval := a[i]
  else if a[i]>maxval then
    maxval := a[i];
end;


4 commentaires

Je pense que nous tapons en même temps! J'aime mieux votre initialisation, mais je préfère le plus compact pour la structure, bien que cela dépend de la version de Delphi qu'il avait sur le point de savoir s'il est soutenu.


+1 pour minvalue et maxvalue . Il y a aussi MINITIVALUE et maximetvalue .


@NGLN Merci pour cela, vous avez raison, je travaille habituellement avec des données de point flottant.


Mais mes numéros sont dans Int64.Et quand j'ai trouvé Minvalue, il y a un problème de -112322654564545 n'est pas une valeur entière ..



4
votes

Itérale à travers la matrice comparant à la précédente trouvée min et max.

Voici un extrait de code. Après votre clarification, j'ai modifié le code pour utiliser Int64. P>

function MaxIntValue(const Data: array of Integer): Integer;
var
  I: Integer;
begin
  Result := Data[Low(Data)];
  for I := Low(Data) + 1 to High(Data) do
    if Result < Data[I] then
      Result := Data[I];
end;


0 commentaires

-1
votes

Create a function that takes an array of numbers and return both the minimum and maximum numbers, in that order.

// Examples
// minMax([1, 2, 3, 4, 5]) âžž [1, 5]

// minMax([2334454, 5]) âžž [5, 2334454]

// minMax([1]) âžž [1, 1]

const minMax = (arr) => {
  let newMinMax = [];
  let min = Math.min(...arr);

  newMinMax.push(min);
  let max = Math.max(...arr);

  newMinMax.push(max);
  return newMinMax;
};

// console.log(minMax([1, 2, 3, 4, 5]));
// console.log(minMax([2334454, 5]));
// console.log(minMax([1]));

Used javascript build in functions for that .Math.min function requires distinct number but when we provide array it will give you a NaN to avoid that use [...arr]
spread operator of Math.min.apply(Math,arr) function.


2 commentaires

La question spécifiquement demande une solution à l'aide de Delphi. Votre code est JavaScript, alors comment ça vous aide?


Je viens de vous donner une idée que vous pouvez convertir le code en utilisant le même concept