Logo - Guide rapide

Logo est un langage de programmation très simple et facile à apprendre. Il est utilisé pour enseigner aux étudiants et aux enfants comment programmer un ordinateur.

Pourquoi devrions-nous apprendre le langage du logo?

  • Parce que c'est amusant, très amusant.
  • Améliore le sens logique des enfants.
  • Développe des compétences en programmation.
  • C'est de la vraie science informatique.

Logo est un langage de programmation très simple et intéressant à apprendre. Il a suffisamment de profondeur pour faire pratiquement n'importe quoi, ce qui peut être fait dans n'importe quel autre langage de programmation informatique.

Comment télécharger et installer le logiciel de logo MSW?

Si le logiciel de programmation de logo n'est pas installé sur l'ordinateur, nous pouvons l'obtenir gratuitement à partir du lien suivant -

www.softronix.com/mswlogo.html

Après l'installation, il place une icône de logo sur le bureau de votre ordinateur.

L'écran du logo MSW comprend deux parties -

  • Une fenêtre de dessin ci-dessus avec une TORTUE en forme de triangle au centre.
  • Une fenêtre Commander comme illustré dans la capture d'écran suivante.

Nous écrirons les commandes dans la ligne de commande, c'est-à-dire la zone de texte en bas de la fenêtre Commander. Pour exécuter ou exécuter ces commandes, appuyez sur Entrée ou cliquez sur le bouton Exécuter. Nous pouvons également écrire et exécuter plus d'une commande en ligne à la fois.

L'historique des commandes apparaîtra dans la case grise. Cliquez sur une ligne de l'historique pour la faire passer à la ligne de commande respective, puis nous pouvons apporter des modifications (si nécessaire). Une fois que cela est fait, appuyez sur Entrée ou cliquez sur le bouton Exécuter.

Les commandes simples de dessin de logo font avancer et reculer la tortue et la font également tourner à droite ou à gauche. Les commandes et leurs abréviations sont données ci-dessous -

  • fd - avant
  • bk - en arrière
  • rt - droite
  • lt - gauche
  • cs - clearscreen

Les deux versions de ces commandes peuvent être utilisées. À l'exception de la commande cs, chacune de ces commandes doit être suivie d'une valeur appelée comme argument. Les arguments pour fd et bk sont des unités; ceux de rt et lt sont des angles qui peuvent être n'importe quel entier. Une rotation de 360 ​​est une rotation complète, donc une rotation de 375 degrés équivaut à 1/15 degrés.

  • forward 60 ou fd 60 signifie avancer de 60 pas

  • right 90 ou rt 90 signifie tourner à droite de 90 degrés

  • left 90 ou lt 90 signifie tourner à gauche de 90 degrés

  • back 60 ou bk 60 signifie revenir 60 étapes

  • clearscreen ou cssignifie effacer tous les dessins. Cela place la tortue au centre

La fenêtre graphique a un système de coordonnées. Les valeurs des deux coordonnées (normalement appelées x et y) au centre sont 0, 0. Au coin nord-est, elles sont 250, 250; au coin sud-est, ils sont 250, -250. Au coin sud-ouest, ils sont -250, -250; etc. Si la tortue essaie de marcher sur un côté de l'écran, elle s'enroule. Le côté droit s'enroule vers le côté gauche et le haut s'enroule vers le bas.

De nombreux systèmes de programmation fonctionnent sur le même type de plan de coordonnées `` xy '' à deux axes, avec lequel nous travaillons également en algèbre.

Ici, «0 0» est le centre, ou l'origine (pas de virgule ni de parenthèses ici!). Dans son état centré, zoom - "normal", l'écran de dessin du logo montre une zone d'environ 150 points vers le haut ou vers le bas et 300 points à droite ou à gauche du centre.

La tortue peut être dirigée avec des titres qui correspondent à une rose des vents, avec 0 ou 360 degrés pointant vers le haut, 90 degrés vers la droite, et ainsi de suite. Vous pouvez définir une variable sur un nombre compris entre 0 et 360, puis marcher sur ce chemin.

Commandes de la tortue

