>
#exo 1
RANGMIN:=proc(L::list)
local i,rang;
rang:=1;
for i from 2 to nops(L) do
if L[rang]>L[i] then
rang:=i;
fi;
od;
RETURN(rang);
end;
> RANGMIN([3,7,2,23]);
>
#exo 4
Somme:=proc(x,n)
local i,somme;
somme:=0;
for i from 0 to n do
somme:=somme+((x^i)/(i!));
od;
RETURN(somme);
end;
> Somme(8,16);
>
#exo 3
>
Saisie:=proc()
local i, etudiants,current;
etudiants:=[];
for i from 1 to 10 do
current:=[i,readstat("entrez un nom "),rand(0..20)(), rand(0..20)(),rand(0..20)()];
etudiants:=[op(etudiants),current];
od;
RETURN(etudiants);
end;
> Saisie := proc () local i, etudiants, current; etudiants := []; for i to 10 do current := [i, readstat("entrez un nom "), rand(0 .. 20)(), rand(0 .. 20)(), rand(0 .. 20)()]; etudiants := [op(etudiants), current] od; RETURN(etudiants) end;
> E:=Saisie();
entrez un nom toto;
entrez un nom titi;
entrez un nom tataq;
entrez un nom dupont;
entrez un nom joe;
entrez un nom moe;
entrez un nom
entrez un nom duprat;
entrez un nom cascos;
entrez un nom bloubiboulga;
entrez un nom john;
>
>
Moyenne:=proc(etudiants::list)
local i, L, tmp;
L:=[];
for i from 1 to nops(etudiants) do
tmp:=evalf((etudiants[i][3]+etudiants[i][4]+etudiants[i][5])/3);
L:=[op(L),tmp];
od;
RETURN(L);
end;
> Moyenne(E);
>
>
Aff:=proc(etudiants)
local i,L;
L:=Moyenne(etudiants);
for i from 1 to nops(L) do
if (L[i]>=10) then
print(op(etudiants[i]));
fi;
od;
end;
> Aff(E);
>
>
> #exo 2
>
>
Avant:=proc(date1,date2)
if(date1[3]<date2[3]) then
RETURN(true);
elif(date1[3]=date2[3]) and date1[2]<date2[2] then
RETURN(true);
elif(date1[3]=date2[3]) and date1[2]=date2[2] and date1[1] < date2[1] then
RETURN(true);
fi;
RETURN(false);
end;
prix:=proc(Tarifs,date)
local i;
for i from 1 to nops(Tarifs) do
if Avant(Tarifs[i],date) then
RETURN(Tarifs[i][4]);
fi;
od;
end;
NouveauT:=proc(Tarifs::name)
local tarif;
#saisie
tarif:=readstat("entrez le jour de prise d'effet ");
tarif:=tarif,readstat("entrez le mois de prise d'effet ");
tarif:=tarif,readstat("entrez l'année de prise d'effet ");
tarif:=tarif,readstat("entrez le nouveau tarif ");
tarif:=[tarif];
#verification
if Avant(tarif, Tarifs[1]) then
print("erreur, la date doit être postérieure!");
else
Tarifs:=[tarif,op(eval(Tarifs))];
fi;
end;
> exemple:=[[1,6,2002,200],[11,5,1998,160],[15,1,1997,120],[1,1,1995,100]];
> NouveauT('exemple');
entrez le jour de prise d'effet 1
entrez le jour de prise d'effet ;
entrez le mois de prise d'effet 5;
entrez l'année de prise d'effet 2003;
entrez le nouveau tarif 220;
>
montant:=proc(Tarifs, intervention)
local dateInter;
dateInter:=[intervention[1],intervention[2],intervention[3]];
print(dateInter);
RETURN(prix(Tarifs, dateInter)*intervention[4]);
end;
> montant(exemple, [12,7,1999,6,"Dupont"]);
>
>