Remarque : Les cours pour ce langage ne sont disponibles que jusqu'au chapitre 4, « Lecture de l'entrée ». Les corrections sont toutefois toujours fournies.
Remarque : Les cours pour ce langage ne sont disponibles que jusqu'au chapitre 4, « Lecture de l'entrée ». Les corrections sont toutefois toujours fournies.
Remarque : Pour un débutant souhaitant apprendre Java, nous conseillons fortement de commencer par JavaScool, plus facile à apprendre, bien que fortement similaire.
On a vu qu'il y avait un opérateur permettant de mettre bout-à-bout deux chaînes de caractères. Il y a l'équivalent pour les tableaux : la fonction "Array.append t1 t2"
permet de concaténer deux tableaux de même type (pour que cela ait un sens). Elle retourne un nouveau tableau, dont la longueur est la somme des longueurs de t1
et de t2
.
[| t 1 |] [| t 2 |] ---------------------------------------------------------- [| r e s u l t a t |]
Par exemple si t1 = [| 3; 5 |]
et t2 = [| 4; 9; 0 |]
, alors Array.append t1 t2
retournera le tableau [| 3; 5; 4; 9; 0 |]
.
C'est un très bon exercice que d'essayer de recoder cette fonction soit même. Ecrivez donc une fonction concatene_tab
qui fait la même chose que Array.append
. Pouvez-vous en deviner le type de cette fonction ?
Indication pour le code : pour créer le tableau que l'on retourne, il faut en donner une valeur d'initialisation. Pour cette exercice, on peut essayer de faire un code qui traite tous les cas ou supposé que la valeur est int.
Limites de temps et de mémoire (Python)
- Temps : 4 s sur une machine à 1 GHz.
- Mémoire : 1 000 ko.
Commentaires
let read_int () = Scanf .scanf " %d" ( fun x -> x);; let read_array() = let length = read_int () in let res = Array .make length 0 in for i = 0 to ( pred length) do res.(i) <- read_int () ; done ; res;; let print_array t = print_int ( Array .length t) ; print_newline () ; for i = 0 to pred ( Array .length t) do print_int t.(i) ; print_string " " done ;; let concatene_tab t1 t2 = (*à compléter*) in let t = read_array () in print_array ( concatene_tab t (read_array ())) |
Vous devez être connecté(e) pour résoudre ce problème.
L'inscription ne prendra qu'une minute et vous pourrez alors résoudre les exercices puis faire valider automatiquement vos solutions.
Une fois identifié(e), vous pourrez demander sur cette page des conseils pour résoudre le sujet ou demander de l'aide sur le forum d'entraide.
Lorsque vous serez connecté(e), vous pourrez voir vos actions ici.
Une correction détaillée sera disponible lorsque vous aurez résolu le sujet.
Correction en cours de chargement…