Browse Source

250

pull/297/head
Xavier Petit 5 years ago committed by Clément
parent
commit
c1df5a81ab
  1. 4
      subjects/addprimesum.en.md
  2. 4
      subjects/addprimesum.fr.md
  3. 1
      subjects/advancedsortwordarr.en.md
  4. 1
      subjects/advancedsortwordarr.fr.md
  5. 18
      subjects/alphamirror.en.md
  6. 16
      subjects/alphamirror.fr.md
  7. 5
      subjects/any.en.md
  8. 5
      subjects/any.fr.md
  9. 3
      subjects/appendrange.en.md
  10. 2
      subjects/appendrange.fr.md
  11. 8
      subjects/atoi.en.md
  12. 8
      subjects/atoi.fr.md
  13. 6
      subjects/atoibase.en.md
  14. 6
      subjects/atoibase.fr.md
  15. 8
      subjects/basicatoi.en.md
  16. 8
      subjects/basicatoi.fr.md
  17. 10
      subjects/basicatoi2.en.md
  18. 8
      subjects/basicatoi2.fr.md
  19. 14
      subjects/boolean.en.md
  20. 14
      subjects/boolean.fr.md
  21. 24
      subjects/brackets.en.md
  22. 21
      subjects/brackets.fr.md
  23. 30
      subjects/brainfuck.en.md
  24. 32
      subjects/brainfuck.fr.md
  25. 6
      subjects/btreeapplybylevel.en.md
  26. 6
      subjects/btreeapplybylevel.fr.md
  27. 3
      subjects/btreeapplyinorder.en.md
  28. 3
      subjects/btreeapplyinorder.fr.md
  29. 2
      subjects/btreeapplypostorder.fr.md
  30. 2
      subjects/btreeapplypreorder.fr.md
  31. 7
      subjects/btreedeletenode.en.md
  32. 7
      subjects/btreedeletenode.fr.md
  33. 6
      subjects/btreeinsertdata.en.md
  34. 5
      subjects/btreeinsertdata.fr.md
  35. 6
      subjects/btreeisbinary.en.md
  36. 6
      subjects/btreeisbinary.fr.md
  37. 6
      subjects/btreelevelcount.en.md
  38. 6
      subjects/btreelevelcount.fr.md
  39. 6
      subjects/btreemax.en.md
  40. 6
      subjects/btreemax.fr.md
  41. 6
      subjects/btreemin.en.md
  42. 6
      subjects/btreemin.fr.md
  43. 6
      subjects/btreetransplant.en.md
  44. 6
      subjects/btreetransplant.fr.md
  45. 6
      subjects/capitalizeprog.en.md
  46. 6
      subjects/capitalizeprog.fr.md
  47. 23
      subjects/cat.en.md
  48. 23
      subjects/cat.fr.md
  49. 10
      subjects/cl-camp1.en.md
  50. 10
      subjects/cl-camp1.fr.md
  51. 6
      subjects/cl-camp3.en.md
  52. 6
      subjects/cl-camp3.fr.md
  53. 8
      subjects/cl-camp4.en.md
  54. 8
      subjects/cl-camp4.fr.md
  55. 2
      subjects/cl-camp5.en.md
  56. 2
      subjects/cl-camp5.fr.md
  57. 10
      subjects/cl.en.md
  58. 10
      subjects/cl.fr.md
  59. 2
      subjects/collatzcountdown.en.md
  60. 2
      subjects/collatzcountdown.fr.md
  61. 6
      subjects/comcheck.en.md
  62. 6
      subjects/comcheck.fr.md
  63. 84
      subjects/commandments.en.md
  64. 84
      subjects/commandments.fr.md
  65. 4
      subjects/compact.en.md
  66. 6
      subjects/compact.fr.md
  67. 2
      subjects/compareprog.en.md
  68. 2
      subjects/compareprog.fr.md
  69. 2
      subjects/concatparams.en.md
  70. 1
      subjects/concatparams.fr.md
  71. 1
      subjects/convertbase.en.md
  72. 1
      subjects/convertbase.fr.md
  73. 3
      subjects/countdown.en.md
  74. 2
      subjects/countdown.fr.md
  75. 1
      subjects/countif.en.md
  76. 1
      subjects/countif.fr.md
  77. 6
      subjects/displaya.en.md
  78. 2
      subjects/displaya.fr.md
  79. 8
      subjects/displayalpham.en.md
  80. 8
      subjects/displayalpham.fr.md
  81. 8
      subjects/displayalrevm.en.md
  82. 8
      subjects/displayalrevm.fr.md
  83. 18
      subjects/displayfile.en.md
  84. 18
      subjects/displayfile.fr.md
  85. 2
      subjects/displayfirstparam.en.md
  86. 2
      subjects/displayfirstparam.fr.md
  87. 2
      subjects/displaylastparam.en.md
  88. 2
      subjects/displaylastparam.fr.md
  89. 5
      subjects/displayz.en.md
  90. 2
      subjects/displayz.fr.md
  91. 8
      subjects/divmod.en.md
  92. 8
      subjects/divmod.fr.md
  93. 6
      subjects/doop.en.md
  94. 6
      subjects/doop.fr.md
  95. 8
      subjects/enigma.en.md
  96. 8
      subjects/enigma.fr.md
  97. 14
      subjects/expandstr.en.md
  98. 16
      subjects/expandstr.fr.md
  99. 1
      subjects/fibonacci.fr.md
  100. 8
      subjects/firstword.en.md
  101. Some files were not shown because too many files changed in this diff diff.show_more

4
subjects/addprimesum.en.md

