C++

Программно нарисовать домик в С++

Программа должна нарисовать домик, как показано на рисунке 1. Строительным материалом являются: символы слэша (прямой /, обратный \, вертикальный |), знак минуса, символ подчёркивания.

Используйте управляющие символы новой строки и табуляции. Для решения этой задачи вам могут понадобятся знания об использовании управляющих символов в С++, которые вы можете получить, прочитав у нас на сайте статью.


Рисунок 1 — Управляющие символы С++
#include <iostream>
 
using namespace std;
 
int main(int argc,char *argv[])
{
 cout << "\t   House:\n\n";
 cout << "\t     /\\ \n";
 cout << "\t    /  \\ \n";
 cout << "\t   /    \\ \n";
 cout << "\t  /------\\ \n";
 cout << "\t / |    | \\ \n";
 cout << "\t   |    | \n";
 cout << "\t   |    | \n";
 cout << "\t   |____| \n";
 
 system("PAUSE");
 return 0;
}

У этой задачи есть еще одно решение, не самое простое, но все же интересное. Это решение нам любезно согласился предоставить пользователь нашего сайта — Dred. Огромное спасибо ему за это. Смотрим код ниже:
/* Использование escape-последовательностей для
рисования домика в консольном режиме */
 
#include <iostream>    /* директивой препроцессора подключаем заголовочный файл
                       с определением объектов cin и cout  */
using std::cout; // подключаем объекты стандартного пространства имен
using std::endl;
using std::cin;
int main() // заголовок главной функции программы
{
// определяем в массиве рисуемый объект
int dom [][10]={     {0,0,0,0,1,2,0,0,0,0},
                     {0,0,0,1,0,0,2,0,0,0},
                     {0,0,1,0,0,0,0,2,0,0},
                     {0,1,3,3,3,3,3,3,2,0},
                     {1,0,4,0,0,0,0,4,0,2},
                     {0,0,4,0,0,0,0,4,0,0},
                     {0,0,4,0,0,0,0,4,0,0},
                     {0,0,4,0,0,0,0,4,0,0},
                     {0,0,4,0,0,0,0,4,0,0},
                     {0,0,4,5,5,5,5,4,0,0},
                };
char symbol [6]={' ','/','\\','--','|','_'}; // массив символов рисования
// рисуем объект
        for(int i=0;i<10;i++) //цикл по строкам
        {
                for(int j=0;j<10;j++) //цикл по столбцам
                {
                        switch(dom[i][j])
                        {
                                case 0: cout<<symbol[0];continue;
                                case 1: cout<<symbol[1];continue;
                                case 2: cout<<symbol[2];continue;
                                case 3: cout<<symbol[3];continue;
                                case 4: cout<<symbol[4];continue;
                                case 5: cout<<symbol[5];continue;
                        }
                }
        cout<<endl;
        }
        cin.get();
 return 0;
 }

Как видите суть данного решения сводится к образованию своеобразной маски, маской я называю двумерный массив. То есть, если вывести на экран этот массив, и вместо цифр поставить соответствующие символы, получим домик.

Заметьте, что в этом исходнике приятно читать код, это потому, что автор данной программы старается соблюдать хороший стиль программирования. Что это значит? Он ставит отступы, комментарии и дает осмысленные имена переменным. Это огромный плюс, особенно для начинающего программиста.
	     /\ 
	    /  \ 
	   /    \ 
	  /------\ 
	 / |    | \ 
	   |    | 
	   |    | 
	   |____|
Добавлено: 15 Сентября 2013 03:46:19 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...