Essayons maintenant quelques commandes. Les commandes seront émises une par ligne, suivies d'un retour chariot. Plusieurs de ces commandes peuvent être saisies successivement dans une fenêtre de commande suivie d'un retour chariot. L'effet sur la tortue est le même. Cependant, si vous tapez une commande qui nécessite une ou plusieurs entrées et que vous fournissez les entrées manquantes sur la ligne suivante, Logo affichera une erreur.

Voici une commande d'entraînement, qui montre les résultats souhaités sur la droite.

Les commandes - fd 50 rt 120 fd 50 rt 120 fd 50 rt 120, amenez la tortue à dessiner un triangle, comme vous pouvez le voir en les essayant.

Ces commandes sont lues de gauche à droite. Depuis la commandefdnécessite un argument, il est considéré comme la valeur suivante. De même,rtprend également un argument. Ainsi, Logo peut donner une signification sans ambiguïté à chacune de ces chaînes de caractères. Pour certaines commandes Logo, des séparateurs sont nécessaires.

Voici quelques commandes d'entraînement avec les résultats souhaités sur la droite.

Voici un exercice pour vérifier vos aptitudes sur ce que vous avez appris jusqu'à présent dans ce chapitre.

Logo a un certain nombre d'autres commandes de dessin, dont certaines sont données ci-dessous.

  • pu - penup

  • pd - pendaison

  • ht - hideturtle

  • dt - tortue

  • setpensize

Les commandes pendown et penup indiquent à la tortue de laisser de l'encre sur l'écran lorsqu'elle se déplace ou de ne pas laisser d'encre, respectivement. lehideturtle et showturtleLes commandes masquent ou affichent la tortue, mais n'affectent pas sa capacité à laisser de l'encre lorsqu'elle se déplace. La commande home fait revenir la tortue au centre de l'écran. Cela peut laisser de l'encre lorsque la tortue revient au centre de l'écran. La commande setpensize décide de la taille du crayon de dessin.

  • penup ou pu signifie ramasser le stylo, afin que vous puissiez déplacer la tortue sans laisser de traces.

  • pendown ou pd signifie ramasser le stylo vers le bas, afin que vous puissiez déplacer la tortue et laisser des traces.
  • hideturtle ou ht signifie cacher la tortue pour que vous puissiez admirer votre dessin.

  • showturtle ou st signifie montrer la tortue pour que vous puissiez continuer votre dessin.

  • setpensizesignifie qu'il peut agrandir le stylo, plus facile à voir. La taille du crayon par défaut est - [1 1].

Voici quelques commandes d'entraînement avec les résultats souhaités sur la droite.

Logo a un certain nombre d'autres commandes de dessin supplémentaires, dont certaines sont données ci-dessous.

  • home
  • texte clair ou ct
  • label
  • setxy

La commande label prend un seul mot sous forme de chaîne entre guillemets (par exemple «a_string») ou une liste de mots entre [] crochets sans guillemets (par exemple [une chaîne de lettres]) et les imprime sur la fenêtre graphique à l'emplacement de la tortue . Considérons le code suivant.

le setxyLa commande prend deux arguments, traite le premier comme la valeur de l'abscisse (axe horizontal) et le second comme une valeur de l'ordonnée (axe vertical). Il place la tortue à ces coordonnées, laissant éventuellement de l'encre en atteignant ces coordonnées. Dans les trois figures suivantes, nous avons montré comment la commande setxy peut être utilisée.

La commande en texte clair, abrégée ct, efface la zone de texte de la fenêtre de commande.

Exercice

Voici un exercice pour vérifier vos aptitudes sur ce que vous avez appris jusqu'à présent dans ce chapitre.

Quel genre de figure la séquence de commandes suivante produit-elle?

cs pu setxy -60 60 pd home rt 45 fd 85 lt 135 fd 120

Interprétez ces commandes au fur et à mesure que vous les lisez de gauche à droite. Essayez-le pour connaître le résultat.

Voici un tableau récapitulatif des commandes.

Nom de la commande Objectif
setx 100

Définit la coordonnée x de la tortue sur +100

Le déplace de 100 points vers la droite du centre

Aucun changement vertical

setx -200

Déplace la tortue de 200 points vers la gauche du centre

Aucun changement vertical

