Exercice un

Question : indiquez l'affichage produit par le programme ci-dessous :

package fr.univ_paris1.mass.poo.cc2.exo1;

import java.util.Arrays;

public class Exo11 {
    public static void main(String[] args) {
	int[] x = { -3, 2, 1, 7 };
	int[] z = x;
	int y = x[0];
	y++;
	x[0] = x[0] - 1;
	System.out.println(y);
	System.out.println(Arrays.toString(x));
	System.out.println(z[0]);
	x = new int[] { 5, 8, 11 };
	System.out.println(z[2]);
	System.out.println(x[2]);
	double[] tab = { 1.0, 2.5, 3.3 };
	double[] bat = new double[4];
	for (int i = 0; i < tab.length; i++) {
	    bat[i] = tab[i];
	    tab[i] = tab[i] + i + 1;
	}
	System.out.println(Arrays.toString(tab));
	System.out.println(Arrays.toString(bat));
	int[][] U2D = { { 2, 3 }, { -1, -3 } };
	System.out.println(U2D[1][1]);
	int[] v = U2D[1];
	v[0] = v[0] + 1;
	U2D[1][1] = U2D[1][1] + 2;
	U2D[0] = new int[] { 4, 5, 6 };
	System.out.println(U2D[1][0]);
	System.out.println(v[1]);
	System.out.println(U2D[0][1]);
    }
}

Le programme produit l'affichage suivant :

-2
[-4, 2, 1, 7]
-4
1
11
[2.0, 4.5, 6.3]
[1.0, 2.5, 3.3, 0.0]
-3
0
-1
5

Exercice deux

public class Exo21 {
    public static void main(String[] args) {
    int[] x = À COMPLÉTER;
    int s = À COMPLÉTER;
    for (int u : x) {
	System.out.println(s);
	s = À COMPLÉTER;
    }
    System.out.println(s);
    }
}

Question : compléter le programme ci dessus pour qu'il affiche

0
2
5
9
14

Une solution possible est

public class Exo21 {
    public static void main(String[] args) {
	int[] x = { 2, 3, 4, 5 };
	int s = 0;
	for (int u : x) {
	    System.out.println(s);
	    s = s + u;
	}
	System.out.println(s);
    }
}

Exercice trois

Question : indiquez l'affichage produit par le programme ci-dessous :

package fr.univ_paris1.mass.poo.cc2.exo3;

public class Exo31 {

    public static void main(String[] args) {
	String s = new String("bla");
	String u = new String("bla");
	StringBuilder t = new StringBuilder("bla");
	StringBuilder w = new StringBuilder("bla");
	System.out.println(u == s);
	System.out.println(w.equals(t));
	t.append("bli");
	System.out.println(t + " et " + w);
	w = t;
	w.append("blu");
	System.out.println(t + " et " + w);
	u = w.toString();
	w = new StringBuilder("bla");
	System.out.println(u + " et " + w);
	System.out.println(s.equals(w.toString()));
	String[] arf = { "Toto", "Titi" };
	u = arf[0];
	String[] pouic = arf;
	pouic[0] += pouic[1];
	System.out.println(u + " et " + arf[0]);
    }

}

Le programme produit l'affichage suivant :

false
false
blabli et bla
blabliblu et blabliblu
blabliblu et bla
true
Toto et TotoTiti

Exercice quatre

import java.math.BigInteger;
import java.util.Arrays;

public class Exo41 {

    public static void main(String[] args) {
	BigInteger[] tab = new BigInteger[À COMPLÉTER];
	BigInteger x = À COMPLÉTER
	BigInteger y = BigInteger.ONE;
	for (int i = 0; i < tab.length; i++) {
	    y = À COMPLETER
	    if (i % 2 == 0) {
		tab[i] = À COMPLÉTER
	    } else {
		tab[i] = À COMPLÉTER
	    }
	}
	System.out.println(À COMPLÉTER);
    }
}

Question : compléter le programme ci dessus pour qu'il affiche

[2, -4, 8, -16]

Une solution possible est

package fr.univ_paris1.mass.poo.cc2.exo4;

import java.math.BigInteger;
import java.util.Arrays;

public class Exo41 {

    public static void main(String[] args) {
	BigInteger[] tab = new BigInteger[4];
	BigInteger x = BigInteger.valueOf(2);
	BigInteger y = BigInteger.ONE;
	for (int i = 0; i < tab.length; i++) {
	    y = y.multiply(x);
	    if (i % 2 == 1) {
		tab[i] = y;
	    } else {
		tab[i] = y.negate();
	    }
	}
	System.out.println(Arrays.toString(tab));
    }

}