Vous êtes sur la page 1sur 7

Ecole Nationale Des Sciences Appliquées de Safi .

Examen
final
Mr. Madiafi Mohammed
Réalisé par : Sanae Jha.
1 Ière AGTR

*The programs bellow are not screenshots


//QUESTION1 méthode pour la saisie d’un tableau
static public int[] SaisiTab (int n)
{ int x ;
int tab[]=new int[n];
for (int i=0 ;i<n ; i++ )
{
System.out.print("la valeur n" + (i+1)+ ":");
Scanner sc = new Scanner(System.in);
x = sc.nextInt();
tab[i] = x;
}
return tab;
}

//QUESTION2 méthode pour afficher un tableau


static public void afficherTab (int tab [], int n)
{System.out.print("[");
for (int i=0; i<n; i++)
{
System.out.print(tab[i]);
if (i! = n-1)
{
System.out.print(“, \t");
}
}
System.out.print("]");}

//QUESTION3 générer les trois premières valeurs paires d’un tableau


static public int[] genererTab(int[] tab, int n)
{int x[] = new int[3];//in tableau de 3 cases
int j=-1;

for(int i=0; i<tab.length; i++)


{if(j<2)
{if(tab[i] % 2 != 0) { //tab[i] impair
j++;//incrémenter l'indice du tableau x
x[j] = tab[i];//stocker la valeur impaire dans le tableau x
}
}
}

//Si le reste du tableau n'est pas rempli => mise à 0 :

if(j != 2) // 2 est l'indice de la dernière case du tableau x


{j++;
for(int i=j; i<3; i++) {
x[i] = 0;
}
}
return x;
}
//QUESTION4/1/ méthode pour trouver le min d’un tableau
static public int minTab(int[] tab) {
int min = tab[0]; //initialiser la var min dans la première case

for(int i=0; i<tab.length; i++)//compteur pour parcourir les cases

{if(tab[i] < min) //à chaque fois un nbr inferieur est détecté
{min = tab[i]; // l'insérer dans le var min
}
}

return min;
}

//QUESTION4/2/ méthode pour trouver le max d’un tableau


//les mêmes étapes mais cette fois avec le nombre supérieur
static public int maxTab (int [] tab) {
int max = tab [0];

for (int i=0; i<tab. length; i++) {


if(tab[i] > max) {
max = tab[i];
}
}

return max;
}

//QUESTION5 méthode de somme de deux vecteurs


static public void sommeVect (int [] vect1, int [] vect2) {
if (vect1.length == vect2.length)
{
int[] somme = new int[vect1.length];
System.out.println("la somme des deux vecteurs est: ");
for (int i = 0; i < vect1.length; i++)
{
somme[i] = vect1[i] + vect2[i];
System.out.print(somme[i] + "\t");
}
}
else
{
System.out.println("les vecteurs doivent avoir la même taille");
}
}
//QUESTION6 méthode pour la distance euclidienne d’un vecteur
public static void distCarree(float [] vect1, float[] vect2) {
if(vect1.length == vect2.length)
{
float somm = 0;
float distanceuc ;
for(int i = 0; i < vect1.length; i++)
{
somm = (float) (somm + Math.pow((vect2[i]-vect1[i]),2));
}
distanceuc = (float) Math.sqrt(somm);
System.out.println("\nla distance euclidienne est :"+distanceuc);
}
else
{
System.out.println("les vecteurs doivent avoir la même distance");
}
}

//QUESTION7 triage au sens croissant d’un tableau d’entier


static public int[] trierTabCr(int[] tab) {

int[] tabTrié = new int[tab.length];


int min;
int c;

for(int i=0; i<tab.length; i++) {


tabTrié[i] = tab[i];
}

for(int i=0; i<tab.length-1; i++) {


min = tabTrié[i];
c = i;
for(int j=i+1; j<tab.length; j++) {
if(tabTrié[j] < min) {
min = tabTrié[j];
c=j;
}
}
tabTrié[c] = tabTrié[i];
tabTrié[i] = min;
}

return tabTrié;
}
//QUESTION7 méthode de triage sens décroissant
static public int[] trierTabDec(int[] tab) {

int[] tabTrié = new int[tab.length];


int max;
int c;
for (int i=0; i<tab.length; i++) {
tabTrié[i] = tab[i];
}

for (int i=0; i<tab.length-1; i++) {


max = tabTrié[i];
c=i;
for (int j=i+1; j<tab.length; j++) {
if(tabTrié[j] > max) {
max = tabTrié[j];
c=j;
}
}
tabTrié[c] = tabTrié[i];
tabTrié[i] = max;
}

return tabTrié;
}

//Maintenant testons les méthodes ci-dessous et découvrons le résultat:

import java.util.Scanner;
import java.util.Vector;

public class HelloWorld{


public static void main (String[] args )
{
//SAISIR LA LONGUEUR DU TAB "
int n =0;
Scanner s = new Scanner(System.in);
System.out.print("Donnez le nombre d'elements du Tab:");
n= s.nextInt();

//SAISIE:
int tab[]= HelloWorld.SaisiTab(n);

//AFFICHAGE:
System.out.print("Tableau saisi est :");
HelloWorld.afficherTab(tab , n);
//3 PREMIERS IMPAIRS DU TAB
//Donc la taille du tableau généré = 3
// si je trouve moins de 3 valeurs impairs => le reste du tableau=0
int tab1[] = HelloWorld.genererTab(tab);
System.out.print("\nTableau impair : ");
HelloWorld.afficherTab(tab1,3);

//Min :
int min = HelloWorld.minTab(tab);
System.out.println("\nValeur min : " + min);
//Max :
int max = HelloWorld.maxTab(tab);
System.out.println("\nValeur max : " + max);

//SOMME DE DEUX VECTEURS :


int [] vect1 = {12 , 13 , 15 , 16 };
int [] vect2 = {11 , 12 , 11 , 0 };
sommeVect(vect1,vect2);

//DISTANCE EUCLIDIENNE DE DEUX VECTEURS :


float [] Vect1 = {12 , 13 , 15 , 16 };
float [] Vect2 = {11 , 12 , 11 , 0 };
distCarree(Vect1 , Vect2);

//Triage du tableau :
int[] y = {20,1,5,0,-10,5};
System.out.print("Tableau à trier :\n");
HelloWorld.afficherTab(y,6);

//Trie croissant :
int tab3[] = HelloWorld.trierTabCr(y);
System.out.println("\nTableau trié (croissant) :");
HelloWorld.afficherTab(tab3,6);

//Trie décroissant :
int tab4[] = HelloWorld.trierTabDec(y);
System.out.print("\nTableau trié (décroissant) : ");
HelloWorld.afficherTab(tab4,6);

}
}
// Voilà le résultat des méthodes:

//cliquez ci-dessous pour obtenir le code entier