sety 150

Définit la coordonnée y de la tortue sur 150

Le déplace de 150 points au-dessus du centre

Aucun changement horizontal

sety - 50

Déplace la tortue de 50 points sous le centre

Aucun changement horizontal

setxy 100 100

Déplace la tortue à la coordonnée xy 100 100

montrer xcor

montrer ycor

Signale la coordonnée x de la tortue

Signale la coordonnée y de la tortue

setheading 0

seth 0

Pointe la tortue vers le haut, «midi»

seth 120

Déplace la tortue de 120 degrés pour pointer vers la position quatre heures

La capture d'écran suivante est une démonstration pratique de certaines des commandes ci-dessus.

Une variable est le nom d'un emplacement mémoire qui peut contenir une valeur. Dans un ordinateur, chaque emplacement de mémoire a une adresse entière. Puisqu'il serait difficile de se souvenir de l'adresse de chaque emplacement contenant une valeur utilisée par un programme, les informaticiens ont trouvé des moyens de donner à ces emplacements des noms symboliques. Une fois qu'une variable a un nom, nous pouvons l'utiliser et la manipuler.

Les variables reçoivent des noms qui sont des chaînes de lettres. Un nom de variable peut contenir des alphabets (non sensibles à la casse), des chiffres et des traits de soulignement. Un nom de variable est accessible dans un calcul en utilisant ':' avant lui. Prenons l'exemple suivant dans la capture d'écran.

Dans l'exemple ci-dessus, nous avons défini deux variables first_name, 100_last_name_200 et les initialise avec des valeurs Amal et Das en utilisant les instructions suivantes -

  • faire "first_name" Amal
  • make "100_last_name_200" Das

De plus, nous avons imprimé ces deux variables avec les instructions print: first_name et print: 100_last_name_200.

L'exemple suivant montre comment définir des variables numériques -

Ici, nous avons défini deux variables numériques val1 et val2. Nous avons également effectué des additions et des soustractions en les utilisant.

Logo fournit les opérations arithmétiques habituelles d'addition, de soustraction, de multiplication et de division, désignées par les symboles +, -, *, /. Chacune de ces opérations produit un résultat. Si vous ne faites rien avec le résultat, comme l'imprimer, Logo affichera une erreur.

Avec la commande d'impression, le résultat d'une opération arithmétique peut être utilisé et imprimé dans la fenêtre de commande. Les exemples donnés dans la capture d'écran suivante démontrent la même chose.

D'autres commandes utiles sont -

  • sqrt - Il prend un argument non négatif et renvoie sa racine carrée.

  • power - Il prend deux arguments, les appelle «a» et «b», et génère a à la puissance b.

  • ln - Il prend un argument et renvoie son logarithme naturel.

  • exp - Il prend un argument et calcule e à cette puissance, e est le nombre naturel 2,718281828.

  • log10 - Il prend le logarithme en base 10 de son seul argument.

La capture d'écran suivante montre un exemple des commandes ci-dessus avec leur sortie respective.

Les opérateurs arithmétiques ont une priorité qui détermine l'ordre dans lequel ils sont évalués.

Note- imprimer 60 * sqrt 2 et imprimer sqrt 2 * 60 produisent des réponses différentes. Ici, l'opérateur * a priorité sur l'opérateur sqrt. Ainsi, * sera fait avant sqrt, s'il y a un choix, comme c'est le cas dans le second cas.

Pour cette raison, la première instruction imprime la valeur de 60 fois la racine carrée de 2, tandis que la deuxième instruction imprime la racine carrée de 120, comme illustré dans la capture d'écran suivante.

Nous répétons souvent une séquence de commandes. Les programmes informatiques effectuent souvent des tâches répétitives. Presque tous les systèmes de programmation ont un moyen de réaliser cette répétition, ou itération, comme l'appellent les informaticiens. Prenons l'exemple suivant -

Supposons que nous voulions dessiner un carré avec des côtés de longueur 100, nous pouvons le faire avec le programme suivant -

fd 100
rt 90
fd 100
rt 90
fd 100
rt 90
fd 100
rt 90

