diff --git a/CCI_Java/CCI_Java/src/td13/exo1/CharUtils.java b/CCI_Java/CCI_Java/src/td13/exo1/CharUtils.java new file mode 100644 index 0000000000000000000000000000000000000000..cb122b1c877f9f7dcb5f8ff3708f4e6b76d25a82 --- /dev/null +++ b/CCI_Java/CCI_Java/src/td13/exo1/CharUtils.java @@ -0,0 +1,66 @@ +package td13.exo1; + + +public class CharUtils{ + + public static void print(char t[]){ + for(char c : t) + System.out.print(c + " "); + System.out.println(""); + } + + public static void print(int t[]){ + for(int idx = 0; idx < t.length; idx++) + if(idx >8) + System.out.print(" " + t[idx] + " "); + else + System.out.print(t[idx] + " "); +// for(int i : t) +// System.out.print(i + " "); + System.out.println(""); + } + + public static void swap(char t[], int index1, int index2){ + char c1 = t[index1]; + t[index1] = t[index2]; + t[index2] = c1; + } + + static void fillWithRandomRGB(char t[]){ +// t[0] =(char) (Math.random() * 255); +// t[1] =(char) (Math.random() * 255); +// t[2] =(char) (Math.random() * 255); + + for (int idx = 0; idx < t.length; idx++){ + int num = (int)(Math.random() * 2 + 0.5); + if (num == 0) t[idx] = 'R'; + if (num == 1) t[idx] = 'G'; + if (num == 2) t[idx] = 'B'; + } + + } + + static void mystery(char t[]) { + int i = 0; + int j = 0; + int k = t.length - 1; + while (j <= k) { + if (t[j] == 'R') { + swap(t, i, j); + i++; + j++; + } else if (t[j] == 'G') { + j++; + } else { + swap(t, j, k); + k--; + } + } + } + + + + + + +} diff --git a/CCI_Java/CCI_Java/src/td13/exo1/TestCharUtils.java b/CCI_Java/CCI_Java/src/td13/exo1/TestCharUtils.java new file mode 100644 index 0000000000000000000000000000000000000000..08fd18b5b64d44e23e3c4a0d87fd2ad97df6127e --- /dev/null +++ b/CCI_Java/CCI_Java/src/td13/exo1/TestCharUtils.java @@ -0,0 +1,21 @@ +package td13.exo1; + +import java.util.Scanner; + +public class TestCharUtils { + + public static void main(String[] args) { + + Scanner scanner = new Scanner(System.in); + System.out.println("donnes moi la taille!"); + int taille = scanner.nextInt(); + + char[] t = new char[taille]; + CharUtils.fillWithRandomRGB(t); + CharUtils.print(t); + CharUtils.mystery(t); + CharUtils.print(t); + + } + +} \ No newline at end of file diff --git a/CCI_Java/CCI_Java/src/td13/exo2/Calculator.java b/CCI_Java/CCI_Java/src/td13/exo2/Calculator.java new file mode 100644 index 0000000000000000000000000000000000000000..381b4bf774bfb2ba6778869decaadd53ef490683 --- /dev/null +++ b/CCI_Java/CCI_Java/src/td13/exo2/Calculator.java @@ -0,0 +1,23 @@ +package td13.exo2; + +public class Calculator { + + public static void main(String[] args) { + + int num1 = Integer.valueOf(args[0]); + int num2 = Integer.valueOf(args[2]); +// char sign = (char) Integer.valueOf(args[1]).intValue(); + int num3 = 0; + if (args[1].equals("+")) { + num3 = num1 + num2; + } + if (args[1].equals("-")) { + num3 = num1 - num2; + } + if (args[1].equals("*")) { + num3 = num1 * num2; + } + System.out.println(args[0]+ " " +args[1] + " " +args[2] + " = " + num3); + + } +} diff --git a/CCI_Java/CCI_Java/src/td13/exo3/SortUtils.java b/CCI_Java/CCI_Java/src/td13/exo3/SortUtils.java new file mode 100644 index 0000000000000000000000000000000000000000..1365c620422a488c4040322798b084b2009fa7a8 --- /dev/null +++ b/CCI_Java/CCI_Java/src/td13/exo3/SortUtils.java @@ -0,0 +1,50 @@ +package td13.exo3; + +import java.util.HashSet; +import java.util.Random; + +public class SortUtils { + + public static void initializeRandomly(char[] letters) { + for (int idx = 0; idx < letters.length; idx++) { + Random rand = new Random(); + letters[idx] = (char) ('a' + rand.nextInt(26)); + } + } + + public static char[] initializeRandomly(int size) { + char[] letters = new char[size]; + for (int idx = 0; idx < letters.length; idx++) { + Random rand = new Random(); + letters[idx] = (char) ('a' + rand.nextInt(26)); + } + return letters; + } + + public static int[] initializeOccurenceArray(char[] array) { + HashSet<Character> set = new HashSet<Character>(); + for (char c : array) + set.add(c); + return new int[set.size()]; + } + + public static int[] initializeOccurenceArray(int size) { + return new int[size]; + } + + public static void countOccurrences(char[] letters, int[] occurrences) { + for (char c : letters) + occurrences[c - 'a']++; + } + + public static void fillSortedResult(int[] occurrences, char[] result) { + int k = 0; + for (int idx = 0; idx < occurrences.length; idx++) { + for (int num = 0; num < occurrences[idx]; num++) { + result[k] = (char) (idx + 'a'); + k++; + } + } + } + +} diff --git a/CCI_Java/CCI_Java/src/td13/exo3/TestSortUtils.java b/CCI_Java/CCI_Java/src/td13/exo3/TestSortUtils.java new file mode 100644 index 0000000000000000000000000000000000000000..cb882003ed0bf567cfaa4bef473dac8c5db0813c --- /dev/null +++ b/CCI_Java/CCI_Java/src/td13/exo3/TestSortUtils.java @@ -0,0 +1,22 @@ +package td13.exo3; + +import td13.exo1.CharUtils; + +public class TestSortUtils { + + public static void main(String[] args) { + int size = 10; + char[] ccc = SortUtils.initializeRandomly(size); + CharUtils.print(ccc); + int[] occurrences = SortUtils.initializeOccurenceArray(26); + SortUtils.countOccurrences(ccc, occurrences); + CharUtils.print(occurrences); + for (int i = 1; i <= 26; i++) + System.out.print(i + " "); + System.out.println(); + char[] result = new char[size]; + SortUtils.fillSortedResult(occurrences, result); + CharUtils.print(result); + } + +} diff --git a/CCI_Java/CCI_Java/src/td13/exo3/fiddling.java b/CCI_Java/CCI_Java/src/td13/exo3/fiddling.java new file mode 100644 index 0000000000000000000000000000000000000000..2fd2bc0375a6bfbcfd00a476e5bc1d0f94572ebf --- /dev/null +++ b/CCI_Java/CCI_Java/src/td13/exo3/fiddling.java @@ -0,0 +1,12 @@ +package td13.exo3; + +public class fiddling { + + public static void main(String[] args) { + int[] array = new int[3]; + for(int i : array) + System.out.println(i); + + } + +} diff --git a/CCI_Java/CCI_Java/src/td13/exo4/NumberEater.java b/CCI_Java/CCI_Java/src/td13/exo4/NumberEater.java new file mode 100644 index 0000000000000000000000000000000000000000..5133093c828ec5308899a1a87f1d77a57b46a1c4 --- /dev/null +++ b/CCI_Java/CCI_Java/src/td13/exo4/NumberEater.java @@ -0,0 +1,21 @@ +package td13.exo4; + +public class NumberEater { + private final int number; + NumberEater successor; + + public NumberEater(int number) { + this.number = number; + System.out.print(number + " "); + successor = null; + } + + public void eat(int other) { + if(other % number !=0 && successor == null) { + successor = new NumberEater(other); + } + if(other % number !=0 && successor != null) + successor.eat(other); + } + +} diff --git a/CCI_Java/CCI_Java/src/td13/exo4/TestNumberEater.java b/CCI_Java/CCI_Java/src/td13/exo4/TestNumberEater.java new file mode 100644 index 0000000000000000000000000000000000000000..d52a6b9129657ca897c965145a372ce741c85d9f --- /dev/null +++ b/CCI_Java/CCI_Java/src/td13/exo4/TestNumberEater.java @@ -0,0 +1,18 @@ +package td13.exo4; + +import java.util.Scanner; + +public class TestNumberEater { + + public static void main(String[] args) { + + Scanner scanner = new Scanner(System.in); + System.out.println("donnes moi une integer > 2"); + int fin = scanner.nextInt(); + NumberEater eater1 = new NumberEater(2); + for(int i = 3; i <= fin; i++) { + eater1.eat(i); + } + } + +} diff --git a/CCI_Java/CCI_Java/src/td13/exo5/Fraction.java b/CCI_Java/CCI_Java/src/td13/exo5/Fraction.java new file mode 100644 index 0000000000000000000000000000000000000000..96f0e52102a1d1a6b3299957bcb1061903d2d462 --- /dev/null +++ b/CCI_Java/CCI_Java/src/td13/exo5/Fraction.java @@ -0,0 +1,74 @@ +package td13.exo5; + +import java.math.BigInteger; + +public class Fraction { + + BigInteger numerator; + BigInteger denominator; + + public Fraction(BigInteger numerator, BigInteger denominator) { + this.numerator = numerator; + this.denominator = denominator; + } + + public Fraction(int numerator, int denominator) { + this.numerator = BigInteger.valueOf(numerator); + this.denominator = BigInteger.valueOf(denominator); + } + + public Fraction(int numerator) { + this.numerator = BigInteger.valueOf(numerator); + this.denominator = BigInteger.ONE; + } + + public Fraction add(Fraction f) { + if (this.denominator == f.denominator) + return new Fraction(this.numerator.add(f.numerator), this.denominator); + BigInteger numTmp = (this.numerator.multiply(f.denominator)).add(f.numerator.multiply(this.denominator)); + BigInteger denTmp = this.denominator.multiply(f.denominator); + + for (BigInteger factor = numTmp.min(denTmp); factor.compareTo(BigInteger.ONE) >= 0; factor = factor + .subtract(BigInteger.ONE)) { + boolean compNum = numTmp.mod(factor) == BigInteger.ZERO; + boolean compDen = denTmp.mod(factor) == BigInteger.ZERO; + if (compNum && compDen) + return new Fraction(numTmp.divide(factor), denTmp.divide(factor)); + } + return null; + } + + public Fraction substract(Fraction f) { + if (this.denominator == f.denominator) + return new Fraction(this.numerator.subtract(f.numerator), this.denominator); + BigInteger numTmp = (this.numerator.multiply(f.denominator)).subtract(f.numerator.multiply(this.denominator)); + BigInteger denTmp = this.denominator.multiply(f.denominator); + + for (BigInteger factor = numTmp.min(denTmp); factor.compareTo(BigInteger.ONE) >= 0; factor = factor + .subtract(BigInteger.ONE)) { + boolean compNum = numTmp.mod(factor) == BigInteger.ZERO; + boolean compDen = denTmp.mod(factor) == BigInteger.ZERO; + if (compNum && compDen) + return new Fraction(numTmp.divide(factor), denTmp.divide(factor)); + } + return null; + } + + public Fraction multiply(Fraction f) { + return new Fraction(this.numerator.multiply(f.numerator), this.denominator.multiply(f.denominator)); + } + + public Fraction divide(Fraction f) { + return new Fraction(this.numerator.multiply(f.denominator), this.denominator.multiply(f.numerator)); + } + + @Override + public String toString() { + return numerator + " / " + denominator; + } + + public double doubleValue() { + BigInteger frac = numerator.multiply(BigInteger.valueOf(1000)).divide(denominator); + return frac.doubleValue() / 1000; + } +} diff --git a/CCI_Java/CCI_Java/src/td13/exo5/TestFraction.java b/CCI_Java/CCI_Java/src/td13/exo5/TestFraction.java new file mode 100644 index 0000000000000000000000000000000000000000..71325d9c04dab4278234e9355734fcaef333ab7d --- /dev/null +++ b/CCI_Java/CCI_Java/src/td13/exo5/TestFraction.java @@ -0,0 +1,24 @@ +package td13.exo5; + +import java.math.BigInteger; + +public class TestFraction { + + public static void main(String[] args) { + BigInteger big1= BigInteger.valueOf(5); + BigInteger big2= big1.add(BigInteger.valueOf(2)); + BigInteger big3= BigInteger.valueOf(2); + System.out.println(big1.multiply(BigInteger.TEN).divide(big3)); + System.out.println(big1.divide(big3).doubleValue()); + + + // test add + + Fraction f1 = new Fraction(BigInteger.valueOf(8), BigInteger.valueOf(6)); + Fraction f2 = new Fraction(BigInteger.valueOf(6), BigInteger.valueOf(4)); + System.out.println(f1.add(f2)); + + + } + +} diff --git a/CCI_Java/CCI_Java/src/td13/hallo.java b/CCI_Java/CCI_Java/src/td13/hallo.java new file mode 100644 index 0000000000000000000000000000000000000000..7ac3bf4a030899229d42dd8f9737d8a8f18b4efa --- /dev/null +++ b/CCI_Java/CCI_Java/src/td13/hallo.java @@ -0,0 +1,8 @@ +public class hallo { + + public static void main(String[] args) { + for (String str : args) + System.out.println(str); + System.out.println("test"); + } +} \ No newline at end of file