Accueil Finances personnelles Comment créer du code en ruby ​​pour dessiner un rectangle - des mannequins

Comment créer du code en ruby ​​pour dessiner un rectangle - des mannequins

Vidéo: Tutoriel HTML5 Complet Pour Débutants - Créer un blog en HTML 2025

Vidéo: Tutoriel HTML5 Complet Pour Débutants - Créer un blog en HTML 2025
Anonim

Dans Ruby, vous pouvez créer un rectangle à l'écran en utilisant l'art ASCII. Si vous deviez dessiner un rectangle sur un papier rempli d'un motif, que feriez-vous? D'abord, vous pouvez dessiner le contour du rectangle, et vous pouvez ensuite colorier à l'intérieur.

Mais pour votre programme en Ruby, vous devrez dessiner la forme du haut vers le bas, une ligne à la fois. Comment décririez-vous comment faire cela? Comme ça:

  1. Dessinez le haut du rectangle à l'aide du motif extérieur (ou bord) de la première ligne.

  2. Pour chacune des lignes qui composent les côtés et l'intérieur du rectangle, tracez le bord gauche, tout le milieu, puis le bord droit.

    Répétez cette étape jusqu'à ce que vous ayez besoin de dessiner le bas du rectangle.

  3. Dessinez le bas du rectangle exactement comme vous avez dessiné le bord supérieur.

Ceci est un algorithme pour dessiner des rectangles ligne par ligne de haut en bas.

Un algorithme est juste une séquence d'étapes que vous suivez pour accomplir une tâche ou un calcul. Dans ce cas, vous avez écrit la séquence pour dessiner un rectangle en balayant de haut en bas, ligne par ligne.

La version Ruby de votre algorithme ressemble beaucoup à la version anglaise:

  1. Configurez deux variables qui facilitent la visualisation de ce qui se passe. Vous utiliserez le choix de l'utilisateur pour la taille de la forme comme la hauteur et la largeur de la figure que vous allez dessiner:

    height = shape_size width = shape_size
    
  2. Vous dessinerez le rectangle ligne par ligne, donc configurez une boucle qui répètera votre code pour chaque ligne (donc, cela signifie que vous avez besoin de votre code de dessin pour courir hauteur fois):

    1. jusqu'à (hauteur) do | rangée | # Le code de dessin va ici
    

    Les boucles sont un moyen puissant de répéter le code un certain nombre de fois (ou même un nombre infini de fois)! Ruby a plusieurs façons de programmer une boucle. La méthode ascendante est un moyen facile de compter d'un nombre de départ à un nombre final. Pour le rectangle, vous voulez compter à partir de 1 pour la première ligne et terminer le comptage lorsque vous atteignez le nombre représenté par la hauteur.

  3. Maintenant, pour que l'algorithme fonctionne, vous devez vérifier quelle ligne vous voulez que le programme imprime. Vous avez trois cas: la première rangée, les rangées du milieu et la dernière rangée. Ajoutez dans le cas de la première ligne au milieu de votre boucle:

    si row == 1 met outside_letter * width end
    

    Si la variable row est égale à un, le programme utilisera puts pour imprimer votre choix pour la lettre extérieure un nombre de fois égal à la largeur.

    Vous utilisez if si vous voulez voir si une condition est vraie ou fausse.Le symbole == dans Ruby pose la question: "La chose sur le côté gauche est-elle égale à la chose du côté droit du symbole ==? "Si c'est le cas, alors Ruby exécutera les lignes de code jusqu'à une autre condition ou un mot-clé de fin.

  4. Ensuite, ajoutez une vérification pour voir s'il s'agit de la dernière rangée. Le mot-clé elsif démarre un autre test de condition et vous le placez juste avant le mot-clé end précédent. Ce n'est pas une faute d'orthographe, d'ailleurs. Ruby a juste une drôle de façon de dire "else if"! Le tout ressemblera à ceci:

    si row == 1 met outside_letter * largeur elsif row == height met outside_letter * width end
    
  5. Enfin, vous devez gérer l'affichage de toutes les lignes au milieu, donc ajouter une dernière condition en utilisant le mot clé else de Ruby. Ce code va juste avant le mot-clé end. Voici le bloc entier de Ruby:

    si row == 1 met outside_letter * largeur elsif row == height met outside_letter * largeur else middle = lettre_intérieure * (largeur - 2) met "# {lettre_externe} # {milieu} # { lettre_externe} "end
    

    Le casse-tête semble compliqué. Que fait-il? Eh bien, selon votre algorithme, il faut dessiner les bords gauche et droit et tout au milieu.

    La variable du milieu calcule la chaîne qui représente le centre du rectangle. Si vous en supprimez un pour le caractère de bord gauche et un pour le caractère de bord droit, la largeur finale du milieu correspond à la largeur complète moins deux caractères.

    La dernière instruction puts utilise le traitement de chaîne pour créer la ligne combinée.

  6. Exécutez votre programme et voyez si vous avez des erreurs. Avez-vous quelque chose comme ce qui est montré ici? Si vous voyez une erreur indiquant que la comparaison de Fixnum avec String a échoué, cela signifie que Ruby a eu du mal à utiliser la valeur dans shape_size comme un nombre.

    Ruby ne sait pas comment utiliser les chaînes pour les nombres.

    Pourquoi est-ce un problème si vous avez tapé un chiffre? Eh bien, obtient des lectures dans votre entrée, mais il lit tous les caractères que vous tapez comme une chaîne. Vous devez aider Ruby à convertir la chaîne en nombre.

  7. Modifiez les deux lignes où vous définissez les variables height et width pour utiliser la méthode to_i, ce qui signifie convertir le contenu de cette variable en un entier (nombre):

    height = shape_size. to_i width = shape_size. to_i
    

    Réexécutez votre code. Succès!

    Est-ce le rectangle le plus excitant du monde?