Nous notons que les deux commandes - fd 100 et rt 90 sont répétées quatre fois. Ne sera-t-il pas plus simple de dire à l'ordinateur qu'il doit simplement répéter ces deux commandes quatre fois au lieu de les écrire quatre fois de suite? Nous pouvons faire exactement cela, en utilisant la commande suivante -

Cela nous fait gagner du temps à taper pour créer un carré. La forme générale est:repeat number [commands]. Nous devons utiliser le mot-clé -repeat suivi d'un nombre puis d'une séquence de commandes entre [crochets].

Souvent, nous pourrions avoir à répéter dans la répétition. C'est appelénesting. Regardons quelques exemples à ce sujet.

Voici un exercice pour vérifier vos aptitudes sur ce que vous avez appris jusqu'à présent dans ce chapitre.

Parfois, il est amusant d'avoir un résultat imprévisible d'un calcul. Logo fournit une procédure aléatoire pour générer un nombre aléatoire. Il a un argument et produit une valeur entière choisie uniformément au hasard, qui est supérieure ou égale à 0 et inférieure à la valeur de son argument. Ainsi, si vous souhaitez un angle aléatoire entre 0 et 359 degrés, vous pouvez utiliser la commanderandom 360pour le produire. Gardez à l'esprit que Logo affichera une erreur à moins que vous ne fassiez quelque chose avec le résultat, comme l'impression.

Regardons l'exemple suivant -

Nous avons émis la commande - print random 360 plusieurs fois dans la fenêtre de commande ci-dessus et si vous le remarquez, à chaque fois, il génère une sortie aléatoire.

Voici quelques commandes d'entraînement avec les résultats souhaités sur la droite.

Les procédures fournissent un moyen d'encapsuler une collection de commandes. Une fois qu'une procédure a été créée, elle peut être utilisée de la même manière qu'une commande intégrée est utilisée. La «signification» d'une procédure est la signification de ses commandes individuelles.

Une procédure sans arguments a le mot «to» (un mot réservé) et le nom de la procédure sur la première ligne. (Les mots réservés dans Logo ne peuvent pas être utilisés comme variables et ont une signification et une utilisation bien définies.) Il a le mot réservé «fin» sur la dernière ligne.

Un sous-programme est une séquence nommée d'étapes qu'un autre programme doit exécuter. Les autres noms de sous-programmes sont des procédures et des fonctions. Dans Logo, vous indiquez à l'ordinateur comment faire quelque chose - par exemple -

to square
repeat 4 [fd 100 rt 90]
end

Une fois que nous avons décrit notre procédure à Logo, nous pouvons entrer son nom sur la ligne de commande, comme nous le ferions pour n'importe laquelle des choses intégrées. Dans ce cas, nous taperions «carré» sur la ligne de commande et Logo recherche les commandes pour créer un carré.

Cliquez sur le bouton qui dit Edall(pour tout modifier) ​​pour afficher l'éditeur intégré de Logo. (Si votre logo n'a pas de bouton Edall, tapez «edall» sur la ligne de commande). Le bloc de code suivant a la structure requise du sous-programme.

to procedurename
steps of your procedure here
end

La procédure ou le sous-programme doit commencer par le mot «to», suivi d'un nom auquel nous pensons. L'étape suivante consiste à saisir toutes les étapes que nous écririons sur la ligne de commande. La procédure doit se terminer par le mot «fin». Toutes les lignes de commentaire ou de remarque doivent être précédées d'un point-virgule (;).

Voici la démonstration pratique de l'exemple ci-dessus -

Maintenant, à partir de la ligne de commande, exécutez la procédure en utilisant son nom «carré» comme indiqué ci-dessous -

Les procédures peuvent non seulement contenir des commandes intégrées, mais elles peuvent également contenir d'autres procédures.

Dans l'exemple suivant, une procédure «fleur» appelle notre procédure prédéfinie «carré» à partir de son corps.

La capture d'écran suivante montre la sortie lorsque la procédure «fleur» est appelée -

Nous ne voulons pas que chaque carré soit de la même taille - nous voulons de la variété. Dans Logo, nous créons des variables dont nous pouvons modifier les valeurs. Nous utiliserons la même procédure carrée avec un petit changement dans l'exemple suivant.

