This shows you the differences between two versions of the page.
alf:laboratoare:00 [2021/02/28 19:02] diana.ghindaoanu [Excercices] |
alf:laboratoare:00 [2022/02/27 17:59] (current) diana.ghindaoanu |
||
---|---|---|---|
Line 12: | Line 12: | ||
Pour créer un nouveau projet en Visual Studio Code, on va procéder de la manière suivante: | Pour créer un nouveau projet en Visual Studio Code, on va procéder de la manière suivante: | ||
* Créez un dossier **TP0** sur votre Desktop. C'est ici que vous allez placer tous les fichiers où vous allez résoudre les exercices | * Créez un dossier **TP0** sur votre Desktop. C'est ici que vous allez placer tous les fichiers où vous allez résoudre les exercices | ||
- | * Entrez en VSCode, appuyez sur **File** -> **Open Folder...** et sélectionnez le dossier que vous venez de créer | + | * Entrez en VSCode, appuyez sur **File** -> **Open Folder...** et sélectionnez le dossier que vous venez de créer |
* Pour créer un nouveau dossier, vous devez appuyer sur le bouton indiqué par la flèche rouge | * Pour créer un nouveau dossier, vous devez appuyer sur le bouton indiqué par la flèche rouge | ||
* Pour créer un nouveau fichier, vous devez appuyer sur le bouton indiqué par la flèche verte | * Pour créer un nouveau fichier, vous devez appuyer sur le bouton indiqué par la flèche verte | ||
Line 47: | Line 47: | ||
<note>Si vous utilisez Linux en tant que systeme d'exploitation, vous devez ajouter ''sudo'' devant la commande précédente.</note> | <note>Si vous utilisez Linux en tant que systeme d'exploitation, vous devez ajouter ''sudo'' devant la commande précédente.</note> | ||
- | ===== Setup nouveau projet ===== | + | ===== Configuration nouveau projet ===== |
- Créez un nouveau dossier | - Créez un nouveau dossier | ||
- | - On doit créer un fichier nommé //package.json//. Pour ne pas le créer et saisir les données mannuellement, il est recommandé d'utiliser le gestionnaire de paquets //npm//. Dans le terminal, introduisez la commande ''npm init''. L'utilitaire va vous demander de fournir des informations sur le nouveau projet afin de remplir certains champs. Il faut tout simplement appuyer sur la touche //Enter// pour associer les valeurs par défaut. | + | - On doit créer un fichier nommé //package.json//, alors tapez la commande ''npm init'' dans le terminal. L'utilitaire va vous demander de fournir des informations sur le nouveau projet afin de remplir certains champs. Il faut tout simplement appuyer sur la touche //Enter// pour associer les valeurs par défaut. |
- | - On doit créer aussi un fichier de configuration pour TypeScript, //tsconfig.json//. La commande à exécuter dans le terminal est ''tsc --init''. | + | - On doit créer aussi un fichier de configuration pour TypeScript, //tsconfig.json//. La commande à exécuter dans le terminal est ''tsc %%--%%init''. |
- A l'aide de l'interface graphique de Visual Studio Code, créez un nouveau fichier **index.ts** | - A l'aide de l'interface graphique de Visual Studio Code, créez un nouveau fichier **index.ts** | ||
- | - Dans le Terminal, exécutez la commande ''tsc index.ts''. Cela générera le fichier //.js// correspondant. Ce fichier ne doit pas etre modifié, il sera utilisé seulement pour la compilation, car en reste on va travailler seulement avec les fichiers TypeScript | + | - Dans le Terminal, exécutez la commande ''tsc index.ts''. Cela générera le fichier //.js// correspondant. Ce fichier **ne doit pas entre modifié**, il sera utilisé seulement pour la compilation, car en reste on va travailler seulement avec les fichiers TypeScript |
- Pour exécuter le programme, saisissez la commande ''node index.js''. | - Pour exécuter le programme, saisissez la commande ''node index.js''. | ||
Line 185: | Line 185: | ||
</code> | </code> | ||
- | <hidden> | ||
- | Ar trebui sa mearga cu import nume from "nume"; Daca nu merge, atunci sa pune import * as nume from "nume"; | ||
- | |||
- | Modulele mai vechi nu merg asa, cele noiu ar trebui sa mearga. | ||
- | </hidden> | ||
Line 378: | Line 373: | ||
===== Excercices ===== | ===== Excercices ===== | ||
- | - Installez Node JS 14, Visual Studio Code et TypeScript. (**1p**) | + | - Ecrivez un programme qui affiche sur l'écran: |
- | - Faites un nouveau projet en Node JS qui s'appelle //first_typescript_project//. | + | * Votre nom et prénom en utilisant l'opération de concaténation **(0.2p)** |
- | - Faites un nouveau directoire //first_typescript_project//. (**0.3p**) | + | * La date d'aujourd'hui en format ISO 8601, en utilisant les objets //JavaScript Date//. **(0.4p)** |
- | - Dans le nouveau directoire, créez un fichier //index.ts// (**0.3p**) | + | * La date et l'heure en Paris, en utilisant le module //moment-timezone//. **(0.4p)** |
- | - Entrez dans le directoire et utilisez la commande //npm init//, ensuite la commande //tsc --init//. Qu'est-ce qui se passe? (**0.4p**) | + | - A l'aide du module ''http'' et de l'API gratuit de [[https://alexwohlbruck.github.io/cat-facts/docs/|Cat Facts]], créez une requête de type //GET//. Vous devez afficher sur l'écran le message contenu dans le champ ''text'' pour l'objet ayant l'id //"58e008780aac31001185ed05"//. **(1.5p)** |
- | - Ecrivez un programme qui affiche sur l'écran votre nom et prénom, en utilisant l'opération de concaténation. (**0.5p**) | + | - Soit la variable ''const numbers = [1, 2, 3, 4];''. Créez un programme qui affiche chaque élément de la liste //numbers// après une seconde. Indice: utilisez de module ''timers''. **(1p)** |
- | - Faites un nouveau projet qui s'appelle //systeminfo//. Inspectez la documentation du module [[https://nodejs.org/api/os.html|os]] et utilisez-le pour afficher les données suivantes (**Attention!** L'installation du module n'est pas nécessaire, il suffit d'importer le module dans le projet. N'oubliez pas d'installer les types de node avec ''npm install ---save-dev @types/node''.): | + | - Faites un nouveau projet qui s'appelle //systeminfo//. Inspectez la documentation du module [[https://nodejs.org/api/os.html|os]] et utilisez-le pour afficher les données suivantes (**Attention!** L'installation du module n'est pas nécessaire, il suffit d'importer le module dans le projet): |
- le repertoire de base pour l'utilisateur actuel(home directory) (**0.3p**) | - le repertoire de base pour l'utilisateur actuel(home directory) (**0.3p**) | ||
- | - le le nom d'hôte du système d'exploitation (**0.3p**) | + | - la disponibilité du système (uptime) (**0.3p**) |
- | - la mémoire disponible en kB (**0.4p**) | + | - la mémoire disponible en MB (**0.4p**) |
- | - Déclarez une variable pour la mémoire en kB, une pour la mémoire en MB (nombres entièrs, 1KB = 1024B, 1MB = 1024KB), une pour le repertoire de base et une avec l'endianité du processeur. Ajoutez ces variables dans un string, avec des espaces entre eux. Affichez le string sur l'écran. (**1p**) | + | - A l'aide des modules ''fs'' et ''os'', écrivez dans le fichier //os.info// toutes les informations suivantes: (**1p**) |
- | - Ecrivez dans le fichier //os.info// toutes les informations de l'exercice précédent. (**0.5p**) | + | - la mémoire disponible en KB |
- | - Installez le module //chalk//, en utilisant //npm//. Le module doit être ajouté automatiquement en //package.json//. (**0.5p**) | + | - le type du système d'exploitation |
- | - Affichez toutes les variables de l'exercice 4 avec des couleurs différentes, en utilisant le module chalk. (**0.5p**) | + | - la version du noyau |
- | - Copiez les suivants morceaux de code dans un nouveau fichier //.ts// et corrigez les erreurs: | + | - les données sur chaque cœur de processeur logique |
- | - <code javascript>const alf_const: string = "This is my first ALF lab!"; | + | - Installez le module //chalk// (version 4.1.0), en utilisant //npm//, de sorte que le module soit ajouté automatiquement en //package.json//. Affichez toutes les variables de l'exercice précédent avec des couleurs différentes, en utilisant le module chalk. (**1p**) |
- | alf_const = "This is not correct"; | + | - Stockez un nombre quelconque dans une variable. Utilisez la boucle **while** pour compter //seulement// ses diviseurs //pairs//. Affichez sur l’écran : |
- | + | - "I chose the number x which has y even divisors", où x représente la valeur du numéro que vous avez choisi et y le numéro de ses diviseurs (**0.5p**) | |
- | let alf_number: number; | + | |
- | alf_number = "10";</code> | + | |
- | - <code javascript> let alf_bool: boolean = true; | + | |
- | if(alf_bool === "true") { | + | |
- | alf_bool = false; | + | |
- | console.log("I found the answer!"); | + | |
- | }</code> | + | |
- | - <code javascript> let tuple_example: [string, number]; | + | |
- | + | ||
- | tuple_example = [1, "ALF"]; | + | |
- | console.log(tuple_example[1].substring(1)); | + | |
- | tuple_example[2] = "TP1";</code> | + | |
- | - Faites un projet qui s'appelle //boucles//. En utilisant la boucle //for//, affichez : | + | |
- | - tous les nombres pairs dans l'intervalle 1-200 (**0.4p**) | + | |
- | - les mêmes nombres en ordre inverse (**0.4p**) | + | |
- | - tous les nombres divisibles par 3 (**0.4p**) | + | |
- | - tous les nombres divisibles par 5 et 7 (**0.4p**) | + | |
- | - tous les nombres divisibles par 11 ou 6 (**0.4p**) | + | |
- | - Stockez un nombre quelconque dans une variable. Utilisez la boucle //while// pour compter //seulement// ses diviseurs //impairs//. Affichez sur l’écran : | + | |
- | - "I chose the number x which has y odd divisors", où x représente la valeur du numéro que vous avez choisi et y le numéro de ses diviseurs (**0.5p**) | + | |
- Si le nombre est premier. (**0.5p**) | - Si le nombre est premier. (**0.5p**) | ||
- | - **Bonus:** Soit l'enumeration ci-dessous, où chaque couleur est mappée au numéro correspondant de l'intervalle 0-9. Affichez sur l'écran la somme des 3 valeurs pour //brown//, //orange//, //violet//. (**1p**) | + | - Faites un projet qui s'appelle //boucles//. En utilisant les différents types de boucle //for// et tout autre module nécessaire, résolvez les demandes suivantes : |
- | <code javascript> | + | - lisez 10 numéros d'un fichier txt et affichez leur somme et leur moyenne (**0.4p**) |
- | enum Colours { | + | - affichez sur l'écran la table de multiplication du numéro 5 ''(1x5=5, 2x5=10, 3x5=15 ... 10x5=50)'' (**0.4p**) |
- | BLACK, | + | - vérifiez si le numéro **56** est un parfait (la somme des diviseurs est égale a 56) (**0.4p**) |
- | BROWN, | + | - vérifiez si un numéro est **Strong**. (Un nombre //Strong// est un nombre spécial dont la somme des factorielles de chiffres est égale au nombre d'origine: ''1! + 4! + 5! = 145'' (**0.4p**) |
- | RED , | + | - une pyramide d'étoiles avec 4 lignes (**0.4p**) <code> |
- | ORANGE, | + | * |
- | YELLOW, | + | * * |
- | GREEN, | + | * * * |
- | BLUE, | + | * * * *</code> |
- | VIOLET, | + | - la pyramide suivante **(0.5p)** <code> |
- | GREY, | + | 1234567654321 |
- | WHITE | + | 12345654321 |
- | } | + | 123454321 |
- | + | 1234321 | |
- | let sum: number = 0; | + | 12321 |
- | + | 121 | |
- | /* Here goes your code */ | + | 1 </code> |
- | + | ||
- | console.log(sum); // 11 | + | |
- | </code> | + | |
- | + | ||
- | + |