Comment créer du code en ruby ​​pour dessiner un rectangle - des mannequins

Le choix des éditeurs

Comment adapter les normes journalistiques aux blogs de maman - Les nuls

Comment adapter les normes journalistiques aux blogs de maman - Les nuls

Alors que les standards journalistiques sont légèrement différents Diffusion, et les organisations en ligne, ils partagent des éléments communs de véracité, la précision, l'objectivité, l'impartialité, l'équité et la responsabilité publique (c'est une citation adaptée de Wikipedia). Surtout, les standards journalistiques établissent une séparation entre les départements qui génèrent des revenus (ventes de publicité et de sponsoring) et les départements qui développent ...

Comment accepter les commentaires des membres de la communauté en ligne - mannequins

Comment accepter les commentaires des membres de la communauté en ligne - mannequins

Comme gestionnaire de communauté en ligne, vous ne pouvez pas avoir peur pour demander des commentaires parce que vous ne voulez pas entendre de mauvaises nouvelles. La réalité est qu'il n'y a pas de mauvaises réactions. Pourtant, lorsque les commentaires négatifs viennent, parfois vous ne pouvez pas vous empêcher de le prendre personnellement. Vous passez tellement de temps à cultiver votre communauté et à promouvoir ...

Comment ajouter NoFollow Tag - mannequins

Comment ajouter NoFollow Tag - mannequins

La balise NoFollow a été créée comme un moyen de divulguer aux moteurs de recherche que, bien que votre site de blogging maman ajoute un lien vers une destination particulière, il n'approuve pas le site de destination. Initialement utilisé pour les commentaires de blog pour lutter contre les spams de commentaires, il protégeait les blogs de se connecter par inadvertance aux ...

Le choix des éditeurs

Ce qu'il faut faire et ne pas faire pour vos tableaux de bord et rapports Excel - les nuls

Ce qu'il faut faire et ne pas faire pour vos tableaux de bord et rapports Excel - les nuls

Les concepts les plus courants utilisés dans les tableaux de bord et les rapports Excel sont le concept de tendances. Une tendance est une mesure de la variance sur un intervalle défini, généralement des périodes telles que des jours, des mois ou des années. Mais construire des composants tendance pour vos tableaux de bord a quelques choses à faire et à ne pas faire. Utilisez les types de graphiques appropriés pour ...

Emplacements de confiance et macros Excel - mannequins

Emplacements de confiance et macros Excel - mannequins

Si l'idée d'un message Macro Excel à venir (même une fois) désorganise vous, configurez un emplacement de confiance pour vos fichiers. Un emplacement approuvé est un répertoire considéré comme une zone sûre dans laquelle seuls les classeurs approuvés sont placés. Un emplacement de confiance vous permet, à vous et à vos clients, d'exécuter un classeur compatible avec les ...

Transformez une colonne de données en deux dans Excel 2016 - des nuls

Transformez une colonne de données en deux dans Excel 2016 - des nuls

Dans une feuille Excel 2016 que vous devez transformer une colonne de données en deux colonnes. Dans le cas des noms, par exemple, il peut être nécessaire de transformer une colonne de noms en deux colonnes, l'une appelée prénom et l'autre nom de famille. Suivez ces étapes dans un fichier Excel ...

Le choix des éditeurs

Dix domaines à couvrir avec les fournisseurs d'entrepôts de données - les nuls

Dix domaines à couvrir avec les fournisseurs d'entrepôts de données - les nuls

Sont dix domaines que vous devriez Discutez avec n'importe quel fournisseur de produits d'entreposage de données, quelle que soit la catégorie de produit (outil d'aide à la décision, outil de middleware ou SGBDR, par exemple) que vous envisagez d'acheter. Il y a aussi une question spécifique que vous pourriez vouloir poser. Toutes ces questions sont quelque peu bizarres car elles ont peu à voir avec ...

L'avenir des entrepôts de données à l'ère du Big Data - mannequins

L'avenir des entrepôts de données à l'ère du Big Data - mannequins

Commencé à changer et à évoluer avec l'avènement du Big Data. Dans le passé, il n'était tout simplement pas rentable pour les entreprises de stocker l'énorme quantité de données provenant d'un grand nombre de systèmes d'enregistrement. Le manque d'architectures de calcul réparties rentables et pratiques a fait que les données ...

Les catégories principales de Business Intelligence - les nuls

Les catégories principales de Business Intelligence - les nuls

Au début de votre projet d'entreposage de données, ne vous concentrez pas sur le type d'outils dont vous avez besoin - pour le moment. Au lieu de cela, concentrez-vous sur les types de questions que les utilisateurs poseront concernant le contenu de l'entrepôt de données, les types de rapports qui seront exécutés et à quelles fins, et les modèles généraux de traitement qui ...