to square :n
repeat 4 [fd :n rt 90]
end

Nous donnons à Logo une valeur de remplacement pour ': n' sur la ligne de commande comme indiqué ci-dessous.

square 50
square 75
square 100

Voici la démonstration pratique de l'exemple ci-dessus -

Voyons maintenant comment passer deux arguments à une procédure. La capture d'écran suivante est une démonstration pratique de la même chose.

Dans une procédure récursive, il y aura un appel récurrent de la procédure au sein de la procédure. Considérons le code suivant -

to spiral_recur :n
   if :n < 1 [stop]
   fd :n
   rt 20
   spiral_recur 0.95 * :n
end

La procédure spiral_recur a été appelée depuis le corps de la procédure lui-même. La capture d'écran suivante montre l'exécution et la sortie du code.

La prise de décision et les variables vont de pair. Un programme doit pouvoir changer de cap en fonction de la situation. Voici, par exemple, un cadre pour dessiner une spirale. Il a une boucle, une variation de la répétition montrée précédemment et le corps de la boucle est à nous de remplir.

to spiral
   make "n 1
   while [:n < 100] [
      make "n :n + 5
      fd :n rt 90
   ]
end

Le code ci-dessus montre plusieurs nouvelles fonctionnalités de la syntaxe du logo MSW. Nous définissons une variable sur une nouvelle valeur en tapant «make», puis le nom de la variable est précédé d'un guillemet double "plutôt que d'un deux-points": "comme indiqué ci-dessous.

make "n 1

Nous utilisons une variable, cependant, avec un deux-points ':' devant son nom.

while [:n < 100]

Le code entre crochets après le 'while [condition]' est exécuté, tandis que la condition est vraie. Quand ce n'est plus vrai, parce que (dans ce cas) la valeur de ': n' dépasse 100, le code suivant le crochet est exécuté.

La capture d'écran suivante montre l'exécution et la sortie du code ci-dessus.

Maintenant, nous allons discuter de l'utilisation des «instructions if», qui ont un code qui ne sera exécuté que lorsqu'une condition donnée est vraie.

Il montre également un logo intégré qui génère des nombres aléatoires. La déclarationrandom 3génère n'importe quel nombre 0, 1 ou 2 arbitrairement dans une séquence aléatoire. La procédure décide alors dans quelle direction aller "au hasard". Le nombre aléatoire généré sera conservé dans «r» et plus tard, selon la valeur de la variable «r», l'une des instructions if sera exécutée, ce qui satisfera la condition. Ainsi, si le -

  • La valeur de 'r' est 0, alors [fd 20] sera exécuté.
  • La valeur de 'r' est 1, alors [rt 90 fd 20] sera exécuté.
  • La valeur de 'r' est 2, alors [lt 90 fd 20] sera exécuté.

La capture d'écran suivante montre l'exécution et la sortie de la discussion ci-dessus.

Toute séquence de caractères alphanumériques, par exemple - «america», «emp1234», etc. sont des exemples de chaîne. Le comptage des caractères est le plus élémentaire de tous les processus de chaîne. La réponse a la questionstringlength "abc12ef est donné par la procédure suivante -

to stringlength :s
   make "inputstring :s
   make "count 0
   while [not emptyp :s] [
      make "count :count + 1
      print first :s
      make "s butfirst :s
   ]
   print (sentence :inputstring "has :count "letters)
end

Dans la procédure ci-dessus –'s 'est la variable contenant la chaîne d'entrée. La variable inputstring contient la copie de la chaîne d'entrée. Le nombre de variables est initialisé à 0. Dans la boucle while, la condition vérifie si la chaîne est devenue vide ou non. Dans chaque compte de boucle, une variable est augmentée de 1 pour contenir le compte de longueur. La déclarationprint first :s, n'imprime que le premier caractère de la chaîne stockée dans 's'.

La déclaration make "s butfirst :s, récupère la sous-chaîne à l'exclusion du premier caractère. Après avoir quitté la boucle while, nous avons imprimé le nombre de caractères ou la longueur de la chaîne d'entrée. Voici l'exécution et la sortie du code.

Les écrans d'ordinateur fonctionnent avec des composants de lumière rouge, vert et bleu, ils sont donc parfois appelés RGB screens.

