Canalblog
Editer l'article Suivre ce blog Administration + Créer mon blog
Publicité
NecroCodes
30 octobre 2007

Version évoluée du maximum, il cherche les deux

Version évoluée du maximum, il cherche les deux plus grands nombres différents du tableau et fait leurs différences. Il affiche ensuite les endroits du tableau où on peut trouver ces maximums


program diffmax ;

uses Algotypes;
uses AlgoVecteurs;

var ;

var taille,i,j,max1,max2,k : integer;
    V,pos1,pos2 : Vecteur;

begin
    write('Entrez la taille du tableau : ');
    readln(taille);
    v:=init_vect(taille);
    pos1:=init_vect(taille);
    pos2:=init_vect(taille);

    i:=0;max1:=V[0];j:=0;max2:=V[1]
    while (j<taille) do begin pos1[j]:=0; j:=j+1; end;
    k:=0;
    while (j<taille) do begin pos2[j]:=0; j:=j+1; end;
    j,k:=0,0;
    while (i<taille) do
    begin
        if (V[i] > max1) then
        begin
            max1:=V[i]
            j:=0;
            while (j<=taille) do
            begin
                pos1[j]:=0;
                j:=j+1;
            end;
            j:=0;
            pos1[j]:=i;
        end;
        else
        begin
            if V[i]==max1 then
            begin pos1[j]:=i;j:=j+1; end;
        end;
        if ((V[i] > max2) and (V[i]<>max1)) then
        begin
            max2:=V[i]
            k:=0;
            while (k<=taille) do
            begin
                pos2[k]:=0;
                k:=k+1;
            end;
            k:=0;
            pos2[k]:=i;
        end;
        else
        begin
            if (V[i]==max2) then
            begin pos2[k]:=i;k:=k+1; end;
        end;

        i:=i+1;
    end;

    j:=1;k:=1;
    writeln('la différence des maximums est', max1-max2);
    writeln('le premier maximum est ',max1);
    writeln('Et sa ou ses positions dans le tableau : ');
    writeln(pos1[0]);
    while(j<taille)do
    begin
        if(pos1[j]<>0)then
        begin
            writeln(pos1[j]);
        end;
    end;

    writeln('le premier maximum est ',max2);
    writeln('Et sa ou ses positions dans le tableau : ');
    writeln(pos2[0]);
    while(k<taille)do
    begin
        if(pos2[k]<>0)then
        begin
            writeln(pos2[k]);
        end;
    end;
end.


Codeurs : Moi
Date : 30/10/2007
Language : Turbo-Pascal
Ligne : 86

Publicité
Publicité
Commentaires
Publicité