C’est CS50x

Démarrer

CS50 IDE est un « environnement de développement intégré » basé sur le web qui vous permet de programmer « dans le nuage », sans installer aucun logiciel localement. En effet, CS50 IDE vous fournit votre propre « espace de travail » (c’est-à-dire un espace de stockage) dans lequel vous pouvez enregistrer vos propres fichiers et dossiers (alias répertoires).

Logging In

Rendez-vous sur ide.cs50.io et cliquez sur « Sign in with GitHub » pour accéder à votre CS50 IDE. Une fois votre IDE chargé, vous devriez voir que (par défaut) il est divisé en trois parties. En haut de l’IDE CS50 se trouve votre « éditeur de texte », où vous écrirez tous vos programmes. En bas, vous trouverez une « fenêtre de terminal » (bleu clair, par défaut), une interface de ligne de commande (CLI) qui vous permet d’explorer les fichiers et les répertoires de votre espace de travail, de compiler du code, d’exécuter des programmes et même d’installer de nouveaux logiciels. Et à gauche se trouve votre « navigateur de fichiers », qui vous montre tous les fichiers et dossiers actuellement dans votre IDE.

Débutez en cliquant à l’intérieur de votre fenêtre de terminal. Vous devriez constater que son « invite » ressemble à celle ci-dessous.

~/ $

Cliquez à l’intérieur de cette fenêtre de terminal, puis tapez

mkdir ~/pset1/

suivi de la touche Entrée afin de créer un répertoire (c’est-à-dire un dossier) appelé pset1 dans votre répertoire personnel. Faites attention à ne pas oublier l’espace entre mkdir et ~/pset1 ou tout autre caractère d’ailleurs ! Gardez à l’esprit que ~ désigne votre répertoire personnel et que ~/pset1 désigne un répertoire appelé pset1 dans ~.

À partir de maintenant, exécuter (c’est-à-dire lancer) une commande signifie la taper dans une fenêtre de terminal et appuyer sur Entrée. Les commandes sont « sensibles à la casse », alors assurez-vous de ne pas taper en majuscules quand vous voulez dire en minuscules ou vice versa.

Maintenant exécutez

cd ~/pset1/

pour vous déplacer dans (c’est-à-dire ouvrir) ce répertoire. Votre invite devrait maintenant ressembler à ce qui suit.

~/pset1/ $

Si ce n’est pas le cas, revenez sur vos pas et voyez si vous pouvez déterminer où vous vous êtes trompé.

Maintenant, exécutez

mkdir ~/pset1/hello

pour créer un nouveau répertoire appelé hello à l’intérieur de votre répertoire pset1. Puis exécutez

cd ~/pset1/hello

pour vous déplacer dans ce répertoire.

Devons-nous vous faire écrire votre premier programme ? Dans le menu Fichier, cliquez sur Nouveau fichier, et enregistrez-le (comme via l’option Enregistrer du menu Fichier) sous le nom de hello.c à l’intérieur de votre répertoire ~/pset1/hello. Procédez à l’écriture de votre premier programme en tapant précisément ces lignes dans le fichier :

#include <stdio.h>int main(void){ printf("hello, world\n");}

Notez comment CS50 IDE ajoute une « coloration syntaxique » (c’est-à-dire une couleur) au fur et à mesure que vous tapez, bien que le choix de couleurs de CS50 IDE puisse différer de celui de cet ensemble de problèmes. Ces couleurs ne sont pas réellement enregistrées dans le fichier lui-même ; elles sont simplement ajoutées par CS50 IDE pour faire ressortir certaines syntaxes. Si vous n’aviez pas enregistré le fichier en tant que hello.c dès le départ, CS50 IDE ne saurait pas (par l’extension du nom de fichier) que vous écrivez du code C, auquel cas ces couleurs seraient absentes.

Listing Files

Puis, dans votre fenêtre de terminal, immédiatement à droite du prompt (~/pset1/hello/ $), exécutez

ls

Vous devriez voir juste hello.c ? C’est parce que vous venez de lister les fichiers de votre dossier hello. En particulier, vous avez exécuté (c’est-à-dire lancé) une commande appelée ls, qui est un raccourci pour « liste ». (C’est une commande si fréquemment utilisée que ses auteurs l’ont appelée simplement ls pour économiser les frappes de clavier). Vous comprenez ?

Compilation de programmes

