Concepts fondamentaux de la programmation

Pour presque tous les langages de programmation, que ce soit Java, Python ou Blocks, il existe des concepts de codage qui sont transférables d’un langage à l’autre. Ces idées sont fondamentales lors de l’apprentissage de la programmation et devraient s’appliquer à FTC® et au-delà.

Cette section s’adresse principalement aux personnes ayant une expérience limitée de Java. Toutefois, même si vous êtes plus expérimenté, il peut être utile de parcourir cette section, car vous pourriez y trouver des concepts qui ne vous ont pas encore été présentés.

Les exemples seront principalement en Java, où // indique un commentaire que le programme ignore et qui est utilisé pour que les gens puissent le lire.

int number; // Declaring that number will contain an integer.
number = 5; // Setting a value so that the variable holds something.

int secondNumber = 6; // Doing both above.

int total = number + secondNumber; // Math.
System.out.println(total); // Printing, it will show up as 11.

Questions exploratoires spécifiques à Java

  • Si je n’ai pas défini de valeur pour le nombre et que je l’imprime ensuite, qu’est-ce qui s’imprimerait ?

  • Quelles autres opérations puis-je effectuer avec number et secondNumber ?

  • Puis-je attribuer une décimale à un nombre ? Si ce n’est pas le cas, que se passe-t-il ?

  • Qu’est-ce que System.out.println(); ?

  • Supprimez un caractère dans le code. Se souvenir de l’erreur (s’il y en a une), puis l’annuler. Supprimez une autre partie. Combien d’erreurs différentes pouvez-vous obtenir ?

Il existe différents types de variables

  • Nombres (entiers, flottants, doubles)

  • Chaînes (texte) ou caractères

  • Et bien d’autres choses encore en fonction du langage (ex : tableaux).

  • Ils permettent au programme de savoir ce qu’il doit faire avec une variable.

String coolName = "Gluten Free";
String restOfSentence = " is epic.";

// Prints out the sentence by combining the strings, unlike adding if they // were integers
System.out.println(coolName + restOfSentence);

// Fun fact: Using + to add strings is called String Concatenation

Questions exploratoires spécifiques à Java

  • Remplacez le texte de coolName par quelque chose d’autre. Votre nom, un numéro de téléphone, votre anime préféré. Qu’en est-il des emotes et des copypastas ? Qu’en est-il des caractères dans d’autres langues ?

  • Essayez d’ajouter un nombre et une chaîne de caractères, que se passe-t-il ?

  • Est-il possible d’additionner plusieurs chaînes de caractères et plusieurs nombres ?

Structures de contrôle importantes

Veillez à vous familiariser avec les structures de contrôle de base (instructions if/else, boucles for, boucles while et boucles for-each). Ces structures de contrôle sont de loin les plus couramment rencontrées, et il est donc extrêmement important de se familiariser avec ces principes (non seulement pour le FTC, mais aussi pour la programmation en général). Cependant, il existe quelques structures de contrôle beaucoup moins courantes qui sont extrêmement utiles en FTC, à savoir Machines à états finis.

Structures de données (tableaux)

Les structures de données sont une méthode d’organisation et de stockage de grandes quantités de données. Il existe de nombreux types de structures de données qui diffèrent principalement par les relations entre les points de données, et nous vous recommandons de les étudier. Nous n’en aborderons que quelques-unes ici.

Arrays

Les tableaux constituent la structure de données la plus simple et la plus élémentaire. Lorsqu’un tableau est initialisé, sa taille doit être définie et elle ne peut pas être modifiée.

Si vous souhaitez étendre un tableau, il faut en créer un nouveau et copier toutes les anciennes données. Les éléments d’un tableau sont stockés les uns à côté des autres dans la mémoire, de sorte que lorsqu’on y accède, le nombre auquel on veut accéder multiplié par le nombre de bits de l’objet dans le tableau est ajouté à l’adresse de départ, et c’est à partir de là que l’on accède aux données.

Cela signifie que les tableaux sont incroyablement efficaces pour lire des données dans un ordre non linéaire.

ArrayList

Object Oriented Programming in Java