@ -2,9 +2,9 @@
### Instructions
Write a program that takes a positive integer as argument and displays the sum of all prime numbers inferior or equal to it followed by a newline(`'\n`').
Write a program that takes a positive integer as argument and displays the sum of all prime numbers inferior or equal to it followed by a newline (`'\n'`).
- If the number of arguments is different from 1, or if the argument is not a positive number, the program displays `0` followed by a newline.
- If the number of arguments is different from 1, or if the argument is not a positive number, the program displays `0` followed by a newline.
### Usage

4
subjects/addprimesum.fr.md

@ -2,9 +2,9 @@
### Instructions
Écrire un programme qui prend un entier positif comme argument et qui affiche la somme de tous les nombres premiers inférieurs ou égaux à celui-ci, suivie d'un newline(`'\n`').
Écrire un programme qui prend un entier positif comme argument et qui affiche la somme de tous les nombres premiers inférieurs ou égaux à celui-ci, suivie d'un retour à la ligne (`'\n'`).
- Si le nombre d'arguments est différent de 1, ou si l'argument n'est pas un nombre positif, le programme affiche `0` suivi d'un newline.
- Si le nombre d'arguments est différent de 1, ou si l'argument n'est pas un nombre positif, le programme affiche `0` suivi d'un retour à la ligne.
### Utilisation

1
subjects/advancedsortwordarr.en.md

@ -8,6 +8,7 @@ Write a function `AdvancedSortWordArr` that sorts a `string` array, based on the
```go
func AdvancedSortWordArr(array []string, f func(a, b string) int) {
}
```

1
subjects/advancedsortwordarr.fr.md

@ -8,6 +8,7 @@
```go
func AdvancedSortWordArr(array []string, f func(a, b string) int) {
}
```

18
subjects/alphamirror.en.md

@ -2,28 +2,26 @@
### Instructions
Write a program called `alphamirror` that takes a `string` as argument and displays this `string`
after replacing each alphabetical character with the opposite alphabetical
character.
Write a program called `alphamirror` that takes a `string` as argument and displays this `string` after replacing each alphabetical character with the opposite alphabetical character.
The case of the letter stays the same, for example :
'a' becomes 'z', 'Z' becomes 'A'
'd' becomes 'w', 'M' becomes 'N'
The final result will be followed by a newline(`'\n'`).
The final result will be followed by a newline (`'\n'`).
If the number of arguments is different from 1, the program displays only a newline(`'\n'`).
If the number of arguments is different from 1, the program displays only a newline (`'\n'`).
### Usage
```console
student@ubuntu:~/student/alphamirror$ go build
student@ubuntu:~/student/alphamirror$ ./alphamirror "abc"
student@ubuntu:~/piscine-go/alphamirror$ go build
student@ubuntu:~/piscine-go/alphamirror$ ./alphamirror "abc"
zyx
student@ubuntu:~/student/alphamirror$ ./alphamirror "My horse is Amazing." | cat -e
student@ubuntu:~/piscine-go/alphamirror$ ./alphamirror "My horse is Amazing." | cat -e
Nb slihv rh Znzarmt.$
student@ubuntu:~/student/alphamirror$ ./alphamirror | cat -e
student@ubuntu:~/piscine-go/alphamirror$ ./alphamirror | cat -e
$
student@ubuntu:~/student/alphamirror$
student@ubuntu:~/piscine-go/alphamirror$
```

16
subjects/alphamirror.fr.md

@ -2,26 +2,26 @@
### Instructions
Écrire un programme nommé `alphamirror` qui prend une `string` come argument et qui affiche cette `string` après remplacement de chaque caractère alphabétique avec son opposé.
Écrire un programme nommé `alphamirror` qui prend une `string` comme argument et qui affiche cette `string` après remplacement de chaque caractère alphabétique avec son opposé.
Les majuscules restent des majuscules, de même pour le minuscules, par exemple :
'a' devient 'z', 'Z' devient 'A'
'd' devient 'w', 'M' devient 'N'
Le résultat final sera suivi d'un newline(`'\n'`).
Le résultat final sera suivi d'un retour à la ligne (`'\n'`).
Si le nombre d'arguments est différent de 1, le programme affiche seulement un newline(`'\n'`).
Si le nombre d'arguments est différent de 1, le programme affiche seulement un retour à la ligne (`'\n'`).
### Utilisation
```console
student@ubuntu:~/student/alphamirror$ go build
student@ubuntu:~/student/alphamirror$ ./alphamirror "abc"
student@ubuntu:~/piscine-go/alphamirror$ go build
student@ubuntu:~/piscine-go/alphamirror$ ./alphamirror "abc"
zyx
student@ubuntu:~/student/alphamirror$ ./alphamirror "My horse is Amazing." | cat -e
student@ubuntu:~/piscine-go/alphamirror$ ./alphamirror "My horse is Amazing." | cat -e
Nb slihv rh Znzarmt.$
student@ubuntu:~/student/alphamirror$ ./alphamirror | cat -e
student@ubuntu:~/piscine-go/alphamirror$ ./alphamirror | cat -e
$
student@ubuntu:~/student/alphamirror$
student@ubuntu:~/piscine-go/alphamirror$
```

5
subjects/any.en.md

@ -2,14 +2,15 @@
### Instructions
Write a function `Any` that returns `true`, for a `string` array:
Write a function `Any` that returns `true`, for a `string` array :
- if, when that `string` array is passed through an `f` function, at least one element returns `true`.
- if, when that `string` array is passed through an `f` function, at least one element returns `true`.
### Expected function
```go
func Any(f func(string) bool, arr []string) bool {
}
```

5
subjects/any.fr.md

@ -2,14 +2,15 @@
### Instructions
Écrire une fonction `Any` qui retournes `true`, pour un tableau de `string`:
Écrire une fonction `Any` qui retourne `true`, pour un tableau de `string` :
- si, lorsque ce tableau de `string` est passé à travers une fonction `f`, au moins un element retournes `true`.
- si, lorsque ce tableau de `string` est passé à travers une fonction `f`, au moins un element retourne `true`.
### Fonction attendue
```go
func Any(f func(string) bool, arr []string) bool {
}
```

3
subjects/appendrange.en.md

@ -2,8 +2,7 @@
### Instructions
Write a function that takes an `int` min and an `int` max as parameters.
That function returns a slice of `int` with all the values between min and max.
Write a function that takes an `int` min and an `int` max as parameters. That function returns a slice of `int` with all the values between min and max.
Min is included, and max is excluded.

2
subjects/appendrange.fr.md

@ -2,7 +2,7 @@
### Instructions
Écrire une fonction qui prend un `int` minimum et un `int` maximum comme paramètres. Cette fonction retournes une slice d'`int` avec toutes les valeurs comprises entre le minimum et le maximum.
Écrire une fonction qui prend un `int` minimum et un `int` maximum comme paramètres. Cette fonction retourne une slice d'`int` avec toutes les valeurs comprises entre le minimum et le maximum.
Le minimum est inclus, le maximum est exclu.

8
subjects/atoi.en.md

@ -2,13 +2,13 @@
### Instructions
- Write a [function](TODO-LINK) that simulates the behaviour of the `Atoi` function in Go. `Atoi` transforms a number represented as a `string` in a number represented as an `int`.
- Write a [function](TODO-LINK) that simulates the behaviour of the `Atoi` function in Go. `Atoi` transforms a number represented as a `string` in a number represented as an `int`.
- `Atoi` returns `0` if the `string` is not considered as a valid number. For this exercise **non-valid `string` chains will be tested**. Some will contain non-digits characters.
- `Atoi` returns `0` if the `string` is not considered as a valid number. For this exercise **non-valid `string` chains will be tested**. Some will contain non-digits characters.
- For this exercise the handling of the signs + or - **does have** to be taken into account.
- For this exercise the handling of the signs + or - **does have** to be taken into account.
- This function will **only** have to return the `int` `nbr`. For this exercise the `error` return of atoi is not required.
- This function will **only** have to return the `int`. For this exercise the `error` result of atoi is not required.
### Expected function

8
subjects/atoi.fr.md

@ -2,13 +2,13 @@
### Instructions
- Écrire une fonction qui reproduit le comportement de la fonction `Atoi` en Go. `Atoi` transforme un nombre représenté en `string` (chaîne de caractères) en `int` (entier).
- Écrire une fonction qui reproduit le comportement de la fonction `Atoi` en Go. `Atoi` transforme un nombre représenté en `string` (chaîne de caractères) en `int` (entier).
- `Atoi` retourne `0` si la `string` n'est pas considéré un nombre valide. Pour cet exercice des **`string` non valides seront testées!**. Certaines contiendront d'autres caractères que des chiffres.
- `Atoi` retourne `0` si la `string` n'est pas considéré un nombre valide. Pour cet exercice des **`string` non valides seront testées!**. Certaines contiendront d'autres caractères que des chiffres.
- Pour cet exercice la gestion des signes + ou - **doit être** prise en compte.
- Pour cet exercice la gestion des signes + ou - **doit être** prise en compte.
- Cette fonction aura **seulement** à retourner l'`int` (entier) `nbr`. Pour cet exercice le retour d'erreur d'atoi de go n'est pas demandé.
- Cette fonction aura **seulement** à retourner l'`int` (entier). Pour cet exercice le retour d'erreur d'atoi de go n'est pas demandé.
### Fonction attendue

6
subjects/atoibase.en.md

@ -8,9 +8,9 @@ If the base or the `string` number is not valid it returns `0`:
Validity rules for a base :
- A base must contain at least 2 characters.
- Each character of a base must be unique.
- A base should not contain `+` or `-` characters.
- A base must contain at least 2 characters.
- Each character of a base must be unique.
- A base should not contain `+` or `-` characters.
Only valid `string` numbers will be tested.

6
subjects/atoibase.fr.md

@ -8,9 +8,9 @@ Si la base n'est pas valide elle retourne `0`:
Règles de validité d'une base :
- Une base doit contenir au moins 2 caractères.
- Chaque caractère d'une base doit être unique.
- Une base ne doit pas contenir les caractères `+` ou `-`.
- Une base doit contenir au moins 2 caractères.
- Chaque caractère d'une base doit être unique.
- Une base ne doit pas contenir les caractères `+` ou `-`.
Seuls des nombres en `string` valides seront testés.

8
subjects/basicatoi.en.md

@ -2,13 +2,13 @@
### Instructions
- Write a function that simulates the behaviour of the atoi function in Go. Atoi transforms a number defined as a `string` in a number defined as an `int`.
- Write a function that simulates the behaviour of the atoi function in Go. Atoi transforms a number defined as a `string` in a number defined as an `int`.
- Atoi returns `0` if the `string` is not considered as a valid number. For this exercise **only valid** `string` chains will be tested. They will only contain one or several digits as characters.
- Atoi returns `0` if the `string` is not considered as a valid number. For this exercise **only valid** `string` chains will be tested. They will only contain one or several digits as characters.
- For this exercise the handling of the signs + or - does not have to be taken into account.
- For this exercise the handling of the signs `+` or `-` does not have to be taken into account.
- This function will **only** have to return the `int` `nbr`. For this exercise the `error` return of atoi is not required.
- This function will **only** have to return the `int`. For this exercise the `error` return of atoi is not required.
### Expected function

8
subjects/basicatoi.fr.md

@ -2,13 +2,13 @@
### Instructions
- Écrire une fonction qui reproduit le comportement de la fonction atoi en Go. Atoi transforme un nombre représenté en `string` (chaîne de caractères) en `int` (entier).
- Écrire une fonction qui reproduit le comportement de la fonction atoi en Go. Atoi transforme un nombre représenté en `string` (chaîne de caractères) en `int` (entier).
- Atoi retourne `0` si la `string` n'est pas considéré un nombre valide. Pour cet exercice **seulement des** `string` **valides** seront testé. Elles ne contiendront que un ou plusieurs chiffres comme charact.
- Atoi retourne `0` si la `string` n'est pas considéré un nombre valide. Pour cet exercice **seulement des** `string` **valides** seront testé. Elles ne contiendront que un ou plusieurs chiffres comme charact.
- Pour cet exercice la gestion des signes + ou - ne doit pas être prise en compte.
- Pour cet exercice la gestion des signes `+` ou `-` ne doit pas être prise en compte.
- Cette fonction aura **seulement** à retourner l'`int` (entier) `nbr`. Pour cet exercice le retour d'erreur d'atoi de go n'est pas demandé.
- Cette fonction aura **seulement** à retourner l'`int` (entier). Pour cet exercice le retour d'erreur d'atoi de go n'est pas demandé.
### Fonction attendue

10
subjects/basicatoi2.en.md

@ -2,15 +2,15 @@
### Instructions
- Write a function that simulates the behaviour of the atoi function in Go. Atoi transforms a number defined as a `string` in a number defined as an `int`.
- Write a function that simulates the behaviour of the atoi function in Go. Atoi transforms a number defined as a `string` in a number defined as an `int`.
- Atoi returns `0` if the `string` is not considered as a valid number. For this exercise **non-valid `string` chains will be tested**. Some will contain non-digits characters.
- Atoi returns `0` if the `string` is not considered as a valid number. For this exercise **non-valid `string` chains will be tested**. Some will contain non-digits characters.
- For this exercise the handling of the signs + or - does not have to be taken into account.
- For this exercise the handling of the signs `+` or `-` does not have to be taken into account.
- This function will **only** have to return the `int` `nbr`. For this exercise the `error` return of atoi is not required.
- This function will **only** have to return the `int`. For this exercise the `error` return of atoi is not required.
### Expected Function
### Expected function
```go
func BasicAtoi2(s string) int {

8
subjects/basicatoi2.fr.md

@ -2,13 +2,13 @@
### Instructions
- Écrire une fonction qui reproduit le comportement de la fonction atoi en Go. Atoi transforme un nombre représenté en `string` (chaîne de caractères) en `int` (entier).
- Écrire une fonction qui reproduit le comportement de la fonction atoi en Go. Atoi transforme un nombre représenté en `string` (chaîne de caractères) en `int` (entier).
- Atoi retourne `0` si la `string` n'est pas considérée comme un nombre valide. Pour cet exercice des **`string` non valides seront testées!**. Certaines contiendront d'autres caractères que des chiffres.
- Atoi retourne `0` si la `string` n'est pas considérée comme un nombre valide. Pour cet exercice des **`string` non valides seront testées!**. Certaines contiendront d'autres caractères que des chiffres.
- Pour cet exercice la gestion des signes + ou - ne doit pas être prise en compte.
- Pour cet exercice la gestion des signes `+` ou `-` ne doit pas être prise en compte.
- Cette fonction aura **seulement** à retourner l'`int` (entier) `nbr`. Pour cet exercice le retour d'erreur d'atoi de go n'est pas demandé.
- Cette fonction aura **seulement** à retourner l'`int` (entier). Pour cet exercice le retour d'erreur d'atoi de go n'est pas demandé.
### Fonction attendue

14
subjects/boolean.en.md

@ -4,11 +4,11 @@
Create a `.go` file.
- The code below has to be copied in that file.
- The code below has to be copied in that file.
- The necessary changes have to be applied so that the program works.
- The necessary changes have to be applied so that the program works.
- The program must be submitted inside a folder with the name `boolean`.
- The program must be submitted inside a folder with the name `boolean`.
### Code to be copied
@ -39,12 +39,12 @@ func main() {
}
```
### Expected output
### Usage
```console
student@ubuntu:~/student/boolean$ go build
student@ubuntu:~/student/boolean$ ./boolean "not" "odd"
student@ubuntu:~/piscine-go/boolean$ go build
student@ubuntu:~/piscine-go/boolean$ ./boolean "not" "odd"
I have an even number of arguments
student@ubuntu:~/student/boolean$ ./boolean "not even"
student@ubuntu:~/piscine-go/boolean$ ./boolean "not even"
I have an odd number of arguments
```

14
subjects/boolean.fr.md

@ -4,11 +4,11 @@
Créer un fichier `.go`.
- Le code ci-dessous doit être copié dans ce fichier.
- Le code ci-dessous doit être copié dans ce fichier.
- Les changements nécéssaires doivent être appliquer pour que le programme fonctionne.
- Les changements nécéssaires doivent être appliqués pour que le programme fonctionne.
- Le programme doit être rendu dans un dossier nommé `boolean`.
- Le programme doit être rendu dans un dossier nommé `boolean`.
### Code à copier
@ -39,12 +39,12 @@ func main() {
}
```
### Usage
### Utilisation
```console
student@ubuntu:~/student/boolean$ go build
student@ubuntu:~/student/boolean$ ./boolean "not" "odd"
student@ubuntu:~/piscine-go/boolean$ go build
student@ubuntu:~/piscine-go/boolean$ ./boolean "not" "odd"
I have an even number of arguments
student@ubuntu:~/student/boolean$ ./boolean "not even"
student@ubuntu:~/piscine-go/boolean$ ./boolean "not even"
I have an odd number of arguments
```

24
subjects/brackets.en.md

@ -2,32 +2,26 @@
### Instructions
Write a program that takes an undefined number of `strings` in arguments. For each
argument, if the expression is correctly bracketed, the program prints on the standard output `OK` followed by a newline(`'\n'`), otherwise it prints "Error" followed by
a newline.
Write a program that takes an undefined number of `string` in arguments. For each argument, if the expression is correctly bracketed, the program prints on the standard output `OK` followed by a newline (`'\n'`), otherwise it prints `Error` followed by a newline.
Symbols considered as `brackets` are parentheses `(` and `)`, square brackets `[`
and `]` and curly braces `{` and `}`. Every other symbols are simply ignored.
Symbols considered as brackets are parentheses `(` and `)`, square brackets `[` and `]` and curly braces `{` and `}`. Every other symbols are simply ignored.
An opening bracket must always be closed by the good closing bracket in the
correct order. A `string` which does not contain any bracket is considered as a
correctly bracketed `string`.
An opening bracket must always be closed by the good closing bracket in the correct order. A `string` which does not contain any bracket is considered as a correctly bracketed `string`.
If there is no argument, the program must print only a newline.
### Usage
```console
student@ubuntu:~/student/brackets$ go build
student@ubuntu:~/student/brackets$ ./brackets '(johndoe)' | cat -e
student@ubuntu:~/piscine-go/brackets$ go build
student@ubuntu:~/piscine-go/brackets$ ./brackets '(johndoe)' | cat -e
OK$
student@ubuntu:~/student/brackets$ ./brackets '([)]' | cat -e
student@ubuntu:~/piscine-go/brackets$ ./brackets '([)]' | cat -e
Error$
student@ubuntu:~/student/brackets$ ./brackets '' '{[(0 + 0)(1 + 1)](3*(-1)){()}}' | cat -e
student@ubuntu:~/piscine-go/brackets$ ./brackets '' '{[(0 + 0)(1 + 1)](3*(-1)){()}}' | cat -e
OK$
OK$
student@ubuntu:~/student/brackets$ ./brackets | cat -e
student@ubuntu:~/piscine-go/brackets$ ./brackets | cat -e
$
student@ubuntu:~/student/brackets$
student@ubuntu:~/piscine-go/brackets$
```

21
subjects/brackets.fr.md

@ -2,29 +2,26 @@
### Instructions
Écrire un programme qui prend un nombre indéfini de `strings` en arguments. Pour chaque
argument, si l'expression est correctement "entre parenthèses" (bracketed), le programme affiche sur la sortie standard `OK` suivi d'un newline(`'\n'`), autrement il affiche `Error` suivi d'un newline.
Écrire un programme qui prend un nombre indéfini de `string` en arguments. Pour chaque argument, si l'expression est correctement "entre parenthèses" (bracketed), le programme affiche sur la sortie standard `OK` suivi d'un retour à la ligne (`'\n'`), autrement il affiche `Error` suivi d'un retour à la ligne.
Les symboles considérés comme des `parenthèses` sont les parenthèses `(` et `)`, les crochets `[`
et `]` et les accolades `{` et `}`. Tout autre symbole est simplement ignoré.
Les symboles considérés comme des parenthèses sont `(` et `)`, les crochets `[` et `]` et les accolades `{` et `}`. Tout autre symbole est simplement ignoré.
Une parenthèse ouvrante doit toujours être fermée par la parenthèse correspondante dans l'ordre correct. Une `string` qui ne contient aucune parenthèse est considérée comme une `string` correctement "entre parenthèses".
Si il n'y a pas d'argument, le programme affiche seulement un newline.
Si il n'y a pas d'argument, le programme affiche seulement un retour à la ligne.
### Utilisation
```console
student@ubuntu:~/student/brackets$ go build
student@ubuntu:~/student/brackets$ ./brackets '(johndoe)' | cat -e
student@ubuntu:~/piscine-go/brackets$ go build
student@ubuntu:~/piscine-go/brackets$ ./brackets '(johndoe)' | cat -e
OK$
student@ubuntu:~/student/brackets$ ./brackets '([)]' | cat -e
student@ubuntu:~/piscine-go/brackets$ ./brackets '([)]' | cat -e
Error$
student@ubuntu:~/student/brackets$ ./brackets '' '{[(0 + 0)(1 + 1)](3*(-1)){()}}' | cat -e
student@ubuntu:~/piscine-go/brackets$ ./brackets '' '{[(0 + 0)(1 + 1)](3*(-1)){()}}' | cat -e
OK$
OK$
student@ubuntu:~/student/brackets$ ./brackets | cat -e
student@ubuntu:~/piscine-go/brackets$ ./brackets | cat -e
$
student@ubuntu:~/student/brackets$
student@ubuntu:~/piscine-go/brackets$
```

30
subjects/brainfuck.en.md

@ -5,33 +5,31 @@
Write a `Brainfuck` interpreter program.
The source code will be given as first parameter.
The code will always be valid, with less than 4096 operations.
`Brainfuck` is a minimalist language. It consists of an array of bytes
(in this exercice 2048 bytes) all initialized with zero,
and with a pointer to its first byte.
`Brainfuck` is a minimalist language. It consists of an array of bytes (in this exercice 2048 bytes) all initialized with zero, and with a pointer to its first byte.
Every operator consists of a single character :
- '>' increment the pointer ;
- '<' decrement the pointer ;
- '+' increment the pointed byte ;
- '-' decrement the pointed byte ;
- '.' print the pointed byte on standard output ;
- '[' go to the matching ']' if the pointed byte is 0 (loop start) ;
- ']' go to the matching '[' if the pointed byte is not 0 (loop end).
- '>' increment the pointer
- '<' decrement the pointer
- '+' increment the pointed byte
- '-' decrement the pointed byte
- '.' print the pointed byte on standard output
- '[' go to the matching ']' if the pointed byte is 0 (loop start)
- ']' go to the matching '[' if the pointed byte is not 0 (loop end)
Any other character is a comment.
### Usage
```console
student@ubuntu:~/student/brainfuck$ go build
student@ubuntu:~/student/brainfuck$ ./brainfuck "++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>." | cat -e
student@ubuntu:~/piscine-go/brainfuck$ go build
student@ubuntu:~/piscine-go/brainfuck$ ./brainfuck "++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>." | cat -e
Hello World!$
student@ubuntu:~/student/brainfuck$ ./brainfuck "+++++[>++++[>++++H>+++++i<<-]>>>++\n<<<<-]>>--------.>+++++.>." | cat -e
student@ubuntu:~/piscine-go/brainfuck$ ./brainfuck "+++++[>++++[>++++H>+++++i<<-]>>>++\n<<<<-]>>--------.>+++++.>." | cat -e
Hi$
student@ubuntu:~/student/brainfuck$ ./brainfuck "++++++++++[>++++++++++>++++++++++>++++++++++<<<-]>---.>--.>-.>++++++++++." | cat -e
student@ubuntu:~/piscine-go/brainfuck$ ./brainfuck "++++++++++[>++++++++++>++++++++++>++++++++++<<<-]>---.>--.>-.>++++++++++." | cat -e
abc$
student@ubuntu:~/student/brainfuck$ ./brainfuck | cat -e
student@ubuntu:~/piscine-go/brainfuck$ ./brainfuck | cat -e
$
student@ubuntu:~/student/brainfuck$
student@ubuntu:~/piscine-go/brainfuck$
```

32
subjects/brainfuck.fr.md

@ -4,34 +4,32 @@
Écrire un program interpréteur du `Brainfuck`.
Le code source sera donné en premier paramètre.
Le code sera toujours valide, avec moins de 4096 operations.
Le `Brainfuck` est un langage minimaliste. Il consiste en un slice de bytes (octet)
(dans cet exercise 2048 bytes) tous initialisés à zéro,
et avec un pointeur sur le premier byte.
Le code sera toujours valide, avec moins de 4096 opérations.
Le `Brainfuck` est un langage minimaliste. Il consiste en un slice de `byte` (octets) (dans cet exercise 2048 octets) tous initialisés à zéro, et avec un pointeur sur le premier octet.
Chaque opérateur consiste en un seul caractère :
- '>' incrémente le pointeur ;
- '<' décrémente le pointeur ;
- '+' incrémente le byte pointé ;
- '-' décrémente le byte pointé ;
- '.' affiche le byte pointé sur la sortie standard ;
- '[' se rend à son ']' correspondant si le byte pointé est 0 (début de la boucle) ;
- ']' se rend à son '[' correspondant si le byte pointé n'est pas 0 (fin de la boucle).
- '>' incrémente le pointeur
- '<' décrémente le pointeur
- '+' incrémente le byte pointé
- '-' décrémente le byte pointé
- '.' affiche le byte pointé sur la sortie standard
- '[' se rend à son ']' correspondant si le byte pointé est 0 (début de la boucle)
- ']' se rend à son '[' correspondant si le byte pointé n'est pas 0 (fin de la boucle)
Tout autre caractère est un commentaire.
### Utilisation
```console
student@ubuntu:~/student/brainfuck$ go build
student@ubuntu:~/student/brainfuck$ ./brainfuck "++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>." | cat -e
student@ubuntu:~/piscine-go/brainfuck$ go build
student@ubuntu:~/piscine-go/brainfuck$ ./brainfuck "++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>." | cat -e
Hello World!$
student@ubuntu:~/student/brainfuck$ ./brainfuck "+++++[>++++[>++++H>+++++i<<-]>>>++\n<<<<-]>>--------.>+++++.>." | cat -e
student@ubuntu:~/piscine-go/brainfuck$ ./brainfuck "+++++[>++++[>++++H>+++++i<<-]>>>++\n<<<<-]>>--------.>+++++.>." | cat -e
Hi$
student@ubuntu:~/student/brainfuck$ ./brainfuck "++++++++++[>++++++++++>++++++++++>++++++++++<<<-]>---.>--.>-.>++++++++++." | cat -e
student@ubuntu:~/piscine-go/brainfuck$ ./brainfuck "++++++++++[>++++++++++>++++++++++>++++++++++<<<-]>---.>--.>-.>++++++++++." | cat -e
abc$
student@ubuntu:~/student/brainfuck$ ./brainfuck | cat -e
student@ubuntu:~/piscine-go/brainfuck$ ./brainfuck | cat -e
$
student@ubuntu:~/student/brainfuck$
student@ubuntu:~/piscine-go/brainfuck$
```

6
subjects/btreeapplybylevel.en.md

@ -36,11 +36,11 @@ func main() {
And its output :
```console
student@ubuntu:~/student/test$ go build
student@ubuntu:~/student/test$ ./test
student@ubuntu:~/piscine-go/test$ go build
student@ubuntu:~/piscine-go/test$ ./test
4
1
7
5
student@ubuntu:~/student/test$
student@ubuntu:~/piscine-go/test$
```

6
subjects/btreeapplybylevel.fr.md

@ -36,11 +36,11 @@ func main() {
Et son résultat :
```console
student@ubuntu:~/student/test$ go build
student@ubuntu:~/student/test$ ./test
student@ubuntu:~/piscine-go/test$ go build
student@ubuntu:~/piscine-go/test$ ./test
4
1
7
5
student@ubuntu:~/student/test$
student@ubuntu:~/piscine-go/test$
```

3
subjects/btreeapplyinorder.en.md

@ -2,8 +2,7 @@
### Instructions
Write a function that applies a function in order to each element in the tree.
(see `in order tree walks`)
Write a function that applies a function in order to each element in the tree (see "in order tree walks").
### Expected function

3
subjects/btreeapplyinorder.fr.md

@ -2,8 +2,7 @@
### Instructions
Écrire une fonction qui applique une fonction en ordre (in order) a chaque élément de l'arbre.
(voir les `in order tree walks`)
Écrire une fonction qui applique une fonction en ordre (in order) à chaque élément de l'arbre (voir les "in order tree walks").
### Fonction attendue

2
subjects/btreeapplypostorder.fr.md

@ -2,7 +2,7 @@
### Instructions
Écrire une fonction qui applique une fonction en post-ordre (`postorder walk`) à chaque élément de l'arbre.
Écrire une fonction qui applique une fonction en post-ordre ("postorder walk") à chaque élément de l'arbre.
### Fonction attendue

2
subjects/btreeapplypreorder.fr.md

@ -2,7 +2,7 @@
### Instructions
Écrire une fonction qui applique une fonction en pré-ordre (`preorder walk`) a chaque élément de l'arbre.
Écrire une fonction qui applique une fonction en pré-ordre ("preorder walk") à chaque élément de l'arbre.
### Fonction attendue

7
subjects/btreedeletenode.en.md

@ -12,7 +12,6 @@ The resulting tree should still follow the binary search tree rules.
func BTreeDeleteNode(root, node *TreeNode) *TreeNode {
}
```
### Usage
@ -44,8 +43,8 @@ func main() {
And its output :
```console
student@ubuntu:~/student/test$ go build
student@ubuntu:~/student/test$ ./test
student@ubuntu:~/piscine-go/test$ go build
student@ubuntu:~/piscine-go/test$ ./test
Before delete:
1
4
@ -55,5 +54,5 @@ After delete:
1
5
7
student@ubuntu:~/student/test$
student@ubuntu:~/piscine-go/test$
```

7
subjects/btreedeletenode.fr.md

@ -12,7 +12,6 @@ L'arbre en résultant devra toujours suivre les règles des arbres de recherche
func BTreeDeleteNode(root, node *TreeNode) *TreeNode {
}
```
### Utilisation
@ -44,8 +43,8 @@ func main() {
Et son résultat :
```console
student@ubuntu:~/student/test$ go build
student@ubuntu:~/student/test$ ./test
student@ubuntu:~/piscine-go/test$ go build
student@ubuntu:~/piscine-go/test$ ./test
Before delete:
1
4
@ -55,5 +54,5 @@ After delete:
1
5
7
student@ubuntu:~/student/test$
student@ubuntu:~/piscine-go/test$
```

6
subjects/btreeinsertdata.en.md

@ -2,9 +2,9 @@
### Instructions
Write a function that inserts new data in a binary search tree
following the properties of binary search trees.
The nodes must be defined as follows:
Write a function that inserts new data in a binary search tree following the properties of binary search trees.
The nodes must be defined as follows :
### Expected function

5
subjects/btreeinsertdata.fr.md

@ -2,8 +2,9 @@
### Instructions
Écrire une fonction qui insère de la nouvelle data dans un arbre binaire en suivant les propriétés des arbres de recherche binaires.
Les nodes doivent être définies comme ci-dessous:
Écrire une fonction qui insère de la nouvelle donnée dans un arbre binaire en suivant les propriétés des arbres de recherche binaires.
Les nodes doivent être définies comme ci-dessous :
### Fonction attendue

6
subjects/btreeisbinary.en.md

@ -36,8 +36,8 @@ func main() {
And its output :
```console
student@ubuntu:~/student/test$ go build
student@ubuntu:~/student/test$ ./test
student@ubuntu:~/piscine-go/test$ go build
student@ubuntu:~/piscine-go/test$ ./test
true
student@ubuntu:~/student/test$
student@ubuntu:~/piscine-go/test$
```

6
subjects/btreeisbinary.fr.md

@ -36,8 +36,8 @@ func main() {
Et son résultat :
```console
student@ubuntu:~/student/test$ go build
student@ubuntu:~/student/test$ ./test
student@ubuntu:~/piscine-go/test$ go build
student@ubuntu:~/piscine-go/test$ ./test
true
student@ubuntu:~/student/test$
student@ubuntu:~/piscine-go/test$
```

6
subjects/btreelevelcount.en.md

@ -37,8 +37,8 @@ func main() {
And its output :
```console
student@ubuntu:~/student/test$ go build
student@ubuntu:~/student/test$ ./test
student@ubuntu:~/piscine-go/test$ go build
student@ubuntu:~/piscine-go/test$ ./test
3
student@ubuntu:~/student/test$
student@ubuntu:~/piscine-go/test$
```

6
subjects/btreelevelcount.fr.md

@ -37,8 +37,8 @@ func main() {
Et son résultat :
```console
student@ubuntu:~/student/test$ go build
student@ubuntu:~/student/test$ ./test
student@ubuntu:~/piscine-go/test$ go build
student@ubuntu:~/piscine-go/test$ ./test
3
student@ubuntu:~/student/test$
student@ubuntu:~/piscine-go/test$
```

6
subjects/btreemax.en.md

@ -38,8 +38,8 @@ func main() {
And its output :
```console
student@ubuntu:~/student/test$ go build
student@ubuntu:~/student/test$ ./test
student@ubuntu:~/piscine-go/test$ go build
student@ubuntu:~/piscine-go/test$ ./test
7
student@ubuntu:~/student/test$
student@ubuntu:~/piscine-go/test$
```

6
subjects/btreemax.fr.md

@ -38,8 +38,8 @@ func main() {
Et son résultat :
```console
student@ubuntu:~/student/test$ go build
student@ubuntu:~/student/test$ ./test
student@ubuntu:~/piscine-go/test$ go build
student@ubuntu:~/piscine-go/test$ ./test
7
student@ubuntu:~/student/test$
student@ubuntu:~/piscine-go/test$
```

6
subjects/btreemin.en.md

@ -38,8 +38,8 @@ func main() {
And its output :
```console
student@ubuntu:~/student/test$ go build
student@ubuntu:~/student/test$ ./test
student@ubuntu:~/piscine-go/test$ go build
student@ubuntu:~/piscine-go/test$ ./test
1
student@ubuntu:~/student/test$
student@ubuntu:~/piscine-go/test$
```

6
subjects/btreemin.fr.md

@ -38,8 +38,8 @@ func main() {
Et son résultat :
```console
student@ubuntu:~/student/test$ go build
student@ubuntu:~/student/test$ ./test
student@ubuntu:~/piscine-go/test$ go build
student@ubuntu:~/piscine-go/test$ ./test
1
student@ubuntu:~/student/test$
student@ubuntu:~/piscine-go/test$
```

6
subjects/btreetransplant.en.md

@ -39,11 +39,11 @@ func main() {
And its output :
```console
student@ubuntu:~/student/test$ go build
student@ubuntu:~/student/test$ ./test
student@ubuntu:~/piscine-go/test$ go build
student@ubuntu:~/piscine-go/test$ ./test
3
4
5
7
student@ubuntu:~/student/test$
student@ubuntu:~/piscine-go/test$
```

6
subjects/btreetransplant.fr.md

@ -39,11 +39,11 @@ func main() {
Et son résultat :
```console
student@ubuntu:~/student/test$ go build
student@ubuntu:~/student/test$ ./test
student@ubuntu:~/piscine-go/test$ go build
student@ubuntu:~/piscine-go/test$ ./test
3
4
5
7
student@ubuntu:~/student/test$
student@ubuntu:~/piscine-go/test$
```

6
subjects/capitalizeprog.en.md

@ -4,11 +4,11 @@
Write a program that capitalizes the first letter of each word **and** lowercases the rest of each word of a `string`.
- A word is a sequence of **alphanumerical** characters.
- A word is a sequence of **alphanumerical** characters.
- If there is more than one argument the program should print `Too many arguments`.
- If there is more than one argument the program should print `Too many arguments`.
- If there is no arguments given the program should print a newline ("`\n`").
- If there is no arguments given the program should print a newline ("`\n`").
### Usage :

6
subjects/capitalizeprog.fr.md

@ -4,11 +4,11 @@
Écrire un programme qui met en majuscule la première lettre de chaque mot et en minuscule les autres lettres du reste du mot d'une `string`.
- Un mot est une suite de caractères **alphanumériques**.
- Un mot est une suite de caractères **alphanumériques**.
- Si il y a plus d'un argument le programme doit afficher `Too many arguments`.
- Si il y a plus d'un argument le programme doit afficher `Too many arguments`.
- Si il n'y a pas d'arguments le programme doit afficher un newline ("`\n`").
- Si il n'y a pas d'arguments le programme doit afficher un retour à la ligne (`'\n'`).
### Utilisation :

23
subjects/cat.en.md

@ -4,34 +4,33 @@
Write a program that has the same behaviour as the system's `cat` command-line.
- The `options` do not have to be handled.
- The `options` do not have to be handled.
- If the program is called without arguments it should take the `input` and print it back.
- If the program is called without arguments it should take the `input` and print it back.
- In the program folder create two files named `quest8.txt` and `quest8T.txt`.
- In the program folder create two files named `quest8.txt` and `quest8T.txt`.
- Copy to the `quest8.txt` file the following sentence :
- Copy to the `quest8.txt` file the following sentence :
`"Programming is a skill best acquired by pratice and example rather than from books" by Alan Turing`
- Copy to the `quest8T.txt` file the following sentence :
- Copy to the `quest8T.txt` file the following sentence :
`"Alan Mathison Turing was an English mathematician, computer scientist, logician, cryptanalyst. Turing was highly influential in the development of theoretical computer science, providing a formalisation of the concepts of algorithm and computation with the Turing machine, which can be considered a model of a general-purpose computer. Turing is widely considered to be the father of theoretical computer science and artificial intelligence."`
- In case of error the program should print the error.
- In case of error the program should print the error.
- The program must be submitted inside a folder named `cat`.
- The program must be submitted inside a folder named `cat`.
```console
student@ubuntu:~/student/cat$ go build
student@ubuntu:~/student/cat$ ./cat
student@ubuntu:~/piscine-go/cat$ go build
student@ubuntu:~/piscine-go/cat$ ./cat
Hello
Hello
student@ubuntu:~/student/cat$ ./cat quest8.txt
student@ubuntu:~/piscine-go/cat$ ./cat quest8.txt
"Programming is a skill best acquired by pratice and example rather than from books" by Alan Turing
student@ubuntu:~/student/cat$ ./cat quest8.txt quest8T.txt
student@ubuntu:~/piscine-go/cat$ ./cat quest8.txt quest8T.txt
"Programming is a skill best acquired by pratice and example rather than from books" by Alan Turing
"Alan Mathison Turing was an English mathematician, computer scientist, logician, cryptanalyst. Turing was highly influential in the development of theoretical computer science, providing a formalisation of the concepts of algorithm and computation with the Turing machine, which can be considered a model of a general-purpose computer. Turing is widely considered to be the father of theoretical computer science and artificial intelligence."
```

23
subjects/cat.fr.md

@ -4,36 +4,35 @@
Écrire un programme qui a le même comportement que la ligne de commande `cat`.
- Les `options` ne doivent pas être gérés.
- Les `options` ne doivent pas être gérés.
- Si le programme est éxécuté sans arguments il doit prendre l'`input` et l'afficher.
- Si le programme est éxécuté sans arguments il doit prendre l'`input` et l'afficher.
- Dans le dossier du programme créer deux fichiers nommés `quest8.txt` et `quest8T.txt`.
- Dans le dossier du programme créer deux fichiers nommés `quest8.txt` et `quest8T.txt`.
- Copier dans le fichier `quest8.txt` la phrase suivante :
- Copier dans le fichier `quest8.txt` la phrase suivante :
`"Programming is a skill best acquired by pratice and example rather than from books" by Alan Turing`
- Copier dans le fichier `quest8T.txt` la phrase suivante :
- Copier dans le fichier `quest8T.txt` la phrase suivante :
`"Alan Mathison Turing was an English mathematician, computer scientist, logician, cryptanalyst. Turing was highly influential in the development of theoretical computer science, providing a formalisation of the concepts of algorithm and computation with the Turing machine, which can be considered a model of a general-purpose computer. Turing is widely considered to be the father of theoretical computer science and artificial intelligence."`
- En cas d'erreur le programme doit imprimer l'erreur.
- En cas d'erreur le programme doit imprimer l'erreur.
- L eprogramme doit être rendu dans un dossier nommé `cat`.
- L eprogramme doit être rendu dans un dossier nommé `cat`.
### Utilisation:
```console
student@ubuntu:~/student/cat$ go build
student@ubuntu:~/student/cat$ ./cat
student@ubuntu:~/piscine-go/cat$ go build
student@ubuntu:~/piscine-go/cat$ ./cat
Hello
Hello
student@ubuntu:~/student/cat$ ./cat quest8.txt
student@ubuntu:~/piscine-go/cat$ ./cat quest8.txt
"Programming is a skill best acquired by pratice and example rather than from books" by Alan Turing
student@ubuntu:~/student/cat$ ./cat quest8.txt quest8T.txt
student@ubuntu:~/piscine-go/cat$ ./cat quest8.txt quest8T.txt
"Programming is a skill best acquired by pratice and example rather than from books" by Alan Turing
"Alan Mathison Turing was an English mathematician, computer scientist, logician, cryptanalyst. Turing was highly influential in the development of theoretical computer science, providing a formalisation of the concepts of algorithm and computation with the Turing machine, which can be considered a model of a general-purpose computer. Turing is widely considered to be the father of theoretical computer science and artificial intelligence."
```

10
subjects/cl-camp1.en.md

@ -10,11 +10,11 @@ The instincts are coming back...
Put in a file `mastertheLS` the command line that will:
- list the files and folders of the current folder.
- Ignore the hidden files, the "." and the "..".
- Separates the resuls with commas.
- Order them by ascending order of creation date.
- Have the folders have a `/` in front of them.
- list the files and folders of the current folder.
- Ignore the hidden files, the "." and the "..".
- Separates the resuls with commas.
- Order them by ascending order of creation date.
- Have the folders have a `/` in front of them.
### Hint

10
subjects/cl-camp1.fr.md

@ -10,11 +10,11 @@ Les instincts resurgissent...
Mettez dans un fichier `mastertheLS` la ligne de commande qui:
- listera les fichiers et dossiers dans le dossier courant.
- Ignorera les fichiers cachés, le "." et le "..".
- Separarera le resultat avec des virgules.
- Les triera pas ordre croissant de date de création.
- Placera un `/` en face des dossiers.
- listera les fichiers et dossiers dans le dossier courant.
- Ignorera les fichiers cachés, le "." et le "..".
- Separarera le resultat avec des virgules.
- Les triera pas ordre croissant de date de création.
- Placera un `/` en face des dossiers.
### Indice

6
subjects/cl-camp3.en.md

@ -6,9 +6,9 @@
Create a file `look`, which will look for and show, in the current directory and its sub-folders all the files :
- starting with an `a` and,
- all the files ending with a `z` and,
- all files starting with `z` and ending with `a!`.
- starting with an `a` and,
- all the files ending with a `z` and,
- all files starting with `z` and ending with `a!`.
### Hint

6
subjects/cl-camp3.fr.md

@ -6,9 +6,9 @@
Créer un fichier `look`, qui cherchera et montrera, dans le répertoire courant et ses sous-répertoires, tous les fichiers qui:
- commence avec `a` et,
- tous les fichiers qui se terminent avec `z` et,
- tous les fichiers qui commencent avec `z` et qui se finissent avec `a!`.
- commence avec `a` et,
- tous les fichiers qui se terminent avec `z` et,
- tous les fichiers qui commencent avec `z` et qui se finissent avec `a!`.
### Indice

8
subjects/cl-camp4.en.md

@ -6,13 +6,13 @@
Create a file `myfamily.sh`, which will show a subject's family (key: relatives).
- The quotes have to be removed.
- The quotes have to be removed.
- The subject will be decided depending on his ID which will be contained in the environment variable HERO_ID.
- The subject will be decided depending on his ID which will be contained in the environment variable HERO_ID.
* Where to look : https://raw.githubusercontent.com/kigiri/superhero-api/master/api/all.json
* Where to look : https://raw.githubusercontent.com/kigiri/superhero-api/master/api/all.json
* What to use : curl, jq and others...
* What to use : curl, jq and others...
### Usage

8
subjects/cl-camp4.fr.md

@ -6,13 +6,13 @@
Créer un fichier `myfamily.sh`, qui affichera la famille d'un individu (clef: relatives).
- Les guillemets doivent être enlevés.
- Les guillemets doivent être enlevés.
- L'individu sera choisi en fonction de son ID qui sera contenu dans la variable d'environment HERO_ID.
- L'individu sera choisi en fonction de son ID qui sera contenu dans la variable d'environment HERO_ID.
* Où chercher : https://raw.githubusercontent.com/kigiri/superhero-api/master/api/all.json
* Où chercher : https://raw.githubusercontent.com/kigiri/superhero-api/master/api/all.json
* Quoi utiliser : `curl`, `jq` et d'autres...
* Quoi utiliser : `curl`, `jq` et d'autres...
### Utilisation

2
subjects/cl-camp5.en.md

@ -6,7 +6,7 @@
Create a file `lookagain.sh`, which will look for, from the current directory and its sub-folders all the files:
- all the files ending with `.sh`.
- all the files ending with `.sh`.
That command will only show the name of the files without the `.sh`.

2
subjects/cl-camp5.fr.md

@ -6,7 +6,7 @@
Créer un fichier `lookagain.sh`, qui cherchera et montrera, dans le répertoire courant et ses sous-répertoires, tous les fichiers qui:
- qui finissent avec `.sh`.
- qui finissent avec `.sh`.
Cette commande montrera le nom des fichiers sans le`.sh`.

10
subjects/cl.en.md

@ -10,11 +10,11 @@ The instincts are coming back...
Put in a file `mastertheLS` the command line that will:
- list the files and folders of the current folder.
- Ignore the hidden files, the "." and the "..".
- Separates the resuls with commas.
- Order them by ascending order of creation date.
- Have the folders have a `/` in front of them.
- list the files and folders of the current folder.
- Ignore the hidden files, the "." and the "..".
- Separates the resuls with commas.
- Order them by ascending order of creation date.
- Have the folders have a `/` in front of them.
### Hint

10
subjects/cl.fr.md

@ -10,11 +10,11 @@ The instincts are coming back...
Put in a file `mastertheLS` the command line that will:
- list the files and folders of the current folder.
- Ignore the hidden files, the "." and the "..".
- Separates the resuls with commas.
- Order them by ascending order of creation date.
- Have the folders have a `/` in front of them.
- list the files and folders of the current folder.
- Ignore the hidden files, the "." and the "..".
- Separates the resuls with commas.
- Order them by ascending order of creation date.
- Have the folders have a `/` in front of them.
### Hint

2
subjects/collatzcountdown.en.md

@ -4,7 +4,7 @@
Write a function, `CollatzCountdown`, that returns the number of steps necessary to reach 1 using the collatz countdown.
- It must return `-1` if `start` is equal to `0` or negative.
- It must return `-1` if `start` is equal to `0` or negative.
### Expected function

2
subjects/collatzcountdown.fr.md

@ -4,7 +4,7 @@
Écrire une fonction, `CollatzCountdown`, qui retournes le nombre d'étapes nécéssaires pour atteindre 1 en utilisant le comptage de collatz.
- Elle doit renvoyer `-1` si `start` est égal à 0 ou négatif.
- Elle doit renvoyer `-1` si `start` est égal à 0 ou négatif.
### Fonction attendue

6
subjects/comcheck.en.md

@ -2,11 +2,11 @@
### Instructions
Write a program `comcheck` that displays on the standard output `Alert!!!` followed by newline(`'\n'`) if at least one of the arguments passed in parameter matches the `strings`:
Write a program `comcheck` that displays on the standard output `Alert!!!` followed by newline (`'\n'`) if at least one of the arguments passed in parameter matches the `string`:
- `01`, `galaxy` or `galaxy 01`.
- `01`, `galaxy` or `galaxy 01`.
- If none of the parameters match, the program displays a newline(`'\n'`).
- If none of the parameters match, the program displays a newline (`'\n'`).
### Usage

6
subjects/comcheck.fr.md

@ -2,11 +2,11 @@
### Instructions
écrire un programme `comcheck` qui affiche sur la sortie standard `Alert!!!` suivi d'un newline(`'\n'`) si au moins un des arguments passé ne paramètre correspond aux `strings`:
écrire un programme `comcheck` qui affiche sur la sortie standard `Alert!!!` suivi d'un retour à la ligne (`'\n'`) si au moins un des arguments passé ne paramètre correspond aux `string`:
- `01`, `galaxy` ou `galaxy 01`.
- `01`, `galaxy` ou `galaxy 01`.
- si aucun des paramètres correspond, le programme affiche un newline(`'\n'`).
- si aucun des paramètres correspond, le programme affiche un retour à la ligne (`'\n'`).
### Usage

84
subjects/commandments.en.md

@ -16,89 +16,89 @@ A few basic principles to follow
### The Commandements _(read them)_
- Le numérique est ta passion.
- Le numérique est ta passion.
- Ton objectif à 42 : développer ton talent et tes compétences pour le marché du numérique.
- Ton objectif à 42 : développer ton talent et tes compétences pour le marché du numérique.
- L’objectif de 42 pour toi : te faire accéder au marché de l’emploi, à une longue et pérenne carrière dans le numérique, et te faire progresser socialement.
- L’objectif de 42 pour toi : te faire accéder au marché de l’emploi, à une longue et pérenne carrière dans le numérique, et te faire progresser socialement.
- L’ambition de 42 pour toi : être un pionnier du numérique de demain.
- L’ambition de 42 pour toi : être un pionnier du numérique de demain.
- Il est de ta responsabilité de gérer ta progression : 42 te propose un parcours individualisé adapté à ton rythme.
- Il est de ta responsabilité de gérer ta progression : 42 te propose un parcours individualisé adapté à ton rythme.
- Des challenges jalonnent ton parcours. 42 ne fournira aucun élément de solution. C’est ton rôle de chercher et trouver par toi-même ces solutions pour atteindre l’objectif.
- Des challenges jalonnent ton parcours. 42 ne fournira aucun élément de solution. C’est ton rôle de chercher et trouver par toi-même ces solutions pour atteindre l’objectif.
- Sois actif. N’attend pas que les choses se fassent pour toi. 42 est un parcours 100% pratique.
- Sois actif. N’attend pas que les choses se fassent pour toi. 42 est un parcours 100% pratique.
- Sois autonome dans ton cursus. N’attend pas que l’on te dise quoi faire.
- Sois autonome dans ton cursus. N’attend pas que l’on te dise quoi faire.
- Sois collaboratif, autant sur les projets solos que les projets de groupe. Face aux challenges à resoudre, l’échange et le debat sont tes meilleures armes.
- Sois collaboratif, autant sur les projets solos que les projets de groupe. Face aux challenges à resoudre, l’échange et le debat sont tes meilleures armes.
- Ne "crois" pas. Sois sûr. Techniquement, relationnelement, organisationellement, administrativement.
- Ne "crois" pas. Sois sûr. Techniquement, relationnelement, organisationellement, administrativement.
- Pour être sûr, teste, contrôle.
- Pour être sûr, teste, contrôle.
- N’ai pas peur de te tromper, d’échouer. L’échec est une étape normale vers le succès.
- N’ai pas peur de te tromper, d’échouer. L’échec est une étape normale vers le succès.
- Teste à nouveau. Collabore davantage pour tester davantage.
- Teste à nouveau. Collabore davantage pour tester davantage.
- Ose. Le risque est de se tromper. Voir le commandement 12.
- Ose. Le risque est de se tromper. Voir le commandement 12.
- Sois rigoureux dans ton travail.
- Sois rigoureux dans ton travail.
- Sois investi dans ton cursus : 50 heures par semaine est un minimum. Ta capacité de travail est une valeur. L’école est ouverte 24h/24 et 7j/7.
- Sois investi dans ton cursus : 50 heures par semaine est un minimum. Ta capacité de travail est une valeur. L’école est ouverte 24h/24 et 7j/7.
- Sois régulier dans ton travail. Un jour oui, un jour non, un coup nocturne, un coup diurne... le chaos t’empêche d’avancer.
- Sois régulier dans ton travail. Un jour oui, un jour non, un coup nocturne, un coup diurne... le chaos t’empêche d’avancer.
- Prévois un groupe de travail large et hétérogène pour y trouver facilement des idées neuves et des groupes de projet.
- Prévois un groupe de travail large et hétérogène pour y trouver facilement des idées neuves et des groupes de projet.
- Pour tes collaborations et ton travail en groupe, privilégie des étudiants qui n’ont pas déjà la solution au problème.
- Pour tes collaborations et ton travail en groupe, privilégie des étudiants qui n’ont pas déjà la solution au problème.
- Sois investi dans ton groupe de projet, et ne le laisse pas faire ton travail à ta place.
- Sois investi dans ton groupe de projet, et ne le laisse pas faire ton travail à ta place.
- Ton groupe de projet est solidaire, son succès comme son échec est de la responsabilité de tous, et les conflits se règlent en interne.
- Ton groupe de projet est solidaire, son succès comme son échec est de la responsabilité de tous, et les conflits se règlent en interne.
- Travaille à l’école. Faire du peer-learning, collaborer, cela demande d’être physiquement avec les autres. A distance cela ne fonctionne pas.
- Travaille à l’école. Faire du peer-learning, collaborer, cela demande d’être physiquement avec les autres. A distance cela ne fonctionne pas.
- Implique toi dans les évaluations de tes projets. Elles te permettent de prendre du recul.
- Implique toi dans les évaluations de tes projets. Elles te permettent de prendre du recul.
- Implique toi dans tes évaluations des projets des autres. La qualité de la communauté en dépend.
- Implique toi dans tes évaluations des projets des autres. La qualité de la communauté en dépend.
- Sois juste et teste rigoureusement tes projets comme ceux des autres en évaluation avec tes propres jeux de tests.
- Sois juste et teste rigoureusement tes projets comme ceux des autres en évaluation avec tes propres jeux de tests.
- Joue pleinement le jeu de ta scolarité dans l’état d’esprit demandé, fait tous les exercices et projets demandés.
- Joue pleinement le jeu de ta scolarité dans l’état d’esprit demandé, fait tous les exercices et projets demandés.
- Ne cherche pas des biais et des failles dans le système. Tu vas fausser ta propre formation et ta valeur sur le marché.
- Ne cherche pas des biais et des failles dans le système. Tu vas fausser ta propre formation et ta valeur sur le marché.
- Ne triche pas intentionellement. C’est amoral, cela contredit le commandement 12, et c’est du temps inutilement passé à ne pas développer tes compétences pour faire croire aux autres que tu sais coder alors que ce n’est pas le cas.
- Ne triche pas intentionellement. C’est amoral, cela contredit le commandement 12, et c’est du temps inutilement passé à ne pas développer tes compétences pour faire croire aux autres que tu sais coder alors que ce n’est pas le cas.
- Ne rends pas un projet que tu ne serais pas capable de reproduire seul à huis clos. Même si c’est parfois involontaire, c’est aussi de la triche.
- Ne rends pas un projet que tu ne serais pas capable de reproduire seul à huis clos. Même si c’est parfois involontaire, c’est aussi de la triche.
- C’est pas pour tes parents que tu travailles, ni pour le staff. C’est pour toi.
- C’est pas pour tes parents que tu travailles, ni pour le staff. C’est pour toi.
- Participe à la vie de la communauté, à son épanouissement, et sa qualité en sortie de formation.
- Participe à la vie de la communauté, à son épanouissement, et sa qualité en sortie de formation.
- Aide au respect de ces commandements par la communauté.
- Aide au respect de ces commandements par la communauté.
- Sois bienveillant et empathique vis à vis de tes camarades comme des personnes avec qui tu interagis, échanges, débats.
- Sois bienveillant et empathique vis à vis de tes camarades comme des personnes avec qui tu interagis, échanges, débats.
- N’ai pas peur du monde professionnel.
- N’ai pas peur du monde professionnel.
- Respecte le matériel. Des consignes spécifiques sont données en ce sens.
- Respecte le matériel. Des consignes spécifiques sont données en ce sens.
- Respecte les locaux. Des consignes spécifiques sont données en ce sens.
- Respecte les locaux. Des consignes spécifiques sont données en ce sens.
- Respecte les gens, étudiants, staffs, partenaires, visiteurs.
- Respecte les gens, étudiants, staffs, partenaires, visiteurs.
- Respecte la loi en vigueur dans le pays.
- Respecte la loi en vigueur dans le pays.
- Respecte les lois et consignes en vigueur liées à la consommation d’alcool.
- Respecte les lois et consignes en vigueur liées à la consommation d’alcool.
- Respecte les lois et consignes en vigueur liées à la consommation de tabac, stupéfiants, ou produits assimilés.
- Respecte les lois et consignes en vigueur liées à la consommation de tabac, stupéfiants, ou produits assimilés.
- N’hésite pas à interagir avec le staff, pour parler de tes problèmes, pour remonter des problèmes dans le cursus, pour contribuer au cursus.
- N’hésite pas à interagir avec le staff, pour parler de tes problèmes, pour remonter des problèmes dans le cursus, pour contribuer au cursus.
- Si tu t’interroges ou ne comprends pas nos choix pédagogiques, demande nous. On ne fait généralement rien au hasard.
- Si tu t’interroges ou ne comprends pas nos choix pédagogiques, demande nous. On ne fait généralement rien au hasard.
### Required

84
subjects/commandments.fr.md

@ -16,89 +16,89 @@ A few basic principles to follow
### The Commandements _(read them)_
- Le numérique est ta passion.
- Le numérique est ta passion.
- Ton objectif à 42 : développer ton talent et tes compétences pour le marché du numérique.
- Ton objectif à 42 : développer ton talent et tes compétences pour le marché du numérique.
- L’objectif de 42 pour toi : te faire accéder au marché de l’emploi, à une longue et pérenne carrière dans le numérique, et te faire progresser socialement.
- L’objectif de 42 pour toi : te faire accéder au marché de l’emploi, à une longue et pérenne carrière dans le numérique, et te faire progresser socialement.
- L’ambition de 42 pour toi : être un pionnier du numérique de demain.
- L’ambition de 42 pour toi : être un pionnier du numérique de demain.
- Il est de ta responsabilité de gérer ta progression : 42 te propose un parcours individualisé adapté à ton rythme.
- Il est de ta responsabilité de gérer ta progression : 42 te propose un parcours individualisé adapté à ton rythme.
- Des challenges jalonnent ton parcours. 42 ne fournira aucun élément de solution. C’est ton rôle de chercher et trouver par toi-même ces solutions pour atteindre l’objectif.
- Des challenges jalonnent ton parcours. 42 ne fournira aucun élément de solution. C’est ton rôle de chercher et trouver par toi-même ces solutions pour atteindre l’objectif.
- Sois actif. N’attend pas que les choses se fassent pour toi. 42 est un parcours 100% pratique.
- Sois actif. N’attend pas que les choses se fassent pour toi. 42 est un parcours 100% pratique.
- Sois autonome dans ton cursus. N’attend pas que l’on te dise quoi faire.
- Sois autonome dans ton cursus. N’attend pas que l’on te dise quoi faire.
- Sois collaboratif, autant sur les projets solos que les projets de groupe. Face aux challenges à resoudre, l’échange et le debat sont tes meilleures armes.
- Sois collaboratif, autant sur les projets solos que les projets de groupe. Face aux challenges à resoudre, l’échange et le debat sont tes meilleures armes.
- Ne "crois" pas. Sois sûr. Techniquement, relationnelement, organisationellement, administrativement.
- Ne "crois" pas. Sois sûr. Techniquement, relationnelement, organisationellement, administrativement.
- Pour être sûr, teste, contrôle.
- Pour être sûr, teste, contrôle.
- N’ai pas peur de te tromper, d’échouer. L’échec est une étape normale vers le succès.
- N’ai pas peur de te tromper, d’échouer. L’échec est une étape normale vers le succès.
- Teste à nouveau. Collabore davantage pour tester davantage.
- Teste à nouveau. Collabore davantage pour tester davantage.
- Ose. Le risque est de se tromper. Voir le commandement 12.
- Ose. Le risque est de se tromper. Voir le commandement 12.
- Sois rigoureux dans ton travail.
- Sois rigoureux dans ton travail.
- Sois investi dans ton cursus : 50 heures par semaine est un minimum. Ta capacité de travail est une valeur. L’école est ouverte 24h/24 et 7j/7.
- Sois investi dans ton cursus : 50 heures par semaine est un minimum. Ta capacité de travail est une valeur. L’école est ouverte 24h/24 et 7j/7.
- Sois régulier dans ton travail. Un jour oui, un jour non, un coup nocturne, un coup diurne... le chaos t’empêche d’avancer.
- Sois régulier dans ton travail. Un jour oui, un jour non, un coup nocturne, un coup diurne... le chaos t’empêche d’avancer.
- Prévois un groupe de travail large et hétérogène pour y trouver facilement des idées neuves et des groupes de projet.
- Prévois un groupe de travail large et hétérogène pour y trouver facilement des idées neuves et des groupes de projet.
- Pour tes collaborations et ton travail en groupe, privilégie des étudiants qui n’ont pas déjà la solution au problème.
- Pour tes collaborations et ton travail en groupe, privilégie des étudiants qui n’ont pas déjà la solution au problème.
- Sois investi dans ton groupe de projet, et ne le laisse pas faire ton travail à ta place.
- Sois investi dans ton groupe de projet, et ne le laisse pas faire ton travail à ta place.
- Ton groupe de projet est solidaire, son succès comme son échec est de la responsabilité de tous, et les conflits se règlent en interne.
- Ton groupe de projet est solidaire, son succès comme son échec est de la responsabilité de tous, et les conflits se règlent en interne.
- Travaille à l’école. Faire du peer-learning, collaborer, cela demande d’être physiquement avec les autres. A distance cela ne fonctionne pas.
- Travaille à l’école. Faire du peer-learning, collaborer, cela demande d’être physiquement avec les autres. A distance cela ne fonctionne pas.
- Implique toi dans les évaluations de tes projets. Elles te permettent de prendre du recul.
- Implique toi dans les évaluations de tes projets. Elles te permettent de prendre du recul.
- Implique toi dans tes évaluations des projets des autres. La qualité de la communauté en dépend.
- Implique toi dans tes évaluations des projets des autres. La qualité de la communauté en dépend.
- Sois juste et teste rigoureusement tes projets comme ceux des autres en évaluation avec tes propres jeux de tests.
- Sois juste et teste rigoureusement tes projets comme ceux des autres en évaluation avec tes propres jeux de tests.
- Joue pleinement le jeu de ta scolarité dans l’état d’esprit demandé, fait tous les exercices et projets demandés.
- Joue pleinement le jeu de ta scolarité dans l’état d’esprit demandé, fait tous les exercices et projets demandés.
- Ne cherche pas des biais et des failles dans le système. Tu vas fausser ta propre formation et ta valeur sur le marché.
- Ne cherche pas des biais et des failles dans le système. Tu vas fausser ta propre formation et ta valeur sur le marché.
- Ne triche pas intentionellement. C’est amoral, cela contredit le commandement 12, et c’est du temps inutilement passé à ne pas développer tes compétences pour faire croire aux autres que tu sais coder alors que ce n’est pas le cas.
- Ne triche pas intentionellement. C’est amoral, cela contredit le commandement 12, et c’est du temps inutilement passé à ne pas développer tes compétences pour faire croire aux autres que tu sais coder alors que ce n’est pas le cas.
- Ne rends pas un projet que tu ne serais pas capable de reproduire seul à huis clos. Même si c’est parfois involontaire, c’est aussi de la triche.
- Ne rends pas un projet que tu ne serais pas capable de reproduire seul à huis clos. Même si c’est parfois involontaire, c’est aussi de la triche.
- C’est pas pour tes parents que tu travailles, ni pour le staff. C’est pour toi.
- C’est pas pour tes parents que tu travailles, ni pour le staff. C’est pour toi.
- Participe à la vie de la communauté, à son épanouissement, et sa qualité en sortie de formation.
- Participe à la vie de la communauté, à son épanouissement, et sa qualité en sortie de formation.
- Aide au respect de ces commandements par la communauté.
- Aide au respect de ces commandements par la communauté.
- Sois bienveillant et empathique vis à vis de tes camarades comme des personnes avec qui tu interagis, échanges, débats.
- Sois bienveillant et empathique vis à vis de tes camarades comme des personnes avec qui tu interagis, échanges, débats.
- N’ai pas peur du monde professionnel.
- N’ai pas peur du monde professionnel.
- Respecte le matériel. Des consignes spécifiques sont données en ce sens.
- Respecte le matériel. Des consignes spécifiques sont données en ce sens.
- Respecte les locaux. Des consignes spécifiques sont données en ce sens.
- Respecte les locaux. Des consignes spécifiques sont données en ce sens.
- Respecte les gens, étudiants, staffs, partenaires, visiteurs.
- Respecte les gens, étudiants, staffs, partenaires, visiteurs.
- Respecte la loi en vigueur dans le pays.
- Respecte la loi en vigueur dans le pays.
- Respecte les lois et consignes en vigueur liées à la consommation d’alcool.
- Respecte les lois et consignes en vigueur liées à la consommation d’alcool.
- Respecte les lois et consignes en vigueur liées à la consommation de tabac, stupéfiants, ou produits assimilés.
- Respecte les lois et consignes en vigueur liées à la consommation de tabac, stupéfiants, ou produits assimilés.
- N’hésite pas à interagir avec le staff, pour parler de tes problèmes, pour remonter des problèmes dans le cursus, pour contribuer au cursus.
- N’hésite pas à interagir avec le staff, pour parler de tes problèmes, pour remonter des problèmes dans le cursus, pour contribuer au cursus.
- Si tu t’interroges ou ne comprends pas nos choix pédagogiques, demande nous. On ne fait généralement rien au hasard.
- Si tu t’interroges ou ne comprends pas nos choix pédagogiques, demande nous. On ne fait généralement rien au hasard.
### Required

4
subjects/compact.en.md

@ -5,9 +5,9 @@
Write a function `Compact` that takes a pointer to a slice of strings as the argument.
This function must:
- Return the number of elements with non-`nil`.
- Return the number of elements with non-`nil`.
- Compact, i.e., delete the elements with `nil` in the slice.
- Compact, i.e., delete the elements with `nil` in the slice.
### Expected functions

6
subjects/compact.fr.md

@ -2,12 +2,12 @@
### Instructions
Écrire une fonction `Compact` qui prend un pointeur sur slice de `strings` comme paramètre.
Écrire une fonction `Compact` qui prend un pointeur sur slice de `string` comme paramètre.
Cette fonction doit:
- Retourner le nombre d'éléments avec des valeurs non-`nil`
- Retourner le nombre d'éléments avec des valeurs non-`nil`
- Comprimer, c.à.d., effacer les éléments qui ont une valeur `nil` dans la slice.
- Comprimer, c.à.d., effacer les éléments qui ont une valeur `nil` dans la slice.
### Fonction attendue

2
subjects/compareprog.en.md

@ -4,7 +4,7 @@
Write a program that behaves like the `Compare` function.
This program prints a number after comparing two `strings` lexicographically.
This program prints a number after comparing two `string` lexicographically.
### Usage :

2
subjects/compareprog.fr.md

@ -4,7 +4,7 @@
Écrire un programme qui se comporte comme la fonction `Compare`.
Ce programme affiche un nombre après avoir comparé deux `strings` lexicalement.
Ce programme affiche un nombre après avoir comparé deux `string` lexicalement.
### Utilisation :

2
subjects/concatparams.en.md

@ -10,7 +10,7 @@ The arguments must be **separated** by a `\n`.
```go
func ConcatParams(args []string) string {
}
```

1
subjects/concatparams.fr.md

@ -10,6 +10,7 @@ Les arguments doivent être **séparés** par un `\n`.
```go
func ConcatParams(args []string) string {
}
```

1
subjects/convertbase.en.md

@ -12,6 +12,7 @@ Negative numbers will not be tested.
```go
func ConvertBase(nbr, baseFrom, baseTo string) string {
}
```

1
subjects/convertbase.fr.md

@ -12,6 +12,7 @@ Les nombres négatifs ne seront pas testés.
```go
func ConvertBase(nbr, baseFrom, baseTo string) string {
}
```

3
subjects/countdown.en.md

@ -2,8 +2,7 @@
### Instructions
Write a program that displays all digits in descending order, followed by a
newline(`'\n'`).
Write a program that displays all digits in descending order, followed by a newline (`'\n'`).
### Usage

2
subjects/countdown.fr.md

@ -2,7 +2,7 @@
### Instructions
Écrire un programme qui affiche les chiffres dans l'ordre décroissant sur une seule ligne, suivi par un newline(`'\n'`).
Écrire un programme qui affiche les chiffres dans l'ordre décroissant sur une seule ligne, suivi par un retour à la ligne (`'\n'`).
### Utilisation

1
subjects/countif.en.md

@ -8,6 +8,7 @@ Write a function `CountIf` that returns the number of elements of a `string` arr
```go
func CountIf(f func(string) bool, tab []string) int {
}
```

1
subjects/countif.fr.md

@ -8,6 +8,7 @@
```go
func CountIf(f func(string) bool, tab []string) int {
}
```

6
subjects/displaya.en.md

@ -3,9 +3,9 @@
### Instructions
Write a program that takes a `string`, and displays the first `a` character it
encounters in it, followed by a newline(`'\n'`). If there are no `a` characters in the
string, the program just writes `a` followed by a newline(`'\n'`). If the number of parameters is not
1, the program displays an `a` followed by a newline(`'\n'`).
encounters in it, followed by a newline (`'\n'`). If there are no `a` characters in the
string, the program just writes `a` followed by a newline (`'\n'`). If the number of parameters is not
1, the program displays an `a` followed by a newline (`'\n'`).
### Usage

2
subjects/displaya.fr.md

@ -2,7 +2,7 @@
### Instructions
Écrire un programme qui prend une `string`, et qui affiche le premier caractère `a` qu'il trouve dedans, suivi par un newline(`'\n'`). Si il n'y a pas de caractère `a` dans la `string`, le programme affiche juste un `a` suivi d'un newline(`'\n'`). Si le nombre de paramètres n'est pas 1, le programme affiche un `a` suivi d'un newline(`'\n'`).
Écrire un programme qui prend une `string`, et qui affiche le premier caractère `a` qu'il trouve dedans, suivi par un retour à la ligne (`'\n'`). Si il n'y a pas de caractère `a` dans la `string`, le programme affiche juste un `a` suivi d'un retour à la ligne (`'\n'`). Si le nombre de paramètres n'est pas 1, le programme affiche un `a` suivi d'un retour à la ligne (`'\n'`).
### Utilisation

8
subjects/displayalpham.en.md

@ -3,13 +3,13 @@
### Instructions
Write a program that displays the alphabet, with even letters in uppercase, and
odd letters in lowercase, followed by a newline(`'\n'`).
odd letters in lowercase, followed by a newline (`'\n'`).
### Usage
```console
student@ubuntu:~/student/displayalpham$ go build
student@ubuntu:~/student/displayalpham$ ./displayalpham | cat -e
student@ubuntu:~/piscine-go/displayalpham$ go build
student@ubuntu:~/piscine-go/displayalpham$ ./displayalpham | cat -e
aBcDeFgHiJkLmNoPqRsTuVwXyZ$
student@ubuntu:~/student/displayalpham$
student@ubuntu:~/piscine-go/displayalpham$
```

8
subjects/displayalpham.fr.md

@ -2,13 +2,13 @@
### Instructions
Écrire un programme qui affiche l'alphabet, avec les lettres paires en majuscule, et les lettres impaires en minuscule, suivi d'un newline(`'\n'`).
Écrire un programme qui affiche l'alphabet, avec les lettres paires en majuscule, et les lettres impaires en minuscule, suivi d'un retour à la ligne (`'\n'`).
### Utilisation
```console
student@ubuntu:~/student/displayalpham$ go build
student@ubuntu:~/student/displayalpham$ ./displayalpham | cat -e
student@ubuntu:~/piscine-go/displayalpham$ go build
student@ubuntu:~/piscine-go/displayalpham$ ./displayalpham | cat -e
aBcDeFgHiJkLmNoPqRsTuVwXyZ$
student@ubuntu:~/student/displayalpham$
student@ubuntu:~/piscine-go/displayalpham$
```

8
subjects/displayalrevm.en.md

@ -3,13 +3,13 @@
### Instructions
Write a program that displays the alphabet in reverse, with even letters in
uppercase, and odd letters in lowercase, followed by a newline(`'\n'`).
uppercase, and odd letters in lowercase, followed by a newline (`'\n'`).
### Usage
```console
student@ubuntu:~/student/displayalrevm$ go build
student@ubuntu:~/student/displayalrevm$ ./displayalrevm | cat -e
student@ubuntu:~/piscine-go/displayalrevm$ go build
student@ubuntu:~/piscine-go/displayalrevm$ ./displayalrevm | cat -e
zYxWvUtSrQpOnMlKjIhGfEdCbA$
student@ubuntu:~/student/displayalrevm$
student@ubuntu:~/piscine-go/displayalrevm$
```

8
subjects/displayalrevm.fr.md

@ -2,13 +2,13 @@
### Instructions
Écrire un programme qui affiche l'alphabet à l'envers, avec les lettres paires en majuscule, et les lettres impaires en minuscule, suivi d'un newline(`'\n'`).
Écrire un programme qui affiche l'alphabet à l'envers, avec les lettres paires en majuscule, et les lettres impaires en minuscule, suivi d'un retour à la ligne (`'\n'`).
### Utilisation
```console
student@ubuntu:~/student/displayalrevm$ go build
student@ubuntu:~/student/displayalrevm$ ./displayalrevm | cat -e
student@ubuntu:~/piscine-go/displayalrevm$ go build
student@ubuntu:~/piscine-go/displayalrevm$ ./displayalrevm | cat -e
zYxWvUtSrQpOnMlKjIhGfEdCbA$
student@ubuntu:~/student/displayalrevm$
student@ubuntu:~/piscine-go/displayalrevm$
```

18
subjects/displayfile.en.md

@ -4,22 +4,22 @@
Write a program that displays, on the standard output, the content of a file given as argument.
- Create a file `quest8.txt` and write into it the sentence `Almost there!!`
- Create a file `quest8.txt` and write into it the sentence `Almost there!!`
- The argument of the program in this case should be, `quest8.txt`.
- The argument of the program in this case should be, `quest8.txt`.
- In case of error the program should print one the below messages accordingly:
- `File name missing`.
- `Too many arguments`.
- In case of error the program should print one the below messages accordingly:
- `File name missing`.
- `Too many arguments`.
### Usage :
```console
student@ubuntu:~/student/displayfile$ go build
student@ubuntu:~/student/displayfile$ ./displayfile
student@ubuntu:~/piscine-go/displayfile$ go build
student@ubuntu:~/piscine-go/displayfile$ ./displayfile
File name missing
student@ubuntu:~/student/displayfile$ ./displayfile quest8.txt main.go
student@ubuntu:~/piscine-go/displayfile$ ./displayfile quest8.txt main.go
Too many arguments
student@ubuntu:~/student/displayfile$ ./displayfile quest8.txt
student@ubuntu:~/piscine-go/displayfile$ ./displayfile quest8.txt
Almost there!!
```

18
subjects/displayfile.fr.md

@ -4,22 +4,22 @@
Écrire un programme qui affiche, sur la sortie standard, le contenu d'un fichier donné en argument.
- Créer un fichier `quest8.txt` et écrire dedans la phrase `Almost there!!`
- Créer un fichier `quest8.txt` et écrire dedans la phrase `Almost there!!`
- L'argument pour ce programme sera, dans ce cas, `quest8.txt`.
- L'argument pour ce programme sera, dans ce cas, `quest8.txt`.
- En cas d'erreur le programme doit afficher un des deux messages suivants de manière approprié:
- `File name missing`.
- `Too many arguments`.
- En cas d'erreur le programme doit afficher un des deux messages suivants de manière approprié:
- `File name missing`.
- `Too many arguments`.
### Utilisation:
```console
student@ubuntu:~/student/test$ go build
student@ubuntu:~/student/test$ ./test
student@ubuntu:~/piscine-go/test$ go build
student@ubuntu:~/piscine-go/test$ ./test
File name missing
student@ubuntu:~/student/test$ ./test quest8.txt main.go
student@ubuntu:~/piscine-go/test$ ./test quest8.txt main.go
Too many arguments
student@ubuntu:~/student/test$ ./test quest8.txt
student@ubuntu:~/piscine-go/test$ ./test quest8.txt
Almost there!!
```

2
subjects/displayfirstparam.en.md

@ -2,7 +2,7 @@
### Instructions
Write a program that takes `strings` as arguments, and displays its first argument.
Write a program that takes `string` as arguments, and displays its first argument.
### Usage

2
subjects/displayfirstparam.fr.md

@ -2,7 +2,7 @@
### Instructions
Écrire un programme qui prend des `strings` comme arguments, et qui affiche le premier argument.
Écrire un programme qui prend des `string` comme arguments, et qui affiche le premier argument.
### Utilisation

2
subjects/displaylastparam.en.md

@ -2,7 +2,7 @@
### Instructions
Write a program that takes `strings` as arguments, and displays its last argument.
Write a program that takes `string` as arguments, and displays its last argument.
### Expected output

2
subjects/displaylastparam.fr.md

@ -2,7 +2,7 @@
### Instructions
Écrire un programme qui prend des `strings` comme arguments, et qui affiche le dernier argument.
Écrire un programme qui prend des `string` comme arguments, et qui affiche le dernier argument.
### Expected output

5
subjects/displayz.en.md

@ -2,10 +2,7 @@
### Instructions
Write a program that takes a `string`, and displays the first `z` character it
encounters in it, followed by a newline(`'\n'`). If there are no `z` characters in the
string, the program just writes `z` followed by a newline(`'\n'`). If the number of parameters is not
1, the program displays an `z` followed by a newline(`'\n'`).
Write a program that takes a `string`, and displays the first `z` character it encounters in it, followed by a newline (`'\n'`). If there are no `z` characters in the string, the program just writes `z` followed by a newline (`'\n'`). If the number of parameters is not 1, the program displays an `z` followed by a newline (`'\n'`).
### Usage

2
subjects/displayz.fr.md

@ -2,7 +2,7 @@
### Instructions
Écrire un programme qui prend une `string`, et qui affiche le premier caractère `z` qu'il trouve dedans, suivi par un newline(`'\n'`). Si il n'y a pas de caractère `z` dans la `string`, le programme affiche juste un `z` suivi d'un newline(`'\n'`). Si le nombre de paramètres n'est pas 1, le programme affiche un `z` suivi d'un newline(`'\n'`).
Écrire un programme qui prend une `string`, et qui affiche le premier caractère `z` qu'il trouve dedans, suivi par un retour à la ligne (`'\n'`). Si il n'y a pas de caractère `z` dans la `string`, le programme affiche juste un `z` suivi d'un retour à la ligne (`'\n'`). Si le nombre de paramètres n'est pas 1, le programme affiche un `z` suivi d'un retour à la ligne (`'\n'`).
### Utilisation

8
subjects/divmod.en.md

@ -2,7 +2,7 @@
### Instructions
- Write a function that will be formatted as below.
- Write a function that will be formatted as below.
### Expected function
@ -12,9 +12,9 @@ func DivMod(a int, b int, div *int, mod *int) {
}
```
- This function will divide the int **a** and **b**.
- The result of this division will be stored in the int pointed by **div**.
- The remainder of this division will be stored in the int pointed by **mod**.
- This function will divide the int **a** and **b**.
- The result of this division will be stored in the int pointed by **div**.
- The remainder of this division will be stored in the int pointed by **mod**.
### Usage

8
subjects/divmod.fr.md

@ -2,7 +2,7 @@
### Instructions
- Écrire une fonction qui aura le format ci-dessous.
- Écrire une fonction qui aura le format ci-dessous.
### Fonction attendue
@ -12,9 +12,9 @@ func DivMod(a int, b int, div *int, mod *int) {
}
```
- Cette fonction divisera les int **a** et **b**.
- Le résultat de la division sera stocké dans l'int pointé par **div**.
- Le reste de cette division sera stocké dans l'int pointé par **mod**.
- Cette fonction divisera les int **a** et **b**.
- Le résultat de la division sera stocké dans l'int pointé par **div**.
- Le reste de cette division sera stocké dans l'int pointé par **mod**.
### Utilisation

6
subjects/doop.en.md

@ -6,9 +6,9 @@ Write a [program](TODO-LINK) that is called `doop`.
The program has to be used with three arguments:
- A value
- An operator
- Another value
- A value
- An operator
- Another value
In case of an invalid operator the programs prints `0`.

6
subjects/doop.fr.md

@ -6,9 +6,9 @@
Le programme doit être utilisé avec trois arguments:
- Une valeur
- Un opérateur
- Une autre valeur
- Une valeur
- Un opérateur
- Une autre valeur
En cas d'opérateur invalide le programme affiche `0`.

8
subjects/enigma.en.md

@ -6,10 +6,10 @@ Write a function called `Enigma` that receives pointers to as arguments and move
This function will put :
- `a` into `c`.
- `c` into `d`.
- `d` into `b`.
- `b` into `a`.
- `a` into `c`.
- `c` into `d`.
- `d` into `b`.
- `b` into `a`.
### Expected function

8
subjects/enigma.fr.md

@ -5,10 +5,10 @@
Écrire une fonction nommé `Enigma` qui prends des pointeurs comme arguments et qui interchanges leurs valeurs pour les cacher.
Cette fonction déplacera :
- `a` dans `c`.
- `c` dans `d`.
- `d` dans `b`.
- `b` dans `a`.
- `a` dans `c`.
- `c` dans `d`.
- `d` dans `b`.
- `b` dans `a`.
### Fonction attendue

14
subjects/expandstr.en.md

@ -5,7 +5,7 @@
Write a program that takes a `string` and displays it with exactly three spaces
between each word, with no spaces or tabs at either the beginning nor the end.
The `string` will be followed by a newline(`'\n'`).
The `string` will be followed by a newline (`'\n'`).
A word is a sequence of alphanumerical characters.
@ -15,14 +15,14 @@ a newline.
### Usage
```console
student@ubuntu:~/student/expandstr$ go build
student@ubuntu:~/student/expandstr$ ./expandstr "you see it's easy to display the same thing" | cat -e
student@ubuntu:~/piscine-go/expandstr$ go build
student@ubuntu:~/piscine-go/expandstr$ ./expandstr "you see it's easy to display the same thing" | cat -e
you see it's easy to display the same thing$
student@ubuntu:~/student/expandstr$ ./expandstr " only it's harder " | cat -e
student@ubuntu:~/piscine-go/expandstr$ ./expandstr " only it's harder " | cat -e
only it's harder$
student@ubuntu:~/student/expandstr$ ./expandstr " how funny it is" "did you hear, Mathilde ?" | cat -e
student@ubuntu:~/piscine-go/expandstr$ ./expandstr " how funny it is" "did you hear, Mathilde ?" | cat -e
$
student@ubuntu:~/student/expandstr$ ./expandstr | cat -e
student@ubuntu:~/piscine-go/expandstr$ ./expandstr | cat -e
$
student@ubuntu:~/student/expandstr$
student@ubuntu:~/piscine-go/expandstr$
```

16
subjects/expandstr.fr.md

@ -4,23 +4,23 @@
Écrire un programme qui prend une `string` et qui l'affiche avec exactement 3 espaces entre chaque mot, sans espace ou tabulation ni au début ni à la fin.
La `string` sera suivie d'un newline(`'\n'`).
La `string` sera suivie d'un retour à la ligne (`'\n'`).
Un mot est une suite de caractères alphanumériques.
Si le nombre de paramètres n'est pas 1, ou si il n'y a pas de mot, le programme affiche un newline.
Si le nombre de paramètres n'est pas 1, ou si il n'y a pas de mot, le programme affiche un retour à la ligne.
### Utilisation
```console
student@ubuntu:~/student/expandstr$ go build
student@ubuntu:~/student/expandstr$ ./expandstr "you see it's easy to display the same thing" | cat -e
student@ubuntu:~/piscine-go/expandstr$ go build
student@ubuntu:~/piscine-go/expandstr$ ./expandstr "you see it's easy to display the same thing" | cat -e
you see it's easy to display the same thing$
student@ubuntu:~/student/expandstr$ ./expandstr " only it's harder " | cat -e
student@ubuntu:~/piscine-go/expandstr$ ./expandstr " only it's harder " | cat -e
only it's harder$
student@ubuntu:~/student/expandstr$ ./expandstr " how funny it is" "did you hear, Mathilde ?" | cat -e
student@ubuntu:~/piscine-go/expandstr$ ./expandstr " how funny it is" "did you hear, Mathilde ?" | cat -e
$
student@ubuntu:~/student/expandstr$ ./expandstr | cat -e
student@ubuntu:~/piscine-go/expandstr$ ./expandstr | cat -e
$
student@ubuntu:~/student/expandstr$
student@ubuntu:~/piscine-go/expandstr$
```

1
subjects/fibonacci.fr.md

@ -47,5 +47,4 @@ student@ubuntu:~/piscine-go/test$go build
student@ubuntu:~/piscine-go/test$ ./test
3
student@ubuntu:~/piscine-go/test$
```

8
subjects/firstword.en.md

@ -2,13 +2,13 @@
### Instructions
Write a program that takes a `string` and displays its first word, followed by a newline(`'\n'`).
Write a program that takes a `string` and displays its first word, followed by a newline (`'\n'`).
- A word is a section of `string` delimited by spaces or by the start/end of the `string`.
- A word is a section of `string` delimited by spaces or by the start/end of the `string`.
- The output will be followed by a newline(`'\n'`).
- The output will be followed by a newline (`'\n'`).
- If the number of parameters is not 1, or if there are no words, the program displays a newline(`'\n'`).
- If the number of parameters is not 1, or if there are no words, the program displays a newline (`'\n'`).
### Usage

Some files were not shown because too many files changed in this diff diff.show_more

Loading…
Cancel
Save