Maintenant, avant de pouvoir exécuter le programme hello.c, rappelez-vous que nous devons le compiler avec un compilateur (par exemple, clang), le traduisant du code source en code machine (c’est-à-dire des zéros et des uns). Exécutez la commande ci-dessous pour faire cela:

clang hello.c

Et puis exécutez celle-ci à nouveau:

ls

Cette fois, vous devriez voir non seulement hello.c mais aussi a.out listés ? (Vous pouvez voir la même chose graphiquement si vous cliquez à nouveau sur cette icône de dossier.) C’est parce que clang a traduit le code source dans hello.c en code machine dans a.out, qui se trouve être l’abréviation de « sortie assembleur », mais nous en reparlerons une autre fois.

Maintenant, exécutez le programme en exécutant ce qui suit.

./a.out

Bonjour, monde, en effet !

Nom des programmes

Maintenant, a.out n’est pas le nom le plus convivial pour un programme. Compilons à nouveau hello.c, en sauvegardant cette fois le code machine dans un fichier appelé, de manière plus appropriée, hello. Exécutez le suivant.

clang -o hello hello.c

Faites attention à ne pas négliger un seul de ces espaces là dedans ! Puis exécutez à nouveau celle-ci :

ls

Vous devriez maintenant voir non seulement hello.c (et a.out d’avant) mais aussi hello listé aussi ? C’est parce que -o est un argument de ligne de commande, parfois connu comme un drapeau ou un commutateur, qui indique à clang de sortir (d’où le o) un fichier appelé hello. Exécutez la commande ci-dessous pour essayer le programme nouvellement nommé.

./hello

Bonjour à nouveau!

Faire les choses plus facilement

Rappellez-vous que nous pouvons automatiser le processus d’exécution de clang, en laissant make comprendre comment le faire pour nous, nous épargnant ainsi quelques frappes au clavier. Exécutez ce qui suit pour compiler ce programme une dernière fois.

make hello

Vous devriez voir que make exécute clang avec encore plus d’arguments de ligne de commande pour vous ? Plus sur ceux-ci, aussi, une autre fois!

Maintenant exécutez le programme lui-même une dernière fois en exécutant ce qui suit.

./hello

Phew!

Getting User Input

Il suffit de dire que peu importe comment vous compilez ou exécutez ce programme, il n’imprime jamais que hello, world. Personnalisons-le un peu, comme nous l’avons fait en classe.

Modifiez ce programme de telle sorte qu’il demande d’abord à l’utilisateur son nom, puis imprime hello, so-and-so, où so-and-so est son nom réel.

Comme précédemment, assurez-vous de compiler votre programme avec :

make hello

Et assurez-vous d’exécuter votre programme, en le testant plusieurs fois avec différentes entrées, avec :

./hello

Walkthrough

Hints

Vous ne vous souvenez pas comment demander à l’utilisateur son nom ?

Rappellez-vous que vous pouvez utiliser get_string comme suit, en stockant sa valeur de retour dans une variable appelée name de type string.

string name = get_string("What is your name?\n");

Vous ne vous souvenez pas comment formater une chaîne de caractères ?

Vous ne vous souvenez pas comment joindre (c’est-à-dire, concaténer) le nom de l’utilisateur avec un message d’accueil ? Rappelez-vous que vous pouvez utiliser printf non seulement pour imprimer, mais aussi pour formater une chaîne de caractères (d’où le f dans printf), comme dans l’exemple ci-dessous, où name est un string.

printf("hello, %s\n", name);

Utilisation d’un identificateur non déclaré?

En regardant l’exemple ci-dessous, peut-être d’autres erreurs ?

error: use of undeclared identifier 'string'; did you mean 'stdin'?

Rappellez-vous que, pour utiliser get_string, vous devez inclure cs50.h (dans lequel get_string est déclaré) au sommet d’un fichier, comme avec:

#include <cs50.h>

Comment tester votre code

Exécutez ce qui suit pour évaluer la justesse de votre code utilisant check50. Mais assurez-vous de le compiler et de le tester vous-même également !

check50 cs50/problems/2020/x/hello

Exécutez ce qui suit pour évaluer le style de votre code en utilisant style50.

style50 hello.c

Comment soumettre

Exécutez ce qui suit, en vous connectant avec votre nom d’utilisateur et votre mot de passe GitHub lorsque vous y êtes invité. Par sécurité, vous verrez des astérisques (*) à la place des caractères réels de votre mot de passe.

submit50 cs50/problems/2020/x/hello

.

Laisser un commentaire