Dans le menu Set de Logo, nous pouvons définir la couleur de trois éléments d'écran -

  • La plume de la tortue
  • Le remplissage de la tortue (comme un seau de peinture pour les enclos)
  • Le fond d'écran

Nous définissons une couleur en déplaçant ces trois curseurs vers la gauche et la droite. N'oubliez pas que le noir est l'absence de toutes les couleurs et que le blanc est toutes les couleurs réunies. Mélanger la lumière n'est pas comme mélanger de la peinture. Par exemple, si vous mélangez de la peinture rouge et verte, vous obtenez une couleur boueuse. Puisqu'il s'agit d'un ordinateur, chaque couleur a une représentation numérique interne.

À l'extrémité gauche de l'échelle mobile se trouve zéro (0). À l'extrémité droite se trouve 255, ce qui est un peu comme 99 pour un ordinateur (c'est 2 8 - 1). Ainsi, le noir est [0 0 0], le rouge est [255 0 0], le vert est [0 255 0], le bleu est [0 0 255]. Vous pouvez faire n'importe quoi entre ces couleurs, et dans toutes celles-ci, il y a 256 * 256 * 256 couleurs possibles. C'est 2 8 * 2 8 * 2 8 , ou 24 bits de couleur - 24 chiffres binaires à l'intérieur de la machine.

Les commandes suivantes vous donneront un gros stylo rouge -

setpensize [5 5]
setpencolor [255 0 0]

Lorsque vous trouvez une couleur que vous aimez à l'aide des curseurs, vous pouvez demander à Logo ce que c'est: choisissez la couleur du stylo, puis dans la fenêtre de commande, entrez la commande suivante.

show pencolor

La capture d'écran suivante montre l'exécution et la sortie du code ci-dessus.

Vous pouvez créer un carré coloré en suivant les étapes suivantes -

Step 1 - Dessinez le carré de longueur de côté 40 à l'aide de la commande suivante.

repeat 4 [fd 40 rt 90]

Step 2 - Pen up en utilisant la commande suivante.

pu

Step 3- Allez à un point à l'intérieur du carré. Par exemple, placez la tortue aux coordonnées (20, 20) à l'aide de la commande suivante.

setxy 20 20

Step 4- Remplissez le carré avec le jeu de couleurs flood. Par exemple, pour définir Floodcolor sur bleu, utilisez la commande suivante.

setfloodcolor [0 0 255]

Le tableau suivant répertorie quelques autres commandes liées à la couleur et au crayon.

Commande Couleur et stylo Objet de la commande

setpencolor [rgb]

setpc [rgb]

Définit la couleur du stylo de la tortue

rgb sont des nombres compris entre [0, 255]

setfloodcolor [rgb]

setfc [rgb]

Définit la couleur d'une zone approuvée

setscreencolor [rgb]

setsc [rgb]

Définit la couleur de l'arrière-plan

afficher la couleur du crayon

montrer floodcolor

afficher la couleur de l'écran

Spécifie les valeurs actuelles pour [rgb] d'un élément nommé

Remplir

Vide un seau de Floodcolor actuel à l'emplacement du curseur

Remplir

Vide un seau de Floodcolor actuel à l'emplacement du curseur

Essayez d'exécuter l'ensemble de commandes suivant -

  • cs - Pour effacer l'écran.

  • home - Amener la tortue à la maison.

  • setpensize [5 5] - Réglage de la taille du stylo.

  • setpencolor [255 0 0] - Réglage de la couleur du stylo sur le rouge.

  • setfloodcolor [0 0 255] - Réglage de la couleur d'inondation au bleu.

  • setscreencolor [0 255 0] - Régler la couleur de l'écran sur le vert.

  • repeat 4 [fd 40 rt 90] - Dessinez un carré d'une longueur de côté 40.

  • pu - Stylo levé.

  • setxy 20 20 - Mettez la tortue à la coordonnée (20, 20).

  • fill - Remplissez le carré avec le set floodcolor blue.

  • ht - Cachez la tortue.

Vous devriez recevoir la sortie suivante lors de l'exécution des commandes ci-dessus.