Домашнее задание для ПО 2.11 по системному программированию от 10.02.20
учебно-методическое пособие

Склемин Алексей Анатольевич

решить задачу

Скачать:

ВложениеРазмер
Microsoft Office document icon 26.doc31 КБ

Предварительный просмотр:

Двадцать шестое задание

Составить программу, которая будет печатать ромб одним из значков (* или + или #) Выбор значков организовать оператором switch.


///Программа выводит на экран ромб

///с заданной шириной и высотой

#include

#include

using namespace std;

///передаем функции символ которым будет отображаться ромб, высоту и ширину

void fn_normal_out(char symbol,int height,int width)

{

    int position=0;

        for(int y=1;y<=height;++y)///высота

        {

            for(int x=1;x<=width;++x)///ширина

            {

                ///строим ромб

                if(x==(width/2+1+position)||x==(width/2+1-position))

                {

                    cout<

                }

                else

                {

                    cout<<" ";

                }

            }

            cout<

            if(y

            else position--;

        }

}

int main()

{

         SetConsoleOutputCP(1251);///русский язык

        cout<<"Введите 1 для печати ромба '*' "<

        cout<<"Введите 2 для печати ромба '+' "<

        cout<<"Введите 3 для печати ромба '#' "<

        cout<<"Пожалуйста, введите число 1 - 3: ";

        int second_choice;

        cin>>second_choice;

        if(second_choice<=0||second_choice>3)///Error

        {

            cout<<"\nОшибка. Не верный ввод, программа закрывается...\n";

            return 0;

        }

        cout<<"\nВводить нужно только положительные нечетные числа,\n"

        <<"иначе ромб не построиться"<

        h:cout<<"\nВведите высоту ромба: ";

        int height;

        cin>>height;

        if(height<0||(!(height%2)))///Error

        {

            cout<<"\nОшибка.\n";

            goto h;

        }

        w:cout<<"\nВведите ширину ромба: ";

        int width;

        cin>>width;

        if(width<0||(!(width%2)))///Error

        {

            cout<<"\nОшибка.\n";

            goto w;

        }

        switch(second_choice)

        {

            case 1:

            {

                char symbol='*';

                 fn_normal_out(symbol,height,width);

                break;

            }

            case 2:

            {

                char symbol='+';

                fn_normal_out(symbol,height,width);

                break;

            }

            case 3:

            {

                char symbol='#';

                fn_normal_out(symbol,height,width);

                break;

            }

            default:

            {

                cout<

                return 0;

            }

        }

